如何在sklearn中重新安排最佳分类器

时间:2014-11-20 22:40:38

标签: python scikit-learn

使用scikit-learn,我使用网格搜索适合分类器:

from sklearn.svm import SVC
param_grid = { 
    'C': [1e-2, 0.1, 1.0],
    'gamma': [1e-4, 1e-3, 1e-2],
    'class_weight': ['auto']
}

clf = SVC()
gs = grid_search.GridSearchCV(clf, param_grid, cv=3, n_jobs=12)
gs.fit(x_train, y_train)

我现在想要使用找到的最佳参数和额外参数probability=True重新训练分类器。如何使用最佳参数以及额外参数probability

重新调整分类器

3 个答案:

答案 0 :(得分:3)

您可以使用gs.best_params_获取参数,然后创建一个新的分类器

clf = SVC(probability=True, **gs.best_params_)

答案 1 :(得分:2)

您还可以将set_params方法用于SVC的实例,并在调用probability之前修改fit属性。

from sklearn import svm, grid_search

x_train = np.random.randn(10,5)
y_train = np.random.randint(0, 2, size=(10,1))

param_grid = { 
    'C': [1e-2, 0.1, 1.0],
    'gamma': [1e-4, 1e-3, 1e-2],
    'class_weight': ['auto']
}

svc1 = svm.SVC()
gs = grid_search.GridSearchCV(svc1, param_grid, cv=3, n_jobs=12)
gs_fitted = gs.fit(x_train, y_train)

svc2 = svm.SVC(probability=True)
# or manually set svc2.probability = True before ever calling svc2.fit

svc2.set_params(**gs_fitted.best_params_)
svc2.fit(x_train, y_train)

答案 2 :(得分:0)

尝试

best_estimator = grid_search.best_estimator_.set_params(probability=True)

您也可以克隆它,以确保代码的其他部分不会重复使用此估算工具。