首页 > 其他分享 >10.13

10.13

时间:2025-01-02 15:46:53浏览次数:1  
标签:训练 pred 准确率 train 测试 test 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%),这表明模型在未见数据(测试集)上的表现非常好。

五、心得体会

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

 

标签:训练,pred,准确率,train,测试,test,10.13
From: https://www.cnblogs.com/jais/p/18647886

相关文章

  • 闲话 24.10.13
    闲话还有不到两周就csp-j/s了(祝大家别挂分(没有闲话题材了啊!今日推歌:花朵by合目feat.诗岸那些你不要的:拉格朗日……插值?给定\(n,k\)。给定一个\(n\)阶多项式\(f(x)\),以及\(k\)个无重根首一多项式\(f_1(x),\dots,f_k(x)\),第\(i\)个多项式的次数为\(m_i>......
  • 10.7 ~ 10.13
    10.7国庆最后一天。大家今天都开学,就我们不开,赢!上午模拟赛。T1看着就是那种很签的题,想了一会发现不会,先把\(O(n^4)\)的暴力写了;然后开始看\(c_{i,j}\le400\)的\(80\%\),想了个枚举颜色+两行的写法,直接开写;写完之后突然发现复杂度是\(n^3c\)的,这不和暴力一个复杂......
  • 新手教学系列——如何在MacOS 10.13.6(老系统)手动安装和配置Pyenv
    前言对于使用老旧系统(如MacOS10.13.6)的用户来说,安装和管理Python版本可能会遇到一些挑战。特别是由于Homebrew不再支持老系统,许多软件安装变得困难重重。本文将详细介绍如何在这样的环境下手动安装和配置Pyenv,让你能够顺利管理Python版本。为什么选择Pyenv?Pyenv是一个简......
  • CentOS 7.9编译安装Python-3.10.13
    目录查看CentOS版本、系统默认gcc版本、Python版本和pip版本部署Python-3.10.13测试将yum中的Python版本修改为系统原来的2.7.5版本查看CentOS版本、系统默认gcc版本、Python版本和pip版本cat/etc/redhat-releasegcc--versionpython-Vpip-V部署Python-3.10.13下载......
  • C Primer Plus 中文第6版 10.13 第11题
    题目:编写一个程序,声明一个int类型的3*5二维数组,并用合适的值初始化它。该程序打印数组中的值,然后各值翻倍(即是原来的2倍),并显示出各个元素的新值。编写一个函数显示数组的内容,再编写一个函数把各元素的翻倍。这两个函数都以函数名和行数作为参数。分析:写2个函数即可。翻倍函数,用于使......
  • 10.13
    今天我对斐波那契数列进行了深入的学习,理解了其基本概念和应用,包括斐波那契数列的定义、递归和非递归算法的实现等。通过编写代码,我实践了这些应用,对斐波那契数列有了更深刻的理解。然而,在处理复杂的斐波那契数列问题时,我意识到自己在理解和应用斐波那契数列的性质方面还有待提高......
  • 10.13日分析总结
    今天又是王老师的分级自评测试,在最近的编程随堂测试中,我没有达到老师的要求,这让我深感失望和挫败。虽然有那么一点点小超纲,但是大部分功能还是能实现的,即使如此今天随堂测验的时候还是有些许吃力,依旧出现了一些小问题。回顾分析下来,是自己的练习不够,也就是王老师所说的熟......
  • 10.13日
    今日练习乒乓球正手击打,昨天乒乓球课上教了基础框架动作,但我不太理解,感觉自己动作不到位,今天早上约了同学进行乒乓球简单击打训练。打了一阵觉着自己的反手得到了加强,已经基本可以应对球型了,可是正手依旧没入门槛。 ......
  • 2023.10.13NOIPSIM3总结
    T1卡牌赛时打了一个\(\Omicron(nm)\)的暴力,拿到30分。我们发现第\(i\)张牌对BOSS造成的伤害为$att_i*\lceil\frac{hp_i}{Att}\rceil$,那么考虑以卡牌血量值域为下标开一个桶,储存相同血量的卡牌的\(\sumatt\)。对于每一级BOSS的攻击力,我们都可以在桶上根据\(\lceil......
  • 10.13
    石家庄铁道大学2023年秋季  2021级课堂测试试卷—数据清洗课程名称: 大型数据库应用技术  任课教师:王建民  考试时间: 180 分钟 Result文件数据说明:Ip:106.39.41.166,(城市)Date:10/Nov/2016:00:01:02+0800,(日期)Day:10,(天数)Traffic:54,(流量)Type:video,(类型:视频......