机器学习实验

上传人:枫** 文档编号:512439429 上传时间:2024-01-28 格式:DOCX 页数:2 大小:13.99KB
返回 下载 相关 举报
机器学习实验_第1页
第1页 / 共2页
机器学习实验_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《机器学习实验》由会员分享,可在线阅读,更多相关《机器学习实验(2页珍藏版)》请在金锄头文库上搜索。

1、机器学习实训实验报告( 六 )专业班级学号姓名实验项目名称:K邻近算法实验内容:1、理解K邻近算法的工作原理。2、了解算法中评判标准:欧式距离及K值的意义。3、利用书3.0西瓜集作为训练集(除去编号8),其中编号8的数据作为测试集,判断其类别。4、说明:此处由于西瓜属性中密度和含糖率为连续的,不能分类所以去除此类别属性。为方便数据集创建现对属性类以数值说明: 其中:色泽:浅白:0青绿:1乌黑:2根蒂:蜷缩:0稍蜷:1硬挺:2敲声:沉闷:0浊响:1清脆:2纹理:清晰:0稍糊:1模糊:2脐部:凹陷:0稍凹:1平坦:2触感:硬滑:0软粘:1实验过程:算法分析:思想:如果一个样本在特征空间中的k 个最

2、相似(即特征空间中最邻近) 的样本中的大多数属于某一个类 另U,则该样本也属于这个类别。其算法描述如下:1)计算已知类别数据集中的点与 当前点之间的距离;2)按照距离递增次序排序;3)选取与当前点距离最小的k 个占;1八、94)确定前k个点所在类别的出现 频率;5)返回前k个点出现频率最高的 类别作为当前点的预测分类。源程序代码:from numpy import *import operator#函数说明:创建数据集和标签def createDateSet():#特征类别按书上顺序排列group = array(1,0,1,0,0,0,2,0,0,0,0,0,2,1,1,0,0,0,1,0,

3、0,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,2,0,1,0,1,0,2,1,0,1,1,0,1,2,2,0,2,1,0,2,2,2,2,0,0,1,1,2,2,1,1,1,1,1,0,0,0,1,0,1,1,0,2,1,1,0,1,1, 0,1,1,2,2,0,1,0,0,1,1,0) labels =好瓜,好瓜,好瓜,好瓜,好瓜,好瓜,好瓜, 坏瓜,坏瓜,坏瓜,坏瓜,坏瓜,坏瓜,坏瓜, 坏瓜,坏瓜 return group, labels#函数说明:通过欧式距离公式,计算两个向量点xA和xB之间 的距离。def classify0(inX, dataSet, labels

4、, k):# dataSet为4*2的矩阵,通过shape获取行向量数量 dataSetSize = dataSet.shape0#将inX在行方向执行dataSetSize,在列方向执行1次,两 矩阵相减diffMat = tile(inX, (dataSetSize, 1) - dataSet#数组的立方sqDiffMat = diffMat * 2#行数据相加,如果axis=O,则是列向量数据相加sqDistances = sqDiffMat.sum(axis=l)#取根distances = sqDistances * 0.5 #从小到排序,值为索引数组 sortedDistIndic

5、ies = distances.argsort() classCount = for i in range(k):voteIlabel = labelssortedDistIndiciesi# classCount.get(voteIlabel, 0)是指不存在相对应key 值的 value则返回0调试过程中的关键问题及修改:1、报错:diet object has no attribute iteritems原因:版本的问题(表达的变化) 解决方法:把iteritems改为items 就成了classCountvoteIlabel = classCount.get(voteIlabel, 0

6、) + 1 #对所有可迭代的对象进行排序操作,按从大到小顺序,key为 按哪个元素排序sortedClassCount=sorted(classCount.items(),key=operator.itemgetter(1), reverse=True)return sortedClassCount00if _name_ = _main_:group,labels = createDateSet() classfiy=classify0(2,1,1,0,1,0, group, labels, 3) print(测试结果:”,classfiy)运行结果:=-如萱测试结果:好瓜.1就结果而言,预测

7、正确实验总结:本节学习了k邻近算法的算法思想、过程等等,了解欧式距离公式,也对k邻近的k值的含义 有了进一步的认识。此算法和实现过程的确是不难,因而对于它有了深一步的认识。在此算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一 个或者几个样本的类别来决定待分样本所属的类别。由于该方法主要靠周围有限的邻近的样本,而 不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,此 方法较其他方法更为适合。实验 成绩 评定评分小项分值得分总分:1.实验报告格式排版10分2实验设计思路(科学性、可行性、创新性)30分3实验代码编写(规范性、正确性、复杂性)30分4实验结果分析(正确性、合理性)20分5.实验心得总结10分

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

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号