我一直在努力阅读《范德普拉斯》这本书,而现在我在这个牢房里呆了几天了:
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(len(X)))
scores
TypeError 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 scores
TypeError: LeaveOneOut() takes no arguments
import sklearn
sklearn.__version__
0.22.1'
在此先感谢您的帮助! 卡梅隆
答案 0 :(得分:0)
欢迎堆栈溢出!
错误显示LeaveOneOut() takes no arguments
,但是实例化LeaveOneOut
时将其传递给len(X)
作为参数(在LeaveOneOut(len(X))
中)。
如果将scores
行更改为下面的行,则该行应该有效:
scores = cross_val_score(model, X, y, cv=LeaveOneOut())
但是,请注意scikit-learn documentation中的警告:
注意:LeaveOneOut()等效于KFold(n_splits = n)...由于 大量测试集(与样本数量相同) 这种交叉验证方法可能会非常昂贵。对于大型数据集 人们应该偏爱KFold,ShuffleSplit或StratifiedKFold。
如果不清楚,则建议使用例如KFold的n = 5,通常比LeaveOneOut
更好。