机器学习模型错误预测
Posted
技术标签:
【中文标题】机器学习模型错误预测【英文标题】:Machine Learning model Wrong Prediction 【发布时间】:2020-02-09 20:48:23 【问题描述】:我有一个来自 create ML 的机器学习分类器。该模型使用 3400 个样本进行训练,总体而言其准确度令人印象深刻。然而,该模型经常做出错误的预测,我似乎无法弄清楚如何将其添加到模型中,因此它对其中一些错误预测没有如此高的信心。我如何/我可以用这个分类错误的新数据重新训练模型,它不属于这个分类?我应该创建一个新的分类文件夹并将这些错误的分类添加到其中,还是有办法训练模型以作为非分类类型传入,以便尝试了解它们之间的区别?
【问题讨论】:
你能提供更多细节吗 我不确定我还能提供什么详细信息。但基本上我的 ML 模型正在做出我不希望它做出的预测。我如何重新训练模型告诉它这个示例不是这种类型的分类 您在这里对您的问题进行了非常广泛的描述。当您说“它的准确度令人印象深刻”时,是否还查看了其他指标?精确度、召回率、混淆矩阵?您的数据的特征如何?你的数据类不平衡吗?如果您的数据由 99.9% 的 0 类和只有 0.1% 的 1 类组成,那么您的模型通过仅预测 0 类具有 99.9% 的准确度也就不足为奇了。您实际上有多少类? 您是否查看过错误预测的数据点?也许他们之间有联系?也许他们被贴错标签了。 我有 1,2,3 三个班。类型 1 有 1578 个样本,类型 2 有 1231 个,类型 3 有 714 个样本。训练 - (类型 1)精度 100% 召回率 99%,(类型 2)精度 98% 召回率 100%,(类型 3)精度 98% 召回率 97%。验证 - (类型 1)精度 100% 召回率 99%,(类型 2)精度 97% 召回率 100%,(类型 3)精度 95% 召回率 93%。测试 - (类型 1)精度 100% 召回率 97%,(类型 2)精度 99% 召回率 100%,(类型 3)精度 94% 召回率 99%。 【参考方案1】:免责声明:到目前为止,我还没有使用 createML。正如我 从您通过以下方式提供训练数据的问题中了解 然后按文件夹结构和训练和评估 一个按钮。如果我做了一些错误的假设,请纠正我。
很高兴知道您正在使用哪种模型/架构以及您的训练样本是什么样的。
在我看来,您的问题听起来像是这些预测不佳的样本在您的整体数据集中可能没有得到充分代表。您可以在这里尝试一些技巧:
-
只需复制(在您的训练样本文件夹中复制粘贴)这些样本以用于您的训练过程,以便将这些特定样本的错误反馈加倍。
更复杂的方法是对这些样本应用数据增强策略,然后将增强后的样本添加到您的训练数据集中。
根据您的示例类型,有可用的 Python 增强包,使用起来非常简单直接。
【讨论】:
你的假设是正确的。我有两个文件夹,一个是数据,其中三个文件夹标记为一二和三。在这些文件夹中是 CSV 文件,其中包含我收集的数据集,CSV 文件包含加速度计和陀螺仪数据点。第二个文件夹正在测试我数据集的 20% 的数据,并且还有 3 个文件夹,一个两个和三个,每个文件夹包含 csv 文件。 CSVFileEample 谷歌搜索的数据增强似乎是正确的,但是如何在 CSV 文件上进行呢? 总体而言,我似乎应该添加一个名为 4 的新分类类型文件夹,并将所有这些我不想要的分类作为 1、2 或 3 放在那里,然后数据将其扩充,使 20 变为 700? 如果您现在有四个类,是的,您应该添加第四个文件夹。不过,从 20 个样本增加到 700 个样本可能还有很长的路要走。 回答数据增强问题。一种方法是将 csv 文件的条目加载到一个 numpy 数组中,然后从那里在您的条目上添加一些增强(噪声、移位等),最后再次保存。请注意并注意不要干扰您的数据,使其超出您的实际数据分布范围。 是的,抱歉周末去了,最后一件事,当你说噪音时,这只是意味着随机添加或减去小数字吗?以上是关于机器学习模型错误预测的主要内容,如果未能解决你的问题,请参考以下文章
我正在研究一个机器学习模型来预测促销,这个块引发了一个错误,即“TypeError: None is not an estimator instance”。