美文网首页机器学习
逻辑回归的算法理解及算法实现

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

作者: 在做算法的巨巨 | 来源:发表于2018-08-03 21:14 被阅读0次

开门见山


基本印象:

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


一般步骤:

  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,因此得到的最优解便是全局最优解。

相关文章

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

    开门见山 基本印象: 逻辑回归的作用:做二分类、多分类的问题逻辑回归类似于人类的一个神经元多个逻辑回归的叠加就是传...

  • 从0开始实现逻辑回归算法(LogicRegression)

    从0开始实现逻辑回归算法(LogicRegression) 逻辑回归(LR)算法是一个比较常见的二元分类算法,通常...

  • 回归算法学习

    回归算法是机器学习中的经典算法之一,本文是对学习线性回归和逻辑回归算法进行的总结,线性回归与逻辑回归算法解决的分别...

  • 全面解析并实现逻辑回归(Python)

    本文以模型、学习目标、优化算法的角度解析逻辑回归(LR)模型,并以Python从头实现LR训练及预测。 一、逻辑回...

  • ML03-逻辑回归(下部分)

    本文主题-逻辑回归(下部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...

  • ML02-逻辑回归(上部分)

    本文主题-逻辑回归(上部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...

  • 逻辑回归

    逻辑回归是一种解决分类问题的机器学习算法。 逻辑回归可以视为回归算法也可以视为分类算法,但通常用于分类,#####...

  • 机器学习预测乳腺癌良恶性(1)(逻辑回归)

    逻辑回归算法思想:逻辑回归(LogisticRegression)是当前机器学习算法比较常用的方法,可以用来回归分...

  • 2018-10-20

    Python与数据挖掘(二)——逻辑回归 2、算法实现 import pandas as pdfrom sklea...

  • 【原创】逻辑回归基本概念梳理

    逻辑回归 前言 1、逻辑回归是经典二分类方法、不是回归方法 2、机器算法中,先选简单算法、后复杂,逻辑回归特别简单...

网友评论

    本文标题:逻辑回归的算法理解及算法实现

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