带有交叉验证的训练集拆分和测试集拆分的分数

时间:2021-07-06 21:14:15

标签: python machine-learning scikit-learn cross-validation

我有一个练习,我想知道我是否做对了。

练习: 考虑数据集并训练模型 Lasso,交叉验证 kfold=10。训练集拆分的 MAE,然后是测试集拆分的 MAE。

此外,在 cross_val_score 中,本例中的参数 'scoring' 返回负值,我使用 np.absolute 来获取正值。这是对的吗?

x= df.drop(columns='target', axis=1)
y= df.target

x_train, x_test, y_train, y_test= train_test_split(x, y, random_state=42)

cv = KFold(n_splits=10)

model = linear_model.Lasso(alpha=0.42)

scores_train= absolute(cross_val_score(model, x_train, y_train, cv=cv, scoring='neg_mean_absolute_error'))
scores_train

scores_test= absolute(cross_val_score(model, x_test, y_test, cv=cv, scoring='neg_mean_absolute_error'))
scores_test

1 个答案:

答案 0 :(得分:0)

评分函数的约定是 cross_val_score 是较高的返回值比较低的返回值更好。因此,MAE 等指标被否定以遵循此约定。

如果您想分析模型的 mean_absolute_error,因此可以使用 np.absolute() 去除负号并将结果视为 MAE 值。

相关问题