Spark機器學習庫(MLlib)中文指南

Spark機器學習庫(MLlib)指南

MLlib是Spark里的機器學習庫。它的目標是使實用的機器學習演算法可擴展並容易使用。它提供如下工具:

1.機器學習演算法:常規機器學習演算法包括分類、回歸、聚類和協同過濾。

2.特徵工程:特徵提取、特徵轉換、特徵選擇以及降維。

3.管道:構造、評估和調整的管道的工具。

4.存儲:保存和載入演算法、模型及管道

5.實用工具:線性代數,統計,數據處理等。

*注意:主要介面為基於數據框的介面,基於RDD的介面目前處於維護模式。

在Spark2.0中,spark.mllib包中的RDD介面已進入維護模式。現在主要的機器學習介面為spark.ml包中的基於數據框介面。

這一轉變包含哪些信息?

1.MLlib將繼續在spark.mllib中支持基於RDD的介面。

2.MLlib不會向基於RDD的介面中繼續添加新的特徵。

3.在Spark2.0以後的版本中,將繼續向基於數據框的介面添加新特徵以縮小與基於RDD介面的差異。

4.當兩種介面之間達到特徵相同時(初步估計為Spark2.2),基於RDD的介面將被廢棄。

5.基於RDD的介面將在Spark3.0中被移除。

為什麼MLlib轉向數據框介面?

1.數據框可以提供比RDD更容易掌握使用的介面。數據框的主要優點包括Spark數據源來源、結構化查詢語言的數據框查詢、各編程語言之間統一的介面。

2.基於數據框的MLlib介面為多種機器學習演算法與編程語言提供統一的介面。

3.數據框有助於實現機器學習管道,特別是特徵轉換。管道指南中可查看詳細信息。

調用信息

MLlib使用線性代數包Breeze,Breeze使用Netlib-java來優化數值問題。如果運行時本地包不可用,你將看到一個警告提示信息,然後使用純虛擬機進行處理。

考慮到運行二進位問題時的證書許可問題,我們默認不使用netlib-java的本地代理。安裝netlib-java/Breeze來使用系統二進優化,請閱讀netlib-java官方文檔來獲得安裝說明。

基於Python語言使用MLlib,需要安裝1.4以上版本Numpy。

中文指南目錄

1 管道

2特徵提取、特徵變換、特徵選擇

2.1 特徵提取

2.1.1 詞頻-逆向文件頻率(TF-IDF)

2.1.2 Word2Vec

2.1.3 計數向量器

2.2 特徵變換

2.2.1 分詞器

2.2.2 停用詞移除

2.2.3 n-gram

2.2.4 二值化

2.2.5 主成分分析(PCA)

2.2.6 多項式展開

2.2.7 離散餘弦變換(DCT)

2.2.8 字元串-索引變換

2.2.9 索引-字元串變換

2.2.10 獨熱編碼

2.2.11 向量-索引變換

2.2.12 正則化

2.2.13 標準縮放

2.2.14 最大值-最小值縮放

2.2.15 最大值-平均值縮放

2.2.16 離散化重組

2.2.17 元素乘積

2.2.18 SQL轉換器

2.2.19 向量彙編

2.2.20 分位數求解器

2.3 特徵選擇

2.3.1 向量機

2.3.2 R公式

2.3.3 選擇

3 分類和回歸

3.1 分類

3.1.1 邏輯回歸

3.1.2決策樹分類

3.1.3 隨機森林分裂

3.1.4 梯度迭代樹分類

3.1.5 多層感知機

3.1.6 一對多分類器

3.1.7 樸素貝葉斯

3.2 回歸

3.2.1 廣義線性模型

3.2.2 決策樹回歸

3.2.3 隨機森林回歸

3.2.4 梯度迭代樹回歸

3.2.5 生存回歸

3.2.6 保序回歸

4 聚類

4.1 K均值聚類

4.2 文檔主題生成模型(LDA)

4.3 二分K均值

4.4 高斯混合模型(GMM)

5 協同過濾

6 模型選擇和調試

6.1 交叉檢驗

6.2 訓練檢驗分裂

7 高級主題

推薦閱讀:

如何評價圖森科技連發的三篇關於深度模型壓縮的文章?
該不該堅持學習Machine Learning?
第五講:樸素貝葉斯應用(分類文本)和高斯樸素貝葉斯
AIC, BIC 和 L1,L2 等正則化有什麼區別?
學習與深層原理

TAG:Spark | mllib | 机器学习 |