大家好,又见面了,我是你们的朋友全栈君。
1、KNN算法的简介
kNN算法就是找到k个最相似的样本,这些样本所在的类,就是当前文档的所属的类。如下图:绿色圆圈表示你想分类的文本,其他是已知类别的样本。图中其他形状和绿色圆圈的距离代表了相似度。如果k = 3,就是取3个最相似的文本,那么1个蓝色框,2红色三角被选中,因为红色三角多,则绿色圆圈所属的类就是红色三角所在的类。如果k = 5,3个蓝色框和2个红色三角选中,那么就属于蓝色框所属于的类。kNN你也可以取多个类别,就是绿色圆圈既属于蓝色框,也属于红色三角所属的类别。
2、KNN算法分类的一般过程的定义
(1)样本的选择
(2)中文文本分词(工具如下:Rwordseg,LTP,Bamboo,RostCM)
(3)特征的选择(CHI,IG等)
(4)向量空间模型的构建(将文档转换成VSM,每一个特征的值是由TF-IDF计算,特征项的个数是所有文本文档集合的总体弃掉重复的单词)
(5)将 预测的文本分词与样本进行计算,主要使用余弦定理进行计算如下
(6)对结果进行测试是否满足准确率
(7)如果准确率太低,可以调整样本等一些其他的措施
KNN算法的缺点,如果训练的样本过多,则容易造成内存的溢出,因此我们可以改进KNN算法。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144008.html原文链接:https://javaforall.cn