【机器学习】线性回归

机器学习之线性回归(Linear Regression) 线性学习中最基础的回归之一,下面从线性回归的数学假设,公式推导,模型算法以及实际代码运行几方面对这一回归进行全面的剖析~ 阅读详情

本文转载自:知识库-线性回归

前段时间其实已经写过三篇关于回归类问题的博客,但是那三篇主要注重的是代码练习。本篇博客注重的理论分析。而且对各类回归问题做一个总结,包括一元线性回归,多元线性回归,逻辑回归,岭回归,softmax回归。以前在学习的时候感觉这部分很通畅,没遇到什么大问题,但是昨天复习的时候竟然被几个简单概念给卡主了,最后还是开了吴恩达教授的视频才恍然大悟的,哎正不知道该说什么了。

在正式分析之前,先简单讲几个概念,后面还会详细分析。

1、梯度下降算法。是一种优化算法,优化就是求解一个函数的最大值或最小值。我们在寻找最佳参数时,按照参数梯度的方向去寻找,才能最快的找到最佳解。

2、损失函数。这部分在复习时,把我卡住了。原来在学习的时候很顺畅,但是昨天,有很多细节就是想不通。损失函数就是衡量我们找的参数是不是最佳的函数,那怎么衡量呢?最直观的感觉就是拿预测值和真实值比较,计算一下差异。如果差异越大说明我们找到的参数越差,差异越小说明我们的参数越好。损失函数就是基于这个原理设计的。

正式开讲:

1、线性回归

1.1 一元线性回归

分解:一元:和数学中的概念相同,指的是函数中只有一个变量(一般用x表示)

   线性:是说我们要寻找的预测函数是线性的,也就是直线函数

   回归:就是根据现有数据拟合出一个函数,利用这个函数可以对新数据进行预测,得到预测值。

        

下面我们来举例何为一元线性回归分析,图1为某地区的房屋面积(feet)与价格($)的一个数据集,在该数据集中,只有一个自变量面积(feet),和一个因变量价格($),所以我们可以将数据集呈现在二维空间上,如图2所示。利用该数据集,我们的目的是训练一个线性方程,无限逼近所有数据点,然后利用该方程与给定的某一自变量(本例中为面积),可以预测因变量(本例中为房价)。本例中,训练所得的线性方程如图3所示。

                                                  

 图1、房价与面积对应数据集

                                            

                                                          图2、二维空间上的房价与面积对应图

 

                                                                                 图3、线性逼近

同时,分析得到的线性方程为:


        1.2 多元线性回归

       多元线性回归于一元线性回归的区别就在于变量的数量。

  因此,我将两个放在一起分析。

接下来还是该案例,举一个多元线性回归的例子。如果增添了一个自变量:房间数,那么数据集可以如下所示:

                                  

                                                         图4、房价与面积、房间数对应数据集

那么,分析得到的线性方程应如下所示:

因此,无论是一元线性方程还是多元线性方程,可统一写成如下的格式:

上式中x0=1,而求线性方程则演变成了求方程的参数ΘT。

线性回归假设特征和结果满足线性关系。其实线性关系的表达能力非常强大,每个特征对结果的影响强弱可以有前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算,这样就可以表达特征与结果之间的非线性关系。


 从上面的两个例子中我们可以看到,线性回归最终要找的就是h(x)函数,而h(x)函数是由参数θ决定,因此我们最终的目的是找到最佳的θ。这就用到了梯度下降算法。

1.3 梯度下降算法

我们怎样评价我们找到的参数是否最佳呢?这就需要用到损失函数。对线性回归损失函数如下:


前面的系数是为了求导方便而添加的,我们可以看到括号中计算的就是预测值与真实值的差值,之所以对其进行平方操作,因为差值有正有负,进行求和有可能为0,这不是我们想要的。损失函数越小就表示预测值与真实值的差异越小,即我们的h(x)越好。因此最终问题转化成了计算损失函数的最小值问题。

在介绍利用梯度下降求最小值前,先来感受下什么是梯度下降。

     

梯度下降法是按下面的流程进行的:

1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。

2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。

为了更清楚,给出下面的图:

                                                    image 

这是一个表示参数θ与误差函数J(θ)的关系图,θ0,θ1表示θ向量的两个维度。J(θ)表示高度。J(θ)的最小值就是图形的谷底所代表的值。那怎么样才能快速的到大谷底呢?我们做个假设,如果你是一个极限运动爱好者,正在玩山地速降,如果你想让速度更快,你一定是找坡度比较陡的坡向下冲。梯度下降算法是一样的,沿着坡陡的地方,才能快速到大谷底。在数学上陡坡就是梯度大的地方。

