首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 数据库开发 >

数据挖掘学习笔记之KNN算法(一)

2013-03-17 
数据挖掘学习札记之KNN算法(一)参考:1. KNN算法介绍,Python程序和一个简单算例2. k-nearest neighbor algo

数据挖掘学习札记之KNN算法(一)

参考:

1. KNN算法介绍,Python程序和一个简单算例

2. k-nearest neighbor algorithm


基本想法:

在距离空间里,如果一个样本的最接近的k个邻居里,绝大多数属于某个类别,则该样本也属于这个类别。俗话叫,“随大流”。


算法描述:

待测样本(绿色圆圈)既可能分到红色三角形类,也可能分到蓝色正方形类。如果k取3,从图可见,待测样本的3个邻居在实线的内圆里,按多数投票结果,它属于红色三角形类,票数1:2.但是如果k取5,那么待测样本的最邻近的5个样本在虚线的圆里,按表决法,它又属于蓝色正方形类,票数2(红色三角形):3(蓝色正方形)。


其它问题:

计算两者间距离,用哪种距离会更好呢?计算量太大怎么办?假设样本中,类型分布非常不均,该怎么办呢?



例子(电影分类):

电影名称打斗次数接吻次数电影类型California Man  3104RomanceHe’s Not Really into Dudes  2100RomanceBeautiful Woman  181RomanceKevin Longblade  10110ActionRobo Slayer 3000  995ActionAmped II  982Action未知1890Unknown
这个数据用打斗次数和接吻次数来界定电影类型,接吻多的是Romance类型的,而打斗多的是动作电影。现在有一部名字未知的电影,打斗次数为18次,接吻次数为90次的电影(这里名字未知是为了防止能从名字中猜出电影类型),它到底属于哪种类型的电影呢?


下面调用Python的sklearn模块求解:(转自KNN算法介绍)

数据挖掘学习笔记之KNN算法(一)

热点排行