Spark MLlib全部算法總結(jié)(2.1.0版)
說明:總結(jié)算法為Spark2.1.0中Mllib中源碼算法,參照網(wǎng)絡(luò)鏈接及書籍整理而成。
算法按計(jì)算過程分兩大類:監(jiān)督學(xué)習(xí)(Supervised Learning)和無監(jiān)督學(xué)習(xí)(Unsupervised Learning)。
監(jiān)督學(xué)習(xí):指給定算法的一個(gè)數(shù)據(jù)集,其中包含了“正確答案”。算法的目的就是給出更多的“正確答案”。
無監(jiān)督學(xué)習(xí):指給定算法的一個(gè)數(shù)據(jù)集,要求算法找出數(shù)據(jù)的類型結(jié)構(gòu),即“分門別類”。按基于數(shù)據(jù)類型不同又分為兩個(gè)包:ml包和mllib包。
mllib包內(nèi)算法是基于Spark的核心RDD(彈性分布式數(shù)據(jù)集)類型數(shù)據(jù)的。
ml包內(nèi)算法是基于更為抽象數(shù)據(jù)類型DataFrame(數(shù)據(jù)流)的。
ml、mllib包內(nèi)按功能類型分又分為多種類型,包括分類(classification)、聚類(clustering)、特征(feature)、優(yōu)化(optimi/optimization)、推薦(recommendation)、回歸(regression)、評(píng)估(evaluation)等多種類型。
注:Spark從2.0版本開始,不再向mllib包中添加新的算法,并逐漸將mllib包中算法向ml包中過渡,預(yù)計(jì)3.0版本將會(huì)移除mllib包,統(tǒng)一ml包內(nèi)基于DataFrame類型的算法。
1 mllib包內(nèi)算法
注:分類與回歸的區(qū)別在于:分類是結(jié)果值離散型的,少數(shù)的;而回歸結(jié)果值是連續(xù)的,多數(shù)的。根據(jù)結(jié)果值需求來決定用哪個(gè)算法。所以把分類與回歸放一塊分析。
2 ml包內(nèi)算法
說明:名為ml包內(nèi)算法,實(shí)則并非ml包與mllib包區(qū)別十分明顯,部分甚至多數(shù)ml包內(nèi)算法已經(jīng)在mllib包算法內(nèi)提到并敘述。ml包內(nèi)算法僅為對(duì)算法提供一個(gè)基于DataFrame類型的補(bǔ)充說明,已解釋過的算法不再贅述。
浙公網(wǎng)安備 33010602011771號(hào)