《大数据》精华连载4:大数据概念与应用——大数据处理方法
2019-03-09 23:43

  大数据正带来一场信息社会的变革。大量的结构化数据和非结构化数据的广泛应用,致使人们需要重新思考已有的IT模式;与此同时,大数据将推动进行又一次基于信息革命的业务转型,使社会能够借助大数据获取更多的社会效益和发展机会。

  庞大的数据需要我们进行剥离、整理、归类、建模、分析等操作,通过这些动作后,我们开始建立数据分析的维度,通过对不同的维度数据进行分析,最终才能得到想到的数据和信息。例如,项目立项前的市场数据分析,为决策提供支撑;目标用户群体趋势分析,为产品市场支撑;通过对运营数据的挖掘和分析,为企业提供运营数据支撑;通过对用户行为数据进行分析,为用户提供生活信息服务数据支撑和消费指导数据支撑,等等,这些都是大数据带来的支撑。

  因此,如何进行大数据的采集、导入/预处理、统计/分析和大数据挖掘,是“做”好大数据的关键基础。

  大数据的采集通常采用多个数据库来接收终端数据,包括智能硬件端、多种传感器端、网页端、移动APP应用端等,并且可以使用数据库进行简单的处理工作。例如,电商平台使用传统的关系型数据库MySQL和Oracle来存储每笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。

  (1)数据抓取:通过程序从现有的网络资源中提取相关信息,录入到数据库中。大体上可以分为网址抓取和内容抓取。网址抓取是通过网址抓取规则的设定,快速抓取到所需的网址信息;内容抓取是通过分析网页源代码,设定内容抓取规则,精准抓取到网页中散乱分布的内容数据,能在多级多页等复杂页面中完成内容抓取。

  (2)数据导入:将指定的数据源导入数据库中,通常支持的数据源包括数据库(如SQL Server、Oracle、MySQL、Access等)、数据库文件、Excel表格、XML文档、文本文件等。

  (3)物联网传感设备自动信息采集:物联网传感设备从功能上来说是由电源模块、采集模块和通信模块组成。传感器将收集到的电信号,通过线材传输给主控板,主控板进行信号解析、算法分析和数据量化后,将数据通过无线通信方式(GPRS)进行传输。

  在大数据的采集过程中,主要面对的挑战是并发数高,因为可能会对成千上万的数据同时进行访问和操作。

  虽然采集端本身有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些数据导入一个集中的大型分布式数据库或者分布式存储集群当中,同时,在导入的基础上完成数据清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。

  现实世界中数据大体上都是不完整、不一致的“脏”数据,无法直接进行数据挖掘,或挖掘结果差强人意,为了提高数据挖掘的质量,产生了数据预处理技术。数据预处理有多种方法,包括数据清理、数据集成、数据变换、数据归约等,大大提高了数据挖掘的质量,降低数据挖掘所需要的时间。

  (1)数据清理主要是达到数据格式标准化、异常数据清除、数据错误纠正、重复数据的清除等目标。

  (3)数据变换是通过平滑聚集、数据概化、规范化等方式将数据转换成适用于数据挖掘的形式。

  (4)数据归约是指在对挖掘任务和数据本身内容理解的基础上,寻找依赖于发现目标的数据的有用特征,以缩减数据规模,从而在尽可能保持数据原貌的前提下,最大限度地精简数据量。

  在大数据的导入与预处理过程中,主要面对的挑战是导入的数据量大,每秒的导入量经常会达到百兆,甚至千兆级别。

  统计与分析主要是利用分布式数据库,或分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总,以满足大多数常见的分析需求,在这些方面可以使用R语言。R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

  R语言在国际和国内的发展差异非常大,国际上R语言已然是专业数据分析领域的标准,但在国内依旧任重而道远,这固然有数据学科地位的原因,国内很多人版权概念薄弱,以及学术领域相对闭塞也是原因。

  R语言是一套完整的数据处理、计算和制图软件系统。它是数据存储和处理系统、数组运算工具、完整连贯的统计分析工具、优秀的统计制图功能、简便而强大的编程语言。与其说R语言是一种统计软件,不如说是一种数学计算的环境,因为R语言并不是仅仅提供若干统计程序,使用者只需指定数据库和若干参数便可进行统计分析。R语言的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动地进行数据分析,甚至创造出符合需要的新的统计计算方法。

  在大数据的统计与分析过程中,主要面对的挑战是分析涉及的数据量太大,其对系统资源,特别是I/O会有极大的占用。

  数据挖掘是创建数据挖掘模型的一组试探法和计算方法,通过对提供的数据进行分析,查找特定类型的模式和趋势,最终创建模型。数据挖掘常用分析方法有分类、聚类、关联规则、预测模型等。

  分类是一种重要的数据分析形式,根据重要数据类的特征向量值及其他约束条件,构造分类函数或分类模型,目的是根据数据集的特点把未知类别的样本映射到给定类别中。下面介绍几种典型算法。

  (1)朴素贝叶斯算法:朴素贝叶斯算法是统计学的一种分类方法,它是利用概率统计知识进行分类的算法。该算法能运用到大型数据库中,而且方法简单、分类准确率高、速度快。

  (2)K最近邻算法KNN:KNN算法是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是,如果一个样本在特征空间中的K个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别。由于该算法主要靠周围邻近的样本,而不是靠判别类域的方法来确定所属类别,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

  (3)支持向量机算法SVM: SVM算法是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳折中,以求获得最好的推广能力。使用SVM算法可以在高维空间构造良好的预测模型,该算法在OCR、语言识别、图像识别等领域得到广泛应用。

  (4)AdaBoost算法:AdaBoost算法是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。对AdaBoost算法的研究和应用大多集中于分类问题,主要解决了多类单标签问题、多类多标签问题、大类单标签问题等。

  (5)C4.5算法:C4.5算法是决策树核心算法ID3的改进算法。C4.5算法的优点是产生的分类规则易于理解,准确率较高。缺点是在构造树的过程中,需要对数据集进行多次顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时,程序无法运行。

  (6)CART算法:CART算法采用二分递归分割的技术,将当前的样本集分为两个子样本集,使得生成的的每个非叶子节点都有两个分支。因此,CART算法生成的决策树是结构简洁的二叉树,通过构造决策树来发现数据中蕴涵的分类规则。

  聚类分析的目的在于将数据集内具有相似特征属性的数据聚集在一起,同一个数据群中的数据特征要尽可能相似,不同的数据群中的数据特征要有明显的区别。下面介绍几种典型算法。

  (1)BIRCH算法:BIRCH算法是一种综合的层次聚类算法,它用到了聚类特征和聚类特征树两个概念,用于概括聚类描述。聚类特征树概括了聚类的有用信息,并且占用的空间较元数据集合小得多,可以存放在内存中,从而提高算法在大型数据集合上的聚类速度及可伸缩性。

  (2)K-means算法:K-means算法是一种很典型的基于距离的聚类算法,采用距离作为相似性评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。K-means算法是解决聚类问题的一种经典算法,简单快速,对于处理大数据集,该算法具备相对可伸缩性和高效性。

  (3)期望最大化算法(EM算法):期望最大化算法是一种迭代算法,每次迭代由两步组成,E步求出期望,M步将参数极大化。EM算法在处理缺失值上,经过实际验证是一种非常稳健的算法。

  关联规则指搜索系统中的所有数据,找出所有能把一组事件或数据项与另一组事件或数据项联系起来的规则,以获得预先未知的和被隐藏的,不能通过数据库的逻辑操作或统计的方法得出的信息。下面介绍几种典型算法。

  (1)Apriori算法:Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。而且算法已经被广泛应用到商业、网络安全等各个领域。

  (2)FP-Growth算法:FP-Growth算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构,FP-Tree是一种特殊的前缀树,由频繁项头表和项前缀树构成,FP-Growth算法基于以上的结构加快整个挖掘过程。该算法高度浓缩了数据库,同时也能保证对频繁项集的挖掘是完备的。

  预测模型是一种统计或数据挖掘的方法,包括可以在结构化与非结构化数据中使用以确定未来结果的算法和技术,可为预测、优化、预报和模拟等许多业务系统使用。

  代表性的预测模型是序贯模式挖掘SPMGC算法。序贯模式挖掘SPMGC算法首先对约束条件按照优先级进行排序,然后依据约束条件产生候选序列,可以有效地发现有价值的数据序列模式,提供给大数据专家们进行各类时间序列的相似性与预测研究。

  在大数据挖掘的过程中,主要面对的挑战是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,常用的数据挖掘算法都以单机/单线程为主。

  整个大数据的处理过程,至少应该包括上述四个方面的步骤,即大数据的采集、导入与预处理、统计分析、大数据挖掘,才能算得上一个比较完整的大数据处理流程。返回搜狐,查看更多

      任你博,任你博娱乐,任你博官网