机器学习笔记--常见算法(3)--线性回归算法介绍及代码实现

本文介绍了回归分析的基本概念,重点讲解了线性回归,包括线性回归模型、假设函数、代价函数和线性回归系数的求解方法。详细探讨了梯度下降法和正规方程法,对比了两者在不同情况下的适用性。并提供了使用这两种方法的代码实现,帮助理解线性回归的实际应用。
摘要由CSDN通过智能技术生成

0.回归简介

回归属于有监督学习中的一种方法。该方法的核心思想是从连续型统计数据中得到数学模型,然后将该数学模型用于预测或者分类。该方法处理的数据可以是多维的。
这里写图片描述

线性回归:1.可以用来做预测,2.可以用来判断变量之间是否有联系(比如收入和学历的关系)

1.线性回归简介

用线性回归找到最佳拟合曲线
回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。
假如你想预测姐姐男友汽车的功率,可能会这么计算:
HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio
这就是所谓的回归方程(regression equation),其中的0.0015和-0.99称为回归系数(regression weights),求这些回归系数的过程就是回归。一旦有了这些回归系数,再给定输入,做预测就非常容易了。具体的做法是用回归系数乘以输入值,再将结果全部加在一起,就得到了预测值。

2.函数模型/假设函数 hypothesis function

现给定一堆数据(x1,y1),(x2,y2),⋯,(xn,yn),假定输入数据存放在矩阵X中,结果存放在向量y中,回归系数存放在向量w中
这里写图片描述
这里写图片描述
线性回归:
这里写图片描述
矩阵表示:
这里写图片描述
w是参数,也称线性回归系数

那么对于给定的数据x1,预测结果将会通过y1 = w^T * x给出
这里写图片描述

3.代价函数 cost function

现在的问题是,手里有一些x和对应的y,怎样才能找到w呢?
关键在于如何衡量y和x之间的差别。平方误差是回归任务中最常用的性能度量,因此我们可试图让平方误差最小化。平方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称欧氏距离。
平方误差和越小,说明线性回归拟合效果越好

代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出 误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回 归问题最常用的手段了。

这里写图片描述

我们的目的是最小化代价函数。
计算函数最小值的方法:
迭代算法:梯度下降
数值解法:正规方程方法(normal equations)(高等线性代数中的方法)
在数据量较大时,使用梯度下降法

最小二乘法
基于平方误差最小化来进行模型求解的方法称为“最小二乘法”。最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最重要的应用是在曲线拟合上。最小平方所涵义的最佳拟合,即残差(残差为:观测值与模型提供的拟合值之间的差距)平方总和的最小化。
在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。求解 ω \omega ω使代价函数最小化的过程,称为线性回归模型的最小二乘“参数估计”

平方误差和函数:
这里写图片描述
平方误差和的矩阵表示:
这里写图片描述
举例理解假设函数和代价函数

h ( x ) = θ 1 x h(x)=\theta_1x h(x)=θ1x,在这里简化 h ( x ) h(x) h(x) θ 0 = 0 \theta_0=0 θ0=0

假设函数和代价函数的区别:
在这里插入图片描述
h ( x ) = θ 0 + θ 1 x h(x)=\theta_0+\theta_1x h(x)=θ0+θ1x,有两个参数的时候, x x x, y y y轴表示 θ 0 \theta_0 θ0 θ 1 \theta_1 θ1的取值, z z z轴表示代价函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)的取值
在这里插入图片描述用coutour plots(轮廓图)表示
在这里插入图片描述

4.线性回归系数的求解

4.1 梯度下降法(Gradient Descent)

梯度下降法是一个用来求函数最小值的算法。
在这里插入图片描述

梯度下降法直观理解

Step1:初始化 θ 0 \theta_0 θ0, θ 1 \theta_1 θ1(通常的选择是将 θ 0 \theta_0 θ0设为0, θ 1 \theta_1 θ1设为0)

Step2:把这张图想象为一座山,你正站立在山的一点上,在梯度下降算法中,我们要做的就是旋转360度,看看我们周围,并问自己,我要在某个方向上用小碎步尽快下山,我需要朝什么方向?
在这里插入图片描述

梯度下降背后的思想
开始时我们随机选择一个参数的组合( θ 0 \theta_0 θ0, θ 1 \theta_1 θ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值