机器学习之线性回归

一. 线性回归的概念

线性回归(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$

其中\theta_i(i=0,1,2,3...n)是模型参数,x_i(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,使其对\theta求偏导,并令其等于0,得到如下公式:

 

但是此求解方法有以下两个弊端

1)需要求解$(\mathbf{X^{T}X})^{-1}$,可能数据存在线性相关,故不存在逆矩阵,所以无法求解

2)求逆矩阵,计算量非常大,其时间复杂度大概是$O(n^3)$

 所以引入了第二种求解方法

2、梯度下降法

通过一步步迭代,使损失函数最小(到某一个范围内),终止迭代,并可求出\theta的值

梯度下降法,也可能出现如下问题需要解决

1)梯度下降的步长的设定,(对于一些维度跨度范围很大的,数据需要标准化,归一化处理)

2)梯度下降,可能会存在鞍点,使其无法迭代到最小(当然线性回归不存在此类情况,因为凹函数一定能求解到一个全局最小值)

好吧,今天就写到这里,后面会用代码的形式来表达这两种算法

posted @ 2019-04-17 13:18  华彬  阅读(179)  评论(0)    收藏  举报