我有一个练习,我想知道我是否做对了。
练习: 考虑数据集并训练模型 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
答案 0 :(得分:0)
评分函数的约定是 cross_val_score
是较高的返回值比较低的返回值更好。因此,MAE 等指标被否定以遵循此约定。
如果您想分析模型的 mean_absolute_error
,因此可以使用 np.absolute()
去除负号并将结果视为 MAE 值。