cross_validation.cross_val_score返回什么样的分数?

时间:2016-06-08 22:24:57

标签: python scikit-learn

我在sci-kit学习文档中找不到这些信息。但根据我得到的数字,它看起来不像是平均误差。

2 个答案:

答案 0 :(得分:5)

cross_val_score调用您传入的估算工具的.score()方法,返回的内容因估算工具而异。您必须查看每个估算器的文档,以找出相应的.score()方法返回的内容。您可以使用scoring参数覆盖此默认行为。记录在案here

答案 1 :(得分:1)

通过先使用cross_val_predict计算预测值,然后使用y_test预测值来获取metrics.accuracy_score的得分,从而避免了这个问题。

# Function that runs the requested algorithm and returns the accuracy metrics
def fit_ml_algo(algo, X_train, y_train, cv):

# One Pass
model = algo.fit(X_train, y_train)
acc = round(model.score(X_train, y_train) * 100, 2)

# Cross Validation 
train_pred = model_selection.cross_val_predict(algo, 
                                              X_train, 
                                              y_train, 
                                              cv=cv, 
                                              n_jobs = -1)
# Cross-validation accuracy metric
acc_cv = round(metrics.accuracy_score(y_train, train_pred) * 100, 2)

return train_pred, acc, acc_cv