(手机的颜色,大小,用户体验来加权统计总体的值)极大似然估计MLE

1.Logistic回归

Logistic regression (逻辑回归),是一种分类方法,用于二分类问题(即输出只有两种)。如用于广告预测,也就是根据某广告被用户点击的可能性,把最可能被用户点击的广告摆在用户能看到的地方,结果是用户要么点击要么不点击。

通常两类使用类别标号0和1表示,0表示不发生,1表示发生。

问题引入

例如:有100个手机,其中有30个是你喜欢的,70个是不喜欢的。现预测你对第101个手机的喜好。这是一个两类问题,喜欢与不喜欢。

显然这是一个二分类问题,我们对第101个手机进行预测分类,分为喜欢和不喜欢两个类别。

我们需要对手机取特征(属性),比如价格,外观,用户体验。简单处理,只考虑3个方面(即3个特征)。综合考虑这些因素,并且把这些值进行数字化的表示。数字越大说明越喜欢,越小越不喜欢。

怎么数字化表示这些量呢?

对每部手机对应价格,外观,用户体验都可以给出一个具体的数值。

我们回忆一下贝叶斯分类:

2. Sigmoid 函数

 

3.Sigmoid函数性质

分类性质

回顾我们的后验概率如何分类的,每个可以观测的样本都有属于某类的概率。分类时候选取后验概率大的值进行分类。这里是两分类问题每个样本均可带入P(y=1|x)和P(y=0|x)谁的概率值大,我们就将样本归入某类。

现在分类模型为下边公式,但含有未知量 ,只要求出 就可以对样本,就可以带入样本就行计算,对样本进行分类。

如何求未知参数 ?我们有m个样本,思路是建立一个目标函数,求目标函数极值。极值处的 值,就是我们最优未知参数值。

参数估计

假设分类的概率

上面的概率可以写到一起 (类似二项分布)

m个样本的似然函数为

对数似然函数

使得似然函数值最大?梯度下降(上升)法。

似然函数求导

常规方法时效。故用梯度下降法

Logistic回归中是未知参数 ,目标是求出 。通过构建似然函数,目标使似然函数最大。

回顾我们梯度下降法。

  (J是上边的L函数,手误)问题解决

4.梯度上升法

目标使似然函数最大,我们可以使用梯度上升法进行迭代。

梯度下降法根据样本使用的不同,一次使用所有样本更新参数为批处理梯度下降法。一次只随机使用一个样本来更新参数随机梯度下降法。

同样我们的Logistic回归可以使用批处理梯度上升法和随机梯度上升法。梯度上升法和梯度下降法都是寻找函数的极值,只是搜索方向的不同而已。根据具体函数的性质,进行选择,两者没有本质的不同。

我们容易通过把函数转换成,把极大化问题转换成极小化问题。函数加负号即可。

5.批处理梯度下降法

6.随机梯度下降法

7.代码实现

准备数据,样例数据如下,前两列分别为x1和x2值,第3列为数据的类别,这样的数据有100条。

批处理梯度下降(上升)算法计算最佳回归系数

矩阵为什么要转置?

运行测试

if __name__ == "__main__":

dataMat,classLabels=loadDataSet()

weights=gradAscent(dataMat, classLabels)

plotBestFit(weights.getA())

8.随机梯度下降(上升)法SGD (stochastic gradient descent)

运行测试

if __name__ == "__main__":

dataAttr, labelMat = loadDataSet()

weights = stocGradAscent0(array(dataAttr), labelMat)

plotBestFit(weights)

9.改进的随机梯度下降

运行测试

if __name__ == "__main__":

dataAttr, labelMat = loadDataSet()

weights = stocGradAscent1(array(dataAttr), labelMat)

plotBestFit(weights)

运行结果对比

比较原始的随机梯度下降和改进后的梯度下降,可以看到两点不同:

1)系数不再出现周期性波动。

2)系数可以很快的稳定下来,也就是快速收敛。这里只迭代了20次就收敛了。而上面的随机梯度下降需要迭代200次才能稳定。

(a)梯度下降算法迭代500次。

(b)随机梯度下降算法迭代200次。

(c)改进的随机梯度下降算法迭代20次。

(d)改进的随机梯度下降算法迭代200次。

10.示例:从疝气病症预测病马是否存活

一、处理数据中的缺失值

二、用Logistic回归进行分类

运行测试

if __name__ == "__main__":

multiTest()

