Я следую этому учебнику , чтобы сгенерировать матрицу путаницы на основе этих данных:
from sklearn.utils.multiclass import unique_labels
twenty_train = fetch_20newsgroups(subset='train', remove=('headers', 'footers', 'quotes'), shuffle=True, random_state=42)
twenty_test = fetch_20newsgroups(subset='test', remove=('headers', 'footers', 'quotes'), shuffle=True, random_state=42)
vect = CountVectorizer()
train_vect = vect.fit_transform(twenty_train.data)
test_vect = vect.transform(twenty_test.data)
mnb_clf = MultinomialNB().fit(train_vect, twenty_train.target)
mnb_prd = mnb_clf.predict(test_vect)
plot_confusion_matrix(twenty_test.target, mnb_prd, twenty_test.target_names)
def plot_confusion_matrix(y_true, y_pred, classes)
classes = classes[unique_labels(y_true, y_pred)]
В функции plot_confusion_matrix я должен передать истинную цельтестовые данные (fifty_test.target), прогнозируемая цель тестовых данных (mnb_prd, я использую наивный байесовский классификатор) и истинные целевые имена тестовых данных (fifty_test.target).
Однако при переопределении переменных классоввернул ошибку только целочисленные скаляры. Я думаю, что уже установил переменные передачи правильно на основе учебника, так что, возможно, есть что-то, что нужно добавить. Любая помощь приветствуется. Спасибо.
STACK TRACE
Traceback (most recent call last):
File "<ipython-input-1-32abf4cde70d>", line 1, in <module>
runfile('C:/Users/Literatures/Text Mining/Exercises/text_mining_assignment.py', wdir='C:/Users/Literatures/Text Mining/Exercises')
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/Literatures/Text Mining/Exercises/text_mining_assignment.py", line 115, in <module>
plot_confusion_matrix(twenty_test.target, mnb_prd, twenty_test.target_names, cm_mnb, 'Naive Bayes Confusion matrix')
File "C:/Users/Literatures/Text Mining/Exercises/text_mining_assignment.py", line 32, in plot_confusion_matrix
classes = classes[unique_labels(y_true, y_pred)]
TypeError: only integer scalar arrays can be converted to a scalar index