Я хочу напечатать образцы из классификации, которая была помечена неправильно.
Я нашел этот код из Sklearn SVM - как получить список неверных прогнозов?
for idx, input, prediction, label in zip(enumerate(X_test), X_test, predicted, y_test):
print("No.", idx[0], 'input,',input, ', has been classified as', prediction, 'and should be', label)
Я получаю эту ошибку TypeError: объект 'numpy.int64' не является итерируемым
Мои данные состоят из текстовых данных (электронных писем) из папок, которые TFIDF преобразует в int, и есть около 250 файлов, которые были неправильно классифицированы, и я хочу перечислить их, чтобы глубже изучить неправильно классифицированные файлы.
Пожалуйста, помогите мне найти способ перечислить эти неправильные классификации.
Данные состоят из более чем 4000 электронных писем, таких как:
Email[X_test]: messageid 14149441075861143483javamailevansthyme date thu 13 dec 2001 051749 0800 pst from staylorsdecom to teblokeyenroncom subject flight mimeversion 10 contenttype textplain charsetusascii contenttransferencoding 7bit xfrom taylor sandy staylorsdecom xto teblokeyenroncom xcc xbcc xfolder teblokeymar2002lokey tebinbox xorigin lokeyt xfilename tlokey nonprivilegedpst ive made a tentative reservation on континентальный вылет в четверг 20 декабря в 17:50 остановка в кливленде без изменений и прибытие в хьюстон в 23:33 возвращение первым классом в воскресенье 30 декабря в 10:50 пересадка в кливленде и прибытие в манчестер в 17:03 как насчет того, чтобы забронировать билет, чтобы вылететь со мной Вы всегда можете отменить и вернуться, когда мне будет приятно, просто знать, что вы даже подумаете об этом, вам нужен перерыв, и я мог бы использовать компанию, я знаю, что вы любите Деб друг Тенант, и она, и вы, и то же самое для Грейси, дайте мне знать, что вы думаете, люблю Сэнди
И после преобразования с помощью TfidfVectorizer() и todense() письмо выглядит так.
X_test[пример]: [[0. 0. 0.03120722 ... 0. 0. 0. ]]
Значения представляют количество tf-idf.
тип X_test: ‹класс 'numpy.matrix'› (4519, 115674)
4519: количество писем в X_test
115674: количество функций (уникальные термины)
Электронные письма помечены как фишинговые (1) или законные (0).
#Fit motel to data
model = LogisticRegression()
model.fit(X_train, y_train)
# make predictions
expected = y_test
predicted = model.predict(X_test)
proba = model.predict_proba(X_test)
# Scores
accuracy = accuracy_score(expected, predicted)
recall = recall_score(expected, predicted, average="binary")
precision = precision_score(expected, predicted , average="binary")
f1 = f1_score(expected, predicted , average="binary")
# Confustion matrix
cm = metrics.confusion_matrix(expected, predicted)
print(cm)
Это когда я хочу перечислить неправильные классификации из X_test.