为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 LeaveOneOut 解决 TypeError

如何使用 LeaveOneOut 解决 TypeError

猛跑小猪 2023-05-23 14:31:42
我一直在努力阅读 Vanderplass 的书,现在我已经被困在这个牢房里好几天了:from sklearn.model_selection import cross_val_scorecross_val_score(model, X, y, cv=5)from sklearn.model_selection import LeaveOneOutscores = cross_val_score(model, X, y, cv=LeaveOneOut(len(X)))scoresTypeError                                 Traceback (most recent call last)<.  ipython-input-78-029fa0c72898> in <module>  1 from sklearn.model_selection import LeaveOneOut ----> 2 scores = cross_val_score(model, X, y, cv=LeaveOneOut(len(X)))  3 scoresTypeError: LeaveOneOut() takes no argumentsimport sklearnsklearn.__version__0.22.1'在此先感谢您的帮助!卡梅伦
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

欢迎来到堆栈溢出!

错误显示LeaveOneOut() takes no arguments,但是当您实例化时,LeaveOneOut您将其len(X)作为参数传递 (in LeaveOneOut(len(X)))。

如果您将scores行更改为下面的行,它应该可以工作:

scores = cross_val_score(model, X, y, cv=LeaveOneOut())

但是,请注意scikit-learn 文档中的警告:

注意:LeaveOneOut() 等同于 KFold(n_splits=n)...由于测试集数量很多(与样本数量相同),这种交叉验证方法的成本可能非常高。对于大型数据集,应该倾向于 KFold、ShuffleSplit 或 StratifiedKFold。

如果不清楚,建议使用例如 n=5 的 KFold,这通常会比 . 更好地为您服务LeaveOneOut


查看完整回答
反对 回复 2023-05-23
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

或者,也可以使用


from sklearn.model_selection import cross_val_score

cross_val_score(model, X, y, cv=5)


from sklearn.model_selection import LeaveOneOut

scores = cross_val_score(model, X, y, cv=LeaveOneOut().split(X))

scores


查看完整回答
反对 回复 2023-05-23
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信