美文网首页
逻辑回归

逻辑回归

作者: FreeLuo | 来源:发表于2017-06-25 22:18 被阅读0次

    1 、引言

    逻辑回归( logistic regression ),是一种分类方法,用于二分类问题,即输出结果只有两种,如用于广告预测,也就是根据某广告被用户点击的可能性,把最可能被用户点击的广告摆在用户能看到的地方,结果用户要么点击,要么不点击。通常两类使用类别标号 0 和 1 表示, 0 表示不发生, 1 表示发生。

    2 、问题引入

    例如:有 10 个手机,其中有 3 个是你喜欢的, 7 个是不喜欢的。现预测你对第 11 个手机的喜好。这是一个两类问题,喜欢与不喜欢。显然这是一个二分类问题,我们对第 11 个手机进行预测分类,分为喜欢和不喜欢两个类别。

    那么就需要对手机取特征,比如价格,外观,用户体验等,简单处理只拿这个三个特征,那么可以使用如下等式:

    x1 , x2 , x3 分别表示我们对某部手机的价格,外观,用户体验具体的量化数值。 θ 表示相应的权重,权重越高表示你越看重手机哪方面。

    假设通过训练已经得到了 θ 值,那么就只需要将第 11 只手机的价格,外观,用户体验的量化数值代入上述公式中,得到 z 值。如果 z 值越高,说明喜欢该部手机的可能性就越高。 z>0 表示喜欢这部手机; z<0 表示不喜欢这部手机。 z>0 时, |z| 越大表示越喜欢; z<0 时, |z| 越大表示越不喜欢。

    3 、 目标函数

    sigmoid 函数的取值范围为 (0,1) 。 z>0 时, z 越大, g(z) 函数值越大,无限趋近于 1 。 z<0 时, z 越小, g(z) 函数值越小,无限趋近于 0 。因此就可以使用 g(z) 的值来代替 z 表示我们对手机的喜欢程度。

    以 g(z) 值 0.5 为分界线,对于横坐标 z>0 时, g(z) 值大于 0.5 的可以归为 1 类, z<0 时, g(z) 小于 0.5 ,归为 0 类。

    g(z) 值的范围在 (0,1), 而任意一个概率值也在 [0,1] 。概率的取值范围大于 g(z) 的取值范围,因此任意一个 g(z) 都能够找到一个概率值相对应。假设 z 的输出结果是 0 和 1 ,那么就有我们下式:

    假设分类的概率写成如下:

    把上面的概率写到一起:

    联系贝叶斯公式的后验概率,分类的时候选取后验概率大的值进行分类。那么现在分类模型含有未知参数 θ ,如果求出 θ 那么就可以对新的样本进行分类。

    那么如何求未知参数 θ 呢?我们现在有 m 个样本,思路是建立一个目标函数,求目标函数极值,极值处的 θ 值,就是我们最有未知参数值,即我们常用的极大似然估计。

    4 、极大似然估计思想

    给定:数据集和含有未知参数的模型(参数全部未知或部分未知)

    估计:模型的未知参数

    极大似然估计的思想:在给定模型(含有未知参数)和样本集的情况下,用来估计模型参数, 使得模型实现样本的最大程度的拟合,即使得该样本出现的可能性最大。

    m 个样本的释然函数:

    取对数后:

    似然函数求导:

    逻辑回归的目标就是使似然函数最大,因此可以采用梯度下降法进行迭代求得似然函数的最大值。

    5 、梯度下降法求解对数似然函数的最大值

    5.1 批处理梯度下降法

    需要把所有m个样本全部带入计算,迭代一个计算量为mxn2

    批处理梯度下降法没迭代一步要用到训练集所有的样本,如果样本数m很大,那么计算相应速度会很慢。所以针对这种不足,又引入了另一种方法:随机梯度下降法

    5.2 随机梯度下降法 SGD(stochastic gradient descent)

    随机梯度下降法每次迭代只代入单个样本,迭代一个计算量为n2,当样本量总数m很大的时候,随机梯度下降法迭代一次的速度要远远小于梯度下降法,迭代公式如下:

    由于每次只代入一个样本进行计算,虽然每次迭代误差准则函数都不一定是向着全局最优方向,但是大的整体方向是向着全局最优方向的。

    6、逻辑回归代码

    6.1 样本数据

    前两列分别为x1和x2值,第3列为数据的类别

    6.2 读取数据

    6.3 定义sigmoid函数

    6.4 批处理梯度下降法

    6.5 随机梯度下降法

    相关文章

      网友评论

          本文标题: 逻辑回归

          本文链接:https://www.haomeiwen.com/subject/finrcxtx.html