机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型

机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型

目录

  • 机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型
    • 1 过拟合和欠拟合
      • 1.1 过拟合
      • 1.2 欠拟合
    • 2 正则化惩罚
      • 2.1 概念
      • 2.2 函数
      • 2.3 正则化种类
    • 3 K折交叉验证
      • 3.1 概念
      • 3.2 图片理解
      • 3.3 函数导入
      • 3.4 参数理解
    • 4 训练模型K折交叉验证
      • 4.1问题及理解
      • 4.2 训练模型调整

1 过拟合和欠拟合


1.1 过拟合

概念:模型对训练数据的拟合程度过高,导致模型在训练集上表现完美,但在验证集或测试集上表现差

一些方法:

  • 减少模型复杂度,减少参数数量。
  • 正则化惩罚,限制模型。

1.2 欠拟合

概念:模型对训练数据的拟合程度不高,导致模型在训练集和测试集上的表现都不好

一些方法:

  • 增加模型复杂度,增加参数数量。
  • 增加训练时间。
  • 增加训练数据量。

在机器学习实践中,通常需要根据模型的表现不断调整,直到找到既不过拟合也不欠拟合的最佳模型状态。

2 正则化惩罚


2.1 概念

通过在损失函数中加入惩罚项,限制模型参数的大小,从而提高模型的泛化能力,用于防止模型过拟合,是在机器学习和深度学习中常用的技术。

2.2 函数

  • 逻辑回归损失函数:

在这里插入图片描述

  • 正则化惩罚:
    在这里插入图片描述

2.3 正则化种类

L1正则化和L2正则化,主要是损失函数加入惩罚项的不同如下:
在这里插入图片描述

LogisticRegression的C参数表示正则化强度,是正则化系数λ的倒数,float类型,默认为1.0。必须是正浮点型数,越小的数值表示越强的正则化。

3 K折交叉验证


3.1 概念

将原始数据均分成K组,将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为训练模型的性能指标。

3.2 图片理解

如下图显示,均分后,依次作为测试集,求平均数。
在这里插入图片描述

3.3 函数导入

from sklearn.model_selection import cross_val_score

3.4 参数理解

lg = LogisticRegression(C=i,penalty='l2',solver='lbfgs',max_iter=1000)
score = cross_val_score(lg,x_tr,y_tr,cv=8,scoring='recall')
  • lg为算法
  • x_tr,y_tr,参与K折交叉验证的特征数据和结果类别
  • cv=8,k折,均分为8组依次测试
  • scoring=‘recall’要求召回率平均数

4 训练模型K折交叉验证


4.1问题及理解

问题:给定数据,预测分类

特征数据:除类别列外,其他有关列
类别标签:类别列
第一列为时间,无关,最后一列为类别给定的数据:
在这里插入图片描述

4.2 训练模型调整

通过正则化惩罚和K折交叉验证调整训练模型,可以看到模型更加精准。

代码展示:

