逻辑回归的算法理解及算法实现

开门见山


基本印象:

逻辑回归的作用:做二分类、多分类的问题
逻辑回归类似于人类的一个神经元
多个逻辑回归的叠加就是传说中的神经网络


一般步骤:

  1. 收集数据的形式没有要求
  2. 数据预处理:将文本变量转化为虚拟变量,将空值剔除或特殊处理
  3. 模型搭建:对数据进行分析,如果自变量是二维变量,散点图可以查看是该组数据是线性分类问题还是非线性分类问题
    决策边界(Decision Boundary)
    决策边界,也成为决策面,用于N维空间,将不同类别样本分开的平面或曲面。(其实类似与SVM的分隔超平面)
    • 如果自变量是一维的,其实就是最简单的逻辑函数sigmoid


      横轴代表自变量,纵轴代表因变量
    • 如果自变量是二维的,那还可以实现可视化帮助我们。
      比如说,

      红色区域与蓝色区域分别是二分类的结果,x1,x2分别是自变量

      所以我们发现决策边界是可以通过一条直线进行分隔开的,我们把决策函数写成线性方程。类似\theta_0+\theta_1*x_1+\theta_2*x_2=0

      再比如说,

      红色marker和蓝色marker的分布

      在这里我们发现分类并非线性直线可以解决,所以引入Polynomial,把决策函数写为\theta_0+\theta_1*x_1+\theta_2*x_2 +\theta_3*x_1^2+\theta_4*x_2^2=0
      当然可以更复杂,比如把最高次幂调整为三次,四次等等。但是代价就是计算量也会增加。这也是我们需要trade-off的东西。

    • 多维问题的求解思路:
      J(\theta)求偏导,建立\theta矩阵,建立x的矩阵。利用梯度下降法解决最优化问题,求解\theta

  4. 模型检验
    涉及到两个概念:
    1). 准确率(Accuracy),精确率(Precision),召回率(Recall),F1值
    准确率(Accuracy)的定义:分类器分类正确的样本数与总样本数之比。缺点:如果正负样本不平衡,这种计算方式失去有效性。

    精确率(Precision)的定义:P=\frac{TP}{TP+FP}
    召回率(Recall)的定义:R=\frac{TP}{TP+FN}
    F1值:精确率和召回率的调和均值。\frac{2PR}{P+R}
    F1值越大,模型预测能力越理想。
    2). 利用正交验证法对数据的trainset进行K折交叉验证。将数据分为K份,取K-1作为训练数据,剩下的作为测试数据,重复K次,这样最终得到K个训练结果,计算正确率,然后取平均。python在这一部分有现成的包cross_val_score。可以直接设定K从而得到最终结果。

逻辑回归的理论推导

  • cost function的确定
    正常梯度回归中,J(\theta)=\frac{1}{m}\sum_{i=1}^{m}\frac{1}{2}(h_\theta(x^{(i)})-y^{(i)})^2
    h_\theta=g(\theta^Tx)
    在这里我们可以发现,
    when y==1, (h_\theta(x^{(i)})-y^{(i)})偏小,
    when y==0,(h_\theta(x^{(i)})-y^{(i)})偏大。所以导致J(\theta)随着\theta有很多局部最优解。如下图,
    Non-convex

    如果按照梯度下降法强行解,得到的解只会大概率是局部最优解,而不是全局最优解。
    因此,我们对J_\theta进行优化,我们引入log函数。
    J(\theta)=\frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x^{(i)},y^{(i)})

    最后得到,

    新的Cost函数:
    Cost=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))
    然后,新的J(\theta)=\frac{1}{m}\sum_{i=1}^{m}(ylog(h_\theta(x))+(1-y)log(1-h_\theta(x)))
    对其求偏导,得,\frac{\partial{J(\theta)}}{\partial{\theta}}=\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x)-y)x^i
    推到过程如下:

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

推荐阅读更多精彩内容

  • 以西瓜书为主线,以其他书籍作为参考进行补充,例如《统计学习方法》,《PRML》等 第一章 绪论 1.2 基本术语 ...
    danielAck阅读 4,529评论 0 6
  • 作者按:简书的文艺气息还是比较浓的。我们来捣捣乱,搞一篇全部数学公式的文章,用实际行动推动简书加入 MathJax...
    kamidox阅读 1,388评论 8 6
  • 我又来发公式了。用行动推动简书支持 MathJax。万一你真想看这篇文章,请移步 逻辑回归算法获得完整地阅读体验。...
    kamidox阅读 3,515评论 9 23
  • ## 第三周 Logistic Regression逻辑回归 ### 1 Classification and R...
    nightSin阅读 308评论 0 0
  • 几天前,我重新翻阅了2017年5月写的一篇关于小程序的文章,文章虽青涩但还算精确,文中阐述了三个观点: 如何决定小...
    极乐叔阅读 207评论 0 1