首页 > 解决方案 > 随机森林火车/测试意义

问题描述

我有以下内容:

rf = RandomForestClassifier(n_estimators=500, criterion='entropy', random_state=42)
rf.fit(X_train, y_train)

由此,我得到:

由于我们没有设置max_depth,因此这些树似乎对训练数据过度拟合。

我的问题是:这告诉我们关于训练数据的什么信息?它具有合理的准确性这一事实是否意味着测试数据与训练数据非常相似,这是我们获得如此准确性的唯一原因?

标签: machine-learningscikit-learn

解决方案


由于您没有指定树的 max_depth,它会一直增长,直到您拥有所有纯节点。因此,在训练集上过度拟合和纠正/预期具有 100%(或者如果节点的最小样本数不太大,则相当高)的准确性是很自然的。这个事实对训练集不是很有洞察力。

您在测试集上具有“如此好的”准确性这一事实确实可以指出训练/测试集分布的相似性(如果它们来自同一现象,则可以预期这一点)并且树具有一定程度的泛化性。

作为一般规则,我会说从单个结果推断结论以及训练集过度拟合时是错误的。此外,考虑到 0.69 的准确度,“良好”的准确度与手头的问题有关。在许多应用程序中,训练集和测试集之间 30% 的差异可能是一个巨大的差距。

为了更好地理解您的问题和更可靠的结果,最好使用交叉验证方法和随机森林。


推荐阅读