import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split, cross_val_predict, cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn import metrics
from sklearn.model_selection import cross_val_score
# 标准化处理
scaler = StandardScaler()
data = pd.read_csv('creditcard.csv')
a = data[['Amount']]
b = data['Amount']
# z标准化处理Amount,再存Amount中
data['Amount'] = scaler.fit_transform(data[['Amount']])
# 删除time列
data = data.drop(['Time'],axis=1)
# 特征数据x,删除class列
x_all = data.drop(['Class'],axis=1)
# class为标签结果列
y_all = data.Class
# 训练集特征,测试集特征,训练集结果,测试集结果,test_size抽取的测试集百分比,train_size 抽取的训练集百分比
x_tr,x_te,y_tr,y_te = \train_test_split(x_all, y_all, test_size=0.3,random_state=0)
# 逻辑回归方法引用
lgi = LogisticRegression(C=0.1)
# 训练集训练模型
lgi.fit(x_tr,y_tr)
# 预测测试集结果
re_pr = lgi.predict(x_te)
# 拟合度评分
score0 = lgi.score(x_te,y_te)
print(score0)
# # 分类结果报告
print(metrics.classification_report(y_te, re_pr))
# 交叉验证,选择惩罚因子
scores = []
c_range = [0.01,0.1,1,10,100]
# 循环测试带入因子
for i in c_range:lg = LogisticRegression(C=i,penalty='l2',solver='lbfgs',max_iter=1000)# 模型迭代8次后的所有模型的recall值score = cross_val_score(lg,x_tr,y_tr,cv=8,scoring='recall')# score的平均值,也就是recall的平均值score_m = sum(score)/len(score)# scores列表添加均值recallscores.append(score_m)# print(score_m)
# np.argmax()求括号内的最大值对应的索引,得最大值对应的C值
# print(np.argmax(scores))
print(scores)
best_c = c_range[np.argmax(scores)]
# 根据上面最大判断,建立模型
lg = LogisticRegression(C=best_c,penalty='l2',max_iter=1000)
lg.fit(x_tr,y_tr)
# # 训练集的预测
te_pr = lg.predict(x_te)
# 拟合度
score1 = lg.score(x_te,y_te)
print(score1)
# 制作混淆矩阵,根据训练集的真实结果和预测结果,自测
print(metrics.classification_report(y_te,te_pr))

运行结果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/65944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 下位机串口模拟器

使用 vspd 创建虚拟配对串口,Qt 实现下位机串口模拟器,便于上位机开发及实时调试,适用字符串格式上下位机串口通信,数据包格式需增加自定义解析处理。 通过以下链接下载 vspd 安装包,进行 dll 破解。 链接: https://…

vue 虚拟滚动 vue-virtual-scroller RecycleScroller

vue 3 https://github.com/Akryum/vue-virtual-scroller/blob/master/packages/vue-virtual-scroller/README.md vue 2 https://github.com/Akryum/vue-virtual-scroller/tree/v1/packages/vue-virtual-scroller npm install --save vue-virtual-scrollernextmain.js // 虚拟滚…

密钥登录服务器

1. 生成 SSH 密钥对 如果您还没有生成密钥对,可以使用以下命令生成: ssh-keygen 在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件:id_rsa 为私钥,id_rsa.pub 为公钥。 在提示时,您可…

30天开发操作系统 第 11 天 --制作窗口

前言 在harib07d中鼠标移动到右侧后就不能再往右移了,大家有没有觉得别扭?没错,在Windows 中,鼠标应该可以向右或向下移动到画面之外隐藏起来的,可是我们的操作系统却还不能实现这样的功能,这多少有些遗憾。 这是为什么呢?我们还是先来看一…

物理知识1——电流

说起电流,应该从电荷说起,而说起电荷,应该从原子说起。 1 原子及其结构 常见的物质是由分子构成的,而分子又是由原子构成的,有的分子是由多个原子构成,有的分子只由一个原子构成。而原子的构成如图1所示。…

Android性能分析工具的比较

背景介绍 Systrace、Perfetto和Android Benchmarking Framework都是用于性能分析和优化的工具,但它们各自的用途、功能范围和适用场景有所不同。以下对它们进行详细的比较。 通常一次较完整的性能分析过程需要多工具的配合使用,往复迭代: …

Jupyter在运行上出现错误:ModuleNotFoundError: No module named ‘wordcloud‘

问题分析:显示Jupyter未安装这个模板 解决办法:在单元格内输入:!pip install wordcloud

大模型WebUI:Gradio全解系列8——Additional Features:补充特性(下)

大模型WebUI:Gradio全解系列8——Additional Features:补充特性(下) 前言本篇摘要8. Additional Features:补充特性8.5 嵌入托管 Spaces8.5.1 使用 Web Components 嵌入1. 嵌入步骤2. 定义嵌入的外观和行为 8.5.2 使用…

