信息检索与数据挖掘 | (十)线性回归与逻辑回归
文章目录
- 📚线性回归算法流程
- 📚Bias and variance
- 📚过拟合&欠拟合
- 📚逻辑回归算法流程
📚线性回归算法流程
-
y=b+w·x
-
使用loss function L来评估函数的好坏

-
从而我们要选择使L最小的模型参数w,b

-
使用梯度下降的方法


-
从而求导得:

📚Bias and variance
- error原因——bias(模型偏差)和variance(数据方差):
- 数学原理:
- 随机变量x的均值为 μ \mu μ,方差为 σ 2 \sigma^2 σ2
- 随机采样N个点,其均值不等于 μ \mu μ,但是期望等于 μ \mu μ,是无偏的 ,均值的方差是 σ 2 / N \sigma^2/N σ2/N
- N个点的方差记为 s 2 s^2 s2,方差的期望为 ( N − 1 ) / N ⋅ σ 2 (N-1)/N·\sigma^2 (N−1)/N⋅σ2,不等于 σ 2 \sigma^2 σ2
- 用bias表示整体距离实际值的距离,用variance表示点的分散程度

每次采样一个训练集,训练一个模型,采样100次
简单模型:模型直接的variance很小,但是bias可能略大
复杂模型:variance很大,但是bias会小
模型会更拟合数据点,各个模型直接的差别很大,所以简单的模型受采样数据的影响更小
-
模型分析:
- 我们对每个模型f*取均值,看是否接近真实的模型f,如果差得远,则bias大,接近则bias小
- 大bias小variance可能是欠拟合,而小bias大variance可能是过拟合。
- 如果数据无法很好的拟合训练集,则会有大bias,欠拟合;如果可以很好拟合训练集,但是在测试集上表现不好,会有大的variance,过拟合。
-
解决方法:
- 对于大bias欠拟合来说,可以重新选择模型,增加输入特征,或者是使用更复杂的模型,或者进行交叉验证
- 对于大variance过拟合来说,可以增加数据集的数量,或者是引入正则项
- 在bias和variance之间存在trade-off,可以选择模型使得total-error最小即可。
📚过拟合&欠拟合
- 欠拟合:
- 定义:模型无法捕捉数据中的规律和复杂性,表现为训练误差和测试误差都较高。
- 原因:模型的复杂度不够,无法很好地拟合数据。
- 解决方法:提高模型复杂度、增加特征数量、增加模型的学习能力等。
- 过拟合:
- 定义:模型过度拟合了训练数据的噪声和细节,表现为在训练集上表现良好,在测试集上表现较差。
- 原因:模型复杂度过高,导致模型过度适应训练数据的特征和噪声。
- 解决方法:降低模型复杂度、增加数据量、采用正则化方法(如L1、L2正则化)等。
- 改进方法:
- 交叉验证:通过交叉验证来选择合适的模型复杂度,同时避免过拟合和欠拟合。
- 特征选择:选取对模型预测有用的特征,在避免过多无用特征的情况下,消除噪声的影响。
- 正则化:通过L1或L2正则化,限制模型参数的大小,防止模型过拟合。
- 增加数据量:增加数据量可以帮助模型更好地捕捉数据的规律,减少模型的过拟合情况。
- 集成学习:使用集成学习方法,如bagging、boosting等,可以在一定程度上减小模型的过拟合风险。
- 关于交叉验证
- 交叉验证是一种评估模型性能和泛化能力的统计学方法。它通过反复地将数据集划分为训练集和验证集,在训练集上训练,在验证集上测试,来评估模型的性能。
- 常见的交叉验证方法包括
k折交叉验证、留一交叉验证等。在k折交叉验证中,数据集被随机分成k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性。然后,进行k次模型训练和测试,每次选择一个子集作为验证集,其余的k-1个子集作为训练集,取结果最好的作为最终模型。 - 交叉验证的目的是:
- 评估模型的性能:通过交叉验证,可以更准确地评估模型的性能,而不会受到单次划分数据带来的偶然性影响。
- 泛化能力:交叉验证可以更好地评估模型的泛化能力,即模型对未见过的数据的适应能力。
- 另外,对于数据较少的情况下,交叉验证可以最大限度地利用有限的数据,减小因训练集和测试集的划分不同导致评估性能的差异。在模型选择以及调参时也非常有用,可以帮助选择最优模型并提高模型的性能。
📚逻辑回归算法流程
-
分类即输入一个样本,判断其类别,损失函数为:

