2016-06-30 9 views
1

私は1クラスのSVMのパフォーマンスを評価しようとしています。私はscikit-learnを使ってROC曲線をプロットしようとしましたが、その結果はちょっと奇妙なものでした。 ROC曲線1つのクラスのパフォーマンスを評価するSVM

plt.figure() 
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc) 
plt.plot([0, 1], [0, 1], 'k--') 
plt.xlim([0.0, 1.0]) 
plt.ylim([0.0, 1.05]) 
plt.xlabel('False Positive Rate') 
plt.ylabel('True Positive Rate') 
plt.title('ROC Curve') 
plt.legend(loc="lower right") 
plt.show() 

ROC曲線をプロット

X_train, X_test = train_test_split(compressed_dataset,test_size = 0.5,random_state = 42) 

clf = OneClassSVM(nu=0.1,kernel = "rbf", gamma =0.1) 
y_score = clf.fit(X_train).decision_function(X_test) 

pred = clf.predict(X_train) 

fpr,tpr,thresholds = roc_curve(pred,y_score) 

#は私が取得:enter image description here

は、誰かがこれで私を助けることはできますか?

答えて

1

このプロットについてbizzareとは何ですか?あなたは1組のnuとgammaを固定しました。したがってあなたのモデルは過大でも過小でもありません。移動しきい値(ROC変数)は、100%TPRにつながりません。高いガンマと非常に小さなニューを試してください(これはトレーニング誤差の上限になります)、より典型的なプロットが得られます。

関連する問題