在上面提到梯度下降法的第一步是给θ给一个初值,假设随机给的初值是在图上的十字点。

然后我们将θ按照梯度下降的方向进行调整,就会使得J(θ)往更低的方向进行变化,如图所示,算法的结束将是在θ下降到无法继续下降为止。

                                                          image 

当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,可能是下面的情况:

                                                              image

上面这张图就是描述的一个局部最小点,这是我们重新选择了一个初始点得到的,看来我们这个算法将会在很大的程度上被初始点的选择影响而陷入局部最小点

有了梯度下降算法,下面我们利用梯度下降算法进行参数跟新的推到。


上式中的导数部分就是梯度,theta按照负梯度的方向调整。

最重要的来了,这个梯度怎么求呀!别担心,仔细看下面的推导。

我当时卡主的地方就是对(h(x)- y)求导,我当时把h(x)想成逻辑回归中的sigma函数了,在线性回归中h(x)是线性函数。

有了上面的推导,公式5就演变成了


我们可以看到最后梯度部分就变成了减法和乘法运算。是不是很高兴呢?


1.4 随机梯度下降

       我们再次看看上式中有个求和的操作,如果我们的数据很多几十万个,我们就要疯了,这计算量也忑大了吧。别担心,为了因对这个问题,随机梯度应运而生。

         其实,前面讲的梯度下降算法称之为批量下降,在批量下降算法中损失函数计算的是所有预测值和真实值之间的差异,而在随机梯度中我们只关心当前输入数据的预测值与真实值之间的差异,那这样计算量就小很多。但是,相较于批量梯度下降算法而言,随机梯度下降算法使得J(Θ)趋近于最小值的速度更快,但是有可能造成永远不可能收敛于最小值,有可能一直会在最小值周围震荡,但是实践中,大部分值都能够接近于最小值,效果也都还不错。

修改完损失函数后,参数跟新推导和批量梯度是一样的,这里就不再写了,最终的结果是:




本来想把回归问题总结成一个博客,但是发现已经写了不少了,只能放到下一篇博客了。

机器学习——回归 参考链接如下: https://blog.youkuaiyun.com/qq_36142114/article/details/80441363 https://blog.youkuaiyun.com/weixin_44697198/article/details/109405212 https://blog.youkuaiyun.com/qq_41800366/article/details/86583789 1.机器学习概述 机器学习算法有很多,有分类、回归、聚类、推荐、图像识别领域等等,具体算法比如线性回归、逻辑回归、朴素贝叶 阅读详情

相关推荐

python机器学习-线性回归(LinearRegression)算法

用python进行线性回归分析非常方便,如果看代码长度你会发现真的太简单。但是要灵活运用就需要很清楚的知道线性回归原理及应用场景。现在我来总结一下用python来做线性回归的思路及原理。 线性回归应用场景 线性回归介绍 机器学习中的线性回归 简单的线性回顾实例 线性回归应用场景 线性回归介绍 ——线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系...

黄俊文的博客 4万+

机器学习----线性回归

前段时间其实已经写过三篇关于回归类问题的博客,但是那三篇主要注重的是代码练习。本篇博客注重的理论分析。而且对各类回归问题做一个总结,包括一元线性回归,多元线性回归,逻辑回归,岭回归,softmax回归。以前在学习的时候感觉这部分很通畅,没遇到什么大问题,但是昨天复习的时候竟然被几个简单概念给卡主了,最后还是开了吴恩达教授的视频才恍然大悟的,哎正不知道该说什么了。 在正式分析之前,先简单讲几个概念

Sunshine_in_Moon的专栏 2129

Spark-ML 线性回归 LinearRegression (1)

Spark-ML 线性回归 LinearRegression参数详述:

qq_24734217的博客 1876

目标识别与跟踪基础知识(二)

