K—近邻算法详解
本文目录
1. 首先给出算法定义
2. 抽象举例解释
3. 现实举例解释
4. 算法描述
5. 利用UCI中的数据集解释
6. K近邻算法的三个基本要素
7. 总结
8. 问题讨论
9. 代码块
1、概念定义
第一句:给定一个带标签的样本数据集合(称为:训练集)
第二句:当输入没有标签的新数据(新数据:测试集中的数据)后
第三句:将新数据的每个特征与训练集中所有数据对应的特征进行相似性比较
第四句:选择训练集中前K个最相似(最近邻)的数据,提取训前K个最相似的数据的分类标签,(说明:通常K是不大于20的整数)。
第五句:选择这K个最相似数据中出现次数最多的类别标签,作为新数据的类别标签
2、抽象举例解释
例子1:图形判断
1. 第一句:给定一个带标签的样本数据集合(称为:训练集)
***如下图所示:红色三角形和蓝色正方形组成的集合称为训练集,标签只有三角形,正方形。***
2. 第二句:当输入没有标签的新数据(新数据:测试集中的数据)后。
图中,中间的绿色图形表示的是没有标签的新数据
3. 第三句:将新数据的每个特征与训练集中所有数据对应的特征进行相似性比较
***这里采用欧式距离进行比较,即:比较两点间的距离的大小。距离越大,相似性就越小;距离越小,相似性就越大。**
遗留问题1:相似性比较方法有哪些?
4. 第四句:选择训练集中前K个最相似(距离最小)的数据,提取训前K个最相似的数据的分类标签,
遗留问题2:k的值设定多少才合适?
5. 第五句:选择这K个最相似数据中出现次数最多的类别标签,作为新数据的类别标签
遗留问题3:多数表决规则怎样通过数学来解释?
3、现实举例解释
例子2:电影类型评估
1. 第一句:给定一个带标签的样本数据集合(称为:训练集)
2. 第二句:当输入没有标签的新数据(新数据:测试集中的数据)后
3. 第三句:将新数据的每个特征与训练集中所有数据对应的特征进行相似性比较
由于每个样本只有两个属性,因此采用和例子1相同的方法来比较两个样本间的相似性,即:将该数据映射到二维坐标平面上,比较两点间的距离的大小。
4. 第四句:选择训练集中前K个最相似(距离最小)的数据,提取训前K个最相似的数据的分类标签,
如果k =3,则分别提取《泰坦尼克号》、《夏洛特烦恼》、《从你的全世界路过》三个数据的电影类型,分别是爱情片、爱情片、爱情片。
5. 第五句:选择这K个最相似数据中出现次数最多的类别标签,作为新数据的类别标签
未知电影的电影类型为:爱情片
基于前面两个简单例子,对K近邻概念定义中的每一句话进行了解释。 下面通过前面两个例子给出K近邻算法的正式化描述如下,并对其进行说明。
4、算法描述
基于前面两个简单例子,对K近邻概念定义中的每一句话进行了解释。 下面通过前面两个例子给出K近邻算法的正式化描述如下,并对其进行说明。
接下来,将根据该通过一个对UCI上的具体数据集的实验来进一步说明该算法。
6. 利用UCI中的数据集解释
数据集:mushroom数据集
数据集介绍
***蘑菇数据集中包括两类蘑菇,一类是有毒蘑菇,一类是无毒蘑菇。每个蘑菇有22个属性,介绍如下:*** 标签:有毒 = 1,无毒 = 2 属性1. cap-shape: bell=3, conical=4, convex=5, flat=6 , knobbed=7, sunken=8 属性2. cap-surface: fibrous=9, grooves=10, scaly=11, smooth=12 属性3.cap-color:brown=13, buff=14, cinnamon=15, gray=16, green=17, pink=18, purple=19, red=20, white=21, yellow=22 ......... 属性22. 具体数据如下所示: 2 6 10 16 23 28 34 36 39 44 53 56 59 63 69 76 85 86 90 93 98 110 116 1 3 11 16 24 29 34 36 39 42 52 56 61 66 70 77 85 86 90 95 101 110 117 2 6 10 17 23 28 34 36 39 44 53 56 59 63 69 78 85 86 90 93 99 110 116 1 3 10 16 24 29 34 36 39 43 52 56 61 66 70 77