最小径集的算法_分类算法KNN(K最邻近)应用(二)

cc2791e9418659f1a7bb6c31ea13fa17.gif

作者:刘丽帆    封面:吉江

注:分类算法KNN第一篇文章,请点击 文本自动分类——分类算法KNN(K最邻近)应用(一) 02b44445dd62186e4d12a213b75c4ea0.gif4KNN算法 9bdf2be7de1e1cc91345891b3774341e.gif

  先对算法做一个简单的介绍,KNN算法,即K最邻近算法(K Nearest Neighbor),属于基本的分类算法之一,在中文的文本分类中效果较好。该算法是在训练集中找到与需要进行分类的文档x最相似的k个文档(一般用夹角余弦公式计算两个文档的相似度,这也是上一篇推文中为何要学习特征与权重),根据这些文档来判断x属于哪个类别。k的取值一般为奇数且不超过20,与数据集的大小有关。这也很好理解,例如与文档x相似的文档有5篇,其中属于A类的有2篇,属于B类的有3篇,那么就可以认为文档x属于类别B,若k取偶数时,遇到每个类别中的样例个数相同时,不好确定类别。

在这篇文章中,作者将数据集中每一篇论文的标题、关键词和摘要的文本内容进行合并作为一篇文档,然后根据特征词表过滤文档,用特征向量表示每一篇文档。每个学科中训练集和测试集大小为1:9,然后进行实验。

本次推文就采用一个小例子用KNN算法实现文档自动分类,同时学习TF-IDF算法的原理并实现这一算法,了解将文本转化为向量的具体实现过程(因为文档数量较少和文章长度较短的情况下存在词频矩阵过于稀疏的现象,因此为简单起见,数据为虚构)。

我们用一个表格来体现文本训练集与测试集文档的特征矩阵。表格里第一行的标题T代表特征词(实际可以为任意代表特征的词语),D代表文档,Train代表训练集,Test代表测试集。利用训练集D1-D9对测试集D10和D11进行分自动类。

23c85a3cf76891bd2bbac21530526929.png

根据上一篇推文(文本自动分类——分类算法KNN应用(一))的内容,我们此次就采用TF-IDF算法将11篇文档分别进行向量表示。 首先表示出所有文档-征矩词阵。 此次文中的代码以及处理过程都用.py文件,也就是python文件的截屏表示。

016b26e9127701232916f7fb6ea5f829.png

根据上一篇推文介绍的TF-IDF算法公式,我们逐个计算其中的参数:TF(特征词在一篇文档中的词频)和IDF(特征词的逆文档频率)。例子中的数据量很小,对于一些值的获取可以直接计数得到。TF是用某个词在文章中出现的次数除以文章的总词数。DF(特征词的文档频率)可以直接计算,从表格中得到T1在5篇训练集文档中出现,T2在5篇中出现……最后得到所有特征词的df = [5, 5, 6, 6, 3, 7, 3, 6],再用math模块里的log函数求得idf。用TF-IDF向量表示所有文档。

d021a83814084057838de222c8ca4118.png

7ad8a0d4b08a87bfec35784fc2bb5900.png

340256a5a560fccb2b26cea7aa1be493.png

其实这一部分实现的过程是很多刚入门文本处理的小伙伴最疑惑的部分,当实现文本转换为向量,就实现了文本数据的量化过程。 接下来就是采用KNN 进行自动分类,采用了余弦相似度进行相似度计算。我们先确定K值,令K=3。这部分小伙伴可以先消化一下,做一个初步的实现,后期我们将公布结果,并对学科交叉研究进行介绍。 ad00d217c09edc18d531fa722f73182b.png刘丽帆

南京理工大学情报学硕士

方向:信息检索、数据分析与自然语言处理

学堂君的历史合辑:

菜鸟系列

问卷系列

线性回归

信效度分析

聚类分析

时间序列

常见问题

神经网络

多维尺度分析

C4.5算法

生存分析

正态检验

对应分析

问卷数据分析

权重赋值

判别分析

欢迎添加:

【数据分析服务】请点击菜菜帮工作室正式上线

【社群服务助手】请点击SPSS学堂会员3群招募

【加入团队】请点击招募,我们是认真的!

61165c254aea6e5edb30411274c9f741.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值