python - 带有交叉验证的训练集拆分和测试集拆分的分数
问题描述
我有一个练习,我想知道我做的是否正确。
练习:考虑数据集并训练模型 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
解决方案
评分函数的约定cross_val_score
是较高的返回值优于较低的返回值。因此,诸如 MAE 之类的指标被否定以遵循此约定。
如果您想分析mean_absolute_error
您的模型,因此可以使用删除负号np.absolute()
并将结果视为 MAE 值。
推荐阅读
- python - 使用 Flasks app.logger 有什么好处?
- javascript - 您可以使用异步函数通过 useState 设置初始状态吗
- c# - 如何将 TestServer 输出记录到测试控制台
- firebase - 未处理的异常:[firebase_auth/invalid-verification-id] 用于创建电话身份验证凭据的验证 ID 无效
- html - 使用 Bulma 在英雄主体顶部阻止内容
- authlib - 如何通过代理发送 Authlib 请求?
- ruby-on-rails - 删除关联项目时,Rails 计数器缓存不会递减
- php - 如何连接到 PHP fsockopen?
- php - preg_match_all 获取表达式的结尾
- excel - 我想将excel与黄瓜集成。只是传递工作簿名称