数据科学个人笔记:逻辑回归+Softmax回归+广义线性模型

一、逻辑回归

1.逻辑回归要解决的问题中y的取值是0或1,故通过y=g(XW)的形式来拟合p(y|X)的条件分布公式。其中g(x)=(1+e^-x)^-1。使用该函数的意思是认为y的对数几率ln(y/(1-y))=XW的线性关系。变换之后即可得到g(x)的形式。

2. 逻辑回归假设p(y|X)在参数W的情况下服从p(1)=g(XW)的伯努利分布,即p(y

|X)=g(XW)^y*(1-g(XW))^(1-y)。计算对数似然,得要最小化的交叉熵损失函数sum(y*ln[g(XW)]+(1-y)*ln[1-g(XW)])。

3.梯度下降:与线性回归的梯度下降相同。用来更新的梯度为(y-g(XW))xj。这里相对线性回归仅仅将XW换成了g(XW)。

4.牛顿法:牛顿法相当于随机初始参数值,然后在参数当前点处作向切线,将其与某坐标轴的交点值作为该参数的更新值,直到f(w)为0为止。用几何方式推导,即得更新公式为w(t+1)=w(t)-[f(w(t))/f’(w(t))]。在逻辑回归中,我们要令损失函数求导为0,可令l’(w)=f(w),而w是向量,则迭代规则为w=w-Hessian的逆矩阵*l对w的梯度向量。牛顿法往往比梯度法收敛快。在高维时,矩阵H的计算会非常耗时。

5.优缺点:优点 :速度快,适合二分类问题,简单易于理解,直接看到各个特征的权重,能容易地更新模型吸收新的数据。

缺点:对数据和场景的适应能力有局限,不如决策树算法适应性那么强。

 

二、广义线性模型(GLM)

1.GLM有三个假设:

(1)假设p(y|X)在参数W下,p(y|X;W)服从某种分布,这个分布是指数分布族的一员。

形如p(y;eta)=b(y)*exp(eta^T*T(y)-a(eta))。其中eta为分布的自然参数,T(y)是充分统计量,通常T(y)=y。需定义的参数有a、b、T三个函数,确定后就选中了一个假设的分布。

(2)若选定y的条件分布符合假设(1)中的某个分布,则给定x的情况下,我们选取函数h_w(X)来拟合y,h_w(x)=E(T(y)|X;W)。

(3)eta=XW。

2.线性回归在GLM中的推导

(1)线性回归假设高斯分布p(y|X;W)=p(y;XW)=p(y;mu)=[1/(sqrt(2pi)*sigma)] * exp(-[(y-mu)^2/(2sigma^2)])。该公式根据GLM假设(1)来套,eta=mu=XW,T(y)=y,a=1/2*eta^2,

b=1/(sqrt(2pi)*sigma)  *  exp(-1/2*y^2)

(2)于是根据GLM假设(2)的结论,h_w(X)=E(y|X;W)=mu=XW。

3.逻辑回归在GLM中的推导

(1)将伯努利分布进行变换,p(y;fi)=p(y|X;w)=p(y;g(XW))=原分布函数加e的次方和ln。推导后用GLM假设(1)套进去,eta=XW=ln[fi/(1-fi)],T(y)=y,a=-ln(1-fi),b(y)=1。

(2)根据GLM假设(2),h_W(X)=E(y|X;W)=fi。将eta与fi的等式变换,即得到fi=g(XW)。

4.Softmax Regression在GLM中的推导

1.SR假设用来解决多分类问题,所以目标y属于{1,2,3,4,5…k}中的一个,k为类别数,p(y=i)=fi(i),所有fi累加为1。和伯努利分布相同,参数fi比类别数少一个。类似于伯努利分布,可设该问题中的y服从分布p(y|X;W)=fi_1^I(y=1)*fi_2^I(y=2)*。。。

I(y=1)在y=1时为1,否则为0,称为指示器函数。则以上函数的意思为当y=i的概率为fi_i。

2.将外层加exp内层加ln来推导,套GLM中假设(1)的形式,类似逻辑回归,eta=[lnfi_1/(1-所有fi之和),lnfi_2/(1-所有fi)。。。到第k-1项]^T,T(y)=[I(y=1),I(y=2)。。。I(y=k-1)]^T,a=-ln(1-所有fi之和),b(y)=1。

3.根据GLM中的假设(2),h_W(X)=E(T(y)|X;W)=[fi_1,fi_2,fi_3…fi_(k-1)]^T。根据eta=XW(此处W不再是向量,而是行数等于特征数、列数等于类别数-1的参数矩阵),又根据eta的公式,h=[exp(XW1)/sum(exp(XW)。。。直到k-1项)]。这就是用来拟合y的函数。求对数似然,SR可用梯度下降或者牛顿法均可求解。

4. 对于互斥的多分类问题,这种模型比较合适,而对于非互斥的多分类问题,构建k个one-vs-all逻辑回归模型更为合适。

 

三、各种多分类学习方案

方案一:one-v-one(OvO)。将数据集分开成每列训练集一份,两两组合解二分类问题训练,测试时最终得到n(n-1)/2个分类结果,投票决定每个样本的类别。该方案的问题是每个问题训练样本较上。

方案二:one-v-all(OvR)。每次讲一个阳历作为正例其他作为反例进行训练。测试时选取置信度最大的预测为正例的结果。问题为正负例严重不平衡。

方案二训练n个分类器,方案一训练n(n-1)/2个,方案一存储和时间开销通常比二大,但在类别很多时,由于方案一每次只用两个类的样例训练,方案二用全部样例,所以存储及时间开销反而小。测试性能看具体数据分布而定。

方案三:MvM。每次取若干类为正,若干类为反。OvO和OvR都是MvM的特例。可以使用纠错输出码(EOOC)来解决该问题。(待添加)

你可能感兴趣的:(数据科学个人笔记:逻辑回归+Softmax回归+广义线性模型)