-
使用sigmoid函数,将概率划分到[0,1]之间:

-
使用交叉熵损失函数的方法找到最优的w和b,便于求导取-log,乘积变为求和:

-
然后将f函数全部代回对w求导找最优解,求导后的结果为:

-
求导之后可知f=1,y=1时,f=0,y=0时cross Entropy最小,从而wx->正无穷,y=1,wx->负无穷,y=0
-
使用逻辑回归进行多分类的话,sigmoid函数变为:

-
所有的y求和为1,y表示第i类的概率,是softmax操作,softmax就是把一些输入映射为0-1之间的实数,并且归一化保证和为1。
-
逻辑回归只能对线性可分的数据有闭式解,对于线性不可分的数据分类能力很差,可以进行特征转化,从原特征映射到新的特征空间,然后在新的特征空间进行分类。

⭐️补充博客
- 单变量线性回归
- 多变量线性回归
- 逻辑回归
- 优化算法 | 评估方法
相关文章:
信息检索与数据挖掘 | (十)线性回归与逻辑回归
文章目录 📚线性回归算法流程📚Bias and variance📚过拟合&欠拟合📚逻辑回归算法流程 📚线性回归算法流程 ybwx 使用loss function L来评估函数的好坏 从而我们要选择使L最小的模型参数w,b 使用梯度下降的方法…...
【issue-halcon例程学习】measure_arc.hdev
例程功能 检查倒角后铸件的细长孔之间的距离。 代码如下 read_image (Zeiss1, zeiss1) get_image_size (Zeiss1, Width, Height) dev_close_window () dev_open_window (0, 0, Width / 2, Height / 2, black, WindowHandle) set_display_font (WindowHandle, 14, mono, true,…...
RKE快速搭建离线k8s集群并用rancher管理界面
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 本文记录使用RKE快速搭建一套k8s集群过程,使用的rancher老版本2.5.7(当前最新版为2.7)。适用…...
代码随想录算法训练营第十四天|● 理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代
仅做学习笔记,详细请访问代码随想录 ● 理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代 单层递归的逻辑就是按照中左右的顺序来处理的,这样二叉树的前序遍历,基本就写完了,再看一下完整代码: 前序遍历: …...
❤css实用
❤ css实用 渐变色边框(Gradient borders方法的汇总 5种) 给 border 设置渐变色是很常见的效果,实现这个效果有很多思路 1、使用 border-image 使用 css 的 border-image 属性给 border 绘制复杂图样 与 background-image 类似,我…...
web系统架构基于springCloud的各技术栈
博主目前开发的web系统架构是基于springCloud的一套微服务架构。 使用的技术栈:springbootmysqlclickhousepostgresqlredisrocketMqosseurekabase-gatewayapollodockernginxvue的一套web架构。 一、springboot3.0 特性:Spring Boot 3.0提供了许多新特性…...
【第十五课】数据结构:堆 (“堆”的介绍+主要操作 / acwing-838堆排序 / 时间复杂度的分析 / c++代码 )
目录 关于堆的一些知识的回顾 数据结构:堆的特点 "down" 和 "up":维护堆的性质 down up 数据结构:堆的主要操作 acwing-838堆排序 代码如下 时间复杂度分析 确实是在写的过程中频繁回顾了很多关于树的知识&…...
el-select选项过多导致页面卡顿,路由跳转卡顿
问题:el-select数据量太大,导致渲染过慢,或造成页面卡顿甚至于卡死 卡顿原因:DOM中数据过多,超过内存限制 解决方法: 1.使用Virtualized Select 虚拟化选择器,页面就不卡了 2.el-select做分…...
信息流广告参数回传工具怎么做联调
信息流广告在抖音等平台上越来越受到广告主的青睐,它能够在用户浏览内容的同时,以自然的方式展示广告,提高曝光率和点击率。然而,为了更好地评估广告效果,需要进行参数回传联调。本文将介绍一种实用的工具——数灵通外…...
matlab appdesigner系列-常用18-表格
表格,常用来导入外部表格数据 示例: 导入外界excel数据:data.xlsx 姓名年龄城市王一18长沙王二21上海王三56武汉王四47北京王五88成都王六23长春 操作步骤如下: 1)将表格拖拽到画布上 2)对app1右键进行…...
密码学的100个基本概念
密码学作为信息安全的基础,极为重要,本文分为上下两部分,总计10个章节,回顾了密码学的100个基本概念,供小伙伴们学习参考。本文将先介绍前五个章节的内容。 一、密码学历史 二、密码学基础 三、分组密码 四、序列密码 五、哈希…...
Python中的进制转换——bin/oct/hex函数与int函数
简介 进制转换可能是一个工作学习中的常见小任务,手写相关函数显然很麻烦。 Python有相关内置函数一般能满足我们的需求。bin()、oct()、hex()将十进制转换为常用的二、八、十六进制,而 int()函数可指定第二个参数从而将其它进制转换为十进制。或许后者…...
RT-Thread 瑞萨 智能家居网络开发:RA6M3 HMI Board 以太网+GUI技术实践
不用放大了, 我在包里找到张不小的…… 以太网HMI线下培训-环境准备 这是社群的文档:【腾讯文档】以太网线下培训(HMI-Board) https://docs.qq.com/doc/DY0FIWFVuTEpORlNn 先介绍周六的培训是啥,然后再介绍一下要准…...
力扣刷题第十天 美丽塔 一
给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。 你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i ,高度为 heights[i] 。 如果以下条件满足,我们称这些塔是 美丽 的: 1 < heights[i] < maxHeights[i]heights 是一个 山脉…...
c# ADODB.Recordset实例调用Fields报错
代码: using System; using System.CodeDom; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ADODB;namespace ConsoleApp1 {internal class Programre{static ADODB.Recordset recordsetInstance…...
windows和linux下SHA1,MD5,SHA256校验办法
今天更新android studio到Android Studio Hedgehog | 2023.1.1时,发现提示本机安装的git版本太老,于是从git官网下载最新的git。 git下载地址: https://git-scm.com/ 从官网点击下载最新windows版本会跳转到github仓库来下载发布的git&…...
高新技术企业申报需要具备哪些条件?
(一)企业申请认定时须注册成立一年以上; (二)企业通过自主研发、受让、受赠、并购等方式,获得对其主要产品(服务)在技术上发挥核心支持作用的知识产权的所有权; &#…...
测试不拘一格——掌握Pytest插件pytest-random-order
在测试领域,测试用例的执行顺序往往是一个重要的考虑因素。Pytest插件 pytest-random-order 提供了一种有趣且灵活的方式,让你的测试用例能够以随机顺序执行。本文将深入介绍 pytest-random-order 插件的基本用法和实际案例,助你摆脱固定的测试顺序,让测试更具变化和全面性…...
DophineScheduler通俗版
1.DophineScheduler的架构 ZooKeeper: AlertServer: UI: ApiServer: 一个租户下可以有多个用户;一个用户可以有多个项目一个项目可以有多个工作流定义,每个工作流定义只属于一个项目;一个租户可…...
企业如何稳步开启SASE实施之路
在上一篇题为《企业为什么选择SASE?香港电讯专家给你答案!》的文章中,我们从SD-WAN的安全策略和能力、市场趋势的推动及SASE的四大特性分析了企业选择采用安全访问服务边缘(SASE)的原因。基于SASE的各项优势࿰…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
