文本分类之KNN
根据选取的特征,把文档用向量表示,向量中的值为词对应的权重,权重可以采用tf-idf值,tf-idf值计算有很多公式,最简单的是直接相乘,我们可以采用以下公式计算:
w为词t在文档d中所占的权重,得到各个训练集文档和测试集文档的向量表示:
采用KNN进行文本分类:
基本步骤:计算测试文档和每个训练文档的相似度,选取相似度最高的K个文档,采用多数表决的方法,得到测试文档的类别。
相似度计算可以采用欧式距离并采用[0,1]规范化,或者曼哈顿距离,这里我们采用cos方法:
如何确定K的值?只能在试验中确定,选取产生最下误差率的K值!
KNN的效果在理想情况下一般仅次于SVM:
但KNN也有些缺点:
In fact, KNN has no train process, it’s not proper for real time application
Parameters are difficult to decide,maybe no better than simple Naive Bayesian Model
Sometimes, some text docs belong to several classes