问题标签 [machine-learning-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - StackedCVRegressor 总是给出相同的结果
我正在使用以下方法来拟合数据模型,无论输入参数如何,它总是给出 0.0768385736953838 作为预测值
machine-learning - 如何处理目标变量中的时间步长与预测问题中的特征之间的不匹配?
背景资料:
我正在处理一些气候数据,我想使用包含气候和卫星衍生特征的数据集来预测作物产量。
这是一个时间序列回归预测问题,我想通过 XGBoost 和 Lasso 来生成我的预测。但是,我的特征和目标变量之间的采样频率不匹配;每周记录特征,每年记录目标变量。
目前,我使用宽格式表作为 ML 模型的输入数据集,但我觉得当输入表采用宽格式格式化时,我的模型无法生成准确的预测,因为比较的样本较少如果我使用长格式表。
数据表参考:
作为参考,宽格式表看起来像这样,其中后缀表示功能上的周数:
ID | 年 | 作物产量 | 沉淀1 | 沉淀2 | 沉淀3 | 最大温度1 | 最大温度2 | 最大温度3 |
---|---|---|---|---|---|---|---|---|
1100 | 2000 | 32.1 | 5.3 | 3.0 | 3.1 | 13.3 | 15.3 | 3.1 |
1100 | 2001年 | 31.6 | 6.6 | 3.2 | 1.1 | 11.3 | 12.3 | 6.1 |
5903 | 2000 | 41.2 | 3.4 | 0.5 | 2.1 | 10.3 | 18.3 | 8.1 |
5903 | 2001年 | 27.7 | 1.7 | 3.8 | 8.1 | 12.3 | 16.3 | 5.1 |
长格式表看起来像这样:
ID | 年 | 作物产量 | 星期 | 沉淀 | 最大温度 |
---|---|---|---|---|---|
1100 | 2000 | 32.1 | 1 | 5.3 | 13.3 |
1100 | 2000 | 32.1 | 2 | 3.0 | 15.3 |
1100 | 2000 | 32.1 | 3 | 3.1 | 3.1 |
1100 | 2001年 | 31.6 | 1 | 6.6 | 11.3 |
1100 | 2001年 | 31.6 | 2 | 3.2 | 12.3 |
1100 | 2001年 | 31.6 | 3 | 1.1 | 6.1 |
5903 | 2000 | 41.2 | 1 | 3.4 | 10.3 |
5903 | 2000 | 41.2 | 2 | 0.5 | 18.3 |
5903 | 2000 | 41.2 | 3 | 2.1 | 8.1 |
5903 | 2001年 | 27.7 | 1 | 1.7 | 12.3 |
5903 | 2001年 | 27.7 | 2 | 3.8 | 16.3 |
5903 | 2001年 | 27.7 | 3 | 8.1 | 5.1 |
问题:
是否建议使用长格式表作为我的 ML 模型的输入?我觉得每个相关 ID 和年份的相同作物产量会让我的模型失望。
此外,是否有更好的方法来构建我尚未探索的数据?
knn - KNN 算法如何处理所有输出类的相等计数
很长一段时间以来,我对 KNN 算法有一些疑问,即 KNN 根据最大计数预测测试实例的标签,对吗?在这种情况下,当所有输出标签的计数相等时会发生什么?例如,有 3 个标签,K 值设置为 5,计数为 2,2,1 表示第一个标签为 2,第二个标签为 2,第三个标签为 1。在这种情况下,我们如何做出决定?我也很好奇sklearn是如何实现算法来面对这种问题的?
tensorflow2.0 - TensorFlow tf.gfile.GFile
我尝试更改tf.gfile.GFile
为 tf.io.gfile.GFile 并且也尝试过import tensorflow.compat.v1 as tf
但没有任何效果。它没有读取新保存的文件。修改后我保存了。
python - 使用假人后如何进行预测?
我用于get_dummies()
分类数据并训练了我的模型。结果很好,但是在用户输入之后,我如何再次使用模型进行预测,因为我不能要求用户输入所有的1
and 0
。
有什么方法可以获取输入并与列名匹配,如果匹配,则将输入设为 1 并将其他所有内容设为 0?我知道这可以使用一种热编码来完成,但我现在不想更改现有代码(而且我不完全确定如何使用一种热编码),因此不胜感激。
validation - 训练和再训练:我应该在训练数据中添加样本吗?
我正在使用 YOLO 版本 5 来训练我的自定义数据。我的训练样本包含 2940 张图像(我感兴趣的对象(即脑微出血)的正负样本数量相等)。
我最初将其中一个 YOLOv5 模型训练了 300 个 epoch,但注意到该模型过度拟合,因此我再次重新训练。仍有进一步改进的空间,所以我刚刚开始再次重新训练 100 个 epoch。
我的问题是:我的训练数据保持不变可以吗?我没有向其中添加任何正样本或负样本,我只是继续在相同的训练数据集上重新训练而不修改它。
python - 自定义 Keras 增强层,无法获取批量大小
我试图在 Keras 中创建自定义增强层。这个想法是为了进行更快的扩充(而不是运行相同的函数 BATCH_SIZE 次,而是在整个批次中运行一次)。
我陷入了这个功能:
在训练时,函数获取形状的输入,(None, 128, 128, 3)
其中最后 3 个数字表示图像的形状。对于我的不理解,第一个None
应该是批量大小,它不是确定性的(出于某种未知原因)。
我的问题就在这里。在我的函数中,我使用np.random.ranf(inputs.shape)
不满意None
作为形状指示器并引发错误:
另一方面,我不知道如何获得计算的批量大小。自定义增强层的代码如下。任何帮助,将不胜感激!
编辑:我知道我可以在 Input() 层中指定批量大小,它确实解决了问题,但是有没有办法在不指定输入层中的形状的情况下做到这一点?所以它可能更通用。
tensorflow - TensorFlow 对象检测 API 过拟合
我在以下教程的帮助下使用 Tensoflow 对象检测 API 创建树检测器:https ://www.youtube.com/watch?v=a1br6gW-8Ss
我的问题是模型过度拟合了训练集。我怎样才能避免它?我的训练集由 130 张图像组成,图像中平均标记了 4 棵树。共有7种。我使用的模型是:在 COCO 数据集上预训练的“Faster R-CNN ResNet50 V1 640x640”..(链接如下) https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/ tf2_detection_zoo.md 在教程中使用以下模型“EfficientDet D0 512x512”,但该模型也过拟合了我的数据集,所以我尝试使用“Faster R-CNN ResNet50 V1 640x640”。
我用来减少过拟合的技术是
- 辍学(率=0.675)
- 数据增强(random_crop)
- 低学习率(learning_rate_base: .008 , total_steps: 25000 .warmup_learning_rate: .0001)
- 原始图像尺寸为 860x860,我将它们调整为 tp 640x640 并在 xml 中更改了边界框坐标。
我应该在模型配置中添加或更改什么以避免过度拟合?
这是我的模型配置文件:
python - 从 BERT 到机器学习模型的 Word Embedding 精度不好
我正在尝试通过从 BERT 中提取词嵌入并将词嵌入提供给机器学习模型来解决产品匹配任务。
但是,准确性并不好。
我尝试了不同的截断策略,并使用单个属性或连接的 2 个属性作为词嵌入的输入,但准确性并没有提高很多。
您能否建议我如何提高模型的性能?
这是github中的项目 https://github.com/jajawong/Data-Science/blob/main/Copy_of_FineTuneBert_Feature_Extraction%20(1).ipynb
machine-learning - 在 Xamarin 应用程序中正确加载 Microsoft.ML 模型?
我正在了解机器学习的工作原理并最终构建了一个小型 C# 应用程序,因为我正在观看一个教程,其中模型确定特定蜜蜂是什么种类的蜜蜂。它在 C# 应用程序中运行良好,但我也在开发一个具有拍照功能的应用程序项目,所以我想“没有理由我在第一个项目中保存的模型不能在第二个项目中工作,对吧?”。显然它不能工作是有原因的,因为这是在应用程序项目中查看的必要代码:
我在“m_loadedTrainedModel = m_mlObj.Model.Load(fileDir, out m_modelSchema);”上有一个断点 当然,它总是会触发异常。
异常状态:
---> System.TypeLoadException:无法加载字段'Microsoft.ML.Transforms.DnnRetrainTransformer:_tfInputShapes'(9)的类型,原因是:无法从typeref解析类型为01000060的类型(程序集中的预期类'Tensorflow.TensorShape' 'TensorFlow.NET, Version=0.20.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51') 程序集:TensorFlow.NET, Version=0.20.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd5 1 类型:Tensorflow.TensorShape 成员:(null)
我认为这意味着它正在检查 TensorFlow.NET 包中的 Tensorflow.TensorShape 并且没有找到它。如果是这种情况,我相信我没有安装正确的包,所以我的 Xamarin 项目将能够正确加载模型,也许吧?或者如果不是,那么真正的潜在问题可能是什么?代码看起来很简单,所以我有点困惑这是如何失败的。
如果解决方案公然超出我的想象,我很抱歉,并感谢任何愿意提供帮助的人。