[关闭]
@caoo 2021-07-24T23:56:55.000000Z 字数 2759 阅读 344

Datawhale吃瓜教程学习之(二)线性模型


文章列表

线性回归:

最简单的机器学习算法莫过于线性回归算法,线性回归算法的基本形式如下:

如果说把 换成 ,我们能得到一个更简洁的公式

其中是自变量,是参数。我们训练的目的就是找到一组 ,使得我们输入一组x的值后得到的

线性回归模型的参数怎样确定?

一个预测模型的效果越好,意味着其预测误差越小。那我们的任务就是找出使得预测值与真实值的差最小的参数。那么我们可以建立一个函数:


我们称之为:损失函数 𝐽(𝑤)

取定一组参数的情况下,把每一次的预测值与真实值的差的平方加起来,得到了总的均方误差。令这个函数取最小值,那么就得到了能让的差最小,亦即我们的预测值与真实值的总误差最小的参数,我们的回归模型效果最优。

现在问题转化为最小化上面的损失函数 𝐽(𝑤)。那么这个函数的最小化又要怎么做呢?

求一个函数的最小值,可以先求导,令导数为0,就找到了一堆极值点。然后把极值点代入原函数,算出函数值最小的点就是对应的最小值。

这里引出我们要推到的公式来解答这个问题:

给定训练集,其中

线性回归(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。

以一元线性回归为例,线性回归试图学得:

使

最小二乘法是基于预测值和真实值的均方差最小化的方法来估计参数𝑤和𝑏,即:


求解𝑤和𝑏使𝐸(𝑤,𝑏)=∑𝑖=1𝑛(𝑦𝑖−𝑤𝑥𝑖−𝑏)2最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation)。

我们可将分别对求导,得到


令上两式为零可得到𝑤和𝑏最优解的闭式(closed-form)解:

其中的均值。

因为损失函数 是一个凸函数,所以求出来的解直接就是最优解了。如此我们就获得了一个可以使用的线性回归模型。

我们可以把上面的情况写成更一般,更简洁的形式。考察下面线性回归模型的一般形式


写成向量,写成矩阵,则有


对于训练样本,我们可以得出下面等式,其中X时训练数据各种特征值,y时训练样本对应的真实值,w是待求的参数:

根据我们大一的线性代数知识,可以知道当X为方阵时,有

更一般的,即便不为方阵,也有:

如此我们便得出了直接求出了w的最优值。

广义线性模型

线性回归假定输入空间到输出空间的函数映射成线性关系,但现实应用中,很多问题都是非线性的。为了拓展其应用场景,我们可以将线性回归的预测值做一个非线性的函数变化去逼近真实值,这样得到的模型统称为广义线性模型(generalized linear model):

𝑦=𝑔_{−1}(𝑤𝑇𝑥+𝑏)
其中函数𝑔(⋅)称为“联系函数”(link function),它连续且充分光滑。

当联系函数为𝑔(⋅)=𝑙𝑛(⋅)时,称为对数线性回归。即


对数几率回归

线性回归模型帮助我们用最简单的线性方程实现了对数据的拟合,然而,这只能完成回归任务,无法完成分类任务。

那么 logistics regression 就是在线性回归的基础上添砖加瓦,构建出了一种分类模型。

如果在线性模型 ( ) 的基础上做分类,比如二分类任务,即 ,直觉上我们会怎么做?最直观的,可以将线性模型的输出值再套上一个函数 ,最简单的就是“单位阶跃函数”(unit-step function),如下图中红色线段所示。

也就是把 看作为一个分割线,大于 的判定为类别0,小于 的判定为类别1。

但是,这样的分段函数数学性质不太好,它既不连续也不可微。我们知道,通常在做优化任务时,目标函数最好是连续可微的。那么如何改进呢?

这里就用到了对数几率函数 :

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注