机器学习算法主要有2类:监督学习、无监督学习。前者是指训练样本是有标记的,需要学习的是模型与参数,使得预测值尽可能地接近真实值,典型代表为回归、分类,其中回归是指标记为连续数值(如考试分数),而分类则是指标记为离散值或类别标号(比如天气是多云还是小雨);后者是指训练样本是无标记的,需要学习出这些样本本身的联系或者逻辑关系、结构关系,典型代表为聚类。
如上所述,线性回归自然属于监督学习。线性回归就是给定输入样本:
(x 1 ,y 1 ),(x 2 ,y 2 ),(x 3 ,y 3 ),...,(x m ,y m )
训练出参数 θ,使得预测值
y ^ i =x i ∗θ 尽可能地接近
y i (i=1,2,3,...,m) 。假设:
X=[x 1 ,x 2 ,x 3 ,...,x m ] T ,Y=[y 1 ,y 2 ,y 3 ,...,y m ] T
则参数
θ 应使得
X∗θ=Y 尽可能地成立。线性回归的形式为:
x i 0 ∗θ 0 +x i 1 ∗θ 1 +x i 2 ∗θ 2 +...+x i k ∗θ k =y i (i=1,2,3,...,m)
而我们要训练的就是参数
θ=[θ 0 ,θ 1 ,θ 2 ,⋯,θ k ] 。
对于线性回归的参数最优化,一般采用均方误差最小化((Least Mean Square,LMS)的思想,即:
E=12m ∑ i=1 m (y ^ i −y i ) 2
LMS的物理意义很好理解:试图找到一条由
θ=[θ 0 ,θ 1 ,θ 2 ,⋯,θ k ] 确定的直线,使得所有样本到此直线的欧氏距离最小,如下图所示。
那么代价函数就可以写成:
J(θ)=12m ∑ i=1 m (y ^ i −y i ) 2 =12m ∑ i=1 m (x i ∗θ−y i ) 2
优化目标为:
min θ J(θ)
在求解优化函数时,可以用最小二乘参数估计。线性回归的代价函数是凸函数,可采用梯度下降法(会在以后说明),也可以用求导的方法,对
θ 求导,并使得
∂J(θ)∂θ 0 =1m ∑ i=1 m (x i ∗θ−y i )∗x i 0 =0
∂J(θ)∂θ 1 =1m ∑ i=1 m (x i ∗θ−y i )∗x i 1 =0
∂J(θ)∂θ 2 =1m ∑ i=1 m (x i ∗θ−y i )∗x i 2 =0
⋮
∂J(θ)∂θ n =1m ∑ i=1 m (x i ∗θ−y i )∗x i n =0
综合上式可得到:
X T ∗(X∗θ−Y)=0
经过一些矩阵运算,当
X T ∗X 为满秩矩阵时,可得到
θ 最优解的闭式解:
θ ^ =(X T ∗X) −1 ∗X T ∗Y
而当
X T ∗X 不是满秩矩阵时,则需要对特征进行选择或者进行正则化。
其实在实际应用中,我从没用过线性回归,这是一个很简单的模型。
1)线性回归形式简单,只是属性的线性组合,而训练出的只是各个属性的权重值。
2)线性回归可解释性强,属性前的权重代表了此属性的重要程度,或对结果的影响程度。
但是简单并不意味着不重要。相反地,线性回归在机器学习算法中具备基础地位。
1)线性回归是以后学习其他复杂机器学习算法以及非线性模型的基础。
2)通过对线性回归引入层级结构、联系函数或进行高维映射,可以得到广义线性模型等。