18 回归算法 - Softmax回归 - 信贷审批案例

前两章介绍了logistic回归,logistic模型能够解决二分类的问题。虽然logistic本身只能解决二分类的问题,但是增加一些操作,也能从算法层面实现多分类的问题。

本章开始介绍另一种回归模型:softmax回归

softmax回归: 是logistic回归的一般化,适用于K分类的问题,第k类的参数与向量θk,组成的二维矩阵为 θk*n


先想明白以下几个问题:
1、θk是什么?
θk是一个向量,即第k个分类所对应的一组θ值。

2、n是什么?
n是特征的个数。

3、二维矩阵θk*n是什么?:
第一类分类的θ值: θ11, θ12, ... , θ1n
第二类分类的θ值: θ21, θ22, ... , θ2n
....
第 K类分类的θ值: θk1, θk2, ... , θkn


可见,在softmax回归中,需要求解的参数非常多。
softmax函数的__本质__是:将一个k维的任意实数向量,映射成另一个k维的实数向量,其中向量的每个元素取值都介于0~1之间。

softmax回归__概率函数__为:

18 回归算法 - Softmax回归 - 信贷审批案例

演绎:
在Logistic中,属于第一类的概率是p,属于第二类的概率是1-p。
同理,在softmax回归中,若K=3,三种分类的概率之和必然也等于1。
数学公式如下:
$sum_{k=1}^K p(y=k|x;θ) = 1$

18 回归算法 - Softmax回归 - 信贷审批案例


接下来我们看看,softmax回归__概率函数__是如何推导出来的。

推导思路和Logistic回归类似,但现在的分类个数 K ≥ 2。
回顾一下Odds的概念:15 回归算法 - Logistic回归 - Logit函数
18 回归算法 - Softmax回归 - 信贷审批案例

18 回归算法 - Softmax回归 - 信贷审批案例


首先,根据Odds Ration定义,将构造函数写出来:
18 回归算法 - Softmax回归 - 信贷审批案例

18 回归算法 - Softmax回归 - 信贷审批案例

很多书上的推导公式最终都到上一步为止,经过统一化转换后可以得到我们一开始讲到的softmax回归__概率函数__:

18 回归算法 - Softmax回归 - 信贷审批案例
先看明白以上的推导过程,并记住这个结论,以后有时间再进一步解释。


softmax算法的原理:

h(θ) 即预测的概率 p
p的构成:
在logistic中:分类属于0的概率 p,分类属于1的概率1-p ;最终预测结果构成的也是一个向量 [p, 1-p]
在softmax中:

18 回归算法 - Softmax回归 - 信贷审批案例

现在思考,让我们获取到了概率矩阵后,如何求解θ?

构造损失函数:
![第i个样本,j从第1分类到第k分类的概率连乘(右),
再把i个样本,i从第1个样本到第m个的上述结果连乘(左)。](https://upload-images.jianshu.io/upload_images/3153092-ea00e02d3a932c67.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

18 回归算法 - Softmax回归 - 信贷审批案例

18 回归算法 - Softmax回归 - 信贷审批案例

考虑 j 取1~k的时候连乘的问题:
当 j=1时,连乘的是箭头中的内容,只有当样本 i 属于第1类的时候,I=1,箭头内的内容才需要被计算。否则当样本i 不属于第1类时,I=0,箭头内的内容乘以0还是等于0。
18 回归算法 - Softmax回归 - 信贷审批案例

Softmax算法梯度下降求解θ:

18 回归算法 - Softmax回归 - 信贷审批案例

18 回归算法 - Softmax回归 - 信贷审批案例

最后手写一部分推导公式:
18 回归算法 - Softmax回归 - 信贷审批案例

上一篇:在MonoTouch中自定义表格


下一篇:Console-算法[while,if]-一张纸折几折会超过世界最高峰