代码之家  ›  专栏  ›  技术社区  ›  Colin Ricardo

随机森林列车/试验含义

  •  -1
  • Colin Ricardo  · 技术社区  · 6 年前

    我有以下资料:

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

    从这里,我得到:

    • 1.0训练集的准确性
    • 0.6990116801437556测试集精度

    因为我们没有设置 max_depth ,看起来这些树与训练数据的拟合度过高。

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Roberto    6 年前

    由于您没有指定树的最大深度,因此它会一直增长,直到您拥有所有纯节点。因此,在训练集上进行过度拟合和校正/期望具有100%的精度(如果节点的最小样本数不太大,则更高)是很自然的。 这个事实在训练场上不是很有见地。

    事实上,你在测试集上有一个“如此好的”准确性,这确实可以指出训练/测试集分布的相似性(如果它们是从同一现象中提取的,那么它是预期的一个点),并且树具有某种程度的泛化性。

    作为一般规则,我会说,从一个结果推断结论是错误的,当训练集是过度适合。此外,考虑到0.69的精度,“良好”的精度是相对于手头的问题。在许多应用中,训练集和测试集之间30%的差异可能是一个巨大的差距。

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

    推荐文章