越(yuè)来越多的应用涉及(jí)到大数(shù)据,不幸的是(shì)所(suǒ)有大(dà)数据的属性,包(bāo)括数量、速(sù)度、多(duō)样性等等都是描述了数据库不断增长的复杂性(xìng)。那(nà)么大数(shù)据给(gěi)我们带来(lái)了什么好处呢?大数据最(zuì)大的好(hǎo)处(chù)在于能够让(ràng)我们(men)从这些(xiē)数据中分(fèn)析出很多(duō)智(zhì)能的、深入(rù)的、有价(jià)值的信(xìn)息。
最(zuì)近比较了179种不同的分类学习方法(fǎ)(分类学习算法)在121个数据集上的性能,发现Random Forest(随机森(sēn)林)和SVM(支持向量机)分类准(zhǔn)确率最(zuì)高,在大多数情况下超过其他(tā)方法。本文针对“大数据分析到底需要多少(shǎo)种工具?”
分类方法大比武
大数据分析(xī)主要依靠机器学习(xí)和大规模计算。机器学习(xí)包(bāo)括(kuò)监(jiān)督(dū)学习、非监(jiān)督学习(xí)、强化学习(xí)等,而监督学习又包括分(fèn)类学习、回归学(xué)习(xí)、排序(xù)学习、匹配学习等(见图1)。分类是最(zuì)常见(jiàn)的机器(qì)学习应(yīng)用问题,比如垃圾邮件(jiàn)过(guò)滤、人脸检测(cè)、用户画像(xiàng)、文本情感(gǎn)分(fèn)析、网页归类等,本质上都(dōu)是分类问题。分(fèn)类学习也是机器学习领域,研(yán)究(jiū)最彻底、使用最(zuì)广泛的一(yī)个分(fèn)支。
图1机器学习分(fèn)类体系(xì)
最近、Fernández-Delgado等人在JMLR(Journal of Machine Learning Research,机器学习顶级期刊(kān))杂志发表了一篇有趣(qù)的论文。他们让179种不同(tóng)的分类学习方法(分(fèn)类学习算法(fǎ))在UCI 121个数据集上进行了“大比武”(UCI是机器学习公用数据集,每个数据(jù)集的规模都(dōu)不大)。结果(guǒ)发(fā)现Random Forest(随机森林)和SVM(支持向量机)名列第一(yī)、第二(èr)名,但两者差(chà)异不大。在84.3%的数据上(shàng)、Random Forest压倒(dǎo)了其(qí)它90%的方法。也就是说,在大多数情况下,只用(yòng)Random Forest 或 SVM事(shì)情就搞定了。
几点经(jīng)验总(zǒng)结
大数据分析(xī)到底需要(yào)多少种(zhǒng)机器(qì)学习的方法呢(ne)?围绕着这个问题,我们看一下(xià)机器学(xué)习领域多年(nián)得出(chū)的一些经验规律。
大数据分析性能(néng)的好(hǎo)坏,也就是(shì)说机器学习预测的准确率(lǜ),与使用(yòng)的学习算法、问题(tí)的性质(zhì)、数据集的特性包(bāo)括数据规模(mó)、数据特征等都有关系。
一般地,Ensemble方(fāng)法包括Random Forest和AdaBoost、SVM、LogisTIc Regression 分类准确率最高。
没有一种方法可以“包打天(tiān)下”。Random Forest、SVM等方法一般性能最好,但不(bú)是在什么条件下性能(néng)都最好。
不同的方法(fǎ),当数据规模(mó)小的时候(hòu),性能往往(wǎng)有(yǒu)较(jiào)大(dà)差异,但(dàn)当数(shù)据规模增大时,性能都会(huì)逐渐提升且差异逐(zhú)渐减小。也就是说,在大(dà)数据条件下,什么方(fāng)法都能work的不错。参(cān)见(jiàn)图2中Blaco & Brill的实验结(jié)果。
对于简单问题,Random Forest、SVM等方法基(jī)本可行,但(dàn)是对于复杂问题(tí),比如语音识(shí)别(bié)、图像识别,最近流(liú)行的深度学习(xí)方法往往效果更(gèng)好。深度学习本质是复杂模型学习,是今后研究的重点。
在实(shí)际(jì)应用中(zhōng),要提高分类的准确率,选择特征比选择算法更重要(yào)。好的特征会带来更好的分类(lèi)结果(guǒ),而好的特征(zhēng)的提取需要对(duì)问题(tí)的深入理解。
应(yīng)采取的大数据(jù)分析(xī)策(cè)略
建立大数据分析平台时,选择实(shí)现若(ruò)干种有代表性的方法即可。当(dāng)然,不仅要考(kǎo)虑(lǜ)预测的准确率,还有(yǒu)考虑(lǜ)学习效率、开发成本、模型可读性等其他因(yīn)素。大数据分析平台(tái)固然重(chóng)要(yào),同时需要有一批能(néng)够深入理解应用问题,自(zì)如使用分析工具的工程师和(hé)分析人员。
只(zhī)有善工利器,大(dà)数据分析才能真正发挥威力。
在工具学习上,入门工具推荐两(liǎng)类:SQL(Structured Query Language)、Microsoft Office Excel,进阶工(gōng)具推(tuī)荐:SPSS ClemenTIne/Python。
1、SQL
SQL是数据提取工具(jù),大中型(xíng)企业都会建立自己的数据库(kù)系统,常用数据会建立数据报表系统(常说的BI系统,即business intelligence),供业(yè)务人员使用。但深入业务分(fèn)析需(xū)要更多(duō)的(de)底层数据,报表系统(tǒng)里没(méi)有(yǒu)呈现的数(shù)据,这时就需要使用SQL工具提取数据(jù)库系统数据。
SQL工具很多,有oracle、mysql、sqlserver、hive等,除了细微(wēi)差异,大多数SQL语句都通用。
SQL工具学习很(hěn)容易,真正需(xū)要(yào)下功夫的是对数(shù)据库表结构(gòu)的了(le)解。从(cóng)常用数据表了解,摸清数据(jù)指标及(jí)含义,建(jiàn)立起表结(jié)构间关系,完成日(rì)常(cháng)工作数据提取工作为要(yào)。有精力的童鞋(xié)可以再去探索非常用数据表(biǎo)。
2、Microsoft Office Excel
Excel应该(gāi)是所有(yǒu)数据分(fèn)析(xī)师的(de)入(rù)门工具。除(chú)了一些常用功能使用外,就是使用数据透(tòu)视表和多学习(xí)内嵌函数,能省去不少工(gōng)作量。除了(le)数据量级处理有限外,Excel功能强(qiáng)大不能仅仅用强大来形容(róng)。高阶Excel学习,可以继续了解宏使用。
3、SPSS ClemenTIne/Python
在数(shù)据分析进阶路上,还(hái)有一类工(gōng)具是:数据建模工具(jù),如SPSS ClemenTIne、R、Python等。大数据时(shí)代,数据(jù)维度过于丰富,数据量级过(guò)于庞大,对于(yú)未知数据(jù)探索,手动计算发(fā)现数据(jù)关系的(de)工(gōng)作(zuò)量(liàng)已(yǐ)经过(guò)于繁重,交(jiāo)给这些数据模型工具就简(jiǎn)单多了。其内嵌了(le)大量精细的数据算法(fǎ),我们需要做的就(jiù)是掌(zhǎng)握统计理论,掌握(wò)算(suàn)法(fǎ)原理(lǐ),输入规范的(de)数(shù)据,等(děng)待模(mó)型的结果。当然(rán),对模型的掌握,结(jié)论的解读,业务的理(lǐ)解,都(dōu)是使用(yòng)建模工具必(bì)须要学习的
下面我总结了(le)分析大数据的(de)5个方面(miàn)。
1. Analytic Visualizations(可视化分析)
不管是对数据分析专家还是普(pǔ)通(tōng)用户,数据(jù)可视化是数据分析工具最基本的要求。可视(shì)化可以直(zhí)观的展(zhǎn)示数据,让数(shù)据自己说话,让观(guān)众听到(dào)结(jié)果。
2. Data Mining Algorithms(数据挖掘算法)
可视化是给(gěi)人看的,数据挖(wā)掘就是给机器看的。集群、分割、孤立点分析还有其他的算法让(ràng)我们深(shēn)入数据内(nèi)部,挖(wā)掘价值。这些算法不仅要处(chù)理大数据的(de)量(liàng),也(yě)要处理大(dà)数据的速度。
3. Predictive Analytic Capabilities(预测性分析能力)
数据挖掘可以让分析员更好的理解(jiě)数据,而预(yù)测性分析可以让分析员根据可视化分析和数据挖掘的(de)结(jié)果做出一(yī)些预测性的判断。
4. Semantic Engines(语义引擎)
我们(men)知道由于(yú)非结(jié)构化数据的多样性带来了数据分析(xī)的(de)新的挑战,我(wǒ)们需要(yào)一(yī)系列的工具去解析、提取、分(fèn)析数据。语义引擎需要被设(shè)计成能够从“文档”中智能提取(qǔ)信(xìn)息。
5. Data Quality and Master Data Management(数据(jù)质量和数据管理)
数(shù)据质量和数据管理(lǐ)是一(yī)些管理(lǐ)方面的(de)最佳实践。通过标准(zhǔn)化的流程和工(gōng)具对数据(jù)进行处理可以(yǐ)保证(zhèng)一(yī)个预先定义好的高(gāo)质量的分析结果。
假如大(dà)数据真的是下一个重要的技术革(gé)新的话,我们最好关注(zhù)大数据(jù)能给我们带来的好处(chù),而不仅仅是(shì)挑战。