Spark MLlib中分類和回歸算法
Spark MLlib中分類和回歸算法:
- -分類算法:
pyspark.mllib.classification
-樸素貝葉斯 NaiveBayes
-支持向量機(優化:隨機梯度下降)SVMWithSGD
-邏輯回歸 LogisticRegressionWithSGD
// 從Spark 2.0開始,官方推薦使用BFGS方式優化LR算法
LogisticRegressionWithBFGS
// 針對流式數據實時模型訓練算法
StreamingLogisticRegressionWithSGD
- -樹Tree相關分類算法:
pyspark.mllib.tree
-決策樹 DecisionTree
-隨機森林算法 –集成學習算法-Bagging方式 RandomForest
-梯度提升決策樹算法 –集成學習算法 –Boosting方式 GradientBoostedTrees
Spark MLlib中從底層源碼來看,無論是DT 還是RF還是GBT算法,底層都是RF算法實現的。
- -分類算法的類別:
樹相關的算法,既可以做二分類,又可以做多分類算法:
numClass: Number of classes for classification
-二分類
NB、SVM、LR
-多分類
NB、LR
監督學習算法:
數據集RDD[LabeledPoint]
標簽向量 LabelPoint = feature: Vector + label: Float
類比:
RDD 類似 矩陣
數組 類比 Vector
無論是矩陣還是向量分為兩種類型:
-稀疏類型
稀疏矩陣,稀疏向量
-稠密類型
稠密矩陣,稠密向量
Spark MLlib中回歸算法(基於RDD 實現算法庫):
-a. 線性回歸算法相關:
LinerRegressionWithSGD
LassoWithSGD
L1-regularization
RidgeRegressionWithSGD
L2-regularization
-b. 樹算法相關
-決策樹 DecisionTree
-隨機森林算法 –集成學習算法-Bagging方式 RandomForest
-梯度提升決策樹算法 –集成學習算法 –Boosting方式 GradientBoostedTrees
基於DataFrame實現機器學習庫,幾個重要的概念:
-a. DataFrame
類似Pandas中dataframe,將算法所有的數據集存儲在DataFrame數據結構中。
DataFrame = RDD + Schema(字段名稱、字段類型)
-b. Estimator
模型學習器,就是算法,比如ALS,DecisionTree,將數據應用到模型學習器中會得到一個模型Model。
每個模型學習器中有個一個方法(訓練模型):
fit(dataframe) -> Model
-c. Transformer
轉換器,就是模型Model或者算法,比如ALSModel,將針對數據集中某一列或某幾列數據生成預測另外一列新數據。
ALSModel.transform(dataframe)
userId,itemId -> predictRating
-d. Parameters
封裝算法訓練時參數或者模型預測時參數,底層是字典Dic(Map集合),其中字典的Key就是參數名稱,字典的Value就是參數的值。
比如:使用ALS模型學習器訓練模型,設置參數:特征數rank和叠代次數iterations,可以使用Parameters組合封裝設置。
-e. Pipeline
管道,Spark ML機器學習庫從SK-Learn中借鑒
由很多Stage組成:
一個序列的Stages組成,每個Stage要麽是轉換器Estimator(模型),要麽是模型學習器Estimator(算法)
本身來說:
Pipeline就是一個模型學習器,相當於算法,所以裏面有一個fit函數,應用數據訓練以後得到PipelineModel轉換器,可以進行預測數據。
功能:
將某個機器學習應用中整個流程進行串聯起來,方便部署測試使用。
Spark MLlib中分類和回歸算法