机器学习实战------利用logistics回归预测病马死亡率

小花花108 小花花108     2022-08-07     277

关键词:

大家好久不见,实战部分一直托更,很不好意思。本文实验数据与代码来自机器学习实战这本书,倾删。

一:前期代码准备
1.1数据预处理

还是一样,设置两个数组,前两个作为特征值,后一个作为标签。当然这是简单的处理,实际开发中特征值都是让我们自己选的,所以有时候对业务逻辑的理解还是很重要的。

 

1.2 sigmoid函数设置

clip_image002

1.3固定步长梯度上升算法

这段代码见一面1.4节。

Alpha表示步长,maxcycles表示最大的迭代次数,其中weights=ones((n,1))是初始化一个全部为一的n*1的矩阵。Error就是分类错误的项。大家对于公式:

weights=weights+alpha*dataMatrix.transpose()*error 表示权值是前一个权值+步长*方向(预测值与实际值的差值决定了方向)。

1.4分析数据画出决策边界

这里没什么好说的,就是把两个特征值分别作为横坐标和纵坐标,然后用一条直线分割开来。

1.4.1梯度上升算法效果图

clip_image004

可以看出分错了四个点,但是这个方法计算量太大了。大家来跟着我改进它!

1.4.2随机梯度上升。

实现代码如下:

梯度上升算法在每次更新回归系数的时候都需要遍历整个数据集,这样处理数十亿样本或者成千上万的特征,那还不爆炸么,计算复杂度太高了。一种改进方法是一次仅用一个样本点来更新回归系数,该方法称为梯度上升算法。要根据给出的数据边学习边给结果,所以随机梯度上升算法是一个在线学习算法。

效果图:

clip_image005

等等,小花你在逗我吧。你这个越改越差。刚开始,我们的分类器那么完美,你现在分类的结果是个什么东东啊。哈哈,其实这个游戏本身就是不公平的,梯度上升算法,在整个数据集上迭代了500次才得到的,而第二种才计算了几次。而且判断一个算法优劣的可靠方法是看它是否收敛,也就是随着计算次数的增加参数是否趋于稳定。大家莫急,先等我略施小计。

1.4.2改进的随机梯度上升算法

代码如下:

(1) 让步长变化,加上一个参数表示步长永远不会等于0,保持每次加的数据都会对结果又影响。

(2) 有一个随机的过程从数据集中选取数据来更新参数,选到之后就不选了。

(3) 参数设定,这里设定的是150次迭代,等下我设置500次让大家看看实验结果。

150次迭代如下:

clip_image007

500次迭代如下:

clip_image009

感觉好像没什么变化啊。这就是随机上升梯度算法的奥妙啊。迭代150次和500次一样,这样对时间复杂度的减少意义重大啊,有木有。

二:预测病马死亡率

2.1准备数据:处理数据的缺失值

方法:

1. 删除

最简单的方法是删除,删除属性或者删除样本。如果大部分样本该属性都缺失,这个属性能提供的信息有限,可以选择放弃使用该维属性;如果一个样本大部分属性缺失,可以选择放弃该样本。虽然这种方法简单,但只适用于数据集中缺失较少的情况。

2. 统计填充

对于缺失值的属性,尤其是数值类型的属性,根据所有样本关于这维属性的统计值对其进行填充,如使用平均数、中位数、众数、最大值、最小值等,具体选择哪种统计值需要具体问题具体分析。另外,如果有可用类别信息,还可以进行类内统计,比如身高,男性和女性的统计填充应该是不同的。

3. 统一填充

对于含缺失值的属性,把所有缺失值统一填充为自定义值,如何选择自定义值也需要具体问题具体分析。当然,如果有可用类别信息,也可以为不同类别分别进行统一填充。常用的统一填充值有:“空”、“0”、“正无穷”、“负无穷”等。

4. 预测填充

我们可以通过预测模型利用不存在缺失值的属性来预测缺失值,也就是先用预测模型把数据填充后再做进一步的工作,如统计、学习等。虽然这种方法比较复杂,但是最后得到的结果比较好。

2.2 测试算法

代码:

实验结果:

实验结果

总结:为什么输出的结果不一样呢,因为里面有一个随机的值啊。

毕竟自己也是在学习,如有错误,请大家不吝赐教。

机器学习实战笔记logistic回归

参考链接http://blog.csdn.net/lu597203933/article/details/38468303Logistic代码#Logistic回归分类使用梯度上升找最佳参数importnumpyasnpdefloadDataSet():datMat=[];labelMat=[]fr=open(‘testSet.txt‘)forlineinfr.readlines():lineAr 查看详情

机器学习实战第5章logistic回归

第5章Logistic回归Logistic回归概述Logistic回归虽然名字叫回归,但是它是用来做分类的。其主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。须知概念Sigmoid函数回归概念假设现在有一些数据点,我们用一条直线... 查看详情

