机器学习--回归算法

🌳🌳🌳小谈:一直想整理机器学习的相关笔记,但是一直在推脱,今天发现知识快忘却了(虽然学的也不是那么深),但还是浅浅整理一下吧,便于以后重新学习。


📙参考:ysu期末复习资料和老师的课件


 1.回归问题

        回归分析用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量值随之发生变化。

        🍀理解:直观来说回归问题等价于函数拟合,选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据。

        回归分析根据自变量个数可分为一元回归分析与多元回归分析。

 2.一元线性回归

        线性回归算法假设特征和结果满足线性关系。

        这就意味着可以将输入项分别乘以一些常量,再与偏置项相加得到输出。

        一元线性回归指的是分析只有一个自变量x与因变量y线性相关关系的方法。

过程如下:

举个例子:

左图是以面积为X轴,售价为Y轴建立房屋销售数据的特征空间表示图。

回归分析是:用一条曲线去尽量准的拟合这些数据,然后如果有新的输入过来,我们可以在将曲线上这个点对应的值返回。

3.一元线性回归求解方法

3.1 最小二乘法

最小二乘法的主要思想:就是求解未知参数,使得理论值与观测值之差(即误差,或者说残差)的平方和达到最小。

【所谓最小二乘,其实也可以叫做最小平方和,其目的就是通过最小化误差的平方和,使得拟合对象无限接近目标对象。】

缺点:最小二乘法主要针对于线性函数,有全局最优解且是闭式解,针对更加复杂的函数难起作用

3.2 梯度下降法

梯度下降法是用来计算函数最小值的。

根据计算一次目标函数梯度的样本数量可分为批量梯度下降(Batch graduebt descent, BGD),随机梯度下降(Stochatic gradient decent, SGD),小批量梯度下降(mini-batch gradient descent)。

(1)批量梯度下降 BGD

在训练过程中,每一步迭代都使用训练集的所有内容。

也就是说,利用现有参数对训练集中的每一个输入生成一个估计输出y ̂_i,然后跟实际输出 y_i 比较,统计所有误差,求平均以后得到平均误差,以此来作为更新参数的依据。

优点:由于每一步都利用了训练集中的所有数据,因此当损失函数达到最小值以后,能够保证此时计算出的梯度为0,换句话说,就是能够收敛。因此,使用BGD时不需要逐渐减小学习速率。

缺点:由于每一步都要使用所有数据,因此随着数据集的增大,运行速度会越来越慢.

(2)随机梯度下降 SGD

随机梯度下降方法一次只抽取一个随机样本进行目标函数梯度计算。

优点:由于每次只计算一个样本,所以SGD收敛非常快。

缺点:因为是随机抽取样本,因此误差是不可避免的,且每次迭代的梯度受抽样的影响比较大。

(3)小批量梯度下降 mini-batch GD

小批量梯度下降结合了批量梯度下降和随机梯度下降的优点,它一次以小批量的训练数据计算目标函数的权重并更新参数。

🌍梯度下降法的问题

        1. 难以选择合适的学习速率:如果学习速率选择过小会造成网络收敛太慢,但是设得太大可能使得损失函数在最小点周围不断摇摆而永远达不到最小点;

        2.如果训练数据十分稀疏并且不同特征的变化频率差别很大,这时候对变化频率慢得特征采用大的学习率,而对变化频率快的特征采用小的学习率是更好的选择;

3.3 梯度下降改进

(1)Momentum

        若当前的梯度方向与累积的历史梯度方向一致,则当前的梯度会被加强,从而这一步下降的幅度更大。若当前的梯度方向与累积的梯度方向不一致,则会减弱当前下降的梯度幅度。

(2)AdaGrad(Adaptive Gradient)

        每一次更新参数时(一次迭代),不同的参数使用不同的学习率。

(3)Adam( Adaptive Moment Estimation)

        Adam利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。其优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。

4.损失函数

1.平均绝对误差:平均绝对误差MAE(Mean Absolute Error)又被称为l1范数损失(l1-norm loss)

2.平均平方误差:平均平方误差MSE(Mean Squared Error)又被称为l2范数损失(l2-norm loss):

