1、安装Scikit-plot:
pip install scikit-plot
2、绘制单分类器的ROC曲线
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
nb = GaussianNB()
nb.fit(X_train, y_train)
predicted_probas = nb.predict_proba(X_test)
# The magic happens here
import matplotlib.pyplot as plt
import scikitplot as skplt
skplt.metrics.plot_roc(y_test, predicted_probas)
plt.show()
3、绘制多分类器的ROC曲线
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_digits
from sklearn.naive_bayes import GaussianNB
import matplotlib.pyplot as plt
import scikitplot as skplt
from sklearn.ensemble import RandomForestClassifier
''classifier——1''
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
nb = GaussianNB()
nb.fit(X_train, y_train)
predicted_probas = nb.predict_proba(X_test)
a=skplt.metrics.plot_roc(y_test, predicted_probas,classes_to_plot=[],plot_micro=None)
''classifier——2''
rfc = RandomForestClassifier(random_state=42)
rfc.fit(X_train, y_train)
predicted_probas=rfc.predict_proba(X_test)
skplt.metrics.plot_roc(y_test, predicted_probas,classes_to_plot=[],plot_micro=None,ax=a)
plt.show()
2个以上分类器的ROC曲线绘制方法以此类推。