KNN分类

这篇博客介绍了KNN算法在文本分类中的具体步骤,包括构建one_hot矩阵,使用汉明距离、杰卡德距离、余弦相似度、曼哈顿距离、欧式距离等不同度量方式比较准确率,并详细阐述了如何根据这些距离选择最近的k个样本进行情感预测。文章还提到了流程图和实现细节,以及评测指标。
摘要由CSDN通过智能技术生成

一、算法思想

1. 首先分别读取训练集和验证集的csv文件数据,分别将数据传到列表sample_list、validation_list,通过两层循环建立无重复词语列表word_list,分别构建训练集和验证集的one_hot矩阵,对每一行的句子的每一个词语,找出词语在word_list出现的下标,在one_hot矩阵相应的对应位置置为1。

2. 采取不同的度量方式,分别有汉明距离、杰卡德距离、余弦相似度、曼哈顿距离、欧式距离,比较不同度量方式的准确率。对于验证集的每一行句子,采用字典结构存储当前句子与训练集所有句子的距离或余弦相似度,字典的key为训练集句子的下标,value为验证集当前句子与训练集句子的距离或者余弦相似度,利用operator模块对字典进行排序(距离按照从小到大排序,余弦相似度从大到小排序),选出前k个作为最终选取的参考,此时结构为列表,每个元素为一个元组,每个元组包含两个元素,第一个为训练集句子下标,第二个为距离或相似度。

3. 对k个列表,以距离为参考,采用字典统计各种情感的比重,key为情感label,value为比重,考虑到距离越近,说明越接近测试数据,因此应该给予更多的权重,所以将距离的倒数的3次方(经过测试,3次方准确率最高)作为该距离的比重添加到对应的情感label,最后选出情感比重最大的label作为最终的结果。

 

二、流程图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值