要构建基于朴素贝叶斯的分类器并对比分析随机森林、KNN和朴素贝叶斯的各个矩阵图,您可以使用sklearn库中的相关模块。下面是一个示例代码:
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import confusion_matrix, accuracy_score
import matplotlib.pyplot as plt
# 构建朴素贝叶斯分类器并训练模型
naive_bayes = GaussianNB()
naive_bayes.fit(X_train, y_train)
y_pred_nb = naive_bayes.predict(X_test)
# 构建随机森林分类器并训练模型
random_forest = RandomForestClassifier()
random_forest.fit(X_train, y_train)
y_pred_rf = random_forest.predict(X_test)
# 构建KNN分类器并训练模型
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
y_pred_knn = knn.predict(X_test)
# 计算混淆矩阵和准确率(Accuracy)
cm_nb = confusion_matrix(y_test, y_pred_nb)
accuracy_nb = accuracy_score(y_test, y_pred_nb)
cm_rf = confusion_matrix(y_test, y_pred_rf)
accuracy_rf = accuracy_score(y_test, y_pred_rf)
cm_knn = confusion_matrix(y_test, y_pred_knn)
accuracy_knn = accuracy_score(y_test, y_pred_knn)
# 打印准确率信息
print("Naive Bayes Accuracy:", accuracy_nb)
print("Random Forest Accuracy:", accuracy_rf)
print("KNN Accuracy:", accuracy_knn)
# 绘制混淆矩阵图
plt.figure(figsize=(15, 5))
plt.subplot(131)
plt.imshow(cm_nb, cmap="Blues")
plt.title("Naive Bayes Confusion Matrix")
plt.colorbar()
plt.xlabel("Predicted Labels")
plt.ylabel("True Labels")
plt.subplot(132)
plt.imshow(cm_rf, cmap="Blues")
plt.title("Random Forest Confusion Matrix")
plt.colorbar()
plt.xlabel("Predicted Labels")
plt.ylabel("True Labels")
plt.subplot(133)
plt.imshow(cm_knn, cmap="Blues")
plt.title("KNN Confusion Matrix")
plt.colorbar()
plt.xlabel("Predicted Labels")
plt.ylabel("True Labels")
plt.tight_layout()
plt.show()
这段代码会构建朴素贝叶斯分类器、随机森林分类器和KNN分类器,并计算它们在测试集上的准确率(Accuracy)。然后,使用Matplotlib库绘制每个分类器的混淆矩阵图。
通过运行这段代码,您可以对比分析朴素贝叶斯、随机森林和KNN的分类效果,并观察它们各自的混淆矩阵图。
希望这能帮助到您!
内容由零声教学AI助手提供,问题来源于学员提问