1.逻辑回归先讲一下线性回归1.1线性回归 通过学习一条直线来拟合样本点,在二维平面上,就是y=ax+b,学习参数a和b,在n维空间中,形式可以表示为y = a1x1 + a2x2 + …… + b,学习a1…an-1和b。 但是现实中,xi是模型输入,模型的输入多种多样,连续值、离散值、枚举值;而且输入的范围差别很大。如:室外温度的范围[-50, 50],某概率的范围[0, 1

weixin_38866505的博客 737

【机器学习小论文】sklearn线性回归LinearRegression代码及调参

一、前言 最近在写小论文,就是硕士毕业论文的部分成果,需要用到线性回归,所以就把相关代码贴上,便于日后写论文时总结,也顺便给后来者提供思路。小论文的思路主要是,先用线性回归,再用随机森林,最后再用xgboost,来预测房价,最后得出结论。所以,这个会陆续的贴出相关代码。至于数据清洗那一块,暂时不贴上了,主要原因就是数据清洗不容易,并且每个人的清洗方法也不一样,所以主要还是看思路。 二、算法简介 2.1 什么是回归分析 回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关

xiaohutong1991的专栏 7107

【Python-ML】SKlearn库线性回归器LinearRegression

# -*- coding: utf-8 -*- ''' Created on 2018年1月24日 @author: Jason.F @summary: 有监督回归学习-基于最小二乘法构建线性回归模型 最小二乘法(Ordinary Least Square,LOS),估计回归曲线的参数,使得回归曲线到样本点垂直距离(残差或误差)的平方和最小 ''' import pandas as pd impo

医疗影像检索 1646

R语言下的线性回归模型

一、一元线性回归1、定义只考虑一个因变量和一个自变量之间的关系,其数学表达式为:其中beta0为模型的截距项,beta1为模型的回归系数,eps为模型的随机误差,一般假定...

lsxxx2011的专栏 6305

机器学习笔记一:使用LinearRegression实现Boston房价线性回归

一、LinearRegression类 sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None) 参数 含义 fit_intercept 是否有截据,如果没有则直线过原点 normalize 是否将数据归一化 copy_X 默认为True,当为True时,X会被copi

耐心的小黑的博客 2780

【机器学习】9种回归算法及实例总结,建议学习收藏

我相信很多人跟我一样,学习机器学习和数据科学的第一个算法是线性回归,它简单易懂。由于其功能有限,它不太可能成为工作中的最佳选择。大多数情况下,线性回归被用作基线模型来评估和比较研究中的新方法。 在处理实际问题时,你应该了解并尝试许多其他回归算法。一方面可以系统学习回归算法,另外一方面在面试中也常用到这些算法。在本文中,我们将通过使用 Scikit-learn 和 XGBoost 的动手实践来学习 9 种流行的回归算法。 喜欢本文记得收藏、关注、点赞。 【注】文末有技术交流群 结构如下: 线性回归 多项式回

Python学习与数据挖掘 2万+

通过声音识别鸟类

根据野生鸟类的外表来识别它是一回事。仅仅根据声音来识别同一只鸟是另一回事。除非你是一个熟练的观鸟者,通过声音识别鸟类可能相当具有挑战性德国马尔堡大学的一组数学、计算机科学和生物学研究人员设计了一种快速识别鸟类和监测当地生物多样性的方法。他们使用连接到 NVIDIA 的便携式设备拍摄的录音根据研究人员的说法是一个边缘人工智能系统,“基于分布式系统中运行的嵌入式边缘设备,能够对森林中记录的声景进行高效、连续的评估。”要了解更多信息,请参阅。

分享AI前沿科技 1680

ST电机库实战:从状态机到稳健启动流程的深度解析

本文深度解析了ST电机库中状态机的核心作用与稳健启动流程。状态机作为电机控制的“交通指挥官”,通过IDLE、CHARGE_BOOT_CAP、ALIGNMENT等一系列状态的严格跳转,确保了永磁同步电机(PMSM)和直流无刷电机(BLDC)的安全启动与可靠运行,是避免硬件损坏和实现平稳控制的关键。

weixin_29161785的博客 226

[ Spark ml ] 线性回归LinearRegression案例

