0

私はマシンを傾けるのがとても新しいです。どんな助けもありがとう。画像データセットを使用した顔認識にscikit-learnを使用してROCカーブをプロットすると、エラーが発生します(fetch_olivetti_faces)

アルゴリズム(LDA、SVM)の精度とエラーレートを示すグラフをプロットしたいと思います。どちらのアルゴリズムがどちらの方が優れているかを比較してみましょう。ターミナルでPythonプログラムを実行することによって返される正確さは、良い証明とはみなされません。

混同行列を使用してプロットされたグラフは、精度とエラー率を示します。

私は、ROCを使用してグラフをプロットすることはバイナリクラシファイア()のためのものであり、LDAとSVMアルゴリズムを使用してイメージデータセットに使用することもできます。

グラフcross_val_predictをプロットして予測誤差を視覚化しました。

上記よりもうまくいくか、逃したグラフィック表示がありますか?

答えて

0

通常私はこのようなROC曲線プロット:コードの

predictions_prob = your_model.predict_proba(x_test) 
false_positive_rate, recall, thresholds = roc_curve(y_test, predictions_prob[:,1]) 
roc_auc = auc(false_positive_rate, recall) 
plt.plot(false_positive_rate, recall, 'g', label = 'AUC %s = %0.2f' % ('model name', roc_auc)) 
plt.plot([0,1], [0,1], 'r--') 
plt.legend(loc = 'lower right') 
plt.ylabel('Recall') 
plt.xlabel('Fall-out') 
plt.title('ROC Curve') 

enter image description here

+0

GThanksを。コードを実行中にエラーが発生しました。私は、エラーは、画像データの種類がバイナリのnumpy配列ではないと思う。私は現在、label_binarizeを使って画像データをバイナリに変換しようとしています。エラーは、_binary_clf_curveの行314です。raise ValueError( "データはバイナリではなく、pos_labelは指定されていません") ValueError:データはバイナリではなく、pos_labelは指定されていません ajay @ ubuntu:〜/ face_recog_LDA/ROC_Curve/roc $ – aja

+0

被写体ごとに40枚と10枚の画像データセットに対してROCカーブを描くことは可能ですか? ROC曲線はバイナリ問題にのみ使用されますか? – aja

+0

@AJAY JOYはい、主にバイナリクラシファイアに使用されますが、マルチクラスの問題に拡張できます。見てくださいhttp://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html –

関連する問題