基于SparkStreaming的广告点击异常检测系统及检测方法与流程

文档序号:11155275阅读:来源:国知局

技术特征:

1.一种基于Spark Streaming的广告点击异常检测系统,其特征在于,包括数据采集单元(1)、数据清洗单元(2)、分布式数据消息系统(3)、第一异常数据检测单元(4)、嫌疑数据提取单元(5)、正常数据和异常数据分类器(6)以及分类数据数据库单元;其中

数据采集单元(1),用于采集用户点击广告的日志信息;

数据清洗单元(2),对数据采集单元(1)采集到的日志进行清洗及标准化处理,最后将标准化后的数据发送到分布式数据消息系统(3)中,等待被消费;

分布式数据消息系统(3),主要存储数据标准后的数据,还存储嫌疑数据提取单元发送来的的嫌疑数据,生成Spark Streaming所需消费的主题数据,不同的数据生成各自Topic;

第一异常数据检测单元(4),采用了KNN算法对来自于分布式消息系统(3)中的数据在Spark Streaming中进行准实时处理,得到嫌疑数据、异常数据、正常数据;

嫌疑数据提取单元(5),主要用于对第一异常数据检测单元(4)单元产生的嫌疑数据发送回分布式数据消息系统(3)中;

正常数据和异常数据分类器(6),采用了朴素贝叶斯分类方法,对存储于分布式消息系统(3)的嫌疑数据进行分类,得到异常数据和正常数据;

分类数据数据库单元,包括括MySQL数据库(7)和Redis内存数据库(8),其中MySQL数据库(7)用于存储正常数据和异常数据分类器(6)产生的正常数据和异常数据,并将异常数据映射给Redis内存数据库,便于快速训练朴素贝叶斯分类器,Redis为内存数据库,只是用于映射MySQL数据库,便于提高查询和修改的速度,设定一定周期内将数据写入到MySQL,便于永久保存。

2.根据权利要求1所述的基于Spark Streaming的广告点击异常检测系统,其特征在于,所述Redis内存数据库还包括将存储的异常数据用于进行训练朴素贝叶斯分类器。

3.根据权利要求1所述的基于Spark Streaming的广告点击异常检测系统,其特征在于,所述数据采集单元(1)采集用户点击广告的日志信息的设备为日志采集器Flume分布式日志收集系统,分布式数据消息系统为Kafka。

4.根据权利要求1所述的基于Spark Streaming的广告点击异常检测系统,其特征在于,所述第一异常数据检测单元(4)采用了KNN算法的KNN函数为:

x为一条待分类日志的向量表示,di为训练集中的一条实例日志向量表示,cj为一类别;它们的相似度使用余弦相似度,待分类日志和实例日志的相似度为:

<mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mo>&lt;</mo> <mi>x</mi> <mo>,</mo> <mi>d</mi> <mo>&gt;</mo> <mo>=</mo> <mfrac> <mrow> <mi>x</mi> <mo>&CenterDot;</mo> <mi>d</mi> </mrow> <mrow> <mo>|</mo> <mi>x</mi> <mo>|</mo> <mo>&CenterDot;</mo> <mo>|</mo> <mi>d</mi> <mo>|</mo> </mrow> </mfrac> </mrow>

其中当d属于cj时,取d为1,反之取0;距离度量使用欧几里得距离。

5.根据权利要求3所述的基于Spark Streaming的广告点击异常检测系统,其特征在于,KNN算法中,KNN分类器点击的有效性包括五个向量,第一个是“相同IP在一段时间内的点击数很多则异常”,第二个是“点击IP在广告页面的停留时间几乎可以忽略则异常”,第三个是“点击IP对于广告访问时刻异常的别于正常的人为活动时间”,第四个是“相同IP段不同地址访问同步性多次相似则异常”,第五是“对于IP行为和关注广告异常别于这个IP的以往行为和兴趣则嫌疑”,用这些样本数据作为KNN代表数据,得到KNN分类器。

6.根据权利要求3所述的基于Spark Streaming的广告点击异常检测系统,其特征在于,所述朴素贝叶斯函数为:

<mrow> <msub> <mi>h</mi> <mrow> <mi>n</mi> <mi>b</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>arg</mi> <munder> <mi>max</mi> <mrow> <mi>c</mi> <mo>&Element;</mo> <mi>y</mi> </mrow> </munder> <mi>P</mi> <mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo> </mrow> <munderover> <mo>&Pi;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>d</mi> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>c</mi> <mo>)</mo> </mrow> </mrow>

其中d为属性数目,xi为x在第i个属性上的取值,

通过映射于Redis的异常数据为样本,训练该分类器,在一个周期内如:一周,就利用随机提取的20%的异常数据重新训练更新朴素贝叶斯分类器。

7.一种基于Spark Streaming的广告点击异常检测方法,其特征在于,包括以下步骤:

1)用分布式日志收集系统Flume采集网站用户的广告点击日志;

2)对步骤1)Flume采集到数据进行数据标准化处理,然后再由Flume将标准化数据发送到Kafka消息系统中,将这类原始的数据定义为Topic1,Topic1表示等待被消费数据,即相当于定义此类数据的地址;

3)对步骤2)中等待被消费数据Topic1,通过Spark Streaming准实时计算框架在KNN算法下进行分类;

4)根据步骤3)生成的嫌疑数据、异常数据、正常数据,将嫌疑数据发送回Kafka中定义为Topic2,其余数据保存于Redis内存数据库中,然后将这些数据写入MySQL数据库中,实现MySQL的读写分离;

5)根据步骤4)将Redis中随机提取于MySQL数据库中的20%的异常数据训练朴素贝叶斯分类器,然后将Kafka中的Topic2通过SparkStreaming准实时计算框架在朴素贝叶斯算法下进行分类。

8.根据权利要求7所述的基于Spark Streaming的广告点击异常检测方法,其特征在于,所述步骤3)中KNN算法为:将训练样本作为参考点,计算测试样本与训练样本的距离,采用欧氏距离,得到距离中最近的值作为分类的依据。

9.根据权利要求8所述的基于Spark Streaming的广告点击异常检测方法,其特征在于,步骤2)中所述KNN算法的欧氏距离的公式为:

<mrow> <mi>d</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow>

x和y表示差异个体,分别有n维特征。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1