首页 > 解决方案 > 使用 GridSearchCV 进行 NLP 缺少位置参数 Self

问题描述

我正在研究一个 NLP 问题。我一直在测试各种模型,并且过程运行良好。

from sklearn.linear_model import SGDClassifier
classifier = SGDClassifier().fit(X_train_tfidf, y_train)
y_predicted_tfidf = classifier.predict(X_test_tfidf)
from sklearn.metrics import precision_score
precision = precision_score(y_test, y_predicted_tfidf, pos_label=None,average='weighted')
print(precision)
>>> 0.79708294305

现在我正在尝试使用网格搜索来查找调整参数并遇到错误。

from sklearn.model_selection import GridSearchCV
parameters = {'alpha': [0.00001, 0.0001, 0.001, 0.001, 0.01] }
gs_classifier = GridSearchCV(SGDClassifier, parameters, n_jobs=-1)
gs_classifier = gs_classifier.fit(X_train_tfidf, y_train)

这导致以下输出:

TypeError                                 Traceback (most recent call last)
<ipython-input-25-95b85f78662f> in <module>()
      1 gs_classifier = GridSearchCV(SGDClassifier, parameters, n_jobs=-1)
----> 2 gs_classifier = gs_classifier.fit(X_train_tfidf, y_train)

anaconda/lib/python3.6/site-packages/sklearn/model_selection/_search.py in fit(self, X, y, groups)
    943             train/test set.
    944         """
--> 945         return self._fit(X, y, groups,                                      
...
/anaconda/lib/python3.6/site-packages/sklearn/base.py in clone(estimator, safe)
     65                             % (repr(estimator), type(estimator)))
     66     klass = estimator.__class__
---> 67     new_object_params = estimator.get_params(deep=False)
     68     for name, param in six.iteritems(new_object_params):
     69         new_object_params[name] = clone(param, safe=False)

TypeError: get_params() missing 1 required positional argument: 'self'

我尝试了各种参数组合,都导致相同的错误。对于这个例子,我保持简单,只是使用了一系列 alpha 值。

标签: python-3.xpandasscikit-learnnlpdata-science

解决方案


推荐阅读