机器学习常用算法一:多元线性回归

来源:互联网 发布:淘宝客服指南 编辑:程序博客网 时间:2024/06/04 23:28

回归算法其实就是回归平均值:regression to the mean

回归问题主要关注确定一个唯一的因变量(dependent variable)(需要预测的值)和一个或多个数值型的自变量 (independent variables)(预测变量)之间的关系

广义线性回归包括逻辑回归、泊松回归等

1. 理解回归

火箭发射失败与否与O型环的温度的关系

上图是火箭发射失败次数与O型圈的温度之间的关系,回归在几何上理解为:找到一条直线,可以穿过所有的点,实际意义是:找到一种普适的规律,可以总结火箭发射失败的次数和O型圈温度的关系,以便于未来发射火箭的时候,选择合适的O型圈温度。

这里假设火箭发射失败次数为Y,O型圈温度为X,那么每个点可以得出一个方程:

Y(0) = W·X(0)Y(1) = W·X(1)...Y(n-1) = W·X(n-1)Y(n) = W·X(n)

其中,W代表O型圈温度对火箭发射失败次数的影响能力,我们称为权重
在这些方程中,Y和X都是已知的,通过逻辑回归,最终求出了W的值,得到一个普适的方程:
Y = W·X
这个普适的方程,我们称之为训练出来的模型,训练的过程就是通过已有数据通过回归求这个普适方程的过程,最终,通过这个训练出来的模型可以预测未来的Y值,比如,当下次发射火箭时,让O型圈的温度为T,那么发射失败的次数为W·T,通过这个值可以决定是否选择T这个温度。

2. 损失函数

最小二乘法

在机器学习中,永远没有一个完美的解,只有最优解,求最优解有专门的算法——梯度下降,之后用专门的篇章来介绍

在几何上的理解:永远找不到一条直线可以穿过N个散列的点,因为现实情况复杂多变,所以每个点都是散列的,它们的分布只能近似的遵循某种规律

所以在回归算法中,最终训练出的模型是有误差的,模型永远不能100%准确,那什么时候就可以认为模型已经准确了,不需要再训练了呢?

我们可以根据实际情况定义一个误差范围,只要训练出来的模型每次的误差在可接受的范围内,就认为它已经合格了

在回归算法中,使用最小二乘法来计算误差,即:
每个点的实际的Y值 - 预测的Y值平方求和然后除以点的个数
损失函数
以上求误差的函数我们称之为损失函数

3. 多元线性回归

在火箭发射失败与否这个事情上,O型圈的温度显然并不是唯一的因素,在现实生活中,一个事情的影响因素是有很多方面的,那么要求每个维度的权重,就要使用多元线性回归算法,即通过几下方程求各个W的值:

Y(0) = W(1)·X(1) + W(2)·X(2) + ... + W(n-1)·X(n-1) + W(n)·X(n) + CY(1) = W(1)·X(1) + W(2)·X(2) + ... + W(n-1)·X(n-1) + W(n)·X(n) + C...Y(n-1) = W(1)·X(1) + W(2)·X(2) + ... + W(n-1)·X(n-1) + W(n)·X(n) + CY(n) = W(1)·X(1) + W(2)·X(2) + ... + W(n-1)·X(n-1) + W(n)·X(n) + C其中, C是常量

把已有的数据一条条代入上面的方程中进行求解,这是一个迭代的过程,当误差(损失函数的值)在可接受范围内时,开始收敛(停止迭代),得出训练模型

在机器学习中,我们把影响因素称为维度,每条数据中每个维度的值称为这条数据的特征,Y值称为输出值,为了训练模型使用到的所有数据称为样本

多元线性回归

4. 多元线性回归的优化方式之一:升维

保险案例:
假设某个人对自己投保的花费(charge)由以下维度来确定:
W1:age(年龄)
W2:children(有几个孩子)
W3:bmi(肥胖指数)
W4:sex(性别)
W5:smoker(是否抽烟)
W6:region(居住地区)
即:

charges ~ age + children + bmi + sex + smoker + region

根据经验,年领越高,可能患病的概率越大,随着年龄增高,看病的花费呈指数级增长,所以加一个维度:

W7:age2(年龄的平方)

这样做是因为,当使用线性回归训练模型使用线性的数据(Y和X变化幅度一致)时,训练出的结果会更准确,同时,根据医学研究,bmi指数大于30时,患病概率大大增加,而小于30时,几乎没影响,那么,再增加一个维度:

W8:bmi2(bmi是否大于30,是为1,否为0)

此时训练模型如下:

charges ~ age + children + bmi + sex + smoker + region + age2 + bmi2

通过增加两个维度,将会使模型的推广能力增加
推广能力:一个模型预测的越准确(错误率越低),推广能力越高

注意:
增加维度时,根据经验的判断有可能是不准确的,需要反复测试,比如我们可以把W7定义为age的立方,或者其他级别的增长幅度来求错误率,比较后选取一个最合适的

5. 相关系数(了解)

相关系数就是指Pearson相关系数,它是数学家Pearson提出来的,两个变量之间的相关系数是一个数,它表示两个变量服从一条直线的关系有多么紧密,相关系数的范围是[-1,1],两端的值表示一个完美的线性关系,相关系数接近于0则表示不存在线性关系,通过协方差函数cov()、标准方差函数sd()、可以求出来相关系数cor
比如:

                 age         bmi     children      chargesage        1.0000000   0.1092719   0.04246900   0.29900819bmi        0.1092719   1.0000000   0.01275890   0.19834097children   0.0424690   0.0127589   1.00000000   0.06799823charges    0.2990082   0.1983410   0.06799823   1.00000000

age和charges的相关系数为0.299
children和charges的相关系数为0.067
说明age和charge具有比children和charge更好的线性关系,即age对charge影响更大
chilren和bmi和相关系数为0.012,说明孩子的个数和肥胖指数关系不大

原创粉丝点击