逻辑回归
一、口述一下逻辑回归
逻辑回归是用来解决二分类问题的。它假设数据服从二项分布(伯努利分布),通过极大似然估计,结合梯度下降算法求得最优参数,从而实现分类的目的。
极大似然估计要最大化的就是分类正确的概率P,分类正确的概率即为所有正样本为正的概率积乘以负样本为负的概率积,逻辑回归的目的就是要使得分类正确的概率最大。所以,逻辑回归的目标函数就是一个样本为正样本的概率。
最理想的情况肯定是正样本为正的概率是1,负样本为负的概率也是1,但是这样的模型是不可导的,就无法用梯度下降去求极值,因此想到了用sigmoid函数这么一个近似理想目标函数的一个可导函数作为一个替代的目标函数,这样就可以带入极大似然估计的公式中,通过梯度下降去求解最优参数了。这样,最终的分类器就是一个sigmoid( θ \theta θx)函数,表示的是样本为正样本的概率,如果大于50%就认为样本属于正类,反之负例。
二、推导一下逻辑回归
(首先给出一个情景)有m个带标签的样本组成的数据集 ( x i , y i ) (x_i, y_i) (xi,yi),其中, x i = [ x i 1 , . . . , x i n ] x_i = [x_{i1}, ..., x_{in}] xi=[xi1,...,xin],代表每个样本有n个特征; y i ∈ y_i \in yi∈{1, 0},代表二分类问题。
P ( y = 1 ∣ x ; θ = g ( z ) = 1 1 + e x p ( − z ) P(y=1|x;\theta = g(z) = \frac{1}{1+exp(-z)} P(y=1∣x;θ=g(z)=1+exp(−z)1,其中, θ = [ θ 1 \theta = [\theta_{1} θ=[θ1, …, θ n ] T \theta_{n}]^T θn]T, z = θ x z = \theta x z=θx
P ( 分 类 正 确 ) = ∏ i = 1 m P ( y i = 1 ∣ x ) i y ⋅ P ( y i = 0 ∣ x ) 1 − y i P(分类正确) = \prod _{i = 1}^mP(y_i=1|x)^y_i \cdot P(y_i=0|x)^{1-y_i} P(分类正确)=∏i=1mP(yi=1∣x)iy⋅P(yi=0∣x)1−yi
对数似然函数 l n P = ∑ i = 1 m [ y l n P ( y i = 1 ∣ x ) + ( 1 − y ) l n P ( y i = 0 ∣ x ) ] lnP = \sum _{i = 1}^m[ylnP(y_i=1|x) + (1-y)lnP(y_i=0|x)] lnP=∑i=1m[ylnP(yi=1∣x)+(1−y)lnP(yi=0∣x)]
要使似然函数最大,损失函数 L = − l n P = − ∑ i = 1 m [ y i l n g ( z ) + ( 1 − y i ) l n ( 1 − g ( z ) ) ] L = -lnP = -\sum_{i=1}^m[y_i lng(z) + (1-y_i)ln(1-g(z))] L=−lnP=−∑i=1m[yilng(z)+(1−yi)ln(1−g(z))],即为交叉熵损失。
通过梯度下降求最优解,需要每一步更新参数 θ j : = θ j − ∂ L ∂ θ j \theta_j := \theta_{j} - \frac{\partial L}{\partial \theta_j} θj:=θj−∂θj∂L
∂ L ∂ θ j = ∂ L ∂ g ( z ) ∂ g ( z ) ∂ z ∂ z ∂ θ j = − ∑ i = 1 m [ y i 1 g ( z ) − ( 1 − y i ) 1 1 − g ( z ) ] ⋅ g ( z ) ( 1 − g ( z ) ) ⋅ x i j \frac{\partial L}{\partial \theta_j} = \frac{\partial L}{\partial g(z)} \frac{\partial g(z)}{\partial z} \frac{\partial z}{\partial \theta_j}=-\sum_{i=1}^m[y_i\frac{1}{g(z)} - (1-y_i)\frac{1}{1 - g(z)}] \cdot g(z)(1-g(z)) \cdot x_{ij} ∂θj∂L=∂g(z)∂L∂z∂g(z)∂θj∂z=−∑i=1m[yig(z)1<