一种在MapReduce下实现的KNN改进算法
2021-04-08潘俊辉王浩畅
重庆科技学院学报(自然科学版) 2021年1期
潘俊辉 王 辉 张 强 王浩畅
(东北石油大学 计算机与信息技术学院, 黑龙江 大庆 163318)
数据挖掘中的文本分类就是按照文本的主题(属性)对文本进行分类,以方便管理与分析海量的文本数据。Apache基金会开发的分布式系统基础架构Hadoop,作为云计算平台,提供了分布式文件系统组件HDFS和编程模型MapReduce,利用此组件和模型的特点可实现对文本分类的并行化处理。有关研究目前已经取得了许多成果[1-4]。本次研究,我们针对最近邻分类算法(K-Nearest Neighbor,简称“KNN”)存在的不足,提出一种在Hadoop平台MapReduce下进行子类划分的分类算法(简称“ZKNN”),通过在训练阶段构造初级分类器,减少训练阶段的计算量,从而提高分类效率。
1 文本分类基础
文本分类是通过使用分类算法将需要分析的若干文本归入指定的某个或某几个类别的过程。用数学公式表示,即f:D→C,D={d1,d2,…,dm},C={c1,c2,…,cn},D为语料库中的文本集合,C为类别集合,m和n分别表示文本个数和类别个数。
Hadoop平台的MapReduce,可把并行计算过程最终抽象到map和reduce函数上。MapReduce在对大数据集进行处理时会首先将其分成很多个小数据集,把具有相同键值的数据集分到一个分区,并按键值大小排序;然后由Reduce函数取出数据和计算数据,并将结果存入HDFS中[5]。
2 对KNN算法的改进
按KNN算法进行文本分类,首先要对训练集中的文本进行预处理,并用虚拟交换矩阵(VSM)表示。如对新文本d进行测试,先要对其进行向量化的处理,然后利用距离计算公式得到d与不同文本类的距离,从中选择出距离最小的K个文本,依据它们的类别对d进行归类[6]。……
登录APP查看全文