【问题标题】:How do I cross validate my predictions from Random Forest in python/sklearn?如何在 python/sklearn 中交叉验证随机森林的预测?
【发布时间】:2015-09-22 03:16:54
【问题描述】:

如果这是计算分类器交叉验证精度的正确方法,请告诉我?我将数据集分为用于训练数据的 xtrain 和 ytrain 以及用于测试集的 xtest 和 ytest。

构建模型:

RFC = RandomForestClassifier(n_estimators=100)

将其拟合到训练集:

RFC.fit(xtrain, ytrain)

这是我不确定的部分:

scores = cross_val_score(RFC, xtest, ytest, cv = 10, scoring='precision')

使用上面的代码,“分数”会给我在训练数据上训练的模型的精度吗?我很害怕我曾经写错了代码并且我正在将模型拟合到 xtest,因为我的测试数据的召回率和精度分数高于我无法弄清楚为什么的训练数据的分数!

【问题讨论】:

    标签: random-forest prediction cross-validation


    【解决方案1】:

    当您计算交叉验证分数时,您实际上不必自己进行模型拟合。

    进行交叉验证分数的正确(更简单)方法是像您一样创建模型

    RFC = RandomForestClassifier(n_estimators=100)
    

    然后计算分数

    scores = cross_val_score(RFC, xtrain, ytrain, cv = 10, scoring='precision')
    

    通常在机器学习/统计中,您将数据拆分为训练集和测试集(就像您所做的那样)。在此之后,训练数据用于验证模型(训练参数、交叉验证等),然后在测试集上测试最终模型。因此,您实际上不会在交叉验证中使用您的测试集,只有在您希望获得模型的最终准确性的最后阶段。

    将数据分离到训练集和测试集并对训练数据进行交叉验证的好处是,当您拥有单独的测试集时,您不会过度拟合模型参数(使用交叉验证)最后阶段。

    您可以在此处了解更多信息:cross_val_scoreCross-Validation

    【讨论】:

      猜你喜欢
      • 2018-09-03
      • 2014-04-16
      • 2015-10-16
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 2013-11-14
      • 2019-09-15
      • 2019-09-24
      相关资源
      最近更新 更多