10.13

实验二:逻辑回归算法实现与测试

一、实验目的

深入理解对数几率回归(即逻辑回归的)的算法原理,能够使用 Python 语言实现对数 几率回归的训练与测试,并且使用五折交叉验证算法进行模型训练与评估。

 

二、实验内容

(1)从 scikit-learn 库中加载 iris 数据集,使用留出法留出 1/3 的样本作为测试集(注 意同分布取样); (2)使用训练集训练对数几率回归(逻辑回归)分类算法; (3)使用五折交叉验证对模型性能(准确度、精度、召回率和 F1 值)进行评估和选 择; (4)使用测试集,测试模型的性能,对测试结果进行分析,完成实验报告中实验二的 部分。

 

 

三、算法步骤、代码、及结果

   1. 算法伪代码

算法名称:基于逻辑回归的鸢尾花数据集分类及性能评估

 

输入:鸢尾花数据集(包含特征数据和对应的类别标签)

 

步骤



  1. 加载数据集
  • o 从 sklearn 库中加载鸢尾花数据集,将特征数据赋值给变量 X,类别标签赋值给变量 y。
  1. 划分数据集
  • o 使用留出法,按照测试集占总样本的 1/3 比例,将数据集划分为训练集(X_train、y_train)和测试集(X_test、y_test),设置随机种子为 42 确保划分的可重复性。
  1. 创建模型实例
  • o 创建逻辑回归模型实例 logreg,设置最大迭代次数为 200 次。
  1. 训练模型
  • o 使用训练集数据(X_train、y_train)对逻辑回归模型 logreg 进行训练。
  1. 训练集预测及性能评估
  • o 用训练好的模型对训练集进行预测,得到预测结果 y_train_pred。
  • o 打印训练集的分类性能报告,包含精确率、召回率、F1 值等指标,格式参考 classification_report 函数输出。
  • o 计算并打印训练集的准确率,通过 accuracy_score 函数计算 y_train 与 y_train_pred 的准确率。
  1. 测试集预测及性能评估
  • 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%),这表明模型在未见数据(测试集)上的表现非常好。

五、心得体会

通过实现与测试逻辑回归算法,我对其原理有了更深理解,从数据预处理到核心代码编写,再到模型训练优化,收获颇多。测试环节里,合理划分数据集很关键,它检验模型性能。这一过程让我深知实践出真知,也提升了自身的编程与调优能力

 

posted @ 2025-01-02 15:33  jais  阅读(53)  评论(0)    收藏  举报