无法使用GGPLOT绘制AUC



我有以下代码来绘制ROC曲线。

from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
from ggplot import *
import pandas as pd
X, y = make_classification(n_samples=10000,n_features=10,n_classes=2, n_informative=4)
X_train = X[:9000]
X_test = X[9000:]
y_train = y[:9000]
y_test = y[9000:]
clf = LogisticRegression()
clf.fit(X_train,y_train)
preds = clf.predict_proba(X_test)[:,1]
fpr, tpr, _ = metrics.roc_curve(y_test,preds)
df = pd.DataFrame(dict(fpr=fpr,tpr=tpr))
ggplot(df, aes(x='fpr', y='tpr')) +
      geom_line() +
      geom_abline(linetype='dashed')
auc = metrics.auc(fpr, tpr)
ggplot(df, aes(x='fpr', ymin=0, ymax='tpr')) +
      geom_area(alpha=0.2) +
      geom_line(aes(y='tpr')) +
      ggtitle("ROC Curve w/ AUC=%s" % str(auc))

但是,在第二行中,它引发了"'int'对象是不可能的"错误。任何人都可以帮助我解决这个问题。

您错过了图的y值:

ggplot(df, aes(x='fpr', y='tpr')) +
    geom_area(alpha=0.2) +
    geom_line(aes(y='tpr')) +
    ggtitle("ROC Curve w/ AUC=%s" % str(auc))

应该工作

最新更新