首页 > 编程语言 >实验二:逻辑回归算法实现与测试

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

时间:2024-11-21 14:40:13浏览次数:1  
标签:F1 逻辑 score 准确率 算法 train 测试 test

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

 

一、实验目的

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

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

 

二、实验内容

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

意同分布取样);

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

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

择;

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

部分

 

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

   1. 算法伪代码

导入必要的库。

加载iris数据集并分为特征集X和目标集y。

将数据集分为训练集和测试集(测试集占1/3)。

创建逻辑回归模型。

使用训练集训练模型。

进行五折交叉验证并计算平均准确率。

使用模型预测测试集。

计算并打印准确率、精确率、召回率和F1分数。

打印分类报告。

 

   2. 算法主要代码

完整源代码\调用库方法(函数参数说明)

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, cross_val_score, KFold
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, classification_report

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

# 使用train_test_split函数划分数据集,test_size=1/3表示测试集占1/3
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1/3, random_state=42, stratify=y)

# 创建逻辑回归分类器实例
logreg = LogisticRegression(max_iter=200)

# 使用训练集数据训练模型
logreg.fit(X_train, y_train)

# 定义五折交叉验证
kf = KFold(n_splits=5, shuffle=True, random_state=42)

# 使用cross_val_score计算五折交叉验证的准确率
accuracies = cross_val_score(logreg, X_train, y_train, cv=kf, scoring='accuracy')
print(f'五折交叉验证的平均准确率: {np.mean(accuracies)}')

# 如果需要计算其他指标,可以手动分割数据集并计算

# 预测测试集
y_pred = logreg.predict(X_test)

# 计算各种性能指标
acc = accuracy_score(y_test, y_pred)
prec = precision_score(y_test, y_pred, average='weighted')
rec = recall_score(y_test, y_pred, average='weighted')
f1 = f1_score(y_test, y_pred, average='weighted')

print(f'Accuracy: {acc}')
print(f'Precision: {prec}')
print(f'Recall: {rec}')
print(f'F1 Score: {f1}')

# 打印详细的分类报告
print(classification_report(y_test, y_pred, target_names=iris.target_names))

 

 

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

 

 

四、实验结果分析

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

 

 

  1. 对比分析

准确率对比:

训练集上的五折交叉验证平均准确率为 0.95。

测试集上的准确率为 0.94。

分析:训练集和测试集的准确率非常接近,这表明模型在训练集和测试集上的表现较为一致,没有明显的过拟合现象。

精确率对比:

测试集上的加权平均精确率为 0.9409722222222223。

分析:精确率较高,说明模型在预测正类时的正确率较高。

召回率对比:

测试集上的加权平均召回率为 0.94。

分析:召回率较高,说明模型在预测所有正类时的覆盖率较高。

F1 值对比:

测试集上的加权平均 F1 值为 0.939948051948052。

分析:F1 值是精确率和召回率的调和平均值,综合考虑了两者的平衡,较高的 F1 值表明模型在这两个方面都有较好的表现。

标签:F1,逻辑,score,准确率,算法,train,测试,test
From: https://www.cnblogs.com/0608lin/p/18560717

相关文章

  • 【C#】【winforms】MVP架构中从 Model 或 View 层主动向 Presenter 传递数据或调用处
    背景使用winforms做上位机软件,软件功能简单来说就是与串口通信。因为一个软件要应用于不同型号的下位机,采用MVP架构提高代码复用性。 其中Model层中实例化SerialPort对象:privateSerialPort_serialPort;只关注串口收发。 presenter层负责主要业务逻辑。view层负责......
  • 睡岗离岗检测算法
    睡岗离岗检测算法的核心在于实时监控和智能分析,睡岗离岗检测算法通过安装在关键区域的监控摄像头,系统能够捕捉到员工的活动画面。当系统检测到人体位置长时间未发生变化时,将启动睡姿分类器。该分类器能够识别多种睡姿,如趴在桌子上睡、坐在凳子上后仰睡等。一旦识别为睡姿,系统将立......
  • 工装穿戴智能识别算法
    工装穿戴智能识别算法通过安装在现场的监控摄像头捕获工人的实时图像,工装穿戴智能识别算法通过YOLOv5算法对图像进行分析,识别工人是否穿戴了工装、反光衣、安全帽等必要的安全装备。算法通过与底库中的标准工服进行比对,自动判断工人的着装是否规范。一旦检测到未穿工服或着装不规......
  • 【VLANPWN】一款针对VLAN的安全研究和渗透测试工具
    关于VLANPWNVLANPWN是一款针对VLAN的安全研究和渗透测试工具,该工具可以帮助广大研究人员通过对VLAN执行渗透测试,来研究和分析目标VLAN的安全状况。该工具专为红队研究人员和安全学习爱好者设计,旨在训练网络工程师提升网络的安全性能,请不要将其用于恶意目的。工具核心脚本D......
  • 车载以太网TSN设计及测试解决方案
    概述    智能汽车电子电气架构全面向中央+区域式发展,车载通信新技术是新架构技术栈的重要组成部分。车载以太网时间敏感网络TSN技术凭借其低延时、高可靠的特点获得多家OEM的认可。依赖多年技术研发及数十个项目的实践积累,经纬恒润可为客户提供全面、专业且本土化的TSN......
  • 【从零开始的算法学习日记✨优选算法篇✨】第二章:流动之窗,探索算法的优雅之道
    ......
  • 用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值
    functiongenerateRandomArray(length,min,max){if(max-min+1<length){thrownewError("Rangeistoosmalltogenerateanarraywithoutduplicates.");}functionrecursiveHelper(arr){if(arr.length===length){......
  • 用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值
    functiongenerateRandomArray(length,min,max){if(max-min+1<length){thrownewError("Rangeistoosmalltogenerateanarraywithoutduplicates.");}functionrecursiveHelper(arr){if(arr.length===length){......
  • 常见9种软件测试方法【定义、使用场景、优势、略势、不同点】
     一、功能测试1.定义功能测试是对软件功能进行验证的测试活动,依据功能需求规格说明书,检查软件系统的各项功能是否能正确运行,包括功能的准确性、完整性等方面。2.使用场景新软件功能开发完成时,确保功能符合预期。软件进行功能升级或改进后。3.优势直接对应需求:可直观......
  • HarmonyOS Next加解密算法开发实践与优化策略
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)中加解密算法开发的实践经验与优化策略,基于实际开发案例进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、加解密......