《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第6章 逻辑斯谛回归与最大熵模型(1)6.1 逻辑斯谛回归模型

文章目录

  • [第6章 逻辑斯谛回归与最大熵模型](#第6章 逻辑斯谛回归与最大熵模型)
  • [6.1 逻辑斯谛回归模型](#6.1 逻辑斯谛回归模型)
      • [6.1.1 逻辑斯谛分布](#6.1.1 逻辑斯谛分布)
      • [6.1.2 二项逻辑斯谛回归模型](#6.1.2 二项逻辑斯谛回归模型)
      • [6.1.3 模型参数估计](#6.1.3 模型参数估计)
      • [6.1.4 多项逻辑斯谛回归](#6.1.4 多项逻辑斯谛回归)

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第3章 k邻近邻法
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第1章 统计学习方法概论
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第 2章感知机
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第3章 k邻近邻法
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第4章 朴素贝叶斯法
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树

我算是有点基础的(有过深度学习和机器学的项目经验),但也是半路出家,无论是学Python还是深度学习,都是从问题出发,边查边做,没有系统的学过相关的知识,这样的好处是入门快(如果想快速入门,大家也可以试试,直接上手项目,从小项目开始),但也存在一个严重的问题就是,很多东西一知半解,容易走进死胡同出不来(感觉有点像陷入局部最优解,找不到出路),所以打算系统的学习几本口碑比较不错的书籍。

书籍选择: 当然,机器学习相关的书籍有很多,很多英文版的神书,据说读英文版的书会更好,奈何英文不太好,比较难啃。国内也有很多书,周志华老师的"西瓜书"我也有了解过,看了前几章,个人感觉他肯能对初学者更友好一点,讲述的非常清楚,有很多描述性的内容。对比下来,更喜欢《统计学习方法》,毕竟能坚持看完才最重要。

笔记内容: 笔记内容尽量省去了公式推导的部分,一方面latex编辑太费时间了,另一方面,我觉得公式一定要自己推到一边才有用(最好是手写)。尽量保留所有标题,但内容会有删减,通过标黑和列表的形式突出重点内容,要特意说一下,标灰的部分大家最好读一下(这部分是我觉得比较繁琐,但又不想删掉的部分)。

代码实现: 最后是本章内容的实践,如果想要对应的.ipynb文件,可以留言

第6章 逻辑斯谛回归与最大熵模型

逻辑斯谛回归(logistic regression) 是统计学习中的经典分类方法。最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model)。

逻辑斯谛回归模型与最大熵模型都属于对数线性模型。

6.1 逻辑斯谛回归模型

6.1.1 逻辑斯谛分布

首先介绍逻辑斯谛分布 (logistic distribution)。

逻辑斯谛分布的密度函数 f ( x ) f(x) f(x)和分布函数 F ( x ) F(x) F(x)的图形如图6.1所示。分布函数属于逻辑斯谛函数,其图形是一条S形曲线(sigmoid curve)。该曲线以点 为中心对称,即满足:

曲线在中心附近增长速度较快,在两端增长速度较慢。形状参数 γ γ γ的值越小,曲线在中心附近增长得越快。

6.1.2 二项逻辑斯谛回归模型

二项逻辑斯谛回归模型(binomial logistic regression model)是一种分类模型 ,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)表示,形式为参数化的逻辑斯谛分布。

这里,随机变量 X X X取值为实数,随机变量 Y Y Y取值为1或0。我们通过监督学习的方法来估计模型参数。

对于给定的输入实例 x x x,按照式(6.3)和式(6.4)可以求得 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1∣x)和 P ( Y = 0 ∣ x ) P(Y=0|x) P(Y=0∣x)。

逻辑斯谛回归比较两个条件概率值的大小,将实例 x x x分到概率值较大的那一类。

有时为了方便,将权值向量输入向量 加以扩充,仍记作 w , x w,x w,x,即

  • 权值向量: w = ( w ( 1 ) , w ( 2 ) , ... , w ( n ) , b ) T w=(w^{(1)},w^{(2)}, ...,w^{(n)},b)^T w=(w(1),w(2),...,w(n),b)T,
  • 输入向量: x = ( x ( 1 ) , x ( 2 ) , ... , x ( n ) , 1 ) T x=(x^{(1)},x^{(2)},...,x^{(n)},1)^T x=(x(1),x(2),...,x(n),1)T。

这时,逻辑斯谛回归模型如下:

逻辑斯谛回归模型的特点。

一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。

如果事件发生的概率是p,那么该事件的几率是 p 1 − p \frac{p}{1-p} 1−pp ,该事件的对数几率 (log odds)或logit函数

l o g i t ( p ) = l o g p 1 − p logit(p)=log\frac{p}{1-p} logit(p)=log1−pp

对逻辑斯谛回归而言,由式(6.5)与式(6.6)得

l o g P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x log\frac{P(Y=1|x)}{1-P(Y=1|x)} = w\cdot x log1−P(Y=1∣x)P(Y=1∣x)=w⋅x

这就是说,在逻辑斯谛回归模型中,输出 Y = 1 Y=1 Y=1的对数几率是输入 x x x的线性函数。(或者说,输出 Y = 1 Y=1 Y=1的对数几率是由输入 x x x的线性函数表示的模型,即逻辑斯谛回归模型。)

换一个角度看,考虑对输入 x x x进行分类的线性函数 w ⋅ x w·x w⋅x,其值域为实数域。注意,这里 x ∊ R N + 1 x∊R^{N+1} x∊RN+1, w ∊ R N + 1 w∊R^{N+1} w∊RN+1。通过逻辑斯谛回归模型定义式(6.5)可以将线性函数 w ⋅ x w·x w⋅x转换为概率:

P ( Y = 1 ∣ x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) P(Y=1|x)=\frac{exp(w \cdot x)}{1+exp(w \cdot x)} P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)

这时,

  • 线性函数的值越接近正无穷,概率值就越接近1;
  • 线性函数的值越接近负无穷,概率值就越接近0(如图6.1所示)。

这样的模型就是逻辑斯谛回归模型。

6.1.3 模型参数估计

逻辑斯谛回归模型学习时,对于给定的训练数据集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , ... , ( x N , y N ) T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)} T=(x1,y1),(x2,y2),...,(xN,yN),其中, x i ∊ R n x_i∊R^n xi∊Rn, y i ∊ 0 , 1 y_i∊{0,1} yi∊0,1,可以应用极大似然估计法估计模型参数,从而得到逻辑斯谛回归模型。

