Logistic Regression

来源:互联网 发布:jquery.dialog.js 编辑:程序博客网 时间:2024/06/11 22:36

Logistic回归并不是回归,而是用于解决二分类问题。其本质是在线性回归的基础上加了一层sigmoid函数映射。它可以预测某事件在给定样本特征下发生的“概率”(p(y|x)),然后选择“概率”最大的事件作为预测结果。

sigmoid函数

公式

g(x)=11+ex

函数曲线如下图所示

图片名称

sigmoid是s形曲线,取值在[0,1]之间,这个值可以解释为概率or置信度。在分类预测的时候,一般取y>0.5为正例,当然,如果对某一类要求很严格,这个阈值是可以调整的。sigmoid函数的导数

g(x)=g(x)(1g(x))

目标损失函数

LR的概率假设:

p(y|x;θ)=(hθ(x))y+(1hθ(x))1y

假设m个训练样本都是独立同分布的,于是Loss Function如下
L(θ)=i=1m(hθ(xi))yi+(1hθ(xi))1yi

为方便求极值,取对数
(θ)=i=1myiloghθ(xi)+(1yi)log(1hθ(xi))

梯度下降

我们目的是求解概率的极大值,其实是梯度上升,不过二者也就是一个负号的区别。

θjl(θ)=(yhθ(x))xj
θ:=θ+αθl(θ)
可以看出这个迭代格式和线性回归是一致的。

L1 VS L2

很有意思的一张图

图片名称

“可以看到,1ball2ball 的不同就在于他在和每个坐标轴相交的地方都有“角”出现,而目标函数的测地线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置为产生稀疏性,例如图中的相交点就有 ,而更高维的时候(想象一下三维的 \ell_1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。

相比之下,2ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么 regularization 能产生稀疏性,而 regularization 不行的原因了”

L1正则化倾向于使参数变为0,因此能产生稀疏解,可以用来在稀疏特征空间做特征选择。

softmax

在Softmax回归中将 x 分类为类别 j 的概率为

图片名称

损失函数:

图片名称

梯度公式:

图片名称

其中注意θjJ(θ)θjJ(θ) 本身是一个向量,它的第 l 个元素 J(θ)θjlJ(θ)θj的第 l个分量的偏导数。

softmax vs k 个二元分类器

取决于类别间有没有互斥关系,例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数 k = 4 的softmax回归
如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。

python实现

https://github.com/lxmly/machine-learning

参考

  • https://www.quora.com/What-is-the-difference-between-L1-and-L2-regularization
  • http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization/#ed61992b37932e208ae114be75e42a3e6dc34cb3
  • http://tech.meituan.com/intro_to_logistic_regression.html
  • http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92
原创粉丝点击