机器学习--回归算法

news2025/1/11 5:53:09

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


📙参考: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)两个变量进行回归,其中房屋价格为目标变量,每个房屋的房间数量为特征变量。将数据导入进来,并进行初步分析。

机器学习基本步骤:

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

💬

 🍨🍄🍬🍺🍹🍸🥤🍷🍥📙

🌸🌸🍔🥪🍟

🌸

🌸

🌸🌸🌸🌸🌸🌸🌸🌸

🌼🌻🍨🦄🌰

🌸🍀🌟🌵🌻👣👣🍧🍬🍡🌾🎄🌳🌴🌱☘🌳🍇🍎

🔥

🍀🌹🌍🌎🌏💪💎💰🌈🌏⚡🌟💫☀️⭐🌙🌛💦💤☔🌂💯🍋🥭🍓🥒🥠🍇✩🌕🍊👉🧁

🌸🍞🍭🍧🌹🥀🌷💐🌸🍀☘️🌲🏵️🍂🎍🌴🌳🌵🎋🍃🍁🌾

🌟☄


 🐳自我总结:


💬一起加油!

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

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

相关文章

Eclipse设置不依赖系统环境变量,设置lombok

设置不依赖系统环境变量,如图首行添加 -vm. lombok配置在最后两行

企业老旧档案怎么处理?

不管选择何种处理方式处理企业老旧档案,都要先制定一份详细的档案处理计划,明确处理的目标、方式和时间,并确保有足够的人力和物力资源来完成处理工作。 一般来说,常用的企业老旧档案有以下几种方法: 1. 整理归档&…

半导体Memory的分类

文章目录 略图introRAM & ROM 略图 intro 存储器是嵌入式系统中用于存放数据和程序的模块。有些存储器是MCU内置的,有些是扩展的。 存储器嵌入式系统中常见且重要的外设模块。搞清楚存储器的分类是从事嵌入式开发工作的一项基本功。 从功能上,存储器…

2023高级人工智能期末总结

1、人工智能概念的一般描述 人工智能是那些与人的思维相关的活动,诸如决策、问题求解和学习等的自动化; 人工智能是一种计算机能够思维,使机器具有智力的激动人心的新尝试; 人工智能是研究如何让计算机做现阶段只有人才能做得好的…

DNs服务学习笔记

DNS:域名系统(英文:Domain Name System)是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。类似于生活中的11…

基于帝国主义竞争算法优化的Elman神经网络数据预测 - 附代码

基于帝国主义竞争算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于帝国主义竞争算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于帝国主义竞争优化的Elman网络5.测试结果6.参考文献7.Matl…

P11 FFmpe时间基和时间戳

前言 从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_C…

C/C++输入函数总结

1、cin 2、cin.get 3、cin.getline 4、getline 5、gets 6、getchar 1、cin 可以接受单个字符和字符串,但遇空格,"TAB","回车"结束!!! 若不跳过空白字符,使用 noskipws 流控制。 使用方法如…

数据结构学习 jz56数组中数字出现的次数

关键词:位运算 异或性质 虽然有两道题,但是其实应该分成三个级别的题目。 题目一: 一个整型数组 sockets 里除 一个 数字之外,其他数字都出现了两次。 思路:异或的性质 复杂度计算: 时间复杂度O(n) 空…

C语言全面学习基础阶段01—C生万物

如何学好 C 语言 1. 鼓励你,为你叫好。 C 生万物 编程之本 长远 IT 职业发展的首选 C 语言是母体语言,是人机交互接近底层的桥梁 学会 C/C ,相当于掌握技术核心 知识点一竿子打通。 IT 行业,一般每 10 年就有一次变革 40 年间&a…

智慧校园全空间三维电子沙盘系统

一、概述 易图讯科技(www.3dgis.top)采用大数据、云计算、虚拟现实、物联网、AI等先进技术,自主可控高性能WebGIS可视化引擎,支持多用户客户端通过网络请求访问服务器地图和专题数据,提供地理信息数据、专题数据的并发…

数据迁移怎么测,都有哪些步骤?

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢软件测试面试题分享: 1000道软件测试面试题及答案📢软件测试实战项目分享: 纯接口项目-完…

【机器学习】卷积神经网络----GoogLeNet网络(pytorch)

代码是一个使用PyTorch实现的GoogLeNet模型,该模型是一个深度卷积神经网络(CNN)用于图像分类任务。 1. 定义基本卷积模块 BasicConv2d 类是一个基本的卷积块,包含一个卷积层、批归一化层和ReLU激活函数。该类用于构建Inception模块…

亚马逊云科技基于 listmonk 的电子邮件营销解决方案

本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 背景 电子邮件营销(EDM)在广告、电商、供应链物流等行业应用…

MR实战:网址去重

文章目录 一、实战概述二、提出任务三、完成任务(一)准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 (二)实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建网址去重映射器类5、创建网址去重归并…

怎么选择一款好用的ERP企业管理软件?看这六点就够了!

在目前高度信息化的环境中,ERP系统已成为生产制造企业管理的心脏。它集财务、人力资源、采购、生产、销售和库存等多个业务功能于一身,为企业提供了一个统一的、高效的、实时的管理平台。然而,市场上的ERP软件繁多,选择一款真正适…

WPF美化ItemsControl1:不同颜色间隔

首先我们有的是一个绑定好数据的ItemsControl <ItemsControl ItemsSource"{Binding Starts}"> </ItemsControl> 运行后呢是朴素的将数据竖着排列 如果想要数据之间有间距&#xff0c;可以使用数据模板&#xff0c;将数据放到TextBlock中显示&#xff0…

【Python可视化实战】钻石数据可视化

一、项目引言 1.背景和目标 钻石作为一种珍贵的宝石&#xff0c;其价格受到多种因素的影响。为了深入了解钻石价格的决定因素&#xff0c;我们收集了大量关于钻石的数据&#xff0c;并希望通过数据可视化来揭示钻石特征与价格之间的关系。 2.内容 收集钻石的各项特征数据&a…

【NR技术】 NR多连接处理流程(Multi-Connectivity operation)

1 概述 本文描述NR多连接处理流程。 2 辅节点添加Secondary Node Addition 2.1 EN-DC en-gNB由gNB-CU和gNB-DU组成&#xff0c;下图给出了EN-DC中SgNB的添加过程。 图1 SgNB addition procedure in EN-DC MN决定请求SN为特定的E-RAB分配资源&#xff0c;表明E-RAB的特征(E…

openGauss + Datakit

openGauss Datakit 1. 简介1.1 openGauss1.2 Datakit 2. 环境准备2.1 支持系统2.2 安装包获取2.3 注意事项2.4 系统环境设置 3. openGauss 安装3.1 创建用户和组3.2 创建工作目录3.3 关闭HISTORY记录/关闭交换内存3.4 解压安装包3.5 安装3.6 启动数据库3.7 连接数据库3.8 添加…