基于storm和hadoop的广告系统研究【4】

分析数据抽取

基于用户行为分析其实是文本分析的更进一步,通过对文本解析的的结果进一步数据挖掘,对用户人群进行行为分类建模,可以更有针对性的投放广告。

用户访问记录大数据挖掘环境下对个人进行绝对高精度识别具有一定的困难,尤其是作为广告投放商而不是用户所属的站点,所以到手的数据更多的是用户在一定时间点内的网页访问记录。基于这些数据进行人群分类则有更高的可行性。

前文对用户的定位是非电子商务的不可识别用户,就是通常的不登录用户。登录用户可能有更多的准确性数据,此类用户稍后讨论,目前已不可识别的用户为准。

基于mahout系统处理数据有个需要注意的问题,就是数字和字符不可以混合使用,而且许多的算法使用的甚至是二元、三元属性建立模型,这就需要我们对许多的表属性进行转换。最常用的是需要将关键词按照关系权重进行排序,关系紧密的相近,反之则在数字序列上差距较远。

抽取过程

通过sql使用hive对数据的操作比hbase更适宜习惯关系型数据库的技术人员。通常以下两步完成数据的抽取与转换:

  1. 创建抽取数据存放的表:
     create table  表名( 列名) row format delimited fields terminated by ' '

    注意,一定要使用空格对表的各个字段分割才能给予mahout使用。
  2. 使用insert overwrite table以及join关联写入数据到刚刚创建的表中。
  3. mahout通过hdfs直接对hive表文件存储的位置读取数据
  4. 由于mahout处理以后的数据是二进制的,需要使用一些列的dump类处理为文本文件存储在某台机器的本地

mahout中的许多算法更擅长于分析向量化的数据,我们尽量提供两个属性来进行数据分析可以更有效的利用其中的算法。所以在数据抽取之前一定对抽取的两个字段所组成的向量能够提供的分析方向有明确的认知。而且,对于离散型和连续型的数据要分别进行处理,并尽量将连续型的数据转换为区间的离散型提供给mahout分析----相当于再做一次数据转换。

原文地址:https://www.cnblogs.com/AI001/p/3996934.html