逻辑回归是基于多元线性回归来的,所以是线性分类器
判别函数: t=wTx [负无穷,正无穷]
sigmoid函数(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(正确) = *
总概率为L(w) =
整体概率最大,说明模型最好
因为我们一般用损失函数,损失函数最小,模型越好,所以损失函数在之前的基础上加一个负号
最终得到的损失函数即为交叉熵
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) +
逻辑回归的优化
1:需要w0,如果没有w0,则意味着直线通过0点,需要加w0
2:0中心化,把样本移到0附近
3:手动为数据集增加一列全为1,此时1的w就为截距
4:改变阈值:0.5
5:通过l1和l2正则,牺牲正确率来提高模型的泛化能力
对于线性不可分的情况
两种方式:
第一:不用线性的分类算法,不用逻辑回归,可以用tree
第二:不改变算法,改变数据
升维: 增加维度,x1*x2 (类似于多项式回归)
网友评论