统计计算 课件 6.3 逻辑回归_第1页
统计计算 课件 6.3 逻辑回归_第2页
统计计算 课件 6.3 逻辑回归_第3页
统计计算 课件 6.3 逻辑回归_第4页
统计计算 课件 6.3 逻辑回归_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.3逻辑回归6.3.1原理6.3.2梯度下降法6.3.3举例logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等。因此因变量就为是否胃癌,值为“是”或“否”,自变量就可以包括很多了,如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。然后通过logistic回归分析,可以得到自变量的权重,从而可以大致了解到底哪些因素是胃癌的危险因素。同时根据该权值可以根据危险因素预测一个人患癌症的可能性议程

6.3.1逻辑回归的原理我们日常生活中遇到过很多最优化问题,比如如何在最短时间内从A点到达B点?如何投入最少工作量却获得最大的效益?如何设计发动机使得油耗最少而功率最大?接下来,我们将介绍优化算法,并利用它们训练出一个非线性函数用于分类。现在有一些数据点,我们用一条直线对这些点进行拟合,这个拟合过程就称作回归。利用Logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。这里的“回归”一词源于最佳拟合,表示要找到最佳拟合参数集。训练分类器时的做法就是寻找最佳拟合参数,使用的是优化算法。基于Logistic回归和Sigmoid函数的分类我们想要的函数应该是,能接受所有的输入然后预测出类别。例如,在两个类的情况下,上述函数输出0或1。海维赛德阶跃函数(Heavisidestepfunction),或直接称为单位阶跃函数具有这样的性质。海维赛德阶跃函数的问题在于该函数在跳跃点上从0瞬间跳跃到1,这个瞬间跳跃有时很难处理。幸好,另一个函数也有类似的性质,且数学上更易处理,这就是Sigmoid函数给出了Sigmoid函数在不同坐标尺度下的两条曲线图。当x为0时,Sigmoid函数值为0.5。随着x的增大,对应的Sigmoid值将逼近于1;而随着x的减少,Sigmoid值将逼近于0。如果横坐标刻度足够大,Sigmoid函数看起来很像一个阶跃函数。逻辑函数的作用是把任意的实数x都变为(0,1)之间的数,而概率恰好为(0,1)之间的数,因此可以用逻辑函数的值表示。为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以,Logistic回归也可以3被看成是一种概率估计。先给出线性回归的方程则上述公式可写y=wTx+b,其中向量x是分类器的输入数据,向量w也就是我们要找到的最佳参数(系数),从而使得分类器尽可能地精确。logisticregression翻译为“对数几率回归”而非“逻辑回归”源自于上述公式:y/(1-y)称为几率(odds),反映x作为正例的可能性;如果将y/(1-y)看成一个整体,则上式就是对数线性回归1因变量为二分类的分类变量或某事件的发生率,并且是数值型变量。但是需要注意,重复计数现象指标不适用于Logistic回归。2残差和因变量都要服从二项分布。二项分布对应的是分类变量,所以不是正态分布,进而不是用最小二乘法,而是最大似然法来解决方程估计和检验问题。3自变量和Logistic概率是线性关系4各观测对象间相互独立Logistic回归模型的适用条件:自变量和Logistic概率是线性关系可以看出2和3的值非常接近,可以进行合并梯度下降法基于的思想是:要找到某函数的最小值,最好的方法是沿着该函数的梯度反方向探寻。如果梯度记为▽,则函数f(x,y)的梯度为6.3.2梯度下降法这里的函数

f(x,y)必须要在待计算的点上有定义且可微可以使用一条直线或曲线将测试数据分为两类,如果是直线,则为线性分类器,曲线则为非线性分类器。该直线或曲线称为决策边界(decisionboundary)。决策边界两侧非常容易判断分类,而落在决策边界上的点无法判断其归属。对于线性边界梯度下降法(GD)的算法为:(1)给出初值,取步长α

(2)对于i=1,2,……,有程序终止的条件。1)可规定循环的次数,如循环100次。即固定循环次数。2)比较两次循环参数的估计值的绝对误差,如3)比较两次循环损失函数的绝对误差,如使用梯度下降法时,当数据量n很大时,每次更新都需要计算所有样本的梯度,计算量非常大,时间复杂度随着n的增大,呈线性增长。该方法在处理100个左右的数据集时尚可,但如果有上亿(n)的样本和上千(m)的特征,那么该方法的时间复杂度为O(m×n×k),k为迭代步数)。因此我们可以使用其他梯度下降法。随机梯度下降法如果使用随机梯度下降法,每次更新时只依赖于随机抽取的一个样本,计算量要比随机梯度下降法要小的多。随机梯度下降法(SGD)的算法为:(2)使用shuffle()打乱数据的顺序,随机抽取一个(3)对于i=1,2,……,有(1)给出初值,取步长α

(4)程序终止条件同梯度下降法。

