逻辑回归

2018-11-17  本文已影响0人  王金松

逻辑回归是基于多元线性回归来的,所以是线性分类器

判别函数: t=wTx  \in [负无穷,正无穷]

sigmoid函数\sigma (t) = 1/(1+e^(-t))   => 把判别函数的值缩放到[0,1],0.5作为threshold进行分类

判别函数+sigmoid=逻辑回归

sigmod = 1/(1+e^t)  当t=0时, sigmod=0.5   0.5作为threshold

逻辑回归的损失函数或者目标函数

sigmod函数构造了一个函数更好的解决二分类的问题,把值缩放到0,1之间,函数的含义为该条数据为1的概率

sigmod<=0.5  y=0

sigmoid>0.5 y=1

如果sigmoid=0.5  则wTx=0,二维平面是一条直线

根据若干已知的X,y的训练集,找到一组w,使得x作为已知条件下y发生的概率最大

g(z)的输出含义为P(y=1|w,x)

P(y=0|w,x) = 1-g(z)

对于分类的损失函数,y_hat在0,1之间,

比如y_hat=0.8,那我们认为误差就是1-0.8=0.2

g(w,x) = y_hat = 1/(1+e^(-z)),y为0或者1

预测正确并且y=1的概率 即为g(w,x)

预测正确并且y=0的概率 即为1-g(w,x)

对于每条数据预测正确的概率(泛化写法)

P(正确) = g(w,x)^y*g(w,x)^(1-y)

总概率为L(w) = \prod_{i=1}^n P(x)

整体概率最大,说明模型最好

因为我们一般用损失函数,损失函数最小,模型越好,所以损失函数在之前的基础上加一个负号

最终得到的损失函数即为交叉熵

Pi=y_hat

交叉熵函数:-y*logy_hat

因为是二分类

所以交叉熵为-(y*logy_hat +(1-y)*log(1-y_hat) )

所有分类的损失函数都是交叉熵

只不过逻辑回归的y_hat = pi = 1/(1+e^(-z))

如果是其他的分类算法,损失函数还是交叉熵,只不过y_hat公式变了而已

求导

对损失函数通过梯度下降取最小值

1:随机w  (w尽量在0附近,)

2:w(t+1) = w(t) +\alpha g

逻辑回归的优化 

1:需要w0,如果没有w0,则意味着直线通过0点,需要加w0

2:0中心化,把样本移到0附近

3:手动为数据集增加一列全为1,此时1的w就为截距

4:改变阈值:0.5

5:通过l1和l2正则,牺牲正确率来提高模型的泛化能力

对于线性不可分的情况

两种方式:

    第一:不用线性的分类算法,不用逻辑回归,可以用tree

    第二:不改变算法,改变数据

               升维:  增加维度,x1*x2  (类似于多项式回归)


上一篇 下一篇

猜你喜欢

热点阅读