Class_weight 用于 Python 中的 SVM 分类器
Class_weight for SVM classifier in Python
我有一组参数可以使用 GridSearchCV 为 svm.SVC 分类器选择最佳参数:
X=dataset.ix[:, dataset.columns != 'class']
Y=dataset['class']
X_train, X_test, Y_train, Y_test = cross_validation.train_test_split(X, Y, test_size=0.5)
clf=svm.SVC()
params=
{'kernel':['linear', 'rbf', 'poly', 'sigmoid'],
'C':[1, 5, 10],
'degree':[2,3],
'gamma':[0.025, 1.0, 1.25, 1.5, 1.75, 2.0],
'coef0':[2, 5, 9],
'class_weight': [{1:10}, 'balanced']}
searcher = GridSearchCV(clf, params, cv=9, n_jobs=-1, scoring=f1)
searcher.fit(X_train, Y_train)
我收到错误:ValueError: class_weight must be dict, 'auto', or None, got: 'balanced'
为什么我有它,如果在 svm 参数的说明中有 'balanced'
,而不是 'auto'
?
'balanced'
应该像您在第 51 行或第 74 行中看到的那样工作 https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/class_weight.py
执行sklearn.__version__
检查你是什么版本运行。
我有一组参数可以使用 GridSearchCV 为 svm.SVC 分类器选择最佳参数:
X=dataset.ix[:, dataset.columns != 'class']
Y=dataset['class']
X_train, X_test, Y_train, Y_test = cross_validation.train_test_split(X, Y, test_size=0.5)
clf=svm.SVC()
params=
{'kernel':['linear', 'rbf', 'poly', 'sigmoid'],
'C':[1, 5, 10],
'degree':[2,3],
'gamma':[0.025, 1.0, 1.25, 1.5, 1.75, 2.0],
'coef0':[2, 5, 9],
'class_weight': [{1:10}, 'balanced']}
searcher = GridSearchCV(clf, params, cv=9, n_jobs=-1, scoring=f1)
searcher.fit(X_train, Y_train)
我收到错误:ValueError: class_weight must be dict, 'auto', or None, got: 'balanced'
为什么我有它,如果在 svm 参数的说明中有 'balanced'
,而不是 'auto'
?
'balanced'
应该像您在第 51 行或第 74 行中看到的那样工作 https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/class_weight.py
执行sklearn.__version__
检查你是什么版本运行。