Sklearn.PCA-意外的关键字参数' random_state'

时间:2017-02-11 11:25:08

标签: python scikit-learn pca spyder

def doPCA(data, dimensions=2):
from sklearn.decomposition import PCA
model = PCA(n_components=dimensions, svd_solver='randomized', random_state=7)
model.fit(data)
return model
  

文件" /home/dogus/Downloads/DAT210x-master/Module5/assignment4.py",   第221行       display_pca = doPCA(T)

     

文件" /home/dogus/Downloads/DAT210x-master/Module5/assignment4.py",   第56行,在doPCA中       model = PCA(n_components = dimensions,svd_solver =' randomized',random_state = None)

     

TypeError: init ()得到了一个意外的关键字参数   ' random_state'

  • 我在Ubuntu中使用Spyder和python2.7。
  • 我用conda安装了sklearn,我也通过“pip install'”安装了它。
  • 我尝试了random_state = None,但给了我同样的错误。
  • 然后我通过终端运行它,它没有任何错误。

编辑:

  • Scikit-learn(1.18.1),spyder,scipy,numpy,ipython通过anaconda更新。
  • 然后我重新启动Spyder并尝试运行代码但是给了我 同样的错误。
  • 我通过IPython和Python控制台运行代码。

Spyder造成的问题?我该如何解决?

1 个答案:

答案 0 :(得分:2)

您可能正在使用旧版sklearn。 docs表示在版本0.18.0中添加了random_state变量。尝试更新sklearn。

为了进行更新,请查看这些问题

根据您的评论,只是为了确保问题不是scikit-learn版本,请尝试以下

def doPCA(data, dimensions=2): 
    from sklearn.decomposition import PCA
    import sklearn
    print sklearn.__version__
    model = PCA(n_components=dimensions, svd_solver='randomized', random_state=7)
    model.fit(data)
    return model

这将仅打印正在使用的sklearn版本。正如你所说,你也用pip安装了sklearn,你可能会有相互矛盾的版本。