任何人都可以帮忙吗! 我尝试打印混淆矩阵,但无法获取第 2 行中的值。我无法为训练的 KNN 模型打印第 2 行中的任何内容。
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
def plot_confusion_matrix(y_test, y_pred):
cm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm, annot=True, fmt="d", cmap="Blues")
plt.xlabel("Predicted")
plt.ylabel("Actual")
plt.title("Confusion Matrix")
plt.xticks([0, 1], ["Edible", "Poisonous"])
plt.yticks([0, 1], ["Edible", "Poisonous"])
plt.show()
target_names = ["Edible", "Poisonous"]
knn_classifier = KNeighborsClassifier(n_neighbors=5)
knn_classifier.fit(X_train, y_train)
y_pred = knn_classifier.predict(X_test)
print(classification_report(y_test, y_pred, target_names=target_names))
conf_matrix = confusion_matrix(y_test, y_pred)
plt.figure(figsize=(8, 6))
sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues', xticklabels=target_names, yticklabels=target_names)
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.title('Confusion Matrix')
plt.show()
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)```
您似乎没有导入用于 Seaborn 可视化的 sns 模块。确保在脚本开头导入它。
在导入语句之后添加
import seaborn
作为 sns。这应该可以解决无法在 KNN 模型的第 2 行中打印任何内容的问题。