Logistic Regression
样本是{x,y},y是0或1,x是m维的样本特征向量,y=1的概率可以表示为
p(y=1|x;θ)=σ(θTx)=11+exp(−θTx),
θ 是模型参数, σ 是sigmoid函数,该函数由对数几率(也就是x属于正类的可能性和弗雷的可能性的比值的对数)变换得到
logit(x)=ln(P(y=1|x)P(y=0|x))=ln(P(y=1|x)1−P(y=1)|x)=θ0+θ1x1+θ2x2+...+θmxm,
Logistic Regression最基本的学习算法是极大似然,假设n个独立的训练样本
{(x1,y1),(x2,y2),…,(xn,yn)},y={0,1}
,那么每一个观察到的样本
(xi,yi)
出现的概率为
P(yi,xi)=P(yi=1|xi)yi(1−P(yi=1|xi))1−yi,
当 y=1 时,后面一项没有了,当 y=0 时,前面一项没有了,所以无论y是0还是1,上面就是(x,y)出现的概率。那么n个独立样本出现的似然函数为:
L(θ)=∏P(yi=1|xi)yi(1−P(yi=1|xi))1−yi,
最大似然法就是求模型中使得似然函数最大的系数取值 θ∗ ,这个最大似然函数就是代价函数(cost function)。
L(θ)=log(∏P(yi=1|xi)yi(1−P(yi=1|xi))1−yi)=∑i=1nyilogp(yi=1|xi)+(1−yi)log(1−p(yi=1|xi))=∑i=1nyilogp(yi=1|xi)1−p(yi=1|xi)+∑inlog(1−p(yi=1|xi))=∑i=1nyi(θ0+θ1x1+θ2x2+,…,+θmxm)+∑inlog(1−p(yi=1|xi))=∑i=1nyi(θTxi)−∑i=1nlog(1+eθTxi),
这时候用 L(θ) 对 θ 求导,得到
∂L(θ)∂θ=∑i=1nyixi−∑ineθTxi1+eθTxixi=∑i=1n(yi−σ(θTxi))xi,
另其为0,无法求得解析解,用梯度下降法来解决。
θt+1=θt−α∂L(θ)∂θ=θt−α∑i=1n(y−σ(θTxi))xi,
α 表示学习率。
梯度下降法每次更新回归系数时需要遍历整个数据集,复杂度太高,改进方法是一次用一个样本点(的回归误差)来更新回归系数,即随机梯度下降法。