开始学习机器学习算法的时候就接触了Logistic回归及梯度下降法,但是当时并没有深入去自己推导一下公式,写一写代码,现在学习xgboost的时候又碰到Logistic回归相关的知识,干脆自己推一遍,写一下代码吧。。
逻辑回归
逻辑回归可以用来进行回归与分类,两者仅有略微不同,主体算法是一样的,本文以分类进行讲解。如下图二分类问题,我们希望找到一个直线(高维空间为超平面)来将数据划分开。
这样的线性边界可以表示为:θ0x1+θ1x2+...+θmxm=θTxθ0x1+θ1x2+...+θmxm=θTx
上式右边x为向量。
我们取预测函数为Sigmoid函数,Sigmoid函数有一个很棒的特点是它的导数f′(x)=f(x)(1−f(x))f′(x)=f(x)(1−f(x))
则预测函数可表示为:
P(y=1|x;θ)=hθ(x)P(y=1|x;θ)=hθ(x)
P(y=0|x;θ)=1−hθ(x)P(y=0|x;θ)=1−hθ(x)
将这两个式子合并一下:
P(y|x;θ)=(hθ(x))y(1−hθ(x))1−yP(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
显然:
当y=0的时候上式等价于 P(y=0|x;θ)=1−hθ(x)P(y=0|x;θ)=1−hθ(x)
当y=1的时候上式等价于 P(y=1|x;θ)=hθ(x)P(y=1|x;θ)=hθ(x)
取似然函数L(θ)=∏mi=1(hθ(x(i)))yi(1−hθ(x(i)))1−yiL(θ)=∏i=1m(hθ(x(i)))yi(1−hθ(x(i)))1−yi
我们的目的就是求解似然函数的最大值,为了方便求解,我们取对数似然函数如下:
logL(θ)=∑i=1m(yiloghθ(x(i))+(1−yi)log(1−hθ(x(i))))logL(θ)=∑i=1m(yiloghθ(x(i))+(1−yi)log(1−hθ(x(i))))

本文详细介绍了Logistic回归及其在分类问题中的应用,通过Sigmoid函数建立预测模型,并探讨了梯度上升算法,包括批量梯度上升和随机梯度上升的实现细节,以及如何在实际中调整学习率以优化模型。
最低0.47元/天 解锁文章
896

被折叠的 条评论
为什么被折叠?



