逻辑回归是一个形式是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. Asp.net发布的CheckList

         Asp.net Web 应用程序正式发布前,我们还是做一些检查,所以需要这个CheckList,如下图今天的Asp.net 已演化这样的了:   但不管是什么组件,目前的Web最终还得通过H ...

  2. asp.net 发送邮件

    asp.net 发送邮件 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();            msg.To. ...

  3. NullPointerException at android.widget.AbsListView.obtainView at android.widget.ListView.makeAndAddView

    使用ExpandableListView的时候,报如下错.网上搜索发现原来是在CommonNumberQueryAdapter的getGroupView()方法里返回的是null,注意细节哦!!! 1 ...

  4. Gulp-前端进阶A-2

    1.js压缩 注意在根目录的package.json文件里在成功安装uglify后要有 "gulp-uglify": "^1.5.4" 才行 var gulp ...

  5. 关于setInterval和setTImeout中的this指向问题

    前些天在练习写一个小例子的时候用到了定时器,发现在setInterval和setTimeout中传入函数时,函数中的this会指向window对象,如下例: var num = 0; function ...

  6. javascript-this,call,apply,bind简述1

    最近在系统的学习面向对象方面的知识,遇到的最大拦路虎就数this的指向,call,apply,bind函数的使用,单独抽出一天时间把这几个烦人的家伙搞定,去学习更深入的内容. 首先介绍一下this的一 ...

  7. Java从零开始学四十五(Socket编程基础)

    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  8. 多线程之NSOperation和NSOperationQueue

    这篇文章里我将不过多的谈及理论知识,这些东西会的自然会,不会的,看多了也是云里雾里.下面我讲更多的用代码+注释的方式来讲如何使用NSOperation和NSOperationQueue. 1.NSOp ...

  9. ios appIcon配置

    iOS 我所知道的Assets.xcassets 字数923 阅读723 评论1 喜欢3 Assets.xcassets是用来存放图像资源文件的.将一个图片放在Assets里面是这个样子的 目录结构 ...

  10. iOS 正则表达式判断邮箱、身份证..是否正确

    //邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Z ...