当前位置:   article > 正文

Logistic Regression 原理及推导 python实现_logistic regression python

logistic regression python

一、问题引入

首先,Logistic回归是一种广义的线性回归模型,主要用于解决二分类问题。比如,现在我们有N个样本点,每个样本点有两维特征x1和x2,在直角坐标系中画出这N个样本的散点图如下图所示,
1
蓝色和红色分别代表两类样本。现在我们的目标是,根据这N个样本所表现出的特征以及他们各自对应的标签,拟合出一条直线对两类样本进行分类,直线的上侧属于第一类,直线的下侧属于第二类。那么我们如何寻找这条直线呢?我们知道,二维空间的一条直线可以用简单的公式表示
y = b + θ 1 x 1 + θ 2 x 2 = θ T x + b y= b+\theta_{1}x_{1}+\theta_{2}x_{2}= \theta ^{T}x+b y=b+θ1x1+θ2x2=θTx+b
参数 θ T \theta^{T} θT b b b的选择决定了直线的位置,如果我们选取了一组参数 θ \theta θ b b b导致直线的位置是这样的
2

那肯定不合理,因为两类样本完全没有被分开,而如果我们得到了这样一条直线
3

两类样本虽然存在一些小错误,但是基本上被分开了,所以决定这条直线位置的参数和 θ \theta θ b b b就是我们想要的答案。由此,我们可以看到,Logistic Regression问题最终变成了求解参数 θ \theta θ的问题。
二、原理

总的来说,Logistic回归的过程就是根据样本求解分类直线(或者超平面)的参数的过程,求解的方法是极大似然估计法,但是因为似然方程最后求导无法得到解析解,所以用了梯度下降法去逐步优化得到极值。
为什么要用极大似然估计法来求解参数呢?
首先,假设样本有k维特征, x = { x 1 , x 2 , . . . , x k } x=\left \{ x_{1},x_{2},...,x_{k} \right \} x={ x1,x2,...,xk}, y ∈ { 0 , 1 } y\in \left \{ 0,1 \right \} y{ 0,1},用极大似然估计就是在求解怎样的 θ \theta θ b b b可以使得出现了某个x时,出现对应的y的概率最大。
然后,假设这个概率服从的是Sigmoid分布(如下图所示)。样本的每一维特征的取值在经过参数 θ \theta θ线性组合之后取值范围是实数集(-

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/748031
推荐阅读
相关标签
  

闽ICP备14008679号