0%

回归算法 Regression Algorithm

机器学习的一般步骤是:训练样本 - 特征抽取 - 学习函数 - 预测。其中,为了使模型型获得更多训练,预测和学习函数是在不断循环的。

机器学习的问题可以分为两种类型:分类问题 预测问题。分类模型是将数据最终归于某一个类型,而预测模型的结果更多的是一个具体数值。这里先讲一讲机器学习中经典的回归算法。

线性回归

我们用一个例子来展现线性回归的建模过程。下表是一个银行判断用户贷款额度的数据集,其中,银行给用户的贷款额度取决于两个因素:工资和年龄,这两个因素就是这个数据集的_特征_。

工资( 年龄( 额度(
4000 25 20000
8000 30 70000
5000 28 35000
7500 33 50000
12000 40 85000

建立模型

根据上表,给每个特征 一个参数 ,构成根据特征预测出的额度

但是预测的额度与真实值之间可能会有一定的误差,于是真实的额度可以表示为

其中误差 是_独立_(样本直接无关联)且_具有相同分布_(大部分误差在一个范围中)的,通常被认为服从均值为 0、方差为 高斯分布

  • 假设误差分布为 (即 为高斯分布(均值为 0))

    其中

    用公式 替换误差 ,得到

    这里 ,即 为概率值,它越接近 1,概率越大,预测值越接近真实值。

似然函数和目标函数

我们希望每个预测值都尽量接近真实值,所以构造了 似然函数

这里_累乘所有样本的概率值,目标是使 尽可能大_。(因为如果每个训练样本的预测值都接近真实值,即误差很小,那么每个概率 都会接近 1,于是它们的累乘也会接近 1。)

为了方便计算,我们将 中的乘法转换成加法运算,即对 做对数运算,得到 对数似然函数

因为 的前半部分 为常数,不会被 改变,所以要使 尽可能大,它的后半部分 需要尽可能小(这里后半部分一定大于 0,所以需要使其尽可能接近 0)。最后得到 目标函数

(留下 方便求导)

求导

我们的目标是找到_使 尽可能小的 值_。对一个函数取极值,可以对其进行求导。

我们用矩阵形式表示

为了求 的极值,需要对 求偏导

,即 ,则

Logistic 回归

逻辑回归是一个分类算法。

S 函数(Sigmoid 函数)

img

  • 函数表达式为

  • 取值范围

建模

由 S 函数可以看出,逻辑回归就是把模型的计算结果映射在 S 函数上,使最终结果在 区间上。我们可以设置 0.5 为分界,结果小于 0.5 的数据归于一类,大于 0.5 的归于一类。



这里符号含义同上,即 是预测值。

之后建立目标函数的步骤与线性回归一致。

梯度下降

参数 是无法一步优化到位的,我们需要一步一步使 向函数的“坡下”走,这个向下走的“方向”就是函数在当前位置对 的偏导数。

假设数据集只有一个特征,则预测值为

目标函数为

(这里如果不乘 ,意味着训练样本越多 越大)

分别求偏导

使每个参数沿梯度下降方向前进

这里 称为 学习率(或步长),步长过大可能略过最优点,步长太小迭代速度太慢。

当参数经过迭代后改变很小时,迭代结束,我们认为当前 是(或近似)最优解。