密钥错误: 'key of type tuple not found and not a MultiIndex'



我想绘制决策树分类器的ROC曲线。我的代码引发key of type tuple not found and not a MultiIndex错误。

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import roc_curve, auc
from sklearn.dummy import DummyClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
# Load the Fake news dataset
df_fake = pd.read_csv("C:/Users/User/Downloads/Fake.csv")
# Load the True news dataset
df_true = pd.read_csv("C:/Users/User/Downloads/True.csv")
# Set fake as 1 and true as 0
df_true["class"] = 0
df_fake["class"] = 1
# Concatenate true and fake datasets
df = pd.concat([df_fake, df_true])
# Sanity check
print(f'N rows={len(df)}, M columns={len(df.columns)}')
df.head()

Dataframe

df.head()
<表类>标题文本主题日期类0特朗普发尴尬贺岁信…川普就是不希望所有美国人…新闻12月31日,2017年11醉醺醺吹牛的特朗普幕僚开始说俄语…众议院情报委员会主席努…新闻12月31日,2017年12警长大卫克拉克成为网络笑话…上周五,据透露,前密尔沃基…新闻12月31日,2017年13特朗普竟然有奥巴马的名字…在圣诞节那天,唐纳德·特朗普宣布…新闻12月31日,2017年14教皇方济各怒斥特朗普教皇方济各用他一年一度的圣诞节致辞…新闻12月31日,2017年1

我们可以像这样重写plot_roc函数(我使用问题中提供的玩具数据集进行了尝试):

from sklearn import metrics
from matplotlib import pyplot as plt

def plot_roc(y_test, y_score):
fpr = dict()
tpr = dict()
roc_auc = dict()

# Compute micro-average ROC curve and ROC area
fpr["micro"], tpr["micro"], _ = metrics.roc_curve(y_test.ravel(), y_score.ravel())
roc_auc["micro"] = metrics.auc(fpr["micro"], tpr["micro"])
plt.figure()
lw = 2
plt.plot(fpr["micro"], tpr["micro"], color='darkorange',
lw=lw, label='ROC curve (area = %0.2f)' % roc_auc["micro"])
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()

我们这样称呼它:

plot_roc(y_test, dt_gini_score)

得到期望的图。

相关内容

  • 没有找到相关文章