机器学习入门|线性回归(二)

简介: 回归函数可以选择的表示很多。但是根据奥卡姆剃刀原则,应该选择简单而又可行的回归函数。显然,如果可行,,线性函数是最简单的回归函数。

回归函数可以选择的表示很多。但是根据奥卡姆剃刀原则,应该选择简单而又可行的回归函数。显然,如果可行,,线性函数是最简单的回归函数。当回归函数$F$采用线性模型表示时 ,我们称该类模型为线性回归(linear regression)。线性模型简单,易于建模,由于$\omega$直观的表达了个属性再预测中的重要性,因此线性模型有很好的可解释性(comprehensibility)。
对于样例$(\boldsymbol{x},y)$,当我们希望线性模型的预测值逼近真实标记y时,就得到了线性回归模型,我们把线性回归模型简写为:

$$ y=\boldsymbol{\omega}^{T}\boldsymbol{x}+b $$

.
其中系数$omega,b∈R$称为回归系数(regression coefficient)。
求回归系数通常有两种方法,除了上文提到的基于最小二乘的normal equation,还有就是通过梯度下降来求解,关于梯度下降可以去看小威精的这篇从梯度下降说起。
这里不多说了(有空把线代再重学一学之后再来补充(/▽\)),网上搜了一个梯度下降和Normal equation的区别总结:
453ea79d82b94bdb53dcbd57810a650_1024x448_1_
线性回归模型,我们知道实际上是通过多个自变量对自变量进行曲线拟合。我们希望找到一条可以较好拟合的曲线,那我们如何判断一条曲线的拟合程度的好坏?上文在推到出来的结果

$$ J(\theta)=\sum_{i=1}^{m}(y^{(i)}-\theta^{T}x^{(i)})^{2} $$

中,我们知道的是最小二乘法(预测值和真实值得误差的平方和),原理是正态分布。

对数线性回归(log-linear regression)

$$ lny=\boldsymbol{\omega}^T\boldsymbol{x}+b. (1) $$

它实际上是试图让$e^{\boldsymbol{\omega}^T\boldsymbol{x}+b}$逼近$y$,(1)式在形式上仍然式线性回归,但实质上是在求取输入空间到输出空间的非线性函数映射。如下图,这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。
WeChat_Image_20180117111323_1_
更一般的,考虑单调可微函数$g(⋅)$,令

$$ y=g^{-1}(\boldsymbol{\omega}^T\boldsymbol{x}+b) $$

这样得到的模型称为“广义线性模型”(generalized linear model),其中函数$g(⋅)$称为“联系函数”(link function).显然,对数线性回归是广义线性模型在$g(⋅)=ln(⋅)$时的特例。

对数几率回归

如果要用线性模型解决分类任务,只需在广义线性模型中找一个单调可微函数将分类任务的真实标记$y$与线性模型的预测值联系起来。
举个例子,对于对于二分类任务,其输出标记$y∈{0,1}$,将线性回归模型预测的连续值来转换为0和1。采用“单位阶跃函数”(nuit-step function)