[机器学习实战]logistic回归

1.Logistic回归:  1)优点:计算代价不高,易于理解和实现;  2)缺点:容易欠拟合,分类精度可能不高;  3)适用数据类型:数值型和标称型数据; 2.分类思想:  根据现有数据对分类边界线建立回归公式,以此... 查看详情

机器学习实战精读--------logistic回归

Logistic回归的主要目的:寻找一个非线性函数sigmod最佳的拟合参数拟合、插值和逼近是数值分析的三大工具回归:对一直公式的位置参数进行估计拟合:把平面上的一些系列点,用一条光滑曲线连接起来logistic主要思想:根据现... 查看详情

[机器学习实战-logistic回归]使用logistic回归预测各种实例(代码片段)

[机器学习实战-Logistic回归]使用Logistic回归预测各种实例目录[机器学习实战-Logistic回归]使用Logistic回归预测各种实例本实验代码已经传到gitee上,请点击查收!一、实验目的二、实验内容与设计思想实验内容设计思想三、实验使... 查看详情

机器学习实战第五章logistic回归(代码片段)

defgradAscent(dataMatIn,classLabels):dataMatrix=mat(dataMatIn)#converttoNumPymatrixlabelMat=mat(classLabels).transpose()#converttoNumPymatrixm,n=shape(dataMatrix)alpha=0.001maxCycles=500weights=ones(( 查看详情

《机器学习实战》学习笔记:logistic回归(代码片段)

欢迎关注WX公众号:【程序员管小亮】【机器学习】《机器学习实战》读书笔记及代码总目录https://blog.csdn.net/TeFuirnever/article/details/99701256GitHub代码地址:https://github.com/TeFuirnever/Machine-Learning-in-Action——————————... 查看详情

机器学习实战 logistic回归(代码片段)

logistic回归梯度上升法importnumpyasnp"""function:加载数据parameter:无returns:dataMat-数据集labelMat-标签集"""defloadDataSet():dataMat=[]#数据集labelMat=[]#标签集fr=open('testSet.txt')forlineinfr.readlines():lineArr=line.strip().split()dat... 查看详情

机器学习实战之logistic回归

...2.logistic回归分类函数  一、概述  分类技术是机器学习和数据挖掘应用中的重要组成部分。在数据科学中,大约70%的问题属于分类问题。解决分类问题的算法也有很多种,比如 查看详情

机器学习实战四(logisticregression)

机器学习实战四(LogisticRegression)这一章会初次接触最优化算法,在日常生活中应用很广泛。这里我们会用到基本的梯度上升法,以及改进的随机梯度上升法。Logistic回归优点:计算代价不高,易于理解和实现缺点:容易欠拟合... 查看详情

机器学习:logistic回归原理及其实现

Logistic回归是机器学习中非常经典的一个方法,主要用于解决二分类问题,它是多分类问题softmax的基础,而softmax在深度学习中的网络后端做为常用的分类器,接下来我们将从原理和实现来阐述该算法的思想。1.原理a.问题描述考... 查看详情

机器学习之logistic回归算法

1Logistic回归算法的原理1.1需要的数学基础我在看机器学习实战时对其中的代码非常费解,说好的利用偏导数求最值怎么代码中没有体现啊,就一个简单的式子:θ=θ - α Σ[(hθ(x(i))-y(i) )]*xi。经过查找资料才知道,... 查看详情

机器学习-logistic回归

logistic回归的主要思想:已知样本数目为m,特征(feature)数目为n。给出假设h(X)=g(X*theta)g(z)是sigmiod函数:g(z)=1/(1+exp(-z)) 考虑分类器问题:Y取值为0或1,同样地,h(X)取值为0或1。则P(y|x;theta)=h(x)^y*(1-h(x))^(1-y)对其取log得到:对J求... 查看详情

ng机器学习视频笔记——logistic回归

ng机器学习视频笔记(四)——logistic回归 (转载请附上本文链接——linhxx) 一、概述1、基本概念        logistic回归(logisticregression),是一个分类(classification)算法(注意不是回归算法,... 查看详情

电子书机器学习实战.pdf

机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域... 查看详情

机器学习实战[machinelearninginaction]

内容简介  机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专... 查看详情

机器学习——基础整理:线性回归;二项logistic回归;softmax回归;广义线性模型

...线性模型    二项Logistic回归是我去年入门机器学习时学的第一个模型,我觉得这个模型很适合用来入门(但是必须注意这个模型有很多很多很多很多可以展开的地方)。比较有意思的是那时候还不会矩阵微积分,... 查看详情

机器学习_logistic回归和梯度下降

 原文:http://blog.csdn.net/dongtingzhizi/article/details/15962797  Logistic回归总结 PDF下载地址:http://download.csdn.net/detail/lewsn2008/65474631.引言   看了Stanford的AndrewNg老师的机 查看详情