Python程序设计基础 Chap13 程序开发进阶.pdf
《Python程序设计基础 Chap13 程序开发进阶.pdf》由会员分享,可在线阅读,更多相关《Python程序设计基础 Chap13 程序开发进阶.pdf(38页珍藏版)》请在咨信网上搜索。
1、内衮提纲13.1 分治算法.O13.2 莺尾花的分类.-.O13.3 设讨分类算法.-.-.O13.4 详细设计.O13.5 其他有趣的算法问题O13.1分澹算法:什么是分治策略将一些大问题分解成很多的小问题,小问题的解决应 该是比较容易了,当这些小问题都得到了解决,那么,大问题也就迎刃而解了。使用分治策略时,主要采用自顶向下,逐步细化的原 则来进行程序设计。自顶向下设计是从顶层开始描述 问题的解决方案,把大问题分解成一个个小问题。小 问题不需要立刻进行编程或者解决,而是以函数的形 式把它们描述出来,等到大问题分解完成之后,再一 步步对这些小问题(函数)进行编程。13.2卷尾龙的分类:莺尾花数
2、据集的数据主要由五个维度组成,分别 是花萼长度、花萼宽度、花瓣长度、花瓣宽度、莺尾花的种类。:前4维主要是莺尾花的特征项,后一维是莺尾花的 种类项。殳莺尾花有三个种类,分别代表山莺尾(seto sa)、变色莺尾(ver sico lo r)和维吉尼亚莺尾(vir ginica)。山莺尾(setosa)变色莺尾(versicolor)图13-1 三种莺尾花川维吉尼亚莺尾(virginica):我们的问题是,能否编写一个机器自动识别程序,只要录入前4维的特征项,机器就能根据前4维 的特征项来判定莺尾花的种类?KNN(K-NearestNeighbor)算法介绍:.KNN算法,简称邻近算法,它是数据
3、挖掘分类技术 中最简单的方法之一。:所谓K最近邻,就是K个最近的邻居的意思,说的 是每个样本都可以用它最接近的K个邻居来代表。KNN(K-NearestNeighbor)算法介绍最近邻分类算法思路 是:如果一个样本在 特征空间中的K个最相 似(即特征空间中最邻 近)的样本中的大多数 属于某一个类别,则 该样本也属于这个类 别。图13-2 KNN分类示意图K个最近邻居:欧氏距离计算 是一个通常采用的距离 定义,指在m维空间中两 个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)e(x,=%)2 其中,/表飘数。K是可以调节的,一般来 说应该是个单数:莺尾花数据集共有150条数据,其中山
4、莺尾、变色 莺尾、维吉尼亚莺尾三种类型的记录各占50条。我 们选取2/3的数据作为样本数据,1/3的数据作为测 试数据。可以通过人工选取的方法来选择样本,也 可以随机选取样本。:样本越多,维数越多,计算量就越大,因为每一个 测试数据都要与每一个样本进行距离计算,而每个 样本的计算量又和样本的维数相关。然后再选取K 个最近的数据,才能确定测试数据的类型。:自然语言描述算法(1)从文件中创建训练数据集和测试数据集。-(2)让每个测试数据进行训练,得到预测的类型。计算测试数据与所有训练数据集的距离。获得k个最近的邻居,并预测自己的类型。(3)打印预测类型与实际类型。(4)用预测的类型与实际数据进行比
5、较,查看分类算 法的正确率。程序对算法的描述 y11-def mainOw2 trainings et=#训练集数据列表一3 testSet二口#测试数据列表一a split=0.67#训练与测试数据集的分段值,意味着2/3为训练数据集,1/3为测试数据集5 loadDatasetCe:iris.txt,split,trainingSet,testSet)6 printfTrain set:*+repr(len(trainingSet)#获得训练集的数据-printfTest set:*+repr(len(testSet)#获得测试的数据&predictions二口#预测数据列表910 for
6、 i in range(len(testSet):#让每一个测试数据进入分类器进行分类一neighbors=getNeightbors(trainingSet,testSeti,k)12 result=getResponse(neighbors)-13 predictions,append(res ult)#把分类的结果加入预测列表一14.一15#把分类的结果与实际结果打印出来”16 pint(predicted=+rep(es ult)+,actual=+rep(testsaccuracy=getAccuracy(t estSet,predictions)一17 print(,Accurac
7、y:,+repr(accuracy)+,%t)算法描述:定义了三个列表:tr ainingSet、testSet pr edictio nso:定义了四个函数:lo adDataset、getNeightbo r s、getRespo nse、getAccur acyo1#打开文件,并把文件的内容加载到数据集之中2-def lo adDataset(filename,split5tr ainingSet=5testSet=):3-#没有返回结果,通过参数tr ainingSet和testSet返回结巢4#获得训练集中所有实例与测试实例之间的最短距离,选择k个最接近的邻居,加入到neighbo
8、r s列表中:5-def getNeightbo r s(tr ainingSet5testlnstance5k):6-r etur n 7.#从K个邻居中找出类型最多的那种,从而确定测试实例属于哪一种类型8-def getRespo nse(neighbo r s):9-r etur n 10-#计算KNN正确率11 def getAccur acy(testSet,pr edictio ns):12-r etur na#定义主函数14-def main():文件格式属 性最大值最大值平均值1sepal length in cm4.37.95.842sepal width in cm2.04
9、.43.053petal length in cm1.06.93.764petal width in cm0.12.51.205Class(分成三种)Iris setosa、Iris versicoloury Iris virginica其中前4维分别代表莺尾花的萼片长、宽,花瓣的长、宽。第5维代表的是 类型,分别代表山莺尾(setosa)、变色莺尾(versicolor)、维吉尼亚莺 尾(virginica)。数据共150条,如下图13-4所示原始数据5.1,3-5,1.4,0.2 Jris-setosa4.93-0.1.4,0.2 Jris-setosa4.793-2,1.3,0.2 Jr
10、is-setosa 7.0,3.2,4.7.41ris-versicolor6.4,3.294.591.5 Jris-versicolor6.93-1,4.9,1.5 Jris-versicolor 63,3.3,60,2.5ris-virgiiiica5.8,2.7511.9 Jris-virginica7.13-0.5.9,2.1 Jris-virginica/oadOataset 函数:/。2。2七5家函数的作用是打开文件,并把莺尾花 的记录通过分拣工作,分别放入a/c/cgSe环口 festSef两个数据集中。:函数中有四个参数,分别是打开文件、split.trainingSet.te
11、stSeto:没有返回结果,但是能通过两个列表把结果带出 来。/oadOataset 函数:算法思想。(D打开文件。在做测试的时候,应该要确保文件是 存在的,如果文件名不存在,需要给用户提示。目前,我们假设文件是存在的,出错检查部分在后续的工 作中再完善。(2)把文件中所有的记录的加入dataset中。(3)把文件中的14的数据进行处理,变成可计算的 浮点型。(4)通过一个随机数进行分拣,分别放入trainingSet、招stS中,通常训练集与测试集的数据比例为2:1。getNeightborsM*getNeightbors函数是获得训练集中所有实例与 测试实例之间的最短距离,并选择K个最接近
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python程序设计基础 Chap13 程序开发进阶 Python 程序设计 基础 程序 开发 进阶
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。