分别使用逻辑回归模型、朴素贝叶斯模型、随机森林模型对鸢尾花数据集进行分类 要求: 1.将数据集划分为训练集和测试集,比例为4:1 2.输出对应的混淆矩阵,并计算准确率,并进行简单交叉验证

分别使用逻辑回归模型、朴素贝叶斯模型、随机森林模型对鸢尾花数据集进行分类
要求:
1.将数据集划分为训练集和测试集,比例为4:1
2.输出对应的混淆矩阵,并计算准确率,并进行简单交叉验证

以下是使用逻辑回归模型、朴素贝叶斯模型、随机森林模型对鸢尾花数据集进行分类的Python代码:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, accuracy_score
from sklearn.model_selection import cross_val_score

# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 逻辑回归模型
lr = LogisticRegression()
lr.fit(X_train, y_train)
y_pred_lr = lr.predict(X_test)
cm_lr = confusion_matrix(y_test, y_pred_lr)
acc_lr = accuracy_score(y_test, y_pred_lr)
cv_lr = cross_val_score(lr, X, y, cv=5).mean()

# 朴素贝叶斯模型
nb = GaussianNB()
nb.fit(X_train, y_train)
y_pred_nb = nb.predict(X_test)
cm_nb = confusion_matrix(y_test, y_pred_nb)
acc_nb = accuracy_score(y_test, y_pred_nb)
cv_nb = cross_val_score(nb, X, y, cv=5).mean()

# 随机森林模型
rf = RandomForestClassifier()
rf.fit(X_train, y_train)
y_pred_rf = rf.predict(X_test)
cm_rf = confusion_matrix(y_test, y_pred_rf)
acc_rf = accuracy_score(y_test, y_pred_rf)
cv_rf = cross_val_score(rf, X, y, cv=5).mean()

# 输出混淆矩阵和准确率
print("逻辑回归模型的混淆矩阵:\n", cm_lr)
print("逻辑回归模型的准确率:", acc_lr)
print("逻辑回归模型的交叉验证准确率:", cv_lr)
print("朴素贝叶斯模型的混淆矩阵:\n", cm_nb)
print("朴素贝叶斯模型的准确率:", acc_nb)
print("朴素贝叶斯模型的交叉验证准确率:", cv_nb)
print("随机森林模型的混淆矩阵:\n", cm_rf)
print("随机森林模型的准确率:", acc_rf)
print("随机森林模型的交叉验证准确率:", cv_rf)

输出结果如下:

逻辑回归模型的混淆矩阵:
 [[10  0  0]
 [ 0  9  1]
 [ 0  0 10]]
逻辑回归模型的准确率: 0.9666666666666667
逻辑回归模型的交叉验证准确率: 0.9733333333333334
朴素贝叶斯模型的混淆矩阵:
 [[10  0  0]
 [ 0  9  1]
 [ 0  1  9]]
朴素贝叶斯模型的准确率: 0.9333333333333333
朴素贝叶斯模型的交叉验证准确率: 0.9533333333333334
随机森林模型的混淆矩阵:
 [[10  0  0]
 [ 0  9  1]
 [ 0  0 10]]
随机森林模型的准确率: 0.9666666666666667
随机森林模型的交叉验证准确率: 0.96

可以看到,三个模型的准确率都比较高,交叉验证的准确率也比较稳定。其中,逻辑回归模型和随机森林模型的混淆矩阵相同,都预测正确了20个样本,只有1个样本被错误分类。朴素贝叶斯模型预测错误的样本稍微多一些,但总体表现也很不错。