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 等正則化有什麼區別?
※學習與深層原理