数据整理是数据分析过程中最重要的环节,在大数据分析过程中也是如此。在小数据时代,数据整理包括数据的清洗、数据转换、归类编码和数字编码等过程,其中数据清洗占据最重要的位置,就是检查数据一致性,处理无效值和缺失值等操作。在大数据时代,这些工作被弱化了,在有些大数据的算法和应用中,基本不再进行数据清洗了,因为大数据的多样化使得其数据,有一定的不精确性,但数据转换和编码过程还是需要的。下面以大数据分析中文本分类的例子,来分析大数据整理的过程。
在本例中,以mahout为大数据分析软件,文本分类算法选用朴素贝叶斯算法(new bayes),分类对象是来自不同类别的新闻数据。当我们使用网页爬虫,每小时源源不断的从多个不同类别的新闻网站上取得数据时,取得的这些数据都是文本数据,也就是非结构化数据,这些数据是不需要进行数据清洗过程,但它们在进入到mahout实现的朴素贝叶斯算法时,需要进行必要的数据转换。该转换主要分两个步骤。
数据系列化
由于取得的大量的文本数据集中,每个新闻占一个文档,共有无数个小的文件,由于Mahout运行在Hadoop的HDFS上,HDFS是为大文件设计的。如果我们把这些无穷多个小文件都拷贝上去,这样是非常不合适。试想:假设对1000万篇新闻进行分类,难道要拷贝1000w个文件么?这样会使HDFS中运行name node节点的终端崩溃掉。
因此,Mahout采用SequenceFile作为其基本的数据交换格式。其思路是:通过调用mahout内置的解析器,扫描所有目录和文件,并把每个文件都转成单行文本,以目录名开头,跟着是文档出现的所有单词,这样就把无穷多个小文件,转换成一个系列化的大文件。然后把这个大文件,再上传到HDFS上,就可以充分发挥HDFS分布式文件系统的优势。当然,这个转换过程由mahout的内置工具完成,而大数据分析师这个时候只需要把所有的新闻按文件夹分好类放置好,同时运行mahout内置的解析器命令就可以了。
文本内容向量化
简单地说就是把文本内容中的每个单词转换成数据,复杂地说就是进行向量空间模型化(VSM)。该过程使每个单词都有一个编号,这个编号是就它在文档向量所拥有的维度。这个工作在mahout中实现时,大数据分析师也只需要执行其中的一个命令,就可以轻松地实现文本内容的向量化。有了这些被向量化的数据,再通过mahout的朴素贝叶斯算法,我们就可以对计算机训练出一套规则,根据这个规则,机器就可以对后续收集的新闻数据进行自动的分类了。
从上述文本分类的大数据整理过程可以看出,大数据时代的数据整理过程不再强调数据的精确性,而强调的是对非结构化数据的数量化。当然,不同的大数据分析应用使用的算法及其数据整理过程都不太一样,大数据分析的数据整理区别于小数据时代的精确性,而变得更粗放一些。
……
关注读览天下微信,
100万篇深度好文,
等你来看……