$$ y=\left\{\begin{matrix}0,&z<0\\0.5,& z=0\\ 1,& z>0\end{matrix}\right. $$

即预测值大于零就判断为正例,小于零则判断为反例,预测值为临界值零则可任意判别,如图:
45dfcf946d376ee476c2f1f9b7c18cb_1_
单位阶跃函数不连续,于是需要一个“替代函数”(surrogate function):

$$ y=\frac{1}{1+e^{-z}} $$

对数几率函数是一种“Sigmoid函数”,它将z值转化为一个接近0或1的y值,并且其输出值在$z=0$附近变化很陡,将对数几率函数作为$g^{-1}(⋅)$带入(2)式,得:

$$ y=\frac{1}{1+e^{-(\boldsymbol{\omega}^T\boldsymbol{x}+b)}} (3) $$

整理得

$$ ln\frac{y}{1-y}=\boldsymbol{\omega}^T\boldsymbol{x}+b (4) $$

若将$y$视为样本$x$作为正例的可能性,则$1-y$是其反例的可能性,两者的比值

$$ \frac{y}{1-y} $$

称为“几率”(odds),反应了$\boldsymbol{x}$作为正例的相对可能性。对几率取对数则可得到“对数几率”(log odds,亦称logit)

$$ ln\frac{y}{1-y} $$

由此可以看出,式(3)是在用线性回归模型的预测结果去逼近真实标记的“对数几率”(结合式(4)),因此,其对应的模型称为“对数几率回归”(logistics regression,亦称logit regression)。
对于“对数几率回归”,有几点需要注意:
名字虽然式回归,但实际确实一种分类学习方法
优点:直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题
不仅是预测出“类别”,而是可以得到近似概率预测,这对许多需要利用概率辅助决策的任务很有 用
对数函数是任意阶可导的凸函数,现有的许多数值优化算法都可直接用于求取最优解
下面来看看如何确定式(3)中的$\boldsymbol{\omega}$和$b$。若将式(3)中的$y$视为类后验概率估计$p(y=1|\boldsymbol{x}$,则式(4)可重写为

$$ ln\frac{p(y=1|\boldsymbol{x})}{p(y=0|\boldsymbol{x})}=\boldsymbol{x}^T\boldsymbol{x}+b $$

可以得到:

$$ p(y=1|\boldsymbol{x})=\frac{e^{\boldsymbol{\omega}^T\boldsymbol{x}+b}}{1+e^{\boldsymbol{\omega}^T\boldsymbol{x}+b}} (7) $$

$$ p(y=0|\boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{\omega}^T\boldsymbol{x}+b}} (8) $$

于是,我们可以通过“极大似然法”(maximum likelihood method)来估计$\omega$和$b$。
注:极大似然估计可以看这篇博客[最大似然估计总结(转载)
](http://www.baishuidongcheng.com/994.html)给定数据集$\left \{ (\boldsymbol{x}_{i},y_{i}) \right \}_{i=1}^{m}$,对率回归模型:
似然函数:$L(\boldsymbol{\omega},b)=\prod_{i=1}^{m}p(y_{i}|\boldsymbol{x}_{i};\boldsymbol{\omega},b)$.
对数似然:$ι (boldsymbol{omega},b)=sum_{i=1}^{m}lnp(y_{i}|boldsymbol{x}_{i};boldsymbol{omega},b) (5)$
“对数似然”最大化,即零每个样本属于其真实标记的概率越大越好。为了方便讨论,令$\boldsymbol{\beta}=(\boldsymbol{\omega};b),\hat{\boldsymbol{x}}=(\boldsymbol{x};1)$则$\boldsymbol{\omega}^{T}\boldsymbol{x}+b$可简写为$\boldsymbol{\beta}^T\hat{\boldsymbol{x}}$。再令$p_{1}(\hat{\boldsymbol{x}};\boldsymbol{\beta})=p(y=1|\hat{\boldsymbol{x}};\boldsymbol{\beta}) $,$p_{0}(\hat{\boldsymbol{x}};\boldsymbol{\beta})=p(y=0|\hat{\boldsymbol{x}};\boldsymbol{\beta})=1-p_{1}(\hat{\boldsymbol{x}};\boldsymbol{\beta})$,则式(5)中的似然项可重写为

$$ p(y_{i}|\boldsymbol{x}_{i};\boldsymbol{\omega},b)=y_{i}p_{1}(\hat{\boldsymbol{x}};\boldsymbol{\beta}) $$

$$ +(1-y_{i})p_{0}(\hat{\boldsymbol{x}};\boldsymbol{\beta}) (6) $$

将式(6)带入式(5)中,并根据式(7)(8)可知,最大化式(5)等价于最小化(取相反数):

$$ \imath (\boldsymbol{\beta})=\sum_{i=1}^{m}(-y_{i}\boldsymbol{\beta}^{T}\hat{\boldsymbol{x}}_{i}+ln(1+e^{\boldsymbol{\beta}^T\hat{\boldsymbol{x}}_{i}})) $$

上式是关于$\boldsymbol{\beta}$的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如梯度下降(gradient descent method)、牛顿法(Newton method)等都可求得其最优解。

线性回归也终于告一段落了,后文就是周志华《机器学习》的原文,写的实在式太精彩了,现在的水平没法补充什么,就厚颜无耻的“记”下来吧o(////▽////)q

目录
相关文章
|
2月前
|
机器学习/深度学习 数据采集 算法
深入了解机器学习:从入门到应用
【10月更文挑战第6天】深入了解机器学习:从入门到应用
|
7天前
|
机器学习/深度学习 人工智能 算法
探索机器学习:从线性回归到深度学习
本文将带领读者从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过代码示例,展示如何实现这些算法,并解释其背后的数学原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。让我们一起踏上这段激动人心的旅程吧!
|
18天前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
20天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
|
21天前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
37 2
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
34 1
|
21天前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
34 0
|
23天前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
31 0
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
24 1