首页 > 其他分享 >12.19日报

12.19日报

时间:2025-01-14 20:11:16浏览次数:1  
标签:训练 日报 pred 模型 train 测试 test 12.19

继续完成机器学习实验二,以下为部分实验内容:

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

一、实验目的

深入理解对数几率回归(即逻辑回归的)的算法原理,能够使用 Python 语言实现对数

几率回归的训练与测试,并且使用五折交叉验证算法进行模型训练与评估。

 

 

二、实验内容

1)从 scikit-learn 库中加载 iris 数据集,使用留出法留出 1/3 的样本作为测试集(注

意同分布取样);

(2)使用训练集训练对数几率回归(逻辑回归)分类算法;

(3)使用五折交叉验证对模型性能(准确度、精度、召回率和 F1 值)进行评估和选

择;

(4)使用测试集,测试模型的性能,对测试结果进行分析,完成实验报告中实验二的

部分。

 

 

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

   1. 算法伪代码

# 伪代码:逻辑回归算法实现与测试

 

# 步骤1: 数据准备

1. 加载iris数据集

2. 将数据集分为特征集(X)和目标变量(y)

3. 使用留出法将数据集分为训练集和测试集,测试集大小为1/3

 

# 步骤2: 模型训练

4. 创建逻辑回归模型实例

5. 使用训练集数据训练模型

 

# 步骤3: 交叉验证

6. 使用五折交叉验证评估模型性能

   a. 将训练集分为5个部分

   b. 对于每一折:

      i. 使用4/5的数据作为训练集,1/5的数据作为验证集

      ii. 训练模型

      iii. 在验证集上评估模型准确度

   c. 计算所有折的平均准确度和标准差

 

# 步骤4: 测试集评估

7. 使用训练好的模型在测试集上进行预测

8. 计算测试集上的准确度、精确度、召回率和F1值

   a. 精确度:预测为正类的样本中实际为正类的比例

   b. 召回率:实际为正类的样本中被正确预测为正类的比例

   c. F1值:精确度和召回率的调和平均数

 

# 步骤5: 结果输出

9. 输出交叉验证的准确度分数和平均准确度

10. 输出测试集的分类报告,包括精确度、召回率、F1值和支持度

11. 输出测试集的准确度

 

# 步骤6: 实验报告

12. 根据以上步骤和结果撰写实验报告

   a. 描述实验过程

   b. 分析实验结果

   c. 讨论模型性能和可能的改进方向

   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))

 

load_iris

  • 无参数,这个函数直接从scikit-learn的数据库中加载iris数据集。

train_test_split

  • X: 特征数据集。
  • y: 目标变量。
  • test_size: 测试集所占比例,这里设置为1/3。
  • random_state: 随机数生成器的种子,确保每次划分都是可复现的。这里设置为42。

python

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1/3, random_state=42)

LogisticRegression

  • max_iter: 最大迭代次数,用于确定优化算法(默认使用liblinear,对于多类分类使用lbfgs)在停止之前运行的迭代次数。默认值是100,这里设置为200以确保模型能够收敛。

python复制

logreg = LogisticRegression(max_iter=200)

fit

  • 无参数说明,这是模型的拟合方法,用于在给定训练数据上训练模型。

python

logreg.fit(X_train, y_train)

predict

  • 无参数说明,这是模型的预测方法,用于在给定数据上进行预测。

python

y_train_pred = logreg.predict(X_train)

y_test_pred = logreg.predict(X_test)

classification_report

  • y_true: 真实的标签。
  • y_pred: 预测的标签。
  • target_names: 类别的名称列表,用于报告中显示。默认为None,这里未使用,所以结果中类别以数字显示。

python

print(classification_report(y_train, y_train_pred))

print(classification_report(y_test, y_test_pred))

accuracy_score

  • y_true: 真实的标签。
  • y_pred: 预测的标签。

python

print("Training Accuracy:", accuracy_score(y_train, y_train_pred))

print("Test Accuracy:", accuracy_score(y_test, y_test_pred))

   3. 训练结果截图(包括:准确率、精度(查准率)、召回率(查全率)、F1)

 

 

四、实验结果分析

1. 测试结果截图(包括:准确率、精度(查准率)、召回率(查全率)、F1)

 

 

2. 对比分析

Accuracy(准确率):

 

训练集准确率为0.96,测试集准确率为1.00。测试集的准确率更高,表明模型在未见过的测试数据上表现非常好,没有错误分类任何样本。

Precision(精确度):

 

训练集的精确度略有波动,类别1的精确度稍低(0.97),而测试集的精确度在所有类别上都是完美的(1.00)。

Recall(召回率):

 

训练集的召回率在类别1上稍低(0.91),而测试集的召回率在所有类别上都是完美的(1.00)。

F1-Score:

 

训练集的F1分数在所有类别上都很高,但测试集的F1分数完美(1.00),表明测试集上模型的精确度和召回率都非常高。

 

标签:训练,日报,pred,模型,train,测试,test,12.19
From: https://www.cnblogs.com/lijianlongCode13/p/18671490

相关文章

  • 12.20日报
    完成大型数据库实验一熟悉常用的linux操作和hadoop操作,以下为今日实验内容:1.实验目的Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ub......
  • 华尔街日报无需登录查看不可查看内容
    使用第三方接口来为当前页面提供服务的脚本,简单编写,使用应用程序接口调用保存页面实现永久存储及达到阅读某街日报内容(接口无需加速)对于那些可能很快变化的网页,这个脚本会非常有用。本站保存的网页不包含脚本和动态对象,所以是安全的,不会有弹窗或其他恶意程序。油猴脚本地址:华尔......
  • 12.19
    1.实验目的  (1)通过实验掌握基本的MapReduce编程方法;(2)掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04)(2)Hadoop版本:3.1.33.实验步骤(一)编程实现文件合并和去重操作对于两个输入文件,......
  • 2024.12.19(SpringBoot知识点总结)
    5.1.7配置Mapper映射文件在src\main\resources\mapper路径下加入UserMapper.xml配置文件"select*fromuser12345675.1.8在application.properties中添加mybatis的信息#spring集成Mybatis环境#pojo别名扫描包mybatis.type-aliases-package=com.it......
  • 软工寒假日报(一)
    今天开始简单了解了python爬虫,并安装了相关依赖importrequestsfrombs4importBeautifulSoupimportpandasaspd#爬取一个页面的数据defscrape_page(url):headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,li......
  • 英伟达世界基础模型 Cosmos,教 AI 理解物理世界;阿里通义与雷鸟合作推出 AI 眼镜丨 RTE
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的......
  • 罗永浩 AI 智能助理 J1 Assistant 上线;字节开源 LatentSync ,精准控制唇形同步丨 RTE
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • a16z:小模型 + 边缘 AI 将定义 2025;音效模型 TangoFlux:3 秒钟生成 30 秒音频丨RTE 开发
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • 苹果鼠标有望加入 AI 语音控制功能;Accent Oracl :准确识别你口音的 AI 丨 RTE 开发者日
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • 通义灵码入选南方日报 2024 数字化年度标杆
    在数字化浪潮席卷全球的今天,技术创新和智能化转型成为企业发展的关键。在这样的背景下,通义灵码凭借其卓越的性能和创新能力,荣获南方日报2024数字化年度标杆大奖,成为数字化转型领域的佼佼者。通义灵码是由阿里云与通义实验室联合出品的AI研发辅助工具,它熟练掌握Java、Python、G......