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
File"/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=维度,svd_solver=‘随机化’,random_state=无)
TypeError:init()获得了一个意外的关键字参数"随机状态">
- 我在Ubuntu中使用Spyder和python2.7
- 我用conda安装了sklearn,我也通过"pip-install"安装了它
- 我尝试了random_state=无,但给出了相同的错误
- 然后我通过终端运行它,它运行时没有任何错误
编辑:
- Scikit学习(1.18.1),spyder,scipy,numpy,ipython通过anaconda更新
- 然后我重新启动了Spyder并试图运行代码,但给了我同样的错误
- 我通过IPython和Python控制台运行代码
Spyder引起的问题?我该怎么修?
您可能正在使用旧版本的sklearn。文档中说random_state变量是在0.18.0版本中添加的。尝试更新sklearn。
为了进行更新,请查看以下问题
-
如何在anaconda 中升级scikit学习包
-
conda更新scikit-learn(也称为scipy和numpy)
根据您的评论,为了确保问题不是scikit学习版本,请尝试以下
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,你可能会有冲突的版本。