machine-learning - sklearn 交叉有效/交叉预测
问题描述
我知道cross_val_predict / cross_val训练 n 个折叠模型,然后将它们聚合以产生最终预测。这是在训练阶段完成的。现在,我想使用拟合模型来预测测试数据。我可以使用 for 循环来收集对测试数据的预测并聚合它们,但首先我想问一下是否有内置的 sklearn 方法?
from sklearn.model_selection import cross_val_predict, train_test_split
diabetes = datasets.load_diabetes()
X = diabetes.data[:150]
y = diabetes.target[:150]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
lasso = linear_model.Lasso()
y_train_hat = cross_val_predict(lasso, X_train, y_train, cv=3)
y_test_hat = do_somthing(lasso, X_test)```
Thanks
解决方案
您的 3 个模型cross_val_predict
未保存在任何地方,因此您无法使用它们进行预测。您可以使用cross_validate
. return_estimator=True
您仍然会留下三个模型,您必须手动使用它们来进行和汇总预测。(原则上,您可以将这些模型放入一个集成模型VotingClassifier
中,但至少目前没有prefit
理由阻止重新调整您的估算器。Issue 7382中有一些讨论和那里的链接。)
推荐阅读
- coq - coq中的多态相等
- java - 未使用的导入没有警告
- macos - 如何配置 RoundCubeMail 以便我可以登录
- sql - Postgres 11.7 中 JOIN 的误导性计数为 1
- intellij-idea - IntelliJ 错误:找不到符号 @javax.annotation.Generated
- r - 使用 gganimate 在 R 中单击时移动图像
- drools - Drools 规则执行在更新规则后第一次延迟
- python - 如何使用节点 js 或 python 将带有转义字符串的 json 解析为更小的 json
- swift - 如何将 firebase 函数提取到 Swift 中的对象?
- angular - 使用锚链接提交角度触发器表单