python-3.x - 使用 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 值。
解决方案
推荐阅读
- database - 从 Google Cloud Firestore 快速获取数据
- c# - odbcjt32.dll 的真实路径是什么,System32 或 SysWOW64 检查它的参数
- prolog - 从变量中减去 8 时如何消除异常错误?
- ios - 在模拟器和本地设备上获取不同的时间格式 - Swift iOS
- python - 如何计算 SymPy 中函数比率的形式幂级数?[AttributeError: 'Mul' 对象没有属性 'truncate']
- php - Laravel hasManyThrough 什么都不返回
- python - 更新用户电子邮件 Python API
- c - 如何将自定义结构插入另一个包含初始结构的二维指针的结构中?
- css - 发布的 vue 组件没有 css (NPM)
- mule - 使用 Dataweave Mule 从电话号码中查找国家代码