论过滤算法在煤炭管理的作用

时间:2022-06-24 02:52:13

论过滤算法在煤炭管理的作用

针对大规模消费历史记录,消费者矩阵规模非常庞大,传统的算法不能有效地处理该数据矩阵。文中基于流行的MapReduce云计算平台,提出了分布式基于项目的KNN协同过滤算法。下面,对该算法的执行过程进行描述:(1)将消费者历史记录平均分配到N个计算节点中;(2)在不同的计算节点k中,计算该节点中不同频度乘积,以及频度平方根,如下:∑u缀N(i)∩N(j)innodekfui•fuj,∑u缀N(i)innodekf2ui;同时,针对计算节点k中的不同消费者i,针对消费者对项目消费频度排序,求出消费者消费频度最高的项目;(3)将不同节点的计算结果进行合并,即:将不同频度乘积做和,以及频度平方根求和:∑NK=1∑u缀N(i)∩N(j)innodekfui•fuj,∑NK=1∑u缀N(i)innodekf2ui;(4)根据(3)的计算结果,求解不同项目之间的相似度;(5)针对不同用户u购买频度最高的项目i,根据(4)计算得到的相似度,找出与该项目i相似的前K个项目,并将该K个项目推荐给该用户u。下面的伪代码为基于MapReduce的分布式、基于项目的KNN算法的伪代码:

实验部分使用了公开的网站消费历史记录做为实验数据,如表1所示描述了4组实验数据。文中的算法是基于MapReduce的分布式计算环境,运行在20个计算节点的集群环境下完成的。文中的所有计算都是基于最新版本的Hadoop-0.20.2做为MapReduce分布式编程环境。每个节点的配置为:4.0Hz的Intel处理器,32G内存,CentOsLinux操作系统。实验部分主要测试算法的两方面性能:高效性以及可扩展性。实验的第1部分是通过测试分布式基于项目的KNN算法(Item-BasedKNN)与传统算法(Tra-ditionKNN)在不同数据集下的执行时间,比较两种算法的执行效率,计算文中提出算法的加速比。如图1所示描述了文中提出算法与传统算法的执行时间。通过图1可以看出,文中提出的分布式的基于项目KNN算法与传统算法相比在执行时间上有明显的减少,具有很高的加速比。说明该算法可以高效地完成推荐系统的推荐工作,实现推荐系统的实时性。在第2组实验中,主要测试算法的可扩展性。从最大规模的数据集D5中,固定项目的个数,抽取不同记录个数的数据集S1,S2,S3,S4,记录个数分别为:500,000,1,000,000,1,500,000,2,000,000。在项目个数固定的条件下,本组实验测试在计算节点个数分别为5,10,15,20的情况下,针对4组不同规模数据集完成算法的执行时间。实验2的结果如图2所示。通过图2可以看出,随着数据规模的增大,算法的执行时间也随之增多,但是,数据增大的规模是呈现线性增长的,而不是指数级增长,说明算法具有很高的可扩展性。同时,通过增大计算节点的个数,算法的执行时间也会相应地减少,因此,当处理较大规模的数据时,可以通过增加计算节点的个数,减小算法的执行时间,增加算法的效率。

随着电子商务网站的发展,网站中产生了大量的互联网消费信息。煤炭产业的商业网站也希望通过利用已有的消费记录信息,完成煤炭产品的推荐工作。文章针对传统算法无法高效处理海量消费记录问题,提出了高效、快速的分布式基于项目的KNN协同过滤算法。该算法可以有效地应用到推荐系统中,实现推荐系统的实时性。实验结果进一步表明该算法具有明显的加速比以及很好的可扩展性。

本文作者:罗莉工作单位:四川交通职业技术学院