数据挖掘课程大作业.docx

上传人:奥沙丽水 文档编号:90278 上传时间:2025-07-10 格式:DOCX 页数:5 大小:71.85KB
下载 相关 举报
数据挖掘课程大作业.docx_第1页
第1页 / 共5页
数据挖掘课程大作业.docx_第2页
第2页 / 共5页
数据挖掘课程大作业.docx_第3页
第3页 / 共5页
数据挖掘课程大作业.docx_第4页
第4页 / 共5页
数据挖掘课程大作业.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、网络教育学院 数据挖掘课程大作业题目:姓名:才报名编号:学习中心:层次:专升本专业:计算机科学与技术第一大题:讲述自己在完成大作业过程中遇到的困难,解决问题的思路,以及相关感想,或者对这个项 目的认识,或者对Python与数据 挖掘的认识等等,300500字。数据挖掘是一门重要的专业课。数据挖掘引起了信息产业界的极大关注,其主 要 原因是存在大量数据,可以广泛使用,并且迫切需要将这些数据转换成有用的信息 和知识。数据挖掘就是从大量的数据中,抽取出潜在的、有价值的知识、模 型或规 则的过程。作为一类深层次的数据分析方法,它利用了数据库、人工智能和数理统 计等多方面的技术。要将庞大的数据转换成为有

2、用的信息,必须先有效率地收集信息。随着科技的进步,功能完善的数据库系统就成了最好的收集数据的工具。数据仓库,简单地说,就是搜集来自其它系统的有用数据,存放在一整合的储存区内。所以其实就 是一个经过处理整合,且容量特别大的关系型数据库,用以储存决策支持系统所需 的数据,供决策支持或数据分析使用。数据挖掘的研究领域非常广泛,主要包括数据库系统、基于知识的系统、人工 智能、机器学习、知识获取、统计学、空间数据库和数据可视化等领域。主要是可 以做以下几件事:分类、估计、预测、关联分析、聚类分析、描述和可视化、复杂 数据类型挖掘第二大题:完成下面一项大作业题目2019秋数据挖掘课程大作业题目一:Knn算

3、法原理以及python实现要求:文档用使用word撰写即可。主要内容必须包括:(1)算法介绍。(2)算法流程(3) python实现算法以及预测。(4)整个word文件名为姓名奥鹏卡号学习中心(如戴卫东101410013979浙江台州奥鹏学习中心1 VIP )答:一、knn算法介绍1 .介绍邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘 分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说 的 是每个样本都可以用它最接近的k个邻居来代表。kNN算法的核心思想是如果一个 样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样

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

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

6、类,并将其作为测试元组的类 别。8 .测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最 后取误差率最小的k值。三、代码实现使用python程序模拟KNN算法Created on Sat Jun 22 18:38:22 2019author: zhe nIIHHimport nu mpy as npimport collect ions as csdata=np.array( 203JJ126JJ89JJ70JJ196,2J21152J221525311 ,3,271,3)feature = data:,0 # 特征print(feature)结果分类label = data:

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

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

9、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值的选择和训练数据的大小有关,可以取值为训练数据的平方根左 右为宜!5 6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

宁ICP备18001539号-1