11.总结

Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率的更多相关文章

  1. 吴裕雄--天生自然python机器学习:使用Logistic回归从疝气病症预测病马的死亡率

    ,除了部分指标主观和难以测量外,该数据还存在一个问题,数据集中有 30%的值是缺失的.下面将首先介绍如何处理数据集中的数据缺失问题,然 后 再 利 用 Logistic回 归 和随机梯度上升算法来预测 ...

  2. Logistic回归Cost函数和J(θ)的推导(二)----梯度下降算法求解最小值

    前言 在上一篇随笔里,我们讲了Logistic回归cost函数的推导过程.接下来的算法求解使用如下的cost函数形式: 简单回顾一下几个变量的含义: 表1 cost函数解释 x(i) 每个样本数据点在 ...

  3. 【Machine Learning in Action --5】逻辑回归(LogisticRegression)从疝气病预测病马的死亡率

    背景:使用Logistic回归来预测患有疝气病的马的存活问题,这里的数据包括368个样本和28个特征,疝气病是描述马胃肠痛的术语,然而,这种病并不一定源自马的胃肠问题,其他问题也可能引发疝气病,该数据 ...

  4. Logistic回归Cost函数和J(θ)的推导----Andrew Ng【machine learning】公开课

    最近翻Peter Harrington的<机器学习实战>,看到Logistic回归那一章有点小的疑问. 作者在简单介绍Logistic回归的原理后,立即给出了梯度上升算法的code:从算法 ...

  5. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

      梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent).随机梯度下降(Stochastic Gradient Descent ...

  6. 1. 批量梯度下降法BGD 2. 随机梯度下降法SGD 3. 小批量梯度下降法MBGD

    排版也是醉了见原文:http://www.cnblogs.com/maybe2030/p/5089753.html 在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度 ...

  7. 优化-最小化损失函数的三种主要方法:梯度下降(BGD)、随机梯度下降(SGD)、mini-batch SGD

    优化函数 损失函数 BGD 我们平时说的梯度现将也叫做最速梯度下降,也叫做批量梯度下降(Batch Gradient Descent). 对目标(损失)函数求导 沿导数相反方向移动参数 在梯度下降中, ...

  8. 梯度下降GD,随机梯度下降SGD,小批量梯度下降MBGD

    阅读过程中的其他解释: Batch和miniBatch:(广义)离线和在线的不同

  9. 【机器学习实战】第5章 Logistic回归

    第5章 Logistic回归 Logistic 回归 概述 Logistic 回归虽然名字叫回归,但是它是用来做分类的.其主要思想是: 根据现有数据对分类边界线建立回归公式,以此进行分类. 须知概念 ...

随机推荐

  1. HDU 5726 GCD

    传送门 GCD Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem ...

  2. hdu 2039 三角形

    题意: 判断三条线段能否组成三角形 解法: 坑!记得用float,用int直接WA. 1: #include<stdlib.h> 2: #include<stdio.h> 3: ...

  3. Linux DHCP通过OPTION43为H3C的AP下发AC地址

    对于DHCP服务,可以在很多平台上进行设置.那么这里我们就主要讲解一下在Linux DHCP服务器上通过option 43实现H3C的AP自动联系AC注册的相关内容.原来的DHCP Server是放在 ...

  4. 一键搭建vpn服务器

    今天花了很多时间搭建vpn服务器,后来找到一篇一键搭建服务器的文章,那叫一个爽,附上链接收藏~~~看开以后要写脚本了 http://www.centoscn.com/image-text/instal ...

  5. 10月21日下午PHP常用函数

    函数四要素:返回类型  函数名  参数列表  函数体 //最简单的函数定义方式 function Show() { echo "hello"; } Show();//输出结果为he ...

  6. CentOS系统rsync文件同步 安装配置

    rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync 它的特性如下: 可以镜像保存整个目录树和文件系统. 可以很容易做到保持原来文件的权限.时间.软硬 ...

  7. yourphp的eq作用

    <eq name="> <span style="color:#090">是</span> <else /> 否 < ...

  8. trace enabled

    <system.web> <trace enabled="true" localOnly="true" pageOutput="tr ...

  9. CentOS安装wordpress权限问题

    最近在CentOS6.5上安装wordpress,遇上一个问题,安装好之后外网总是不能再网页进行配置,想了半天应该是源代码文件的权限问题,具体问题与解决如下: 如果你的wordpress安装目录是wo ...

  10. Jetty与tomcat的比较

    Google 应用系统引擎最初是以 Apache Tomcat 作为其 webserver/servlet 容器的,但最终将切换到 Jetty 上. 这个决定让许多开发人员都诧异的想问:为什么要做这样 ...