機器學習庫擁有豐富的開源實現(xiàn)惊暴,從單機的Scikit-learn到分布式的MLLib,它們各有特色,被廣泛應用在各種數(shù)據(jù)處理的場景。本文將介紹機器學習庫Scikit-learn的算法分類及其應用場景牵舱。
Scikit-learn是構(gòu)建在Python基礎上的機器學習庫,由于其簡單且高效缺虐,而備受開發(fā)者歡迎芜壁。Scikit-learn將算法分為六個類別,如下圖所示:
分類(Classification)算法:目標是確定對象所屬類別高氮,主要應用于垃圾郵件檢測沿盅、圖像識別。
回歸(Regression)算法:目的是預測連續(xù)值屬性的變化纫溃,主要適用于股票價格預測。
聚類(Clustering)算法:目的是類似對象的自動化分組韧掩,主要適用于客戶細分紊浩。
降維(Dimensionality reduction)算法:目的是減少隨機變量的數(shù)目,主要適用于可視化疗锐、模型特征選擇坊谁。
模型選擇(Model selection)算法:目的是比較、驗證和選擇參數(shù)和模型滑臊,主要適用于通過參數(shù)調(diào)優(yōu)提高準確率口芍。
預處理(Preprocessing)算法:目的是特征提取與正則化,主要適用于將輸入數(shù)據(jù)轉(zhuǎn)化成可被機器學習算法識別的表示方式雇卷。
Scikit-learn是單機版的機器學習算法庫鬓椭,通常只能處理小規(guī)模的數(shù)據(jù)集。當輸入數(shù)據(jù)集增大到單機難以容納或單機處理時間過長時关划,必須借助分布式機器學習算法庫小染。隨著分布式計算框架的流行,越來越多的機器學習算法被分布式化贮折,進而產(chǎn)生了豐富的機器學習庫裤翩,包括MapReduce之上的Mahout、Spark之上的MLLib调榄、Flink之上的FlinkML等踊赠。