2016-07-04 7 views
2

私はroc曲線と対応するaucを表示するチュートリアルに従った。私はggplotライブラリを一度も使用していないので、どこにエラーがあるのか​​理解できません。ここでは以下のコード:Python、Roc曲線とggplot?

from sklearn import metrics 
    import pandas as pd 
    from ggplot import * 

    preds = clf.predict_proba(Xtest)[:,1] 
    fpr, tpr, _ = metrics.roc_curve(ytest, preds) 

    df = pd.DataFrame(dict(fpr=fpr, tpr=tpr)) 
    ggplot(df, aes(x='fpr', y='tpr')) + geom_line() + geom_abline(linetype='dashed') 

これはエラーです:

slope needed for <ggplot.geoms.geom_abline.geom_abline object at 0x7fae7e7f8d90> 

私はこの問題を解決できますか?

+0

本当にggplotライブラリを使用する必要がありますか? matplotlibの例については、http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc_crossval.htmlまたはhttp://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.htmlを参照してください。 – dukebody

答えて

0
ggplot(df, aes(x='fpr', y='tpr',ymin=0, ymax='tpr'))+ \ 
geom_area(alpha=0.2)+\ 
geom_line(x,y,aes(y='tpr'))+\ 
ggtitle("ROC Curve w/ AUC=%s" % str(auc)) 
import matplotlib.pyplot as plt 
plt.plot(x,y,'--',color='grey') 
+0

回答。それは将来の訪問者を助けるでしょう。 –

0
ggplot(df, aes(x='fpr', y='tpr'))+\ 
geom_line()+\ 
geom_abline(linetype='dashed',slope=1,intercept=0) 

エラーは、引数のスロープを追加する必要があります言っ=?それがうまくいった後には

0

これはグラウンドトゥルースラベルのセットと予測される確率を考慮してROC曲線をプロットする最も簡単な方法です。最も重要なのは、すべてのクラスのROCカーブをプロットするので、複数のきれいなカーブも得られます。コードを変更する...

import scikitplot.plotters as skplt 
import matplotlib.pyplot as plt 

preds = clf.predict_proba(Xtest) 
skplt.plot_roc_curve(ytest, preds) 
plt.show() 

実際に必要なのは、予測される確率と真のラベルです。

ここにplot_roc_curveによって生成されるサンプルカーブを示します。私はscikit-learnのサンプル数字データセットを使用したので、10のクラスがあります。各クラスに対して1つのROC曲線がプロットされていることに注意してください。

ROC Curves

免責事項:これは私が建てscikit-plotライブラリを、使用することに注意してください。

関連する問題