持续学习入门

参考视频(一) 【学无止境:深度连续学习】 背景 更新新的数据时,数据异步输入,会有灾难性遗忘 现有解决策略 (1)引入正则约束(2)设计合适的动态模型架构 &#xff…

【Cocos TypeScript 零基础 2.1】

目录 cocos常识新建动画添加组件 cocos 下载就不讲了,多的很 cocos 界面设置中文 新建一个2D项目 SIKI_学院_点击跳转 常识 竖屏 宽720 高1280 如果背景图确定是竖屏也可以根据背景图片大小来确定项目宽高 鼠标功能 左键 选中 滚轮 放大缩小 右键 移动视角位置 场景 双击…

局域网中单台交换机VLAN应用

网络拓扑 其中交换机接口类型都为access接口。 Ethernet 0/0/1 VLAN ID为10 Ethernet 0/0/2 VLAN ID为10 Ethernet 0/0/5 VLAN ID为20 Ethernet 0/0/6 VLAN ID为20 Host-1 ip为192.168.64.11/24 Host-2 ip为192.168.64.12/24 Host-3 ip为192.168.64.21/24 Host-4 ip为192.168…

Harbor仓库部署安装、向仓库推送,拉取镜像、容器的基础使用(超级详细,非常透彻)

Harbor 环境搭建笔记 作为新手,在搭建 Harbor 环境的过程中,我参考了大量资料,学到了很多宝贵的知识,但也遇到了不少挑战。虽然目前这套环境仅在测试环境中成功运行,但仍有许多细节需要完善。记录这些经验不仅有助于个…

活动预告 |【Part2】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动,了解 Azure 如何为将工作负载…

PP模块部分BAPI函数

工艺路线 BAPI_ROUTING_CREATE 创建工艺路线 BAPI_ROUTING_EXISTENCE_CHECK 检查工艺路线是否存在 参考操作集 BAPI_REFSETOFOPERATIONS_CREATE 创建参考操作集 BAPI_REFSETOFOPR_EXISTENCE_CHK 检查参考操作集是否存在 计划订单 BAPI_PLANNEDORDER_CREATE 创建计划订单 BAPI…

nature reviews genetics | 需要更多的针对不同种族的癌症基因组图谱研究,促进精准治疗和维护治疗公平权益

–https://doi.org/10.1038/s41576-024-00796-w Genomic landscape of cancer in racially and ethnically diverse populations 研究团队和单位 Ulrike Peters–Public Health Sciences Division, Fred Hutchinson Cancer Center Claire E. Thomas–Public Health Scienc…

两个等号和三个等号(待查资料)

1太癫了,居然时要才行,都不行 2. 三等号的结果 .。。。。毁灭吧

SpringCloud源码分析-Gateway

Gateway核心原理,请求经过一系列的责任链最后到达服务端。

大模型—Ollama将Python函数作为参数传递,增强函数调用功能

Ollama将Python函数作为参数传递,增强函数调用功能 在最新版本的Ollama Python库中,现在可以将函数作为工具提供。该库现在也全面支持类型提示,并添加了新的例子。 开始使用 首先安装或升级Ollama Python库: pip install -U ollama将Python函数作为工具传递 定义一个Py…

智能商业分析 Quick BI

Quick BI 是阿里云提供的一款智能商业分析(BI)工具,旨在帮助企业快速获取业务洞察、优化决策过程、提升数据分析效率。通过强大的数据可视化和分析功能,Quick BI 能够帮助用户轻松连接多种数据源、创建多维度的报表和仪表盘&#…

折旧后将成本中心折旧费调整到订单中

背景:设备原作为通用设备,按成本中心折旧,在12月月结正常折旧后才明确为专用设备,需要按内部订单折旧。 问:折旧能不能冲销。 回复: 在SAP中,折旧凭证是无法直接冲销的。如果折旧计提有误&#…