使用scikit-learn中的GridSearchCV优化LogisticRegression

我试图通过使用交叉验证的网格参数搜索来优化scikit-learn中的逻辑回归函数,但似乎无法实现它。

文档中说逻辑回归实现了get_params()方法,但实际上它并没有实现。我该如何在我的真实数据上优化这个函数呢?

>>> param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000] }>>> clf = GridSearchCV(LogisticRegression(penalty='l2'), param_grid)>>> clfGridSearchCV(cv=None,       estimator=LogisticRegression(C=1.0, intercept_scaling=1, dual=False, fit_intercept=True,          penalty='l2', tol=0.0001),       fit_params={}, iid=True, loss_func=None, n_jobs=1,       param_grid={'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]},       pre_dispatch='2*n_jobs', refit=True, score_func=None, verbose=0)>>> clf = clf.fit(gt_features, labels)Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/Library/Python/2.7/site-packages/scikit_learn-0.14_git-py2.7-macosx-10.8-x86_64.egg/sklearn/grid_search.py", line 351, in fit    base_clf = clone(self.estimator)  File "/Library/Python/2.7/site-packages/scikit_learn-0.14_git-py2.7-macosx-10.8-x86_64.egg/sklearn/base.py", line 42, in clone    % (repr(estimator), type(estimator)))TypeError: Cannot clone object 'LogisticRegression(C=1.0, intercept_scaling=1, dual=False, fit_intercept=True,          penalty='l2', tol=0.0001)' (type <class 'scikits.learn.linear_model.logistic.LogisticRegression'>): it does not seem to be a scikit-learn estimator a it does not implement a 'get_params' methods.>>> 

回答:

类名scikits.learn.linear_model.logistic.LogisticRegression指的是一个非常旧的scikit-learn版本。从至少2到3个版本以来,最顶级的包名已经改为sklearn。很可能你的Python路径中同时安装了旧版本的scikit-learn。请卸载所有旧版本,然后重新安装0.14或更高版本,再试一次。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注