一、用处
主要用来分类
例子:
1)电影按题材分类:例如动作片,爱情片等;可以根据视频中的打斗、亲吻次数来分类,动作片中,打斗较多,但也可能有一些亲吻镜头,反之亦然;打斗和亲吻可以被视为特征向量,以此使用K近邻算法构造程序,自动划分电影题材类型;
2)约会网站人群分类:很喜欢、一般、不喜欢;把一下属性数据作为特征:每年的飞行里程,每周消费冰激凌,玩游戏时间;根据特征构建分类器
3)手写识别系统:把图像转化为向量(数组),根据向量某位置中的数据0或1来区分识别文字
二、算法核心思想
1)选取特征(特征即属性)
2)计算待分类数据与样本数据(已分好类的数据)的距离。一般是多维特征,需对每个特征进行归一化处理:newsValue=(oldValue-Smin)/(Smax-Smin)
3)取距离最近的K个数值,待分类数据的类别等于这K个数据中出现频率最高的分类。
4)用样本集中90%的数据进行训练,然后再用剩下10%的数据进行检验。求出分类器的正确率。
三、KNN分类的优缺点及适用数据类型
优点
精度高;对异常值不敏感;无数据输入假定。
缺点
计算复杂度高、空间复杂度高。
适用数据类型
数值型和标称型