机器学习(2)回归

0.前提

上一期,我们简单的介绍了一些有关机器学习的内容。学习机器学习的最终目的是为了服务我未来的毕设选择之一——智能小车,所以其实大家完全可以根据自己的需求来学习这门课,我做完另一辆小车后打算花点时间去进行一次徒步行,回来就开始专心积累底层知识了(回归轻松时刻,去考试,本来预期是一个学期更新大概25篇文章的,现在看其实已经完全超过预期了)。

1.线性回归

1.线性回归的概念

线性回归:一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。

如图为单变量的线性回归,蓝点为真实数据,红点为预测数据,红点与红线重合度越高,数据拟合的效果越好。

2.符号定义

·m代表训练集中样本的数量

·n代表特征的数量

·x代表特征/输入变量

·y代表目标变量/输出变量

·(x,y)代表训练集中的样本

·(x^{(i)},y^{(i)})代表第i个观察样本

·h代表学习算法的解决方案或函数也称为假设

·\widehat{y}=h(x)代表预测值

·x^{(i)}是特征矩阵中的第i行,是向量

·x_{j}^{(i)}是代表特征矩阵中第i行的第j个特征

3.算法流程

h(x)=w_{0}+w_{1}x_{1}+w_{2}x_{2}+...+w_{n}x_{n}

·损失函数:度量样本预测的错误程度,损失函数值越小,模型就越好。常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等;损失函数采用平方和损失:l(x^{(i)})=\frac{1}{2}(h(x^{(i)})-y^{(i)})^{2},损失函数的1/2是为了便于计算,使对平方项求导后的常数系数为1。

·代价函数:也称成本函数,度量全部样本集的平均误差。常用的代价函数包括均方误差、均方根误差、平均绝对误差等;残差平方和:J(w)=\frac{1}{2}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^{2}

·目标函数:代价函数和正则化函数,最终要优化的函数。

4.线性回归求解

求解 :min\frac{1}{2}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^{2}的一组w,常见的求残差平方和最小的方法为最小二乘法和梯度下降法。

2.最小二乘法(LSM)

·其实就是求\frac{\partial J(w)}{\partial w}最小

·将向量表达形式转为矩阵表达形式,J(w)=\frac{1}{2}(Xw-Y)^{2},X为mn+1列的矩阵(m为样本个数,n为特征个数),wn+1行1列的矩阵(包含了w_{0}),Y为m行1列的矩阵:
J(w)=\frac{1}{2}(Xw-Y)^{2}=J(w)=\frac{1}{2}(Xw-Y)^{T}(Xw-Y)
·J(w)求偏导:
\frac{\partial J(w)}{\partial w}=\frac{1}{2}\frac{\partial (Xw-Y)^{T}(Xw-Y)}{\partial w}=X^{T}Xw-X^{T}Y
·结果:
w=(X^{T}X)^{^{-1}}X^{T}Y

3.梯度下降

梯度下降有3种形式:批量梯度下降、随机梯度下降、小批量梯度下降。

1.批量梯度下降(BGD)

批量梯度下降:梯度下降的每一步中,都用到了所有的训练样本。

参数更新:w_{j}:=w_{j}-\alpha \frac{1}{m}\sum_{i=1}^{m}((h(x^{(i)})-y^{(i)})·x_{j}^{(i)}) (同步更新w_{j}(j=0,1,...,n)),\alpha代表学习率,(h(x^{(i)})-y^{(i)})·x_{j}^{(i)}代表梯度。

2.随机梯度下降(SGD)

随机梯度下降:梯度下降的每一步中,用到一个样本,在每一次计算后更新参数,而不需要将所有的训练集求和。

