下载此文档

数据分析--分析方法.docx


文档分类:IT计算机 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
各种分析方法逻辑回归分析什么是逻辑回归?Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinearmodel)。这一家族中的模型形式基本上都差不多,不同的就是因变量不同。如果是连续的,就是多重线性回归;如果是二项分布,就是Logistic回归;如果是Poisson分布,就是Poisson回归;如果是负二项分布,就是负二项回归。Logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最常用的就是二分类的Logistic回归。Logistic回归的主要用途:寻找危险因素:寻找某一疾病的危险因素等;预测:根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大;判别:实际上跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病。Logistic回归主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率,等等。例如,想探讨胃癌发生的危险因素,可以选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群肯定有不同的体征和生活方式等。这里的因变量就是是否胃癌,即“是”或“否”,自变量就可以包括很多了,例如年龄、性别、饮食****惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。LogisticRegression的具体过程,包括:选取预测函数,求解Cost函数和J(θ),梯度下降法求J(θ)的最小值,以及递归下降过程的向量化(vectorization)。基本原理LogisticRegression和LinearRegression的原理是相似的,按照我自己的理解,可以简单的描述为这样的过程:(1)找一个合适的预测函数(AndrewNg的公开课中称为hypothesis(假设)),一般表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程时非常关键的,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。(2)构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他的形式。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表示所有训练数据预测值与实际类别的偏差。(3)显然,J(θ)函数的值越小表示预测函数越准确(即h函数越准确),所以这一步需要做的是找到J(θ)函数的最小值。找函数的最小值有不同的方法,LogisticRegression实现时有的是梯度下降法(GradientDescent)。具体过程(1)构造预测函数Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:Sigmoid函数是一个取值在0和1之间的S型曲线,如下图所示: 下面左图是一个线性的决策边界,右图是非线性的决策边界。对于线性边界的情况,边界形式如下:构造预测函数为:函数的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:(2)构造Cost函数Cost函数和J函数如下,它们是基于最大似然估计推导得到的。(3)梯度下降法求J(θ)的最小值求J(θ)的最小值可以使用梯度下降法,根据梯度下降法可得θ的更新过程: 事实上,采用梯度上升法和梯度下降法是完全一样的,这也是《机器学****实战》中采用梯度上升法的原因。(4)梯度下降过程向量化《机器学****实战》中给出的实现代码确是实现了vectorization的,图所示代码的32行中weights(也就是θ)的更新只用了一行代码,直接通过矩阵或者向量计算更新,没有用for循环,说明确实实现了vectorization。约定训练数据的矩阵形式如下,x的每一行为一条训练样本,而每一列为不同的特称取值:约定待求的参数θ的矩阵形式为:      θ更新过程可以改为:综上所述,Vectorization后θ更新的步骤如下:(1)求;(2)求;(3)求 。图中是《机器学****实战》中给出的部分实现代码。sigmoid函数就是前文中的g(z)函数,参数inX可以是向量,因为程序中使用了Python的numpy。gradAscent函数是梯度上升的实现函数,参数dataMatin和classLabels为训练数据,23和24行对训练数据做了处理,转换成numpy的矩阵类型,同时将横向量的classl

数据分析--分析方法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1485173816
  • 文件大小4.23 MB
  • 时间2019-02-09