已弃用confusion_matrix方法

问题描述 投票:0回答:1

我正在学习 Udemy 课程,但它的某个方面似乎尚未经过编辑以反映最近的更新。我正在尝试使用朴素贝叶斯为分类问题创建混淆矩阵,但我无法获取使用更新函数所需的材料。

数据集是关于航空公司评论的,我已将其精简为评论文本和标记的情绪(积极、消极、中立)。这是相关的代码,其中包含我在更改方法而不是参数时收到的错误。问题出在“报告”方法上。

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import confusion_matrix,ConfusionMatrixDisplay,classification_report

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=101)
tfidf = TfidfVectorizer(stop_words='english')
tfidf.fit(X_train)
X_train_tfidf = tfidf.transform(X_train)
X_test_tfidf = tfidf.transform(X_test)

nb = MultinomialNB()
nb.fit(X_train_tfidf,y_train)

def report(model):
    preds = model.predict(X_test_tfidf)
    print(classification_report(y_test,preds))
    plot_confusion_matrix(model,X_test_tfidf,y_test)

print("NB MODEL")
report(nb)

输出:

NB MODEL
              precision    recall  f1-score   support

    negative       0.66      0.99      0.79      1817
     neutral       0.79      0.15      0.26       628
    positive       0.89      0.14      0.24       483

    accuracy                           0.67      2928
   macro avg       0.78      0.43      0.43      2928
weighted avg       0.73      0.67      0.59      2928


TypeError: too many positional arguments

尝试使用新方法创建混淆矩阵,但收到错误。

machine-learning scikit-learn confusion-matrix
1个回答
0
投票
sklearn 中的

plot_confusion_matrix
已弃用并删除

但是在适当的位置添加了 sklearn

ConfusionMatrixDisplay

from matplotlib import pyplot as plt
def report(model):
    preds = model.predict(X_test_tfidf)
    cm = confusion_matrix(y_test, preds)
    print(classification_report(y_test,preds))
    cm_plot = ConfusionMatrixDisplay(confusion_matrix = cm, display_labels=model.classes_)
    cm_plot.plot()
    plt.show()

对代码的这些更改对我来说效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.