SKLearn:TypeError:__ init __()得到了一个意外的关键字参数n_splits

时间:2017-07-12 15:49:25

标签: python scikit-learn

我正在尝试使用SKLearn(版本0.18.1),如下所示:

from sklearn.model_selection import KFold
kfold = KFold(n_splits=5, random_state=100)

但我得到了这个奇怪的错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-b8dd4f5596be> in <module>()
----> 1 kfold = KFold(k=5, random_state=100)
      2 results = cross_val_score(estimator, X, Y, cv=kfold)
      3 print("Results: %.2f (%.2f) MSE" % (results.mean(), results.std()))

TypeError: __init__() got an unexpected keyword argument 'k'

我在这里查阅了文档:

http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.KFold.html

n_splits看起来像我应该能够传递的参数......

知道这里发生了什么/如何解决?

谢谢!

3 个答案:

答案 0 :(得分:4)

打开终端(cmd)并在尝试导入sklearn之前尝试这些。

pip install -U scikit-learn

或者如果你安装了anaconda

conda install scikit-learn

conda update conda 
conda update scikit-learn

还要确保你有n and和scipy:

pip install numpy 
pip install scipy

安装scipy后重启python shell!

答案 1 :(得分:1)

您的Scikit-Learn版本存在问题,请尝试检查并查找正确的文档(here):

import sklearn
print(sklearn.__version__)

或者使用pip install -U scikit-learn下载最新版本。

答案 2 :(得分:0)

在方括号中使用大写X。它对我有用。

from sklearn.model_selection import cross_val_score
accuracies = cross_val_score(estimator = classifier, X = x_train, y = y_train, cv = 10)