大工21春《数据挖掘》大作业题目及要求【答案】.docx

大工21春《数据挖掘》大作业题目及要求【答案】.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大工21春《数据挖掘》大作业题目及要求【答案】 XXX 数据挖掘》课程大作业 题目:Knn算法原理以及python实现 姓名: 研究中心: 第一大题:讲述自己在完成大作业过程中遇到的困难,解决问题的思路,以及相关感想,或者对这个项目的认识,或者对Python与数据挖掘的认识等等,300-500字。 答:数据分析和数据挖掘并不是相互独立的,数据分析通常是直接从数据库取出已有信息,进行一些统计、可视化、文字结论等,最后可能生成一份研究报告性质的东西,以此来辅助决策。但是如果要分析已有信息背后的隐藏信息,而这些信息通过观察往往是看不到的,这是就需要用到数据挖掘,作为分析之前要走的一个门槛。数据挖掘不是简单的认为推测就可以,它往往需要针对大量数据,进行大规模运算,才能得到一些统计学规律。 科技的快速发展和数据的存储技术的快速进步,使得各种行业或组织的数据得以海量积累。但是,从海量的数据当中,提取有用的信息成为了一个难题。在海量数据面前,传统的数据分析工具和方法很无力。由此,数据挖掘技术就登上了历史的舞台。 数据挖掘是一种技术,将传统的数据分析办法与处理大量数据的复杂算法相联合,从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事前不知道的、但又是潜在有效信息和常识的过程。 第二大题:完成下面一项大作业题目。 题目一:Knn算法道理以及python完成 答: 一、knn算法介绍 邻近算法,或者说K最近邻(kNN。k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 在种别决议时,只与少少量的相邻样本有关。因为kNN办法主要靠周围有限的邻近的样本,而不是靠判别类域的办法来肯定所属种此外,因而关于类域的交叉或堆叠较多的待分样本集来说,kNN办法较其他办法更为适合。 2、核心概括 主要的思想是计算待分类样本与训练样本之间的差异性,并将差异按照由小到大排序,选出前面K个差异最小的类别,并统计在K个中类别出现次数最多的类别为最相似的类,最终将待分类样本分到最相似的训练样本的类中。与投票(Vote)的机制类似。 三、knn算法流程 1.准备数据,对数据举行预处理 2.选用合适的数据结构储备训练数据和测试元组 3.设定参数,如k 4.维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L与优先级队列中的最大距离Lmax进行比较。若L=Lmax则舍弃该元组,遍历下一个元组。若L Lmax删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列。遍历完毕,计算优先级队列中k个元组的多数类,并将其作为测试元组的类别。测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k值。 4、代码完成 使用python程序模拟KNN算法 Created on Sat Jun 22 18:38:22 2019 author: zhe n XXX import nu mpy as np import collect ions as cs data np.array([ [203,1],[126,1],[89,1],[70,1],[196,2],[211,2],[221,2],[311,3],[271,3] feature = data[:,0] #特性 print(feature) label = data[:,-1] # print(label) XXX 200 #预测数据 print(预测输入特性为: + str(predictPoint)) distance = list(map(lambda x : abs(predictPoint - x)。feature))#各点到预测点的距离 print(distance) XXX(distance) # 回排序后各数据的原始下 标 print(sortIndex) XXX[sortIndex] #根据下标重新举行排序 print(sortLabel) k = 3 #设置k值大小为3 for k in range(1,label.size+1): 排序,返 结果分类 result = cs.Counter(sortLabel[0:k]

文档评论(0)

137****7707 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档