作者:刘丽帆 封面:吉江
![ab6d20b7c5c77518e45d7d7e9306e574.gif](https://img-blog.csdnimg.cn/img_convert/ab6d20b7c5c77518e45d7d7e9306e574.gif)
首先在这里为大家揭晓上一篇推文中讲解的KNN算法的主要代码以及结果。
TF-IDF在应用(一)中做了理论介绍,然后在应用(二)中定义了函数进行实现,对文档进行特征表示和转向量表示做了详细的介绍和实现过程讲解。那么对于KNN算法的主要实现过程,可见图中代码所示。
其中调用了一个余弦相似度函数cosine_similarity(),这次实验过程中的余弦相似度函数是自己定义的,可见图中代码所示:
最后输出的结果为:
根据输出结果可以得到,与D10相似的文章有D3、D4、D8,其中D3和D4属于Train set A,D8属于Train set B,因此可以根据KNN算法将D10自动分类到Train set A类别;同理,对于D11,可分为Train set B类别。由于我们在这里K值取3,最后只输出测试集的得分,即可得到结果,若K取值较大或者想直接获取最后所属类别,可以编写一个输出结果类别的函数,直接给出测试集的类别。
这一代码详细体现了KNN的实现原理和过程,现在Python中有很多成熟的开源的模块和包,在使用时可以直接调用,输入要求的数据格式,即可获取最终的结果。当然,若根据自己的数据,有不同的需要,可以通过调节算法中的参数来实现。例如对于本次介绍的KNN算法,可以直接调用sklearn模块中的KNeighborsClassifier。利用训练集对算法进行训练,然后对测试集进行分类。实现过程中的简单代码如图所示。最终的到的结果是相同的。
在使用过程中,一般不会自己编写算法来实现,而是直接调用现成的模块或函数,但是这与了解算法的实现并不冲突,了解算法实现的原理十分重要,例如对于调用过程中的参数设置,了解了算法的原理,参数的含义理解和选取就会变得简单。对以后的文献阅读,我们会重点介绍所出现的算法原理和调用方法,算法内部的实现过程并不会一一进行编写代码进行实现。
![ab6d20b7c5c77518e45d7d7e9306e574.gif](https://img-blog.csdnimg.cn/img_convert/ab6d20b7c5c77518e45d7d7e9306e574.gif)
跨学科研究对很多学科在研究中的贡献很大。以例子来说明,我们现在所学的Python属于一门编程语言,这门编程语言可以运用于很多学科的数据处理和分析,比如医学、人文社科等,而计算机学科中各种算法的更新与完善很多建立在数学原理的基础上。学科交叉目前是图情领域的一个热点研究方向,是将学科之间的交叉现象进行量化研究。
文中用到的数据较大,我们不方便完全进行实现,这也是该领域研究的一个特点,数据集大,数据预处理困难,同时也增加了实验可重复性的难度。不过用到的方法以及原理在推文中都已经做了相关介绍,对于小伙伴们也是各取所需啦。
学堂君的历史合辑:
菜鸟系列
问卷系列
线性回归
信效度分析
聚类分析
时间序列
常见问题
神经网络
多维尺度分析
C4.5算法
生存分析
正态检验
对应分析
问卷数据分析
权重赋值
判别分析
欢迎添加:
【数据分析服务】请点击菜菜帮工作室正式上线
【社群服务助手】请点击SPSS学堂会员3群招募
【加入团队】请点击招募,我们是认真的!