3.均方根差RMSE:是MSE的算术平方根

5.线性回归的改进

5.1 过拟合

过拟合是指模型学习的参数过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。

解决办法:

(1)获取更多的数据

(2)数据增强(Data Augmentation)

        通过一定规则扩充数据。

(3)使用合适的模型:

        减少网络的层数、神经元个数等均可以限制网络的拟合能力;

(4)使用正则项约束模型的权重,降低模型的非线性。

6.项目实战

6.1 波士顿房价

   以Scikit-learn的内置数据集波士顿(Boston)房屋价格为案例,采用单变量线性回归算法对数据进行拟合与预测。
   波士顿房屋的数据于1978年开始统计,共506个数据点,涵盖了波士顿不同郊区房屋的14种特征信息。
   在这里,选取房屋价格(MEDV)、每个房屋的房间数量(RM)两个变量进行回归,其中房屋价格为目标变量,每个房屋的房间数量为特征变量。将数据导入进来,并进行初步分析。

机器学习基本步骤:

数据预处理→特征工程→数据建模→结果评估

详情见:机器学习实践-CSDN博客


🐳自我总结:

项目实践的一般流程是:准备数据→配置网络→训练网络→模型评估→模型预测

配置网络包括:定义网络、定义损失函数、定义优化算法

训练网络:

1.  网络正向传播计算网络输出和损失函数。

2.  根据损失函数进行反向误差传播,将网络误差从输出层依次向前传递, 并更新网络中的参数。

3.  重复1~2步骤,直至网络训练误差达到规定的程度或训练轮次达到设定值。


💬一起加油!

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

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

相关文章

IOS:Safari无法播放MP4(H.264编码)

一、问题描述 MP4使用H.264编码通常具有良好的兼容性,因为H.264是一种广泛支持的视频编码标准。它可以在许多设备和平台上播放,包括电脑、移动设备和流媒体设备。 使用caniuse查询H.264兼容性,看似确实具有良好的兼容性: 然而…

【响应式编程-05】Lambda方法引用

一、简要描述 Lambda的方法引用也叫引用方法 方法引用初体验方法引用的底层实现方法引用的语法格式方法引用举例 静态方法引用构造方法引用普通方法引用super和this方法引用数组的方法引用 二、方法引用初体验 为什么出现方法引用? 引用已存在方法,避免重…

四则运算 C语言xdoj20

问题描述: 输入两个整数和一个四则运算符,根据运算符计算并输出其运算结果(和、差、积、商、余之一)。注意做整除及求余运算时,除数不能为零。 输入说明: 使用scanf()函数输入两个整数和一个运算符&#xf…

政府采购变数大,AI PC是联想的“新希望”?

文|新熔财经 作者|余一 发布两款AI PC,并预热CES将有AI PC大动作后,联想似乎找到了计算机终端的新思路。 而在这之前,联想终端业务面临的挑战不可谓不严重。 “事业单位更换纯国产电脑”、“联想被排除在大订单之外…

前端面试题-nodejs

1.什么是nodejs,它与传统的网页服务器有什么不同? 是什么?nodejs是基于Chrome V8引擎的JavaScript运行环境,它可以使JavaScript代码在服务器上运行。 有什么不同?第一,nodejs采用事件驱动、非阻塞式I/O模型…

汽车电子行业的 C 语言编程标准