案例实现 **内有详情备注 import org.apache.spark.ml.linalg.Vectors import org.apache.spark.ml.regression.{LinearRegression, LinearRegressionModel, LinearRegressionTrainingSummary} import org.apache.spark.sql.{DataFrame, SparkSession} object linearregression { def

weixin_52299264的博客 1828

obisidian插件之【templater】模板的中文说明书

Templater 是一种模板语言,可让您将变量和函数结果插入到笔记中。它还允许您执行操作这些变量和函数的 JavaScript 代码。使用 Templater,您将能够创建强大的模板来自动执行手动任务。

m0_55795604的博客 1万+

Flink ML LinearRegression 用 Table API 训练线性回归并输出预测值

Flink ML 的 LinearRegression 实现了线性回归算法,通过训练数据学习权重参数,预测连续值目标。输入需要特征向量(featuresCol)和标签(labelCol),可选权重列(weightCol)。训练时可调参数包括正则化系数、学习率等。特征预处理推荐标准化(StandardScaler)以提高收敛性。使用流程包括fit训练模型和transform预测,输出包含预测值(predictionCol)。支持数值和类别特征处理,适用于多种回归场景。

hello.reader 1084

红外避障模块介绍

该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接回输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3v-5v。该模块测距离2~~30cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;1.VCC外接3.3v-5v电压(可以直接与5v单片机和3.3v单片机相连).

weixin_46251230的博客 2万+

使用Simulink进行带通滤波器的设计与仿真研究

摘要:本文介绍利用Simulink设计和仿真带通滤波器的方法。通过定义系统需求(保留100-500Hz信号),创建包含多频信号源、加法器和巴特沃斯滤波器的模型,重点展示滤波器频率选择特性。详细步骤包括模块配置、参数设置(中心频率300Hz、带宽400Hz)、信号连接及可视化分析。实验验证了带通滤波器有效提取目标频段信号的能力,为复杂信号处理系统开发提供基础框架。所需工具为MATLAB R2023a和DSPSystemToolbox。

xiaoheshang_123的博客 326

机器学习之线性回归算法预测数据

机器学习之线性回归算法预测数据,包括线性回归算法的理解、LinearRegression理解以及预测一元线性回归数据、预测二元线性回归数据、预测多元线性回归数据。

是十一月末的博客 1888

【通信原理】基于【MATLAB】的通信OFDM系统仿真

主要进行OFDM系统的仿真,使用MATLAB软件对OFDM系统的接收端和发射端分别进行模拟仿真。

ALi.S的博客 5791

机器学习—线性回归(Linear Regression)

线性回归原理和分析

1641

小红书urlscheme和Activity

本文档详细介绍了小红书App的Deeplink跳转规范,涵盖了多个功能模块的跳转协议。主要内容包括:主页各Tab(关注、发现、购买)的跳转方式;不同类型笔记(图文/视频/长笔记)的详情页跳转参数;用户相关页面(主页/绑定/资料/消息等)的跳转协议;搜索功能(输入页/结果页)的跳转方式;以及话题、标签、专辑、H5页面等特殊场景的跳转实现。文档还提供了各跳转协议所需的参数说明,包括参数类型、默认值、是否必填等详细信息,并标注了不同版本和平台的兼容性要求。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 786

1分钟吃透一篇文献,借助AI辅助各部分精读,效率提升10倍(附AI提示词)

你现在是一名【研究领域】的资深博士,非常擅长阅读与分析长篇论文,那么接下来我会给你上传一篇论文,请你按照我的要求辅助我阅读。

qq_64378896的博客 640

linearregression_机器学习(2)——线性回归(Linear Regression)

学习阶段:大学计算机,人工智能。前置知识:多元微积分、线性代数、编程基础。从简单的情况开始,渐渐地了解机器学习。1. 单变量线性回归单变量线性回归,简而言之,就是提供一堆数据点 作为训练集,要机器拟合出一条线性函数 . 对于新提供的横坐标,机器就能预测其对应的纵坐标。拟合效果大致如下图所示:单变量线性回归的效果1.1 单变量线性回归建模符号约定: 表示训练样本数。 表示输入变量/特征。(比如说...

weixin_39676242的博客 420

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

20241230 机器学习ML -(1)线性回归(scikitlearn)

线性代数理论及证明过程请参考教材。公式推理可以参考AI。

weixin_46449024的博客 1426

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Python机器学习 — 线性回归(Linear Regression)

线性回归 -- 简介        线性回归是机器学习算法中最简单的算法之一,它是监督学习的一种算法,主要思想是在给定训练集上学习得到一个线性函数,在损失函数的约束下,求解相关系数,最终在测试集上测试模型的回归效果。          线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为, 为误差服从均值为0的正态分布。 ...

ls秦 5万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

4.机器学习-十大算法之一线性回归算法(LinearRegression)案例讲解

线性回归是一种用于预测数值型数据的统计学分析方法,它通过建立一个或多个自变量与因变量之间的线性关系来进行预测。线性回归的基本思想是通过拟合最佳直线(也就是线性方程),来描述自变量和因变量之间的关系。这条直线被称为回归线,其目的是使得所有数据点到这条直线的垂直距离(即残差)的平方和最小。这个最小化过程通常称为最小二乘法。以山河作礼。🎖️🎖️:Python领域新星创作者,优快云实力新星认证,优快云内容合伙人,阿里云社区专家博主,新星计划导师,在职数据分析师。💕💕悲索之人烈焰加身,堕落者不可饶恕。

weixin_50804299的博客 1万+

机器学习--线性回归(LinearRegression)

机器学习–线性回归 基本概念 线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。本文只讨论一元线性回归。 表达形式为: y=wTx+by = w^Tx + by=wTx+b 我们通常使用最小二乘法对方程进行求解。 优化目标为: arg maxw∥wT−y∥22arg\ \mathop{max}\limits_{w}\Vert w^T -y\Vert_2^2arg wmax​∥wT−y∥22​ 局限性

weixin_42727538的博客 745
上一篇: 【 Python进阶】python strip() split()函数实战
下一篇: 【Machine Learning in Action】使用Apriori算法进行关联分析
Waitfou
博客等级 码龄10年 61粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值