逻辑回归是一个形式是Y=1/(1+E(-X))的函数,它的特点是:

1, 当X>0,随着X增大,Y很快的接近1;

2,当x<0,随着X的减小,Y很快的接近0;

3,当X=0时,Y=1/2。

由于逻辑回归的这种特性(在0-1之间连续),它被用来判断一个学习算法是否正确。

除了正确和不正确的结果之外,使用逻辑回归的好处在于,它还能告诉你,你离正确的结果还差多少,从而引导你向正确的方向前进。因此它常常和梯度上升的算法结合起来。下面的代码体现了这样的例子:

输入参数1是100行,2列的矩阵;

输入参数2是100行,1列的矩阵,取值都是0或1;

def gradAscent(dataMatIn, classLabels):
   # ❶(以下两行)转换为NumPy矩阵数据类型
    dataMatrix = mat(dataMatIn)
    labelMat = mat(classLabels).transpose()
    m,n = shape(dataMatrix)
    alpha = 0.001
    maxCycles = 500
    weights = ones((n,1)) 初始化成(1,1)
    for k in range(maxCycles):
        #❷(以下三行)矩阵相乘
        h = sigmoid(dataMatrix*weights)矩阵相乘,得到100行,1列的矩阵,利用逻辑回归把它变成100行1列的矩阵,每个值介于0到1之间,h是对label的一个估计
        error = (labelMat - h)估计与实际值之间差距为error,error也是一个100行1列的矩阵;
        weights = weights + alpha * dataMatrix.transpose()* error后面3项乘的结果是1行2列的矩阵,代表了估算的结果与实际结果是超了还是低了,从而修改weights。
    return weights

由于每次迭代都会导致weights朝labelMat的方向靠近,因此经过500次的循环,最终能得到较好的结果,能很好的确定weights的两个参数。

当然上述代码存在一个问题,它每次循环都要扫描dataMatrix中所有的行,这对大型的数据是不可容忍的,因此,有了另外一种随机梯度上升的算法。它每次只看一行数据,看它的估算与结果的距离,根据距离调整weights。

这个算法仍然存在问题,因为它受每个训练数据影响是一样的,所以可以通过设置,让后面的实例对数据的影响逐渐变小,从而确保学习的快速收连。

如何处理缺失数据是机器学习中的重要课题,它也严重影响逻辑回归的准确性。

----

总之,如果只是要判断一个学习算法是否准确,有无数种方法,为什么一定要选择逻辑回归这个奇怪的函数。我的理解是,逻辑回归函数它能反映出一种方向,能够把“是否正确”转变成“有多么正确或者多么错误”,正因为这个转变,可以让机器不断的向正确的方向前进,最终实现准确的预测。

机器学习:logistic回归的更多相关文章

  1. 机器学习——Logistic回归

    1.基于Logistic回归和Sigmoid函数的分类 2.基于最优化方法的最佳回归系数确定 2.1 梯度上升法 参考:机器学习--梯度下降算法 2.2 训练算法:使用梯度上升找到最佳参数 Logis ...

  2. 机器学习——Logistic回归

    参考<机器学习实战> 利用Logistic回归进行分类的主要思想: 根据现有数据对分类边界线建立回归公式,以此进行分类. 分类借助的Sigmoid函数: Sigmoid函数图: Sigmo ...

  3. 机器学习——logistic回归,鸢尾花数据集预测,数据可视化

    0.鸢尾花数据集 鸢尾花数据集作为入门经典数据集.Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理.Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集.数据集包含150个数 ...

  4. 机器学习--Logistic回归

    logistic回归 很多时候我们需要基于一些样本数据去预测某个事件是否发生,如预测某事件成功与失败,某人当选总统是否成功等. 这个时候我们希望得到的结果是 bool型的,即 true or fals ...

  5. coursera机器学习-logistic回归,正则化

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  6. 机器学习 Logistic 回归

    Logistic regression 适用于二分分类的算法,用于估计某事物的可能性. logistic分布表达式 $ F(x) = P(X<=x)=\frac{1}{1+e^{\frac{-( ...

  7. 机器学习-- Logistic回归 Logistic Regression

    转载自:http://blog.csdn.net/linuxcumt/article/details/8572746 1.假设随Tumor Size变化,预测病人的肿瘤是恶性(malignant)还是 ...

  8. 吴恩达-机器学习+Logistic回归分类方案

  9. 机器学习简易入门(四)- logistic回归

    摘要:使用logistic回归来预测某个人的入学申请是否会被接受 声明:(本文的内容非原创,但经过本人翻译和总结而来,转载请注明出处) 本文内容来源:https://www.dataquest.io/ ...

  10. 机器学习(4)之Logistic回归

    机器学习(4)之Logistic回归 1. 算法推导 与之前学过的梯度下降等不同,Logistic回归是一类分类问题,而前者是回归问题.回归问题中,尝试预测的变量y是连续的变量,而在分类问题中,y是一 ...

随机推荐

  1. 不可或缺 Windows Native (6) - C 语言: 函数

    [源码下载] 不可或缺 Windows Native (6) - C 语言: 函数 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 函数 示例cFunction.h # ...

  2. 从零开始学习Linux (cd命令)

    上一篇博客中提到,我们学习命令大多都要参考 --help 这个选项.但是cd命令并没有这个选项. 我们可以通过 help cd 来查看cd的使用方式.其实cd命令挺简单的,它的作用是进入文件夹,也就是 ...

  3. [moka同学笔记]Yii2.0验证码

    1.Model中Code.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/07/25 * Time: 10:48 ...

  4. Couchbase介绍,更好的Cache系统

    在移动互联网时代,我们面对的是更多的客户端,更低的请求延迟,这当然需要对数据做大量的 Cache 以提高读写速度. 术语 节点:指集群里的一台服务器. 现有 Cache 系统的特点 目前业界使用得最多 ...

  5. mustache模板渲染的基本原理

    mustache.js是一个模板引擎,为开发节省了大量的“人力”,对于初学者,我是从这篇 和这篇 博客接触的,算是对mustache有了初步认识,不得不承认自己还是菜鸟阶段还有太多东西要学,慢慢熟悉. ...

  6. CLEAR REFRESH FEEE的区别

    clear,refresh,free都有用来清空内表的作用,但用法还是有区别的.clear itab,清空内表行以及工作区,但保存内存区.clear itab[],清空内表行,但不清空工作区,但保存内 ...

  7. 穷举法破解 zebrone1.1

    系统 : Windows xp 程序 : zebrone1.1 程序下载地址 :http://pan.baidu.com/s/1boqVcU7 要求 : 编写注册机 使用工具 :OD 可在看雪论坛中查 ...

  8. sudo gem install cocoapods 没反应问题

    1. 尝试更新 sudo gem update --system 2. 查看安装详细 sudo gem install cocoapods -V 3.详细使用有个链接 http://blog.csdn ...

  9. Android——微信界面(简易版)

    前面我们简单的介绍了一下android的五大布局,那么现在我们来实践一下,写一个简单的微信界面 首先,我们新建一个weixin.xml的linnerlayout布局 我们日常使用的微信,从简单的方面来 ...

  10. iOS打包ipa select a method for export几个选项的意思

    他们的意思分别为:Save for iOS App Store Deployment保存到本地 准备上传App Store 或者在越狱的iOS设备上使用,需要提供发布证书
Save for Ad Ho ...