我正在构建多个分类器的网格搜索,并希望使用递归特征消除与交叉验证。我从Recursive feature elimination and grid search using scikit-learn提供的代码开始。下面是我的工作代码:使用scikit-learn递归特征消除和网格搜索:DeprecationWarning
param_grid = [{'C': 0.001}, {'C': 0.01}, {'C': .1}, {'C': 1.0}, {'C': 10.0},
{'C': 100.0}, {'fit_intercept': True}, {'fit_intercept': False},
{'penalty': 'l1'}, {'penalty': 'l2'}]
estimator = LogisticRegression()
selector = RFECV(estimator, step=1, cv=5, scoring="roc_auc")
clf = grid_search.GridSearchCV(selector, {"estimator_params": param_grid},
cv=5, n_jobs=-1)
clf.fit(X,y)
print clf.best_estimator_.estimator_
print clf.best_estimator_.ranking_
print clf.best_estimator_.score(X, y)
我收到DeprecationWarning因为它出现在“estimator_params”参数在0.18被删除;我试图找出正确的语法在第4行
试图用...
param_grid = [{'C': 0.001}, {'C': 0.01}, {'C': .1}, {'C': 1.0}, {'C': 10.0},
{'C': 100.0}, {'fit_intercept': True}, {'fit_intercept': False},
{'fit_intercept': 'l1'}, {'fit_intercept': 'l2'}]
clf = grid_search.GridSearchCV(selector, param_grid,
cv=5, n_jobs=-1)
返回ValueError异常:参数值应该是一个列表。并且...
param_grid = {"penalty": ["l1","l2"],
"C": [.001,.01,.1,1,10,100],
"fit_intercept": [True, False]}
clf = grid_search.GridSearchCV(selector, param_grid,
cv=5, n_jobs=-1)
返回值ValueError:估计器RFECV的无效参数损失。使用estimator.get_params().keys()
检查可用参数列表。检查键显示“C”,“fit_intercept”和“惩罚”全部3个参数键。尝试...
param_grid = {"estimator__C": [.001,.01,.1,1,10,100],
"estimator__fit_intercept": [True, False],
"estimator__penalty": ["l1","l2"]}
clf = grid_search.GridSearchCV(selector, param_grid,
cv=5, n_jobs=-1)
永不完成执行,所以我猜这种类型的参数分配不受支持。
至于现在我设置为忽略警告,但我想用0.18的适当语法更新代码。任何援助将不胜感激!