GridSearchCV sur LogisticRegression dans scikit-learn
Je suis en train d'optimiser la logistique, fonction de régression dans scikit-learn à l'aide d'un contre-validation de la grille paramètre de recherche, mais je n'arrive pas à le mettre en œuvre.
Il est dit que la Régression Logistique ne permet pas de mettre en œuvre un get_params() mais sur la documentation il dit qu'il fait. Comment puis-je aller sur l'optimisation de cette fonction sur mon terrain?
>>> param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000] }
>>> clf = GridSearchCV(LogisticRegression(penalty='l2'), param_grid)
>>> clf
GridSearchCV(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.
>>>
OriginalL'auteur genekogan | 2013-09-26
Vous devez vous connecter pour publier un commentaire.
Le nom de la classe
scikits.learn.linear_model.logistic.LogisticRegression
fait référence à une très ancienne version de scikit-learn. Le haut niveau nom du package est maintenantsklearn
depuis au moins 2 ou 3 versions. Il est très probable que vous avez de vieilles versions de scikit-learn installé en même temps que dans votre python path. Les désinstaller, puis réinstaller 0.14 ou version ultérieure, et essayez à nouveau.Oui,
C
est le plus important.OriginalL'auteur ogrisel
Vous pouvez aussi donner de la peine comme un paramètre avec des C. E. g. :
grid_values = {'peine': ['l1','l2'], 'C': [0.001,0.01,0.1,1,10,100,1000]}. et puis, model_lr = GridSearchCV(lr, param_grid=grid_values).
OriginalL'auteur Biswajit Ghoshal