对于具有稀疏SVM的CV实例,很少有明显的预测概率

时间:2014-06-09 21:33:17

标签: scikit-learn

我在使用稀疏SVM的预测概率时遇到了问题,其中许多预测对我的测试实例来说都是相同的。这些概率是在交叉验证期间产生的,当我绘制折叠的ROC曲线时,结果看起来很奇怪,因为图表上有一些聚类点。这是我的交叉验证代码,我基于scikit网站上的示例:

skf = StratifiedKFold(y, n_folds=numfolds)

for train_index, test_index in skf:
        #split the training and testing sets
        X_train, X_test = X_scaled[train_index], X_scaled[test_index]
        y_train, y_test = y[train_index], y[test_index]

        #train on the subset for this fold
        print 'Training on fold ' + str(fold)
        classifier = svm.SVC(C=C_val, kernel='rbf', gamma=gamma_val, probability=True)
        probas_ = classifier.fit(X_train, y_train).predict_proba(X_test)

        #Compute ROC curve and area the curve
        fpr, tpr, thresholds = roc_curve(y_test, probas_[:, 1])
        mean_tpr += interp(mean_fpr, fpr, tpr)
        mean_tpr[0] = 0.0
        roc_auc = auc(fpr, tpr)

我只想弄清楚这里是否有一些我显然缺少的东西,因为我使用了与libsvm相同的训练集和SVM参数,并获得了更好的结果。当我使用libsvm并打印出来自超平面的CV测试实例的距离然后绘制了ROC时,它的出现更像我的预期,并且更好的AUC。

0 个答案:

没有答案