以前我们谈论数据挖掘,而大数据时代我们谈论大数据挖掘。那么大数据挖掘“大”在哪里? 本文对此进行了一些归纳,希望能提供一些思考问题的方法。
不足之处请留言发表意见。
 
一、数据量的大
       数据量大到多少? 这是一个很多人在进行大数据挖掘时要问的问题。
从一些实际应用看,一般每天处理的数据量达到T、P级别的,可以考虑部署Hadoop、Spark之类的大数据处理平台,一定量级的数据处理才能突显这些平台的优越性。
      数据量少,数据的读取、搬迁所花费的时间占比太多,反而无法体现大数据处理平台的优势。不少应用只是为了大数据而大数据,几百M也弄个Hadoop。因此,现在一谈大数据就认为是Hadoop、Spark等平台是很有局限性的。
      当然,实际在决定是否使用大数据平台时,可能需要考虑更多的因素,例如:要集成很多的低性能机器、异构软硬件平台间的可移植性、大量的非结构化数据处理等。
 
二、数据类型的多样化
      在数据挖掘时代,我们挖掘的数据主要以关系型数据为主。大数据时代,各种应用产生了各种数据,通常在大数据挖掘中会涉及到多种数据类型。这里所说的数据类型不是程序设计中的普通数据类型,而是更接近于应用的数据表现形式,通常有时间序列数据、轨迹数据、图数据、文本数据等等。
      每天的销售记录、价格是普通数据类型,但是从时间维度将它们按照顺序连接起来,构成的时间序列数据能体现出价格的变化规律,理所当然具有更丰富的含义。
       每个人所处的位置不过是一个(x,y)的普通数据类型,但是按照移动的先后顺序把位置连接起来,就构成了某人的活动轨迹,背后体现的是他的生活、习惯,这些隐藏信息才是大数据应当关注的。
       微博或论坛中每个人是独立存在的,也是普通数据,但是如果把每个人按照粉丝、关注等关系连接起来,就可以构成一张很大的图,即图数据。图中的人群、离群,以及加上群体偏好、群体运动等属性后的高等图数据,就是大数据挖掘的关注点。
 
三、数据处理的噪音
      在数据挖掘时代,数据来源于关系型数据库,都是一些与业务相关、质量比较高的数据,一般拿来就可以直接挖。大数据挖掘肯定就不是这样,大数据思维决定了我们要考虑不同来源的数据的质量、数据结构鱼龙混杂,以增强数据处理的鲁棒性。比如,要进行企业级的客户分析,不同的分公司可能使用不同的客户管理系统,有的系统采用本科/硕士/博士来区分客户的学历,而有的采用本科/研究生来区分,这就要求考虑数据的一致性处理。此外,数据格式、数据完整性等等都是大数据挖掘需要考虑的。
 
四、数据挖掘的多样化
      在数据挖掘时代,一般侧重于单项的数据分析,而大数据挖据可能会更侧重于多项数据挖掘任务同时存在,如业务上同时要求分类、预测、相关性、聚类等。尽管业务需求多了,但是这些分类、预测、相关性、聚类可能在底层上采用的是同一种模型,因此,在大数据挖据时考虑模型、算法与业务的分离是非常重要的,即所谓的大数据处理层次结构。