scikit的交叉验证如何工作?

时间:2014-07-16 12:47:42

标签: python-2.7 scikit-learn random-forest cross-validation

我有以下代码段:

print '\nfitting'
rfr = RandomForestRegressor(
    n_estimators=10,
    max_features='auto',
    criterion='mse',
    max_depth=None,
)
rfr.fit(X_train, y_train)


# scores
scores = cross_val_score(
    estimator=rfr,
    X=X_test,
    y=y_test,
    verbose=1,
    cv=10,
    n_jobs=4,
)
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))

1)运行cross_val_score会对回归器进行更多培训吗?

2)我是否需要通过训练有素的回归者或新的回归者,例如estimator=RandomForestRegressor()。那么我如何测试回归量的准确性,即我必须在scikit中使用另一个函数吗?

3)我的准确率约为2%。这是MSE得分,其中较低的是更好还是实际的准确性。如果它是实际的准确度,你能解释一下吗,因为回归量如何在一个范围内准确预测是没有意义的。

1 个答案:

答案 0 :(得分:0)

  1. 实际上重新训练了估算器 k 次。
  2. 未经训练(或经过训练,但随后模型被删除,你只是在浪费时间)。
  3. 这是R² score,所以实际上不是2%而是.02; R²的上限为1,但可以是负数。回归没有明确定义准确性。 (您可以将其定义为分类,但这没有意义。)