设:

P ( Y = 1 ∣ x ) = π ( x ) P(Y=1|x)=\pi(x) P(Y=1∣x)=π(x)

P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=0|x)=1-\pi(x) P(Y=0∣x)=1−π(x)

似然函数为:

∏ i = 0 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i ] \prod \limits_{i=0}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}] i=0∏N[π(xi)]yi[1−π(xi)]1−yi]

对数似然函数为:

对 L ( w ) L(w) L(w)求极大值,得到 w w w的估计值。

这样,问题就变成了以对数似然函数 为目标函数的最优化问题 。逻辑斯谛回归学习中通常采用的方法是梯度下降法拟牛顿法

假设 w w w的极大似然估计值是 ,那么学到的逻辑斯谛回归模型为

P ( Y = 1 ∣ x ) = e x p ( w ^ ⋅ x ) 1 + e x p ( w ^ ⋅ x ) P(Y=1|x)=\frac{exp(\hat{w} \cdot x)}{1+exp(\hat{w} \cdot x)} P(Y=1∣x)=1+exp(w^⋅x)exp(w^⋅x)

P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ^ ⋅ x ) P(Y=0|x)=\frac{1}{1+exp(\hat{w} \cdot x)} P(Y=0∣x)=1+exp(w^⋅x)1

6.1.4 多项逻辑斯谛回归

上面介绍的逻辑斯谛回归模型是二项分类模型,用于二类分类。

可以将其推广为多项逻辑斯谛回归模型(multi-nominal logistic regression model),用于多类分类。

假设离散型随机变量Y的取值集合是 1 , 2 , ... , K {1,2,...,K} 1,2,...,K,那么多项逻辑斯谛回归模型是

二项逻辑斯谛回归的参数估计法也可以推广到多项逻辑斯谛回归。

相关推荐
q5673152317 分钟前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
是萝卜干呀18 分钟前
Backend - Python 爬取网页数据并保存在Excel文件中
python·excel·table·xlwt·爬取网页数据
代码欢乐豆19 分钟前
数据采集之selenium模拟登录
python·selenium·测试工具
狂奔solar1 小时前
yelp数据集上识别潜在的热门商家
开发语言·python
Tassel_YUE1 小时前
网络自动化04:python实现ACL匹配信息(主机与主机信息)
网络·python·自动化
聪明的墨菲特i1 小时前
Python爬虫学习
爬虫·python·学习
密码小丑1 小时前
11月4日(内网横向移动(一))
笔记
鸭鸭梨吖2 小时前
产品经理笔记
笔记·产品经理
努力的家伙是不讨厌的2 小时前
解析json导出csv或者直接入库
开发语言·python·json
齐 飞2 小时前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb