机器学习笔记_01线性回归和逻辑回归

机器学习笔记_01线性回归和逻辑回归

[TOC]

一、什么是机器学习

利用大量的数据样本,使得计算机通过不断的学习获得一个模型,用来对新的未知数据做预测。

  • 有监督学习(分类、回归)

同时将数据样本和标签输入给模型,模型学习到数据和标签的映射关系,从而对新数据进行预测。

image.png
  • 无监督学习(聚类)
    只有数据,没有标签,模型通过总结规律,从数据中挖掘出信息。

    image.png

  • 强化学习
    强化学习会在没有任何标签的情况下,通过先尝试做出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整之前的行为,就这样不断的调整,算法能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。

就好比你有一只还没有训练好的小狗,每当它把屋子弄乱后,就减少美味食物的数量(惩罚),每次表现不错时,就加倍美味食物的数量(奖励),那么小狗最终会学到一个知识,就是把客厅弄乱是不好的行为。

【David Silve强化学习课程】:

  • 机器学习基本术语与概念
    image.png

二、线性回归

利用大量的样本D=\left(x_{i}, y_{i}\right)_{i=1}^{N},通过有监督的学习,学习到由x到y的映射f,利用该映射关系对未知的数据进行预估,因为y为连续值,所以是回归问题。

image.png

  • 单变量情况

    image.png

  • 多变量情况

二维空间的直线,转化为高维空间的平面


image.png

2.1 线性回归的表达式

机器学习是数据驱动的算法,数据驱动=数据+模型,模型就是输入到输出的映射关系。

模型=假设函数(不同的学习方式)+优化

1. 假设函数

线性回归的假设函数(\theta_{0}表示截距项,x_0=1,方便矩阵表达):

f(x)=\theta_{0} x_{0}+\theta_{1} x_{1}+\theta_{2} x_{2} \ldots+\theta_{n} x_{n}
向量形式(θ,x都是列向量):
f(x)=\theta^{T} x

image.png

2. 优化方法

监督学习的优化方法=损失函数+对损失函数的优化

3. 损失函数

如何衡量已有的参数\theta的好坏?

利用损失函数来衡量,损失函数度量预测值和标准答案的偏差,不同的参数有不同的偏差,所以要通过最小化损失函数,也就是最小化偏差来得到最好的参数。
映射函数:
h_{\theta}(x)
损失函数:
J\left(\theta_{0}, \theta_{1}, \ldots, \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}

解释:因为有m个样本,所以要平均,分母的2是为了求导方便

image.png

最小化损失函数( loss function):凸函数

4. 损失函数的优化

损失函数如右图所示,是一个凸函数,我们的目标是达到最低点,也就是使得损失函数最小。


image.png

多元情况下容易出现局部极值

image.png

求极值的数学思想,对公式求导=0即可得到极值,但是工业上计算量很大,公式很复杂,所以从计算机的角度来讲,求极值是利用梯度下降法。

image.png

① 初始位置选取很重要

② 复梯度方向更新,二维情况下,函数变换最快的方向是斜率方向,多维情况下就成为梯度,梯度表示函数值增大的最快的方向,所以要在负梯度方向上进行迭代。

③ θ的更新公式如上图,每个参数 \theta_1,\theta_2... 都是分别更新的

高维情况:梯度方向就是垂直于登高线的方向

image.png

参数更新示例:


image.png

对每个theta都进行更新:

image.png

学习率:

① 学习率太大,会跳过最低点,可能不收敛
② 学习率太小收敛速度过慢


image.png
5. 过拟合和欠拟合(underfitting vs overfitting)
image.png

过拟合的原因:
① 如果我们有很多的特征或模型很复杂,则假设函数曲线可以对训练样本拟合的非常好\left(J(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} \approx 0\right),学习能力太强了,但是丧失了一般性。从而导致对新给的待预测样本,预测效果差.
② 眼见不一定为实,训练样本中肯定存在噪声点,如果全都学习的话肯定会将噪声也学习进去。

过拟合造成什么结果:

过拟合是给参数的自由空间太大了,可以通过简单的方式让参数变化太快,并未学习到底层的规律,模型抖动太大,很不稳定,variance变大,对新数据没有泛化能力。

所有的模型都可能存在过拟合的风险:

  • 更多的参数,更复杂的模型,意味着有更强的能力, 但也更可能无法无天
  • 眼见不一定为实,你看到的内容不一定是全部真实的数据分布,死记硬背不太好
6. 利用正则化解决过拟合问题

正则化的作用:

① 控制参数变化幅度,对变化大的参数惩罚,不让模型“无法无天”

② 限制参数搜索空间

添加正则化的损失函数
J\left(\theta_{0}, \theta_{1}, \ldots, \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}-y^{(i)}\right)^{2}+\frac{\lambda}{2 m} \sum_{j=1}^{n} \theta_{j}^{2}\right.

m:样本有m个
n:n个参数,对n个参数进行惩罚
λ:对误差的惩罚程度,λ 越大对误差的惩罚越大,容易出现过拟合,λ越小,对误差的惩罚越小,对误差的容忍度越大,泛化能力好。

image.png
7. 线性回归代码实例
image.png

三、逻辑回归

监督学习,解决二分类问题。

分类的本质:在空间中找到一个决策边界来完成分类的决策

逻辑回归:线性回归可以预测连续值,但是不能解决分类问题,我们需要根据预测的结果判定其属于正类还是负类。所以逻辑回归就是将线性回归的(-\infty,+\infty)结果,通过sigmoid函数映射到(0,1) 之间。
线性回归决策函数:h_{\theta}(x)=\theta^{T} x

sigmoid函数:
g(z)=\frac{1}{1+e^{-z}}

image.png

① 可以对(-\infty,+\infty)结果,映射到(0,1) 之间,作为概率。

x<0, sigmoid(x)<\frac{1}{2} ; x>0, sigmoid (x)>\frac{1}{2},可以将\frac{1}{2}作为决策边界。

③ 数学特性好,求导容易:g^{\prime}(z)=g(z) \cdot(1-g(z))

逻辑回归的决策函数

将线性回归决策函数通过sigmoid函数,获得逻辑回归的决策函数:h_{\theta}(x)=g\left(\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}\right)=\frac{1}{1+e^{-\theta^T {x}}}

image.png

3.1 逻辑回归的损失函数

线性回归的损失函数为平方损失函数,如果将其用于逻辑回归的损失函数,则其数学特性不好,有很多局部极小值,难以用梯度下降法求最优。
J(\theta)=\frac{1}{m} \sum_{i=1}^{m} \frac{1}{2}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}

image.png
image.png

逻辑回归损失函数:对数损失函数

image.png

解释:如果一个样本为正样本,那么我们希望将其预测为正样本的概率p越大越好,也就是决策函数的值越大越好,则logp越大越好,逻辑回归的决策函数值就是样本为正的概率;

如果一个样本为负样本,那么我们希望将其预测为负样本的概率越大越好,也就是(1-p)越大越好,即log(1-p)越大越好。

为什么要用log:

样本集中有很多样本,要求其概率连乘,概率为(0,1)间的数,连乘越来越小,利用log变换将其变为连加,不会溢出,不会超出计算精度。

逻辑回归损失函数:

image.png

image.png

\frac{\partial J(\theta)}{\partial \theta_{j}}=\frac{1}{m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)}\right]

3.2 逻辑回归实现多分类

image.png
  • 一对一(one vs one)
    一对一分类,每两个类之间构建一个分类器,共需要\frac{N(N-1)}{2} 个分类器

  • 一对多(one vs rest)
    一对多分类器,每个分类器判断是三角形还是不是三角形,共需要N个分类器。

3.3 逻辑回归代码实现

image.png
image.png
image.png
image.png
image.png

四、LR的特点
可解释性高,工业中可控度高。


image.png
image.png

五、 为什么逻辑回归比线性回归好

虽然逻辑回归能够用于分类,不过其本质还是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,然后使用sigmoid函数来预测。

这主要是由于线性回归在整个实数域内敏感度一致,而分类范围,需要在[0,1]之内。而逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,其回归方程与回归曲线如下图所示。逻辑曲线在z=0时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。

LR在线性回归的实数范围输出值上施加sigmoid函数将值收敛到0~1范围, 其目标函数也因此从差平方和函数变为对数损失函数, 以提供最优化所需导数(sigmoid函数是softmax函数的二元特例, 其导数均为函数值的f*(1-f)形式)。请注意, LR往往是解决二元0/1分类问题的, 只是它和线性回归耦合太紧, 不自觉也冠了个回归的名字(马甲无处不在). 若要求多元分类,就要把sigmoid换成大名鼎鼎的softmax了。

首先逻辑回归和线性回归首先都是广义的线性回归,其次经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数,另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。

逻辑回归的模型本质上是一个线性回归模型,逻辑回归都是以线性回归为理论支持的。但线性回归模型无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。

六、 LR和SVM的关系

1、LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题)

2、两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。

区别:

1、LR是参数模型,SVM是非参数模型。

2、从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。

3、SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。

4、逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。

5、logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。

博客中的PPT笔记地址:https://github.com/enfangzhong/ML_Material
(感谢七月在线机器学习课程。仅供学习交流,严禁用于商业用途)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容