Scikit learn 基于scikit学习的多类支持向量机参数优化

Scikit learn 基于scikit学习的多类支持向量机参数优化,scikit-learn,svm,Scikit Learn,Svm,我试图使用scikit学习库中的SVC类来解决多类分类问题。我对一对一策略感兴趣。我想 为每对类优化超参数(C和gamma)。但我不知道 知道如何在scikit学习中做到这一点。我该怎么做? 非常感谢。如@ncfirth所述,您可以使用GridSearchCV根据您的训练集查找最佳参数。我在程序中使用了以下代码 tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-3, 1e-4, 1e-5, 1e-6, 1e-7, 1e-8],

我试图使用scikit学习库中的SVC类来解决多类分类问题。我对一对一策略感兴趣。我想 为每对类优化超参数(C和gamma)。但我不知道 知道如何在scikit学习中做到这一点。我该怎么做?
非常感谢。

如@ncfirth所述,您可以使用GridSearchCV根据您的训练集查找最佳参数。我在程序中使用了以下代码

tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-3, 1e-4, 1e-5, 1e-6, 1e-7, 1e-8],
                     'C': [1, 10, 100, 1000]}]

scores = ['precision', 'recall']

for score in scores:
    print("# Tuning hyper-parameters for %s" % score)
    print()

    clf = GridSearchCV(svm.SVC(C=1), tuned_parameters, cv=5,
                       scoring='%s_macro' % score)
    clf.fit(X, Y)

    print("Best parameters set found on development set:")
    print()
    print(clf.best_params_)

我从stackoverflow获得了上述解决方案(没有链接),它帮助我在程序中选择正确的gamma和C值。我的要求是只检查“rbf”内核。您可以包括线性、多边形和其他内核及其参数,以检查是否适合您的程序。

您是否查看了scikit学习文档?有很多不同的方法,非常感谢。从文档中,我可以尝试为所有类对只优化一对C和gamma。那么,我是否需要将训练数据划分为二进制训练集来训练二进制SVM,然后对它们进行集成?还是我误解了什么?