簡體   English   中英

TypeError:__init __()獲得了意外的關鍵字參數'shuffle'

[英]TypeError: __init__() got an unexpected keyword argument 'shuffle'

在python 2.6.6中運行代碼時遇到此錯誤。 在Python 3.4.3中運行時沒有問題

usr/lib64/python2.6/site-packages/sklearn/feature_selection/univariate_selection.py:319: UserWarning: Duplicate scores. Result may depend on feature ordering.There are probably duplicate features, or you used a classification score for a regression task.
      warn("Duplicate scores. Result may depend on feature ordering."
    Traceback (most recent call last):
      File "classification.py", line 31, in <module>
        main()
      File "classification.py", line 15, in main
        tm.optimaltrain(conf)
      File "/axp/gabm/npscnnct/dev/getThemes/textminer/textminer/classify.py", line 121, in optimaltrain
        score = self.cv(X,y,model)
      File "/axp/gabm/npscnnct/dev/getThemes/textminer/textminer/classify.py", line 140, in cv
        skf = cross_validation.StratifiedKFold(y, n_folds=self.cv_folds, shuffle=True)
    TypeError: __init__() got an unexpected keyword argument 'shuffle'

碼:

  def cv(self, X, y, model):
    y_true = []
    y_pred = []
    skf = cross_validation.StratifiedKFold(y, n_folds=self.cv_folds, shuffle=True)
    for train_index, test_index in skf:
      X_train, X_test = X[train_index], X[test_index]
      y_train, y_test = y[train_index], y[test_index]
      model.fit(X_train, y_train)
      y_pred += list(model.predict(X_test))
      y_true += list(y_test)

但是,當我從代碼中刪除Shuffle=True時,它的運行正常。 我正在使用的模塊是scipy 0.11.0,nltk 2.0.1,sklearn 0.14.1

請指教。 謝謝

這是您的sklearn版本( 0.14 )的sklearnhttps : //github.com/scikit-learn/scikit-learn/blob/0.14.X/sklearn/cross_validation.py#L391

我已經鏈接到StratifiedKFold init的實際行-這表明沒有shuffle關鍵字參數。

升級到v 0.15 ,它確實具有shuffle (如此處所示: https : //github.com/scikit-learn/scikit-learn/blob/0.15.X/sklearn/cross_validation.py#L399 )。

我將假設您在Py3上的sklearn版本為0.15

在sklearn 0.14中, cross_validation.StratifiedKFold()沒有關鍵字參數shuffle 顯然,它只是在以后的版本中添加(實際上是0.15)。

您可以在分層之前更新sklearn或自己隨機調整輸入(例如,使用random.shuffle() )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM