大數(shù)據(jù)時(shí)代算法概論
作為算法的應(yīng)用方,需在正確了解業(yè)務(wù)場(chǎng)景及問題的基礎(chǔ)上,挑選合適的算法及設(shè)計(jì)機(jī)器學(xué)習(xí)框架。
大數(shù)據(jù)分析和工業(yè)互聯(lián)網(wǎng)專家
精研數(shù)據(jù)科學(xué)和大數(shù)據(jù)發(fā)展,以價(jià)值為導(dǎo)向開拓大數(shù)據(jù)行業(yè)應(yīng)用。曾就職于Pactera和SAP二十余年,擁有杰出的執(zhí)行力和豐富的行業(yè)經(jīng)驗(yàn)。
作為大數(shù)據(jù)系列文章的最后一篇,本文探討大數(shù)據(jù)最精華也是最神秘的部分—算法與機(jī)器學(xué)習(xí)。算法的選用及機(jī)器學(xué)習(xí)搭建的前提是原始數(shù)據(jù)的數(shù)字化,從中提煉出有代表性的特征值,形成優(yōu)質(zhì)的特征值空間,所以建立一個(gè)好的數(shù)據(jù)平臺(tái)是第一步,包括數(shù)據(jù)源正確選擇,數(shù)據(jù)的正確處理以及數(shù)據(jù)特征的提取。
不論是使用傳統(tǒng)數(shù)據(jù)分析方法還是大數(shù)據(jù)分析所需的高維度、高復(fù)雜度的算法,均需滿足三個(gè)目標(biāo):一是準(zhǔn)確性, 二是高效率,三是適應(yīng)性。作為算法的應(yīng)用方,一方面需在正確了解業(yè)務(wù)場(chǎng)景及問題的基礎(chǔ)上,挑選合適的算法及設(shè)計(jì)機(jī)器學(xué)習(xí)框架。另一方面,大數(shù)據(jù)產(chǎn)業(yè)仍需要基礎(chǔ)數(shù)學(xué)家在理論上證明這些算法的正確性及可行性。舉例來講,模糊聚類分析的數(shù)理基礎(chǔ)包括模糊等價(jià)關(guān)系、模糊相似矩陣。SVM數(shù)理基礎(chǔ)則為KKT條件、拉格朗日定理,馬爾科夫鏈數(shù)理基礎(chǔ)則包括各種遍歷算法、最大期望算法等。將算法應(yīng)用于數(shù)據(jù)分析,傳統(tǒng)數(shù)據(jù)挖掘是以古典統(tǒng)計(jì)學(xué)為基礎(chǔ)的分析技術(shù),主要包括數(shù)據(jù)的描述性分析、線性回歸分析、方差分析、主成分分析、典型相關(guān)分析和貝葉斯統(tǒng)計(jì)分析等。其普遍缺點(diǎn)為傳統(tǒng)統(tǒng)計(jì)學(xué)研究的是樣本數(shù)目趨于無窮大時(shí)的漸近理論,現(xiàn)有學(xué)習(xí)方法也多是基于此假設(shè)。但實(shí)際問題中,樣本數(shù)是有限且分布不均的,因此一些傳統(tǒng)分析方法實(shí)際表現(xiàn)不盡如人意。
新一代的分析方法則是專門研究小樣本情況下機(jī)器學(xué)習(xí)規(guī)律的理論,可分三類:一是基于概率論的算法,如隱馬爾科夫模型、 最大期望值、 狀態(tài)轉(zhuǎn)移概率模型,以及對(duì)各種選項(xiàng)進(jìn)行更好的評(píng)估,提高決策質(zhì)量。二是基于凸二次優(yōu)化論的算法,目的是達(dá)到更好的分析精準(zhǔn)度。三是針對(duì)時(shí)間序列分析的算法,如小波分析、小波包分析等,這些算法是預(yù)測(cè)模型的基礎(chǔ)。
此外,由以上基本算法組合成的變種混合算法,綜合吸收各類算法的優(yōu)點(diǎn),用諸于復(fù)雜業(yè)務(wù)問題。今天世界上幾乎所有的算法均融入到一塊,并不斷地產(chǎn)生新的變種, 如小波包核函數(shù)的支持向量回歸、以小波分析為核心的模糊聚類分析、基于隱馬爾科夫模型及最大期望值的信用風(fēng)險(xiǎn)分析及預(yù)測(cè)等等。
從解決問題的思路來看,算法也可分為分類算法和聚類算法。分類算法是將一個(gè)未知樣本分到幾個(gè)預(yù)先已知類的過程,建立一個(gè)模型來描述預(yù)先的數(shù)據(jù)集或概念集。這里假定每一個(gè)樣本都有一個(gè)預(yù)先定義的類,由一個(gè)被稱為類標(biāo)簽的屬性確定,為建立模型而被分析的數(shù)據(jù)元組形成訓(xùn)練數(shù)據(jù)集,因此也稱作有指導(dǎo)的學(xué)習(xí)。分類算法缺點(diǎn)在于其是推理的、主觀的、且有預(yù)設(shè)立場(chǎng)。分類算法經(jīng)典代表,如各種決策樹模型、樸素貝葉斯模型等。而聚類分析則是歸納性的,不需事先確定分類的準(zhǔn)則來分析數(shù)據(jù)對(duì)象。聚類分析不考慮己知的類標(biāo)記。聚類是一種無監(jiān)督學(xué)習(xí)方法,聚類對(duì)象根據(jù)最大化類內(nèi)的相似性并最小化類間的相似性的原則進(jìn)行聚類或分組,它通過一些目標(biāo)函數(shù)計(jì)算來把觀測(cè)進(jìn)行合理的分類,使得同類的觀測(cè)結(jié)果接近且異類的觀測(cè)相差較多,最終所形成的每個(gè)簇可看成一個(gè)對(duì)象類,而由形成的對(duì)象類可以導(dǎo)出隱藏規(guī)則。聚類增強(qiáng)了人們對(duì)客觀現(xiàn)實(shí)的認(rèn)識(shí)。
算法選擇好后,接著是搭建一個(gè)機(jī)器學(xué)習(xí)框架,設(shè)計(jì)一個(gè)合適于數(shù)據(jù)特性的模型參數(shù)訓(xùn)練方法,理想的目標(biāo)是增量式的學(xué)習(xí),并自動(dòng)調(diào)整模型參數(shù)。最后,我們以協(xié)同過濾推薦算法的機(jī)器學(xué)習(xí)框架來展示一個(gè)案例。協(xié)同過濾是推薦引擎的核心,包括七個(gè)步驟,首先通過余弦相似性或修正的余弦相似性、相關(guān)相似性等方法進(jìn)行相似性比較,其中應(yīng)對(duì)用戶—項(xiàng)目矩陣稀疏性問題,可嘗試采用如BP神經(jīng)網(wǎng)絡(luò)、樸素貝葉斯分類等進(jìn)行矩陣填充,或者運(yùn)用空間填充曲線、奇異值分解等技術(shù)等進(jìn)行矩陣降維。接下來需要解決冷啟動(dòng)問題,可以將新用戶按照屬性相似性聚類,將新項(xiàng)目按照屬性相似性分類。此外,為了提高推薦速度,實(shí)現(xiàn)快速聚焦,縮小搜索范圍,我們可以應(yīng)用Gibbs Sampling算法或快速模糊聚類等。而在推薦策略上,可采用平均加權(quán)策略或基于評(píng)分頻度的推薦策略。最后,需要對(duì)推薦效果進(jìn)行評(píng)估,包括應(yīng)用統(tǒng)計(jì)精度度量和決策支持精度度量方法進(jìn)行評(píng)估推薦質(zhì)量。