您的位置:首页 > 其它

Logistic回归---机器学习算法之四

2015-09-02 13:40 253 查看

Logistic回归

本博客介绍Logistic回归算法,代码实现基于python:

简单概念介绍

sigmoid函数

数学模型的建立

*

最大似然函数

pynum函数说明

代码实现

总结

简单概念介绍

假设现在有一些数据点,我们用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称为回归。训练分类器就是为了寻找最佳拟合参数,使用的是最优化算法。该直线也就是所谓分类超平面(二维坐标下是一条直线,三维坐标下是一个平面,n维坐标下是(n-1)维平面)

Logistic回归针对是二分类问题

sigmoid函数

我们想要的函数应该能够预测输入数据的所属类别,比如函数输出0或者1.要满足这个条件,很自然的想到了单位阶跃函数,但是该函数是从0瞬间跳跃到1,这个跳跃的变化点难以把握。




所以我们一般用sigmoid函数来代替




从图像可以看出,x=0的时候,函数值为0.5,随着x的增大,无限接近1,x减小,无限接近0,所以分类标准如下:

函数值大于0.5,属于类别1

函数值小于0.5,属于类别0




因为分类的样本有多个属性或者特征,所以x=

, 通常我们会给每一个特征乘上一个权重系数



所以上述公式变为



其中

。我们重写方程如下:



数学模型的建立

有了上述决策函数,决策面就是Z=0, 也就是θTx=0,那么接下来的问题就是如何确定回归系数,也就是上述函数中的θ的值。

这里介绍几个小概念,详细内容可以查阅相关文件:

梯度的方向:函数值变大的方向

梯度上升算法:求取极大值

梯度下降算法:求取极小值

一般函数如果非凸,那么很难求取全局的极值,有可能是局部的极值,因为非凸函数有多次起伏

简单判断函数凹凸形:f(x)的二阶导数>0,则f(x)是凹函数

凸函数的定义

假设f(x)在[a,b]上连续,若对于任意的x1,x2∈[a,b],恒有

f[(x1+x2)/2]≥[f(x1)+f(x2)]/2,则称f(x)在[a,b]上是凸函数

凹函数的定义

假设f(x)在[a,b]上连续,若对于任意的x1,x2∈[a,b],恒有

f[(x1+x2)/2]≤[f(x1)+f(x2)]/2,则称f(x)在[a,b]上是凹函数

接下来的问题就是寻找代价函数。从上述sigmoid的图像可以知道,h(x)的值越接近0或者1分类效果越好,所以代价函数就是:


(观察值和估计值的差值平方)

我们的目的是最小化这个值,但是因为h(x)是非凸的,所以还应该重新选择代价函数

注意到这样一个问题,此处我们已经知道样本的类别,也就是事件已经发生,这时候我们需要估计出一组θ值,使得这事件发生的概率最大,这就是最大似然估计(详细内容可以查看相关资料)

根据求解最大似然估计的步骤,我们需要写出似然函数。

我们知道hθ(x)≥0.5<后面简用h>,此时y=1, 小于0.5,y=0. 那么我们就用h作为y=1发生的概率(可以这个理解,在x取某一组固定值的情况下,属于类别1的概率,因为此时h的值大于0.5,也符合概率较大,比如为0.9),那么当y=0时,h<0.5,此时不能用h作为y=0的概率,<因为最大似然的思想使已有的数据发生的概率最大化,小于0.5太小了>,我们可以用1-h作为y=0的概率,这样就可以作为y=0的概率了,,然后只需要最大化联合概率密度函数就可以了。




转换成对数似然函数:




因为这个方程无法求得确切的解,所以只能采用迭代优化算法,似然函数是求最大值,所以采用梯度上升算法,求导过程:




上述方程少了一个求和符号,所以完整的迭代方式为:




如果是随机的迭代算法,就不需要求和(也就是整体样本迭代),每次选择一个样本进行迭代:




其中α是一个极小的正值,表示迭代步长。

pynum函数

这里简单说明一下代码中用到的pynum的函数

mat:将数组转化成矩阵(永远是2维的。注意转换后的乘法等运算规则覆盖了数组的,遵循数学上的矩阵运算法则。mat是ndarray的子类)

tranpose:对数组或者矩阵重新排列,如果transpose()没有指明第二个参数的值,那么就是交换两个轴,如果指明了参数,比如三个轴的情况下,指明参数为(1,0,2),该参数的意思是按照这个顺序交换某一元素的索引,举例来说,比如8这个元素的索引为(0,1,0),执行tranpose后,索引变为(1,0,0),即交换了前两个轴的索引。

pynum轴的概念(axes): 最外层的是轴0,轴0里面包含的是第二层轴,也就是轴1,

getA():将matrix转换成数组

代码实现

声明

本博客的公式部分引用了机器学习实战笔记5(logistic回归) 这篇博文,特此声明
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: