机器学习之线性回归
一. 线性回归的概念
线性回归(Linear Regression)是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。
二. 线性回归的几何图示
在二维空间中,线性回归就是找一条线,能拟合样本点,如下图所示
三.线性回归的模型函数和损失函数
设有m个样本点x,每个样本点都有n维特征,且每个样本都对应一个输出结果y,如下所示:
$[(x^1_0,x^1_1,x^1_2....x^1_n),(x^2_0,x^2_1,x^2_2....x^2_n)...(x^m_0,x^m_1,x^m_2....x^m_n)]$
那函数的模型可以表示如下:
$h_\theta (x_0,x_1....x_n)=\theta _0x_0+\theta _1x_1+....+\theta _nx_n$
其中(i=0,1,2,3...n)是模型参数,
(i=0,1,2,3,...n)是每个样本的n个维度(特征值),则可以简写记作$h_\theta(x_0, x_1, ...x_n) = \sum\limits_{i=0}^{n}\theta_{i}x_{i}$
如果用矩阵表示可以记作:$h_\mathbf{\theta}(\mathbf{X}) = \mathbf{X\theta}$
最小二乘法(通过最小化误差的平方和寻求数据的最佳函数的匹配的方法)
则损失函数如下所示:$J(\theta_0, \theta_1..., \theta_n) = \frac{1}{2m} \sum\limits_{i=0}^{m}(h_\theta(x_0, x_1, ...x_n) - y_i)^2$ (式1)
矩阵表示损失函数如:$J(\mathbf\theta) = \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y})$ (式2)
式1和式2表示的相同的意思,只是式1是代数方式,式2式矩阵表示方法(更加好看点)
四.线性回归求解方式
1、方程求解
对一个函数求最小值,就是对自变量求偏导数,使其等于0,然后求解方程,所以我们可以对式1或者式2,使其对求偏导,并令其等于0,得到如下公式:
但是此求解方法有以下两个弊端
1)需要求解$(\mathbf{X^{T}X})^{-1}$,可能数据存在线性相关,故不存在逆矩阵,所以无法求解
2)求逆矩阵,计算量非常大,其时间复杂度大概是$O(n^3)$
所以引入了第二种求解方法
2、梯度下降法
通过一步步迭代,使损失函数最小(到某一个范围内),终止迭代,并可求出的值
梯度下降法,也可能出现如下问题需要解决
1)梯度下降的步长的设定,(对于一些维度跨度范围很大的,数据需要标准化,归一化处理)
2)梯度下降,可能会存在鞍点,使其无法迭代到最小(当然线性回归不存在此类情况,因为凹函数一定能求解到一个全局最小值)
好吧,今天就写到这里,后面会用代码的形式来表达这两种算法


浙公网安备 33010602011771号