随机梯度下降法优点是:计算量小,而且学习率可以取得小一些。缺点是不稳定,很容易出现振荡。由于它一次仅用一个样本点来更新系数,时间复杂度仅为O(n×k)。MinibatchGradientdescent方法是梯度下降法和随机梯度下降法的折中,每次更新时从n个样本数据中选取m个,计算梯度。计算量比梯度下降法少,比随机梯度下降法大。无论m怎么选,都要比随机梯度下降法要稳定。MinibatchGradientdescent(迷你批梯度下降法)(2)随机从n个样本数据中选取m个,为(3)对于i=1,2,……,有(1)给出初值,取步长α

4)程序终止条件同梯度下降法。

优点是比随机梯度下降法稳定,计算量比梯度下降法小。例1数据如下:X-1-2-3-4-512345109Y000001111111把前十个数据作为测试集,最后两个数据作为验证集,使用逻辑回归进行分类,再判断X=-10的分类6.3.3举例计算步骤如下:(1)给出w的初值,不妨设w0=1,当然也可以令w0等于其他值。

(2)步长取为1.5(3)迭代公式为X=-10在决策边界的左边,因此属于第一类,即0类例2利用鸢尾花数据集使用逻辑回归进行二分类,判断是否为setosa这种鸢尾花。该数据集一共包含5个变量,其中4个特征变量,1个目标分类变量。共有150个样本,目标变量为花的类别都属于鸢尾属下的三个亚属,分别是山鸢尾(Iris-setosa),变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica)。包含的三种鸢尾花的四个特征,分别是花萼长度(cm)、花萼宽度(cm)、花瓣长度(cm)、花瓣宽度(cm),这些形态特征在过去被用来识别物种。算法:(1)导入数据集iris.csv。(2)把Species生成哑变量,转化为onehot向量,即n维行向量中只有一个1,其余均为0。比如第一行数据的标签为setosa,转化为(100)。setosaversicolorvirginica01001100210031004100再把新生成的三列数据作为三列添加到数据集中。(3)取前100行数据作为训练集,后50行作为测试集。训练集中的特征矩阵X由训练集的前4列特征组成,标签Y为对应的setosa的列。测试集同样处理。(4)如果数据集中的各个特征的值大小相差过大,需要做标准化处理。如年龄和工资这两个特征进行逻辑回归时需要标准化。(1)给出初值,取步长α

(2)对于i=1,2,……,有(6)训练完成,将测试集数据代入,利用求出的参数和逻辑函数,得出估计值,如果估计值大于0.5(阈值),令其为1,否则为0,比较估计值和真实值的差距,计算准确率。例3利用鸢尾花数据集使用逻辑回归进行二分类,判断Species是setosa还是versicolor,特征也只取前两个:花萼长度和花萼宽度(cm)。该数据集一共包含5个变量,其中4个特征变量,1个目标分类变量。共有150个样本,目标变量为花的类别,都属于鸢尾属下的三个亚属,分别是山鸢尾(Iris-setosa),变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica)。包含的三种鸢尾花的四个特征,分别是花萼长度(cm)、花萼宽度(cm)、花瓣长度(cm)、花瓣宽度(cm),这些形态特征在过去被用来识别物种。我们只需提取前两个特征,而判断数据属于setosa还是versicolor,属于二分类,只取前100个数据,因为最后50个数据属于virginica。使用sklearn库1、需要导入iris数据集和逻辑回归:fromsklearn.datasetsimportload_irisfromsklearn.linear_modelimportLogisticRegression2、导入iris数据集:iris=load_()由于对数据属于'setosa'和'versicolor'进行分类,因此取前100行数据即可。再就是只取前两个特征:长度和宽度。成功获取鸢尾花两列对应为花萼长度和花萼宽度数据组成的二维数组X后,再获取前100个数据的标签Y,每个点的坐标就是(x,y)。先取二维数组X的第一列(长度)的最小值和最大值,把它们分别减去0.5和加上0.5,得到xmin和xmax。然后取Y的最小值和最大值,把它们分别减去0.5和加上0.5,得到ymin和ymax。设步长为h(令其为0.02)生成数组,最后用meshgrid函数生成两个矩阵X1和Y1。X1,Y1=np.meshgrid(np.arange(xmin,xmax,h),np.arange(ymin,ymax,h))3、初始化逻辑回归模型并进行训练l=LogisticRegression(solver='liblinear',multi_class='ovr')l.fit(x,y)4、进行预测将X1和Y两个矩阵调用ravel()函数分别转化为两个一维数组,然后使用np.c_将两个一维数组合并,np.c_是将一维数组作为列放入到二维数组中。最后结果调用predict()函数进行预测,预测结果赋值给z。z=l.predict(np.c_[X1.ravel(),Y1.ravel()])

reshape()函数的功能是改变数组或矩阵的形状,

a.reshape(m,n)表示将原有数组a转化为一个m行n列的新数组,a自身不变。pcolormesh函数将X1,Y1两个矩阵和对应的预测结果Z绘制出来,输出为两个颜色区块,表示分类的两类区域。cmap=plt.cm.Paired表示绘图样式选择Paired主题。把z的行列数改为与X1的行列数相同。z=z.reshape(X1.shape)plt.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论