2017-08-24 18 views
2

ロジスティック回帰モデルのパラメータを変更して調整しようとしています。ロジスティック回帰を使用したパラメータ調整GridSearchCV

マイコード:

solver_options = ['newton-cg', 'lbfgs', 'liblinear', 'sag'] 
multi_class_options = ['ovr', 'multinomial'] 
class_weight_options = ['None', 'balanced'] 

param_grid = dict(solver = solver_options, multi_class = 
multi_class_options, class_weight = class_weight_options) 
grid = GridSearchCV(LogisticRegression, param_grid, cv=12, scoring = 
'accuracy') 
grid.fit(X5, y5) 
grid.grid_scores_ 

しかし、このエラーが出:

TypeError         Traceback (most recent call last) 
<ipython-input-84-6d812a155800> in <module>() 
    1 param_grid = dict(solver = solver_options, multi_class = 
multi_class_options, class_weight = class_weight_options) 
    2 grid = GridSearchCV(LogisticRegression, param_grid, cv=12, scoring = 
'accuracy') 
----> 3 grid.fit(X5, y5) 
     4 grid.grid_scores_ 

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\grid_search.py in 
fit(self, X, y) 
    827 
    828   """ 
--> 829   return self._fit(X, y, ParameterGrid(self.param_grid)) 
    830 
    831 

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\grid_search.py in 
_fit(self, X, y, parameter_iterable) 
559           n_candidates * len(cv))) 
560 

- > 561 base_estimator =クローン(self.estimator) 563 pre_dispatch = self.pre_dispatch

C:\ProgramData\Anaconda3\lib\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' 

ここで私が間違っていることについては?

答えて

2

あなたがGridSearchCVにクラスを直接渡すのではなく、インスタンスとして推定を初期化する必要があります。

lr = LogisticRegression()    # initialize the model 

grid = GridSearchCV(lr, param_grid, cv=12, scoring = 'accuracy',) 
grid.fit(X5, y5) 
+1

ニースとシンプルな、おかげでたくさん! –

関連する問題