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