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

上传人:赵** 文档编号:89632600 上传时间:2023-05-07 格式:PDF 页数:6 大小:180.56KB
返回 下载 相关 举报
大工21春《数据挖掘》大作业题目及要求【答案】.pdf_第1页
第1页 / 共6页
大工21春《数据挖掘》大作业题目及要求【答案】.pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《大工21春《数据挖掘》大作业题目及要求【答案】.pdf》由会员分享,可在线阅读,更多相关《大工21春《数据挖掘》大作业题目及要求【答案】.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、网络教育学院网络教育学院数据挖掘课数据挖掘课 程程 大大 作作 业业题题目目:KnnKnn 算法原理以及算法原理以及 pythonpython 实现实现姓姓名:名:学习中心:学习中心:第一大题:第一大题:讲述自己在完成大作业过程中遇到的困难,讲述自己在完成大作业过程中遇到的困难,解决问题的思解决问题的思路,以及相关感想,或者对这个项目的认识,或者对路,以及相关感想,或者对这个项目的认识,或者对 PythonPython 与数据与数据挖掘的认识等等,挖掘的认识等等,300-500300-500 字。字。答:数据分析和数据挖掘并不是相互独立的,数据分析通常是直接从数据库取出已有信息,进行一些统计、

2、可视化、文字结论等,最后可能生成一份研究报告性质的东西,以此来辅助决策。但是如果要分析已有信息背后的隐藏信息,而这些信息通过观察往往是看不到的,这是就需要用到数据挖掘,作为分析之前要走的一个门槛。数据挖掘不是简单的认为推测就可以,它往往需要针对大量数据,进行大规模运算,才能得到一些统计学规律。科技的快速发展和数据的存储技术的快速进步,使得各种行业或组织的数据得以海量积累。但是,从海量的数据当中,提取有用的信息成为了一个难题。在海量数据面前,传统的数据分析工具和方法很无力。由此,数据挖掘技术就登上了历史的舞台。数据挖掘是一种技术,将传统的数据分析方法与处理大量数据的复杂算法相结合,从大量的、不完

3、全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用信息和知识的过程。第二大题:完成下面一项大作业题目。第二大题:完成下面一项大作业题目。题目一:题目一:KnnKnn 算法原理以及算法原理以及 pythonpython 实现实现答:一、一、knnknn 算法介绍算法介绍邻近算法,或者说 K 最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘 分类技术中最简单的方法之一。所谓 K 最近邻,就是 k 个最近的邻居的意思,说 的是每个样本都可以用它最接近的 k 个邻居来代表。kNN 算法的核心思想是如果一个样本在特征空间中的 k 个最相邻的样本

4、中的大多数属于某一个类别,则该样 本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只 依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。在类别决策时,只与极少量的相邻样本有关。由于 kNN 方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN 方法较其他方法更为适合。二、核心概括二、核心概括主要的思想是计算待分类样本与训练样本之间的差异性,并将差异按照由小 到大排序,选出前面 K 个差异最小的类别,并统计在 K 个中类别出现次数最多的 类别为最相似的类,最终将待分类样本分到最相似的训练样本的类

5、中。与投票(Vote)的机制类似。三、三、knnknn 算法流程算法流程1.准备数据,对数据进行预处理2.选用合适的数据结构存储训练数据和测试元组3.设定参数,如 k4.维护一个大小为 k 的的按距离由大到小的优先级队列,用于存储最近邻训 练元组。随机从训练元组中选取 k 个元组作为初始的最近邻元组,分别计算测试 元组到这 k 个元组的距离,将训练元组标号和距离存入优先级队列遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离 L 与优先级队列中的最大距离 Lmax 进行比较。若 L=Lmax 则舍弃该元组,遍历下一个元组。若L Lmax删除优先级队列中最大距离的元组,将当前训练元组存

6、入优先级队列。遍历完毕,计算优先级队列中 k 个元组的多数类,并将其作为测试元组 的类别。测试元组集测试完毕后计算误差率,继续设定不同的 k 值重新进行训练,最后取误差率最小的 k 值。四、代码实现四、代码实现使用 python 程序模拟 KNN 算法Created on Sat Jun 22 18:38:22 2019author:zhe nIIHHimport nu mpy as npimport collect ions as csdatanp.array(203,1,126,1,89,1,70,1,196,2,211,2,221,2,311,3,271,3)feature=data:,

7、0#特征print(feature)label=data:,-1#print(label)predictPoint=200#预测数据print(预测输入特征为:+str(predictPoint)distance=list(map(lambda x:abs(predictPoint-x),feature)#各 点到预测点的距离print(distance)sortIndex=np.argsort(distance)#回排序后各数据的原始下标print(sortIndex)sortLabel=labelsortIndex#根据下标重新进行排序print(sortLabel)#k=3#设置 k 值

8、大小为 3for k in range(1,label.size+1):排序,返结果分类result=cs.Counter(sortLabel0:k).most_common(1)00#值计算前 k 个数据中出现次数最多的分类,即为预测的分类print(当 k=+str(k)+str(result)时预测分类为:+五、结果五、结果203 126 89 70 196 211 221 311 2711 1 1 1 2 2 2 3 3预测输入特征为:2003,74,111,130,4,11,21,111,710 4 5 6 8 1 2 7 31 2 2 2 3 1 1 3 1当 k=1 时预测分类为

9、:1当 k=2 时预测分类为:1当 k=3 时预测分类为:2当 k=4 时预测分类为:2当 k=5 时预测分类为:2当 k=6 时预测分类为:2当 k=7 时预测分类为:1当 k=8 时预测分类为:1当 k=9 时预测分类为:1 总结1.根据训练数据和结果可知,当k 较小时【比如本次当k=1】,若训练数据存在异常数据时容易出现预测错误的情况,因此一般 K 值都不能太小!2.当 k 值较大时,某个分类的训练数据越多,预测成此分类的可能性越大,因此,训练数据要先根据分类进行再平衡!3.一般 k 值的选择与分类数量有关,分类数量越大,k 一般也越大,一般为取值为:type2type 之间!4.一般 k 值的选择和训练数据的大小有关,可以取值为训练数据的平方根左 右为宜!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