参数更新:w_{j}:=w_{j}-\alpha((h(x^{(i)})-y^{(i)})·x_{j}^{(i)})(同步更新w_{j}(j=0,1,...,n)

3.小批量梯度下降(MBGD)

梯度下降的每一步,用到一定批量的训练样本,每计算常数𝑏次训练实例,更新一次参数 w
参数更新:w_{j}:=w_{j}-\alpha \frac{1}{b}\sum_{k=i}^{i+b-1}((h(x^{(k)})-y^{(k)})·x_{j}^{(k)})(同步更新 w_{j}(j=0,1,...,n)),当b=1时是随机梯度下降,b=m时是批量梯度下降,b=2的指数倍数(常见32、64、128等)时为小批量梯度下降

4.梯度下降与最下二乘法的比较

1.梯度下降

需要选择学习率\alpha,要多次迭代,当特征数量n较大时能较好适用,适用各种类型的模型。

2.最小二乘法

不需要选择学习率\alpha,一次计算得出,需要计算(X^{T}X)^{-1},如果特征数量n较大则运算代价大,因为矩阵逆得计算时间复杂度为0(n^{3}),一般当n小于10000时可以接受,只适用于线性模型,不适合逻辑回归等其他模型。

5.数据归一化/标准化

1.作用

标准化/归一化可以提升模型精度和加速模型收敛。

2.归一化(最大-最小规范化)

x^{*}=\frac{x-x_{min}}{x_{max}-x_{min}},将数据映射到[0,1]区间,数据归一化的目的是使得各特征对目标变量得影响一致,会将特征数据进行伸缩变化,所以数据归一化是会改变特征数据分布的。

3.Z-Score标准化

x^{*}=\frac{x-\mu }{\sigma },其中\sigma ^{2}=\frac{1}{m}\sum_{i=1}^{m}(x^{(i)}-\mu )^{2},\mu =\frac{1}{m}\sum_{i=1}^{m}x^{(i)},处理后的数据均值为0,方差为1,数据标准化为了不同特征间具备可比性,经过标准化变换后的特征数据分布没有改变,当数据特征取值范围或单位差异较大时,最好做标准化处理。

4.是否需要做数据归一化/标准化

1.需要

线性模型,如基于距离度量的模型包括KNN(K近邻)、K-means聚类、感知机和SVM。另外,线性回归类的几个模型一般情况下也是需要做数据归一化/标准化处理的。

2.不需要
决策树、基于决策树的Boosting和Bagging等集成学习模型对于特征取值大小并不敏感,如随机森林、XGBoost、LightGBM等树模型,以及朴素贝叶斯,以上这些模型一般不需要做数据归一化/标准化处理。

6.正则化

1.拟合

注释:拟合就好比成绩与刷题量之间的关系:欠拟合就是你刷题量特别少,考试得到的分数比你想象中的要低,这就说明欠拟合了;过拟合就是你知道刷题能提高成绩,然后一天16个小时都在刷题,是的你成绩变高了,但是你只是读了万卷书没能行万里路,这就是过拟合了;正合适就是,你刷了一定量的题,成绩不错,同时你也行了万里路,这就是正合适。

2.处理过拟合

1.获取更多的训练数据

使用更多的数据能有效解决过拟合,更多的数据样本能让模型学习更多更有效的特征,减少噪声影响。

2.降维

丢弃一些偏差较大的样本特征,手动选择保留的特征,也可以使用一些模型选择算法。

3.正则化

保留所有特征,减少参数大小,可以改善或减少过拟合问题。

4.集成学习

将多个模型集成在一起,来降低单一模型的过拟合风险。

3.处理欠拟合

1.添加新特征

特征不足或者现有特征与样本标签相关性不强时,模型容易欠拟合。挖掘组合新特征,效果会有所改善。

2.增加模型复杂度

简单模型学习能力差,增加模型的复杂度可以使模型有更强的拟合能力。例如:线性模型中添加高次项,神经网咯模型中增加网络层数或神经元个数等。

3.减小正则化系数
正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。

4.正则化

·λ为正则化系数,调整正则化项与训练误差的比例,λ>0。

·1≥ρ≥0为比例系数,调整L1正则化与L2正则化的比例。

1.L1正则化

J(w)=\frac{1}{2}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^{2}+\lambda \sum_{j=1}^{n}|w_{j}|,(Lasso回归)

2.L2正则化

J(w)=\frac{1}{2}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^{2}+\lambda \sum_{j=1}^{n}w_{j}^{2},(岭回归)

3.Elastic Net

J(w)=\frac{1}{2}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^{2}+\lambda (\rho .\sum_{j=1}^{n}|w_{j}|+(1-\rho ).\sum_{j=i}^{n}w_{j}^{2}),(弹性网络)

7.回归的评价指标

y^{(i)}代表第i个样本的真实值;\widehat{y}^{(i)}代表第i个样本的预测值;m为样本个数。

1.均方误差(MSE)

MSE=\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}-\widehat{y}^{(i)})^{2}

2.平均绝对误差(MAE)

MAE(y,\widehat{y})=\frac{1}{m}\sum_{i=1}^{m}|y^{(i)}-\widehat{y}^{(i)}|

3.均方跟误差(RMSE)

RMSE(y,\widehat{y})=\sqrt{\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}-\widehat{y}^{(i)})^{2}}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT探索:提示工程详解—程序员效率提升必备技能【文末送书】

文章目录 一.人工智能-ChatGPT1.1 ChatGPT简介1.2 ChatGPT探索:提示工程详解1.2 提示工程的优势 二.提示工程探索2.1 提示工程实例:2.2 英语学习助手2.3 Active-Prompt思维链(CoT)方法2.4 提示工程总结 三.文末推荐与福利3.1《Cha…

LeetCode刷题---汉诺塔问题

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 前言:这个专栏主要讲述递归递归、搜索与回溯算法,所以下面题目主要也是这些算法做的 我讲述题目会把讲解部分分为3个部分: 1、题目解析 2、算法原理思路讲解 …

使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装

一、安装containerd 安装 k8s 有几种方式: 1、 Kubeadm 2、 二进制 这两个是 k8s 官网提供的方式,也是生产环境用的还可以借助第三方平:rancher、kubesphere 都可以装 k8s 这里使用 kubeadm 1.安装 containerd 在 Kubernetes 集群中&#…

Java 定时任务

Java 定时任务 为什么需要定时任务? 我们来看一下几个非常常见的业务场景: 某系统凌晨 1 点要进行数据备份。某电商平台,用户下单半个小时未支付的情况下需要自动取消订单。某媒体聚合平台,每 10 分钟动态抓取某某网站的数据为…

