sklearnアイリスデータセットの例を来て存在する場合には、mainメソッドは、ROCプロットsklearn.metricライブラリープロットするために使用
:機能の特定のパラメータは私に何のネットワーク文書を知らせることが可能とメソッドsklearn
https://scikit-learn.orgを/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve
環境:python3.7
1.インポート関連のパッケージ
from sklearn import metrics
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import roc_curve,auc
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt
決定木分類器を作成します。2.
clf = DecisionTreeClassifier(random_state=0)
アイリスデータセットを導入3. sklearnが来ます
iris=load_iris()
x=iris.data
y=iris.target
4.データは、前処理
元のデータセット分類アイリスは、ラベルの3種類を持っているので、私たちは第1〜第3の種類を削除する必要があるので、ここで、唯一のバイナリ決意ROCモデルの評価を行う際に、カテゴリー1と2が白羽
x,y=x[y!=2],y[y!=2]
5.私たちはトレーニングセットとテストセットにデータセットを分割次に、我々は、データセットのサイズを設定することができ、非常に大きなデータセットの元の体積は、0.2に設定され本明細書で使用test_sizeを定義すること
X_train, X_test, y_train, y_test = train_test_split(x,y,stratify=y,test_size=0.2)
y_score=clf.fit(X_train,y_train).predict_proba(X_test)
roc_curve法でFPR、TPR(負のサンプル・レートと陽性サンプルレート)得られた
試験試料roc_curve最初のパラメーター、2番目のパラメータは正のサンプルの確率であり、3番目の引数は正のサンプル値である
テストサンプルデータセット:など= [0,1,1,1,0,0]、確率= 0,0.5,0.3,0.2,0.1]、n個のサンプル値pos_label = 1であります
fpr,tpr,thre = roc_curve(y_test,y_score[:,1],pos_label=1)
roc_auc = metrics.auc(fpr,tpr)
#平均ROC曲线的两个参数
mean_tpr=0
mean_fpr=np.linspace(0,1,100)
図描画ROC
plt.figure(figsize=(10,10))
plt.plot(fpr,tpr,color='black',
label='ROC curve(area = %0.2f)'% roc_auc)
plt.plot([0,1],[0,1],
color='red',
linestyle='--')
plt.show()
レンダリング:
驚き、実際に三角形であります!
sklearnが、それはいくつかのノイズを追加する旨を、実際に一般的に、虹彩データセットがあまりにも平坦であるが付属しており、ので実際には、それは、ハッハッハ、ここでこの効果は発生しないだろうが、私はROCプロットを描画する場合のようにここにいます私は書いていません。通常、グラフィックスは次のように出てくるはずです。