scikit-learn GridSearchCV 弃用警告

Posted

技术标签:

【中文标题】scikit-learn GridSearchCV 弃用警告【英文标题】:scikit-learn GridSearchCV Deprecation Warning 【发布时间】:2014-02-21 18:06:10 【问题描述】:

我正在使用 scikit-learn 0.14 的 GridSearchCV,但总是收到以下警告:

/Library/Frameworks/EPD64.framework/Versions/7.2/lib/python2.7/site-packages/sklearn/grid_search.py​​:706:弃用警告:GridSearchCV 的附加参数被忽略! params 参数将在 0.15 中删除。 弃用警告)

有人知道哪些参数被忽略了吗?

代码(x 和 y 从文件中读取):

def balanced_accuracy (ground_truth, predictions):
    f00 = 1. * ((ground_truth == 1) & (predictions == 1)).sum() / (ground_truth == 1).sum()
    f11 = 1. * ((ground_truth == 2) & (predictions == 2)).sum() / (ground_truth == 2).sum()
    return 0.5* (f00 + f11)

bc_score = make_scorer(balanced_accuracy, greater_is_better=True)

C_range = 10. ** np.arange(-3, 3)
gamma_range = 10. ** np.arange(-3, 3)
r_range = np.concatenate((np.array([0]), 10.0 ** np.arange(-1, 3)))
kernel = "poly"
deg = 2
cw = "auto"

param_grid = dict(C=C_range, coef0 = r_range, gamma=gamma_range)
ss = ShuffleSplit(len(y), 10, test_size = 1000, train_size = 1000)

grid = GridSearchCV(svm.SVC(kernel = kernel, max_iter = 1000000, degree = deg, class_weight = cw), param_grid=param_grid, cv=ss, scoring = bc_score)
grid.fit (x, y, sample_weight = sw)

提前致谢!

【问题讨论】:

【参考方案1】:

grid.fitsample_weight 参数已弃用。这在文档中以及通过查看0.14.X release branch of scikit-learn's source 都很明显。

在这种情况下,0.14 版本中也会忽略 sample_weight,因此grid.fit(x, y sample_weight=sw) 等价于grid.fit(x, y)

作为旁注,按照pep-8 编写是个好主意。

【讨论】:

以上是关于scikit-learn GridSearchCV 弃用警告的主要内容,如果未能解决你的问题,请参考以下文章

Scikit-learn 中的 GridSearchCV 输出问题

Scikit-Learn:GridSearchCV 的自定义损失函数

Scikit-learn 多输出分类器使用:GridSearchCV、Pipeline、OneVsRestClassifier、SGDClassifier

scikit-learn GridSearchCV 弃用警告

scikit-learn 中 LogisticRegression 上的 GridSearchCV

使用 GridSearchCV 调整 scikit-learn 的随机森林超参数