【问题标题】:Class_weight for SVM classifier in PythonPython 中 SVM 分类器的 Class_weight
【发布时间】:2017-01-31 01:41:08
【问题描述】:

我有一组参数可以使用 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'

【问题讨论】:

    标签: python machine-learning scikit-learn svm


    【解决方案1】:

    'balanced' 应该可以正常工作,如您在第 51 行或第 74 行中看到的https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/class_weight.py

    执行sklearn.__version__查看你运行的是什么版本。

    【讨论】:

      猜你喜欢
      • 2015-06-28
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 2019-10-06
      • 2018-06-27
      • 2016-07-15
      相关资源
      最近更新 更多