TCP_报文格式解读

报文格式 header部分字段含义解析 固定字段 对于header中固定部分字段含义,见之前的blog《TCP报文分析》; 对部分字段含义补充说明 Data Offset:4bit,tcp header的长度,单位:32bit(4字节&…

【沐风老师】3DMAX一键多曲线生成工具ChaosLine插件使用方法详解

3DMAX一键多曲线生成工具ChaosLine插件使用教程 3DMAX一键多曲线生成工具ChaosLine插件,沿着引导线路径形状生成规则(螺旋线等)和不规则(随机)形状的曲线。它允许你沿着任何引导形状创建有趣的图案和效果。这包括电线、…

解决:AttributeError: ‘NoneType’ object has no attribute ‘shape’

解决:AttributeError: ‘NoneType’ object has no attribute ‘shape’ 文章目录 解决:AttributeError: NoneType object has no attribute shape背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用之前的代码时&…

【Linux】第二十二站:文件(二)深入理解重定向

文章目录 一、重定向1.文件描述符对应的分配规则2.重定向的接口 二、再次实现myshell1.实现细节2.盘点文件与进程替换的一个细节3.代码 三、1号文件和2号文件的区别四、如何理解“一切皆文件?” 一、重定向 1.文件描述符对应的分配规则 我们先看如下代码 #includ…

GPT实战系列-大模型训练和预测,如何加速、降低显存

GPT实战系列-大模型训练和预测,如何加速、降低显存 不做特别处理,深度学习默认参数精度为浮点32位精度(FP32)。大模型参数庞大,10-1000B级别,如果不注意优化,既耗费大量的显卡资源,…

数字图像处理(实践篇) 十六 基于分水岭算法的图像分割

目录 一 分水岭算法 二 利用OpenCV实现分水岭算法的过程 三 实践 一 分水岭算法 基于任何灰度图像都可以视为地形表面,其中高强度表示山峰和山丘,而低强度表示山谷。首先,开始用不同颜色的水(标签)填充每个孤立的山…

【虚拟机】Docker基础 【二】

2.2.数据卷 容器是隔离环境,容器内程序的文件、配置、运行时产生的容器都在容器内部,我们要读写容器内的文件非常不方便。大家思考几个问题: 如果要升级MySQL版本,需要销毁旧容器,那么数据岂不是跟着被销毁了&#x…

Python常用库大全及简要说明,附官方网站链接地址

文章目录 前言环境管理包管理包仓库分发构建工具交互式解析器文件日期和时间文本处理特殊文本格式处理自然语言处理文档配置命令行工具下载器图像处理OCR音频Video地理位置HTTP数据库数据库驱动ORMWeb 框架权限CMS电子商务RESTful API验证模板引擎队列搜索动态消息资源管理缓存…

【数据库】数据库并发控制的目标,可串行化序列的分析,并发控制调度器模型

数据库并发控制 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更…

接口测试Postman 变量

Postman变量有以下几种类型: 1、环境变量(Environment Variables): 环境变量是在Postman的环境中定义的全局变量,可在不同请求之间共享。通过设置不同环境,可以轻松切换不同的配置(如开发环境、测试环境…

[FUNC]判断窗口在哪一个屏幕上

#Requires AutoHotkey v2.0#z:: { ToolTip "Notepad窗口所在显示屏是:" GetMonitor() } GetMonitor() {CoordMode("Mouse", "Screen"); MouseGetPos &mx, &myWinGetPos &mx, &my,,,"ahk_class Notepad"…

CentOS7根分区扩容之一

Centos默认根分区50G,很快接近100%,如果你的系统使用了全部磁盘,文件系统是xfs,根分区和/home都是逻辑卷,那么在没有额外的磁盘增加情况下,可以从/home卷中切分一部分空间增加到根分区空间。 1.由于xfs格式…

【参数估计】---点估计之矩估计

点估计之矩估计 👻什么是参数估计👻引例---理解参数估计🐟点估计🍭引例🍭点估计问题 🐟矩估计🍭预备知识🍭矩估计的求解步骤🍭矩估计例题 👻什么是参数估计 在…

kkFileView 从源码编译最新安装包

目录 一、前言二、拉取 kkFileView 最新代码三、kkFileView 打包 一、前言 kkFileView 是一个开源的附件在线预览项目,可以让你的项目方便的在线预览附件,包括比如:doc、docx、pdf、xml、xls、xlsx、ppt、pptx、zip、png、jpg、txt、mp4等常…

Mybatis相关API(Sqlsession和sqlsessionFactroy)

代码 private static SqlSessionFactory sqlSessionFactory;static { ​try { // 获得核心配置文件String resource "mybits-config.xml"; // 加载核心配置文件InputStream inputStream Resources.getResourceAsStream(resource…

WebUI自动化学习(Selenium+Python+Pytest框架)005

基础知识学习完毕,接下来我们开始学习测试框架啦!!! 首先来回顾一下python自带的Unittest框架: Python基础学习016__UnitTest-CSDN博客文章浏览阅读97次。Testcase:测试用例:这个测试用例是UnitTest的组成部分,不是手…