实验二:逻辑回归算法实现与测试
一、实验目的
深入理解对数几率回归(即逻辑回归的)的算法原理,能够使用 Python 语言实现对数 几率回归的训练与测试,并且使用五折交叉验证算法进行模型训练与评估。
二、实验内容
(1)从 scikit-learn 库中加载 iris 数据集,使用留出法留出 1/3 的样本作为测试集(注 意同分布取样); (2)使用训练集训练对数几率回归(逻辑回归)分类算法; (3)使用五折交叉验证对模型性能(准确度、精度、召回率和 F1 值)进行评估和选 择; (4)使用测试集,测试模型的性能,对测试结果进行分析,完成实验报告中实验二的 部分。
三、算法步骤、代码、及结果
1. 算法伪代码
算法名称:基于逻辑回归的鸢尾花数据集分类及性能评估
输入:鸢尾花数据集(包含特征数据和对应的类别标签)
步骤:
- 加载数据集:
- o 从 sklearn 库中加载鸢尾花数据集,将特征数据赋值给变量 X,类别标签赋值给变量 y。
- 划分数据集:
- o 使用留出法,按照测试集占总样本的 1/3 比例,将数据集划分为训练集(X_train、y_train)和测试集(X_test、y_test),设置随机种子为 42 确保划分的可重复性。
- 创建模型实例:
- o 创建逻辑回归模型实例 logreg,设置最大迭代次数为 200 次。
- 训练模型:
- o 使用训练集数据(X_train、y_train)对逻辑回归模型 logreg 进行训练。
- 训练集预测及性能评估:
- o 用训练好的模型对训练集进行预测,得到预测结果 y_train_pred。
- o 打印训练集的分类性能报告,包含精确率、召回率、F1 值等指标,格式参考 classification_report 函数输出。
- o 计算并打印训练集的准确率,通过 accuracy_score 函数计算 y_train 与 y_train_pred 的准确率。
- 测试集预测及性能评估:
- o 用训练好的模型对测试集进行预测,得到预测结果 y_test_pred。
- o 打印测试集的分类性能报告,包含精确率、召回率、F1 值等指标,格式参考 classification_report 函数输出。
- o 计算并打印测试集的准确率,通过 accuracy_score 函数计算 y_test 与 y_test_pred 的准确率。
输出:
- 训练集的分类性能报告以及准确率。
- 测试集的分类性能报告以及准确率。
2. 算法主要代码
完整源代码\调用库方法(函数参数说明)
# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, accuracy_score
# 加载iris数据集
iris = load_iris()
X, y = iris.data, iris.target
# 使用留出法留出1/3的样本作为测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1/3,
random_state=42)
# 创建逻辑回归模型实例
logreg = LogisticRegression(max_iter=200)
# 训练模型
logreg.fit(X_train, y_train)
# 在训练集上进行预测
y_train_pred = logreg.predict(X_train)
# 打印训练集的性能报告
print("Training set performance:")
print(classification_report(y_train, y_train_pred))
print("Training Accuracy:", accuracy_score(y_train, y_train_pred))
# 在测试集上进行预测
y_test_pred = logreg.predict(X_test)
# 打印测试集的性能报告
print("\nTest set performance:")
print(classification_report(y_test, y_test_pred))
print("Test Accuracy:", accuracy_score(y_test, y_test_pred))
3. 训练结果截图(包括:准确率、精度(查准率)、召回率(查全率)、F1)
四、实验结果分析
1. 测试结果截图(包括:准确率、精度(查准率)、召回率(查全率)、F1)
2. 对比分析
训练集上的准确率(96%)和其他指标(精确率、召回率、F1分数)都在0.96左右,表明模型在训练数据上的表现是相对稳定和一致的。
相较之下,测试集的所有性能指标都达到了接近1.00的水平(99%),这表明模型在未见数据(测试集)上的表现非常好。
五、心得体会
通过实现与测试逻辑回归算法,我对其原理有了更深理解,从数据预处理到核心代码编写,再到模型训练优化,收获颇多。测试环节里,合理划分数据集很关键,它检验模型性能。这一过程让我深知实践出真知,也提升了自身的编程与调优能力
标签:训练,pred,准确率,train,测试,test,10.13 From: https://www.cnblogs.com/jais/p/18647886