cross_validation.cross_val_score返回的是什么类型的分数?

5

我在sci-kit learn文档中找不到这个信息。但根据我的数据,得分看起来不像是均方误差。

2个回答

6

cross_val_score 调用您传递的估计器的 .score() 方法,返回值取决于估计器。 您必须查看每个估计器的文档以了解相应的 .score() 方法返回的内容。 您可以使用 scoring 参数覆盖此默认行为。这在此处有文档。


如果不同的模型返回不同的分数指标,那么我们如何使用它来进行模型选择呢? - kokoma
同一族群内的所有模型将使用相同的度量标准,因此不存在不一致性。例如,如果您使用RandomForestClassifier,则.score()方法将返回平均准确率。通过cross_val_score,您可以将一个具有某些超参数的RandomForestClassifier模型与另一个具有不同超参数的模型进行比较,并选择最佳模型。 - elyase

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接