Machine learning 分类会产生奇怪的结果

Machine learning 分类会产生奇怪的结果,machine-learning,weka,random-forest,Machine Learning,Weka,Random Forest,我有一个分类问题。我有一组生理数据(脉搏、皮肤阻力等4个特征),来自19人的实验。在实验中,他们必须做一系列影响他们的事情。这就是为什么在实验的每个阶段,数据被分成10类。现在我有两个数据集:一个包含所有数据集(从第一个人开始,到最后一个人结束),另一个分为一个包含17个人的训练集和一个包含2个人的测试集。现在我使用Wekas Random Forest对数据进行分类,令人惊讶的是,在使用第一个数据集的10倍交叉验证中,我得到了几乎完美的结果(这对我来说很奇怪,我的意思是有10个类,只有4个功能

我有一个分类问题。我有一组生理数据(脉搏、皮肤阻力等4个特征),来自19人的实验。在实验中,他们必须做一系列影响他们的事情。这就是为什么在实验的每个阶段,数据被分成10类。现在我有两个数据集:一个包含所有数据集(从第一个人开始,到最后一个人结束),另一个分为一个包含17个人的训练集和一个包含2个人的测试集。现在我使用Wekas Random Forest对数据进行分类,令人惊讶的是,在使用第一个数据集的10倍交叉验证中,我得到了几乎完美的结果(这对我来说很奇怪,我的意思是有10个类,只有4个功能?),但当我使用单独的训练集和测试集时,我得到了非常糟糕的结果。我还试着用另外两个人来划分数据集,结果同样糟糕。问题是:我遗漏了什么?

这是一个高方差问题,意味着您的分类器能够完美地拟合训练数据,但不能很好地概括。阅读关于偏差\方差权衡的文章,并思考改进泛化的方法(可能切换到另一个泛化更好的分类器,或者通过减少随机林中的树数量,等等)

也可能是因为您可用于培训的数据太少。正因为如此,您的分类器能够完美地适应训练数据(因为有少量的示例可以很容易地相互区分),但绝对不能概括,因为您没有提供足够的数据来对问题空间执行任何合理的采样


只有19个人支持第二个假设——19条记录甚至不足以支持ML算法。

谢谢你的回答,这也是我的猜测。但我仍然不知道它如何在交叉验证和百分比分割(80%用于培训,20%用于测试)中表现良好。如果不能概括,它的表现难道不应该很差吗?我不确定weka如何表现10倍CV。也许它只是尝试使用每个折叠(微调每个折叠上的超参数)尽可能好地拟合分类器,然后在测试集上测量最终性能。不幸的是,我从未使用过weka(我更喜欢其他工具),所以我不能在这里发表评论。