机器学习-线性回归

1 回归分析定义与分类

回归分析(Regression Analysis)是一种统计学上分析数据的方法,目的在于了解两个或多个变数间是否相关、相关方向与强度,并建立数学模型以便观察特定变数来预测研究者感兴趣的变量。个人目前的理解就是通过样本数据,在一定条件下去拟合原函数,让我们可以预测一些变量

2 线性回归

线性回归顾名思义就是拟合出来的函数是线性的,形如h(x,\theta)={\theta}_0 + {\theta}_1x
通常对于已有的数据,构造损失函数J(\theta),通过使得J(\theta)最小,得到拟合函数的参数。

2.1 个人理解的回归

将离散的数据洒在纸上,再用一定步骤画出符合要求的线,使其能体现出数据的特点,这就是回归。


样本值

拟合出的线性函数

2.2 关于J(\theta)损失函数

因为是确定参数\theta一般使用J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h(x,\theta)-y(i))^2
作为损失函数,其中h(x,\theta)为我们拟合出的线性函数(需要给定\theta的初始值),m为样本数据个数。换言之,只要给定一个h(x,\theta)我们都能根据该定义计算出对应的损失函数值。不难看出,该函数是和每一个数据点到拟合的线性函数h(x,\theta)的距离和是存在关系的(只是它的1/2m)。当拟合函数越接近数据点,则损失函数值越小,换言之当损失函数越小,h(x,\theta)就更符合要求。

2.3 确定\theta使得J(\theta)最小

就是求J(\theta)的最小值

2.3.1 迭代法 最小\最大梯度

这应该是数值计算的部分,换言之,得到的解是数值解。随着迭代次数的加大,解的精确度就越高。最小梯度方法证明并不给出(实在是不会Orz,感兴趣可以看机械工业出版社的《数值方法》P257)下面只给出这个算法的步骤:
其实只用一个式子即可
\theta_j:=\theta_j-\alpha\frac{\partial } {\partial \theta_j}J(\theta)
其中\alpha为学习率,0 \leq j < k,kh(x,\theta)\theta的最大下标。
从线性代数来看有列向量:\theta = \begin{bmatrix}\theta_0 \\ \theta_1 \\ \vdots\\ \theta_k\end{bmatrix}
列向量:x = \begin{bmatrix}x_0 \\ x_1 \\ \vdots\\ x_{m-1}\end{bmatrix}
那么有h_i(x,\theta)={\theta}_0 + {\theta}_1x_i\cdots+\theta_kx-i=x{\theta}^T(i) (0\leq i <m)
h(x,\theta)={\theta}^Tx
不难得到\frac{\partial } {\partial \theta_j}J(\theta)=\frac{1}{m}(h(x,\theta)-y(i))
\theta_j-\alpha\frac{\partial } {\partial \theta_j}J(\theta)=\theta_j- \frac{\alpha}{m}(h(x,\theta)-y(i))
换言之,只要设定\theta初值就可以通过上式计算出使得J(\theta) 变小的\theta值,然后继续计算,直到J(\theta) 为最小值或者达到迭代次数,而\alpha为学习率,目前只需知道\alpha应为较小的一个值,\alpha过小会导致学习速度下降,迭代次数过大.而\alpha过大会导致得不到使得J(\theta)有最小值的\theta.
其实可以写作\theta := \theta - \alpha\nabla f
\nabla f= \begin{bmatrix} \frac {\partial}{\partial \theta_0}J(\theta) \\ \frac{\partial}{\partial \theta_1}J(\theta) \\ \vdots \\ \frac{\partial}{\partial \theta_k}J(\theta) \end{bmatrix}
没错,就是我们在高数学到的J(\theta)的梯度
利用该方法就可以得到令J(\theta)有最小值的\theta值了,所以叫最小梯度算法,如果求最大值就叫最大梯度算法(减法改加法)......

2.3.2 正规方程法

其实这两种方法都是去解线性方程组:
\begin{equation} \begin{cases} \frac {\partial}{\partial \theta_0}J(\theta)= 0 \\ \frac {\partial}{\partial \theta_1}J(\theta)= 0 \\ \vdots \\ \frac {\partial}{\partial \theta_k}J(\theta) = 0 \\ \end{cases} \end{equation}
这个方程的解为\theta = (X^TX)^{-1}X^Ty
X为m行n列矩阵(多元线性回归),如果是一元线性回归则X为1行n列的矩阵,\theta为n行1列的矩阵
证明过程如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是线性回归 我们首先用弄清楚什么是线性,什么是非线性。 线性:两个变量之间的关系是一次函数关系的——图象是直线...
    Bobby0322阅读 5,049评论 0 4
  • 1 什么是”最小二乘法”呢? 线性回归是很常见的一种回归,线性回归可以用来预测或者分类,主要解决线性问题。 插图摘...
    Bobby0322阅读 12,247评论 0 4
  • 一、回归简介   探索两个或两个以上变量之间的关系,希望找到一个自变量的公式预测因变量。  ​最小二乘法(又称最小...
    爱拼的小伙子阅读 750评论 0 0
  • 线性回归算法 线性回归算法是用来拟合连续值样本的一类算法,具体来说就是在我们观察到数据是线性变化的时候,我们可以使...
    子龙爱弹琴阅读 535评论 0 1
  • 最近开始阅读,首先挑了一本《解忧杂货店》,不仅是因为它是畅销书,还有一定内在的原因,但是这本书没有让我失望。 首先...
    wdwjianshu阅读 333评论 0 0

友情链接更多精彩内容