Logistic Regression--机器学习

Logistic Regression(简称LR模型)是比较经典的分类方法,虽然名字中有回归两个字,但主要是用来解决分类问题的判别概率问题。话不多说,直入正题。

LR模型的常规步骤:

1.构造预测函数;

2.构造损失函数;

3.损失函数最小,并求得参数\theta

4.编程。

1. 构造预测函数

我们知道,在处理线性模型时,函数方程为 

线性方程

在处理二分类问题时,我们希望能够将上述函数的值映射到(0,1)中,这时我们需要一个阶跃函数:sigmoid函数。

函数表达式:

sigmoid函数
sigmoid函数图像

观察函数图像,我们可以知道,该函数值域为(0,1)。在处理二分类问题时,我们可以假设当函数值大于等于0.5时,该类别属于1类;小于0.5时,该类别属于0类。既然知道了预测函数,以及怎么处理预测值,下一步开始构造损失函数吧。

2. 构造损失函数

sigmoid函数还有一重特殊的含义,那就是它本身表示的是该函数取1时的值,因此表示1,0时的概率分别为:

1/0函数值

LR模型,有一个特点,我们用1时的概率值,除以0时的概率值,可以得到\theta ^TX。我们把这个叫做一个事情的几率,指一个事情发生与不发生的概率比值。

有了1,0时的概率值,我们可以用来表示一个0,1问题的计算概率综合值了。

概率综合值

这个公式,可以理解为,当y取1时,概率值为公式的前半部分;当y取0时,概率值为公式后半部分。一个分类问题,我们可以理解为M重0,1问题。样本概率最大时,我们可以得到最好的分类模型。那怎么求这个M重问题的最大概率P呢?在大学上概率论时,对于这种问题,我们一般用最大似然函数来求极值。首先,构造似然函数,然后变形为对数似然函数形式,然后求导,求极值点。

似然函数
对数似然函数

当时在实际分类问题中,对数似然函数是无法通过求导获取解析解的。通常我们构造损失函数,通过梯度下降来使损失函数最小来构造分类器,以及获取变量的值。梯度下降是用来求函数最小值的,故我们在似然函数前加负号来达到我们的目的。通常我们在实际操作时,还会对损失函数求平均。此时,损失函数为

损失函数

3. 损失函数最小,并求得参数\theta

使用梯度下降法来求解。梯度下降法的求解过程为

梯度下降

梯度下降法的原理可以参考:https://zhuanlan.zhihu.com/p/52003491。为了让梯度下降进行下去,下面需要通过损失函数对变量\theta 求导。

求导

举两个例子,来说明一下梯度下降求解的过程。

1.单标量:y(x)=x^2;对x求导为2x。假设起点为x0=1,学习步长a = 0.4,那么

x1=x0 - a*(2*x0) = 1-0.4*2 = 0.2

x2 = x1 - a*(2*x1) = 0.2 - 0.4*0.4 = 0.04

...

2.多变量:y(x) = x1^2 + x2^2; 对x求导为<2*x1,2*x2>,此时表示一个向量。假设X0 = (1,3),a=0.1,那么,

X1=(1,3) - 0.1*(2,6) = (0.8,2.4)

X2 = (0.8,2.4) - 0.1*(1.6,4.8) = (0.64,1.92)

...

现在我们东风都不欠了,我们可以开始LR模型的编程了。

4. 编程

对于机器学习模型,我个人的看法最好是能够自己把代码写一遍。刚开始,没头绪的时候,可以看看别人的代码,理解后,自己再写,最好能够采用矢量化编程的方式。我实在不知道怎么把代码复制进来,格式还跟编译器里面的一样。写到这里我查了一下,需要把富文本改成MArkdown,还只对新建文本生效,好烦,这次还是截图吧,以后的文章通通使用markdown的。

首先加载数据,在这里,我们让x0=1,可以说将函数的常数项b变成了变量\theta \theta _{0} 了。

加载数据

构建预测函数:

预测函数

梯度下降迭代求\theta

梯度下降

我设置的迭代20000次,学习率为0.001,到最后极值已经很小且下降已经非常不明显了,我们可以认为模型已经达到比较好的收敛效果。由于我比较懒,没有造测试数据,进行测试,朋友们就将就一下吧。

训练
极值与变量值

逻辑回归其实是一个浅层的神经网络,我们不妨用tensorflow来实现一下,展示一下逼格。我在看深度学习交叉熵部分时,上面有句话这么说,交叉熵一般用在分类问题上,表达的意思为预测输入样本属于某一类的概率。其中Y代表真实值,layer_1表示预测值。下面的代码损失函数我用的就是交叉熵。

tensorflow实现LR

好了,以上就是关于LR模型的介绍,以及有关LR模型的编程。

本文Github:https://github.com/NLPxiaoxu/Easy_Machine-Learning

参考:

https://blog.csdn.net/qq_38923076/article/details/82925183

https://segmentfault.com/a/1190000009954640

李航 《统计学习方法》

李金洪等 《深度学习之TensorFlow入门、原理与进阶实战》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容