首页 > 其他分享 >matlab实现线性回归机器学习

matlab实现线性回归机器学习

时间:2024-03-20 16:02:46浏览次数:21  
标签:机器 函数 迭代 梯度 如下 学习 matlab 线性 成本

一、要求

1.编程实现Linear Regression模型,计算线性回归损失的函数,求解实际问题

2.编程实现梯度下降算法(BGD、SGD、minibatch-GD),比较学习率α对结果影响

3.使用Linear Regression的标准方程法求解最优解

二、算法

目标函数:

成本函数:

线性回归的目的是使得成本函数值最小

求解算法:梯度下降法

步骤:1.初始化θ(随机初始化θ,可以初始为0);

      2.沿着J(θ)负梯度方向迭代,更新后的θ使J(θ)更小;

      3.不断迭代直到达到某个停止条件为止,如迭代次数达到某个指定的值,或算法达到某个可以允许的误差范围。

迭代公式:

,其中α为学习率(步长)

三、过程记录

1.数据集可视化:从MATLAB中导入数据集文件,将第一列作为x轴,第二列作为y轴,如下:

其中plotData为绘图函数,其内容如下:

绘制的图形如下图所示:

图1 数据集可视化图像

2.计算线性回归损失函数:

创建n×2的特征值的矩阵X,它应该包括样本的第一列以及截距列(初始为1),创建2×1的θ值矩阵,初始化为0。

然后在computeCost函数中使用成本函数计算公式计算损失函数的值,公式的代码如下:J = sum((X * theta - y).^2) / (2*m);%m为样本数

可以得到由初始θ为0的成本为32.07

3.梯度下降:

通过梯度下降的方法来不断更新θ值,并根据损失函数J(θ)的值来找到趋于收敛的最小成本值。设置更新的迭代次数为1500次,算法中的学习率alpha先设定为0.01。

实现梯度下降函数的代码如下:

每一次迭代都需要同时对θ1和θ2进行更新,所以需要创建一个新的矩阵theta_s来储存前一个θ值。通过该函数的调用可以得到最终的θ值和每一次迭代的成本值,如下:

图2 最终θ值

图3 成本函数值(部分)

通过观察成本函数值的变换可以发现它的值从来没有上升且最后收敛于稳定值,满足条件。

4.绘制线性拟合曲线:

在获得最小成本函数值以及对应的θ值后,可以利用这些参数绘制拟合曲线,结果如下:

图4 拟合曲线与初始样本点分布

5.预测:

利用θ值可以对未知的特征值进行预测,例如在例子中预测35000和70000人区域的利润结果为:

图5 预测结果

6.成本函数可视化:

为了更直观的观察θ值与成本函数J(θ)的关系,通过computeCost函数将不同的θ值代入求解绘制出θ1与θ2以及J(θ)的三维图

结果如下:

图6 成本函数三维曲面图

也可以使用MATLAB中contour函数来绘制等高线图如下:

图7 成本函数等高线图

其中红色标志代表的是最佳的θ1和θ2值。同时也可以看出,成本函数具有全局最小值,并且梯度下降的每一步都在靠近最小值对应的点。

7.对比实验:

在上述实验过程中,我们在进行梯度下降时,需要设置相关参数,一个是迭代次数,另一个是学习率,所以接下来对学习率进行进一步研究。

多次改变学习率的值观察结果:

图8 学习率为0.02

图9 学习率为0.3

可以看出此时明显异常,且观察成本函数的值,发现无法收敛

图10 学习率为0.001

图11 学习率为0.00001

在减小学习率的过程中,可以去观察成本函数的值的变化,会发现原来的1500迭代次数已经不能满足函数收敛了,而学习率为0.00001时迭代次数即使增加到几万次也无法完全收敛。

四、结果分析

    上述实验成功完成了线性回归模型的建立,损失函数的计算以及梯度下降算法的实现,而在梯度下降的实现过程中,我们也发现了学习率对结果的影响:如果学习率过大,则每次迭代可能不会减小代价函数的值,,甚至会超过局部最小值导致无法收敛;如果学习率过小,则达到收敛所需要的迭代次数将会特别高

标签:机器,函数,迭代,梯度,如下,学习,matlab,线性,成本
From: https://blog.csdn.net/stay23/article/details/136879157

相关文章

  • 湖南克鲁斯机器人齿轮箱维修,高效可靠!
    一、克鲁斯机器人齿轮箱的常见故障类型齿轮磨损:长时间的高负荷运转会导致齿轮磨损,进而影响传动效率和精度。轴承故障:轴承损坏或润滑不良可能导致齿轮箱运转不平稳,产生噪音和振动。密封失效:克鲁斯机器人齿轮箱密封件老化或损坏可能导致润滑油泄漏,影响齿轮和轴承的润滑效果。......
  • 机器学习-微积分
    损失函数损失函数的意义机器学习-linearregression-两大经典场景线性回归-预测房价分类-classificationproblem使用到的数学知识导数-derivative函数在某一时刻的瞬时变化率instantaneousrateofchange函数在某点的切线斜率=导数最大值、最小值的......
  • 【机器学习】无监督学习算法之:主成分分析
    主成分分析1、引言2、主成分分析2.1定义2.2原理2.3实现方式2.4算法公式2.5代码示例3、总结1、引言小屌丝:鱼哥,快,快。小鱼:…啥情况,你可别乱喊。小屌丝:额…我的意思,是你该继续小鱼:…说清楚,继续啥???小屌丝:就…就是…继续啊小鱼:我擦…你说清楚,不然容易误......
  • 在离线机器上安装并运行Milvus镜像
     机器:Ubuntu等Linux类系统,提前安装好docker、docker-compose——我的另一篇博客目标:Milvus的standalone-v2.3.0-beta版本——官方教程 以下为非GPU版。GPU版的需要准备好nvidia-docker环境,配置文件也不同 在可联网的机器中:1.获取Milvus镜像的配置文件并保存为docker-co......
  • 2024年是否是人形机器人的元年 —— 继OpenAI/Google/特斯拉之后黄仁勋也宣布NVIDIA公
    相关:https://www.youtube.com/watch?v=bMIRhOXAjYk......
  • 机器学习结合运筹学,有钱途~
    学习笔记6—报童模型(最详细最全总结含公式推导和应用举例)在这篇文章中我们介绍了标准的报童模型,在标准模型中需求分布是已知的,然而在现实世界中,需求往往是不确定的,不容易得知需求的分布。这样的问题也被称为不确定优化问题,常采用随机规划、鲁棒优化、分布式鲁棒优化、模糊规划......
  • 机器学习-线性代数
    二维空间-Singular平行的线是lineardependence的,singular的,相交的线是Non-singular的,交点就是二元方程解 在机器学习的计算过程中,等式右边的常数全部转化为0,确保每条线都经过(0,0)三维空间-singular平面相交于一条线或者重叠,则为singular线性相关有唯一解的方程组,是sing......
  • 120_线性回归
    目录线性回归简介线性回归应用场景什么是线性回归线性回归的特征与目标的关系分析代码实例欠拟合和过拟合线性回归简介线性回归应用场景什么是线性回归线性回归的特征与目标的关系分析代码实例欠拟合和过拟合......
  • 070_机器学习搭建环境
    目录机器学习基础环境安装与使用库的安装jupyternotebook使用机器学习基础环境安装与使用库的安装jupyternotebook使用......
  • 英伟达GTC2024大会开幕,发布机器人003计划,引领具身智能新时代
    一、背景在全球科技创新的前沿阵地,2024年3月的英伟达GPU技术大会(GTC)再次成为全球瞩目的焦点。在此次盛会上,英伟达公司创始人兼首席执行官黄仁勋先生不仅展示了其公司在加速计算和生成式AI领域的最新突破,更震撼发布了具有里程碑意义的“通用机器人003计划”,预示着人工智能与人......