目前常用的文本自动分类技术有基于统计学的分类技术,包括贝叶斯法、K一邻近算法等;基于机器学习的分类技术,包括决策树和规则归纳法等;基于神经网络的分类技术,包括BP算法等,今天学习最简单的KNN.
概述
最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练数据的属性完全匹配时,就可以对其进行分类。但不可能所有的测试对象都找到与之完全匹配的训练对象,其次,若存在一个测试对象和多个训练数据匹配,就导致一个训练对象被分到多个类的问题,基于这些问题,就产生了KNN.
KNN是通过测量不同特征值之间的距离进行分类的。它的思路是:如果一个样本在特征空间中的K个最相似(特征空间中最邻近)样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常是不大于20的整数。KNN算法中,可选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分类样本所属的类别。
举个简单的例子:如图-1,绿色的圆要被决定属于哪个类(红色三角形还是蓝色正方形),如果�K = 3 ,由于红色三角形所占比例为2/3,所以绿色圆被赋予红色三角形那个类,如果 K = 5,由于蓝色正方形所占比例为3/5,所以绿色圆被赋予蓝色正方形那个类。
因此,可以看到,KNN算法的结果很大程度取决于K的值。
KNN算法的思想总结:在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:
1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点;
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。
优缺点
优点:通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之间的匹配问题;通过依据k个对象中占优的类别进行决策,而不是单一的对象类别决策。总结就是:精度高,对异常值不敏感,无数据输入假定。
缺点:计算复杂度高,空间复杂度高。
适应数据范围:数值型和标称型。
可应用场景
数据分类
数字识别
...
网友评论