2017-02-11 21 views
0
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", line 221, in display_pca = doPCA(T)Sklearn.PCA-неожиданное ключевое слово аргумент 'random_state'

File "/home/dogus/Downloads/DAT210x-master/Module5/assignment4.py", line 56, in doPCA model = PCA(n_components=dimensions, svd_solver='randomized', random_state=None)

TypeError: init() got an unexpected keyword argument 'random_state'

  • Я использую Spyder с python2.7 в Ubuntu.
  • Я установил sklearn с conda, я также установил его через 'pip install'.
  • Я попробовал random_state = None, но дал мне ту же ошибку.
  • Затем я запустил его через терминал и работал без ошибок.

Edit:

  • Scikit-учи (1.18.1), Spyder, SciPy, NumPy, IPython обновляется через анаконды.
  • Затем я перезапустил Spyder и попытался запустить код, но дал мне ту же ошибку.
  • Я запускал коды через консоли IPython и Python.

Проблема, вызванная Spyder? Как я могу это исправить?

ответ

2

Возможно, вы используете старую версию sklearn. docs говорят, что переменная random_state была добавлена ​​в версии 0.18.0. Попробуйте обновить 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. Как вы сказали, вы также установили sklearn с pip, у вас могут быть конфликтующие версии.

+0

scikit учиться 0.18.1 np111py27_1 Я обновил scikit учиться и Spyder через anaconda.Then я перезапущен Spyder и попытался запустить код, но дал мне тот же error.Also SciPy и NumPy до настоящего времени. –

+0

@ Sapientia вы можете проверить мое редактирование? Это может быть связано с версией. – lucianopaz

+0

Версия 0.17 Spyder говорит, хороший улов. Знаете ли вы, как я могу это исправить? Я искал его. –