前言 之前分享了一些编程规范相关的文章,有位读者提到了汽车电子行业的MISRA C标准,说这个很不错。 本次给大家找来了一篇汽车电子行业的MISRA C标准的文章一同学习下。 什么是MISRA? MISRA (The Motor Industry Software Reliability Ass…

微型导轨在设备中起什么作用

微型导轨精度高,摩擦系数小,自重轻,结构紧凑,可以用于电子制造设备、半导体制造设备、医疗设备、光学设备和机器人等各种工业机械设备中,那么微型导轨在设备中起什么作用呢? 1、导向与定位:为机…

G4周:CGAN,手势生成

本文为🔗365天深度学习训练营 中的学习记录博客 原作者:K同学啊|接辅导、项目定制 我的环境: 1.语言:python3.7 2.编译器:pycharm 3.深度学习框架Pytorch 1.8.0cu111 一、CGAN介绍 条件生成对抗网络(…

Visio导出eps格式图片

Visio导出eps格式图片 文章目录 Visio导出eps格式图片1. Visio中使用Adobe Acrobat虚拟打印2. Adobe Acrobat中裁剪并另存为eps格式 如何使用Visio绘图然后导出.eps格式的图片呢?这个过程需要用到Adobe Acrobat,使用Adobe Acrobat的虚拟打印功能&#xf…

ssm基于JAVA的驾校信息管理系统设计论文

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

Java HashMap 面试题(一)

HashMap 面试题(一) 文章目录 HashMap 面试题(一)3.3 面试题-说一下HashMap的实现原理?面试题-HashMap的put方法的具体流程hashMap常见属性源码分析 3.3 面试题-说一下HashMap的实现原理? HashMap的数据结…

篇三:让OAuth2 server支持密码模式

由于Spring-Security-Oauth2停止维护&#xff0c;官方推荐采用 spring-security-oauth2-authorization-server&#xff0c;而后者默认不支持密码授权模式&#xff0c;本篇实战中采用的版本如下&#xff1a; <dependency><groupId>org.springframework.security<…

1-02VS的安装与测试

一、概述 对于一名C语言程序员而言&#xff0c;进行C语言程序的开发一般需要一个文本编辑器加上一个编译器就足够了。但为了方便起见&#xff0c;我们选择使用集成开发环境——Visual Studio&#xff08;简称VS&#xff09;。安装Visual Studio 下面讲一下如何安装VS&#xff0…

【AI视野·今日Sound 声学论文速览 第三十八期】Mon, 1 Jan 2024

AI视野今日CS.Sound 声学论文速览 Mon, 1 Jan 2024 Totally 5 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers The Arrow of Time in Music -- Revisiting the Temporal Structure of Music with Distinguishability and Unique Orientability as the …

金和OA C6 MailTemplates.aspx SQL注入漏洞复现

0x01 产品简介 金和OA协同办公管理系统软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效率的核心思想,为用户提供一整套标准的办公自动化解决方案,以帮助…

【DevOps-07-3】Jenkins集成Sonarqube

一、简要说明 Jenkins安装Sonarqube插件Jenkins安装和配置Sonar-Scanner信息Jenkins打包项目中,增加Sonar-Scanner代码质量扫描二、Jenkins安装Sonarqube插件 1、登录Jenkins管理后台,搜索安装Sonar-Scanner插件 Jenkins管理后台示例:http://192.168.95.131:8080/jenkins/

Oracle数据库新手零基础入门,Oracle安装配置和操作使用详解

一、教程描述 本套教程是专门为初学者量身定制的&#xff0c;无需任何Oracle数据库基础&#xff0c;课程采用循序渐进的教学方式&#xff0c;从Oracle数据库的基础知识开始讲起&#xff0c;并不会直接涉及到一项具体的技术&#xff0c;而是随着课程的不断深入&#xff0c;一些…

docker部署mysql主从复制篇

环境准备&#xff1a;docker服务安装&#xff0c;mysql镜像 配置文件方式&#xff1a;可以挂载目录&#xff0c;也可以写好配置文件&#xff0c;利用docker cp 到容器内&#xff0c;这里直接在启动镜像创建容器时候挂载目录方式服务器上配置文件内容(下图标红路径)&#xff1a…

WEB 3D技术 three.js 顶点缩放

本文 我们来说 顶点缩放 我们官网搜索 BufferGeometry 下面有一个 scale 函数 例如 我们先将代码写成这样 上面图片和资源文件 大家需要自己去加一下 import ./style.css import * as THREE from "three"; import { OrbitControls } from "three/examples/j…

MySQL 临时表

MySQL 临时表 MySQL 临时表在我们需要保存一些临时数据时是非常有用的。 临时表只在当前连接可见&#xff0c;当关闭连接时&#xff0c;MySQL 会自动删除表并释放所有空间。 在 MySQL 中&#xff0c;临时表是一种在当前会话中存在的表&#xff0c;它在会话结束时会自动被销毁…