官术网_书友最值得收藏!

2.5 Spark 2.2 MLlib

Spark 2.2版本中新增了基于DataFrame的機器學習;Spark 2.2對R語言的機器學習新增了更多算法的支持,如Random Forest(隨機森林)、Gaussian Mixture Model(高斯混合模型)、Naive Bayes(樸素貝葉斯)、Survival Regression(生存回歸分析)以及K-Means(K-均值)等算法。

Apache Spark 2.2.0版本中MLlib的更新如下。

1.基于DataFrame的API的新算法

 SPARK-14709:LinearSVC(線性SVM分類器)(Scala/Java/Python/R)。

 SPARK-19635:基于DataFrame的API(Scala/Java/Python)中的ChiSquare測試。

 SPARK-19636:基于DataFrame的API(Scala/Java/Python)的相關性。

 SPARK-13568:用于估算缺失值的計算特征變換器(Scala/Java/Python)。

 SPARK-18929:為GLM增加Tweedie分布(Scala/Java/Python/R)。

 SPARK-14503:FPGrowth頻繁模式挖掘和關聯規則(Scala/Java/Python/R)。

2.現有的算法增加到Python和R API

 SPARK-18239:梯度增強樹。

 SPARK-18821:二分K均值。

 SPARK-18080:區域敏感哈希(LSH)(Python)。

 SPARK-6227:PySpark的分布式PCA和SVD(基于RDD的API)。

3.主要的BUG修復

 SPARK-19110:DistributedLDAModel.logPrior正確性修復。

 SPARK-17975:EMLDAOptimizer失敗產生的異常ClassCastException(由GraphX檢查點錯誤引起)。

 SPARK-18715:修正二項式GLM中AIC計算的錯誤。

 SPARK-16473:二分K均值失敗,訓練使用一定的輸入次數時,提示“java.util. NoSuchElementException: key not found”。

 SPARK-19348:pyspark.ml.Pipeline在多線程使用下損壞。

 SPARK-20047:箱約束邏輯回歸。

4.廢棄功能

SPARK-18613:spark.ml LDA類不應在API中公開spark.mllib。在spark.ml.LDAModel中已棄用oldLocalModel和getModel。

5.行為變化

SPARK-19787:DeveloperApi ALS.train()使用默認的regParam值0.1,而不是1.0,以匹配常規ALS API的默認regParam設置。

2.5.1 基于DataFrame的Machine Learning API

我們可以從下載的Spark源碼中看到加入了spark.ml包(原來的spark.mllib仍然存在),這是在新版本中加入的基于DataFrame的機器學習代碼包,存儲在DataFrames中的向量和矩陣現在使用更高效的序列化,減少了調用MLlib算法的開銷。現在spark.ml包代替基于RDD的ML成為主要的SparkMLAPI。有一個很重要的功能是,現在可以保存和加載Spark支持的所有語言的Machine Learning pipeline和model了。

2.5.2 R的分布式算法

Apache Spark 2.2.0版本中SparkR的更新如下。

SparkR在2.2.0版本中為現有的Spark SQL功能增加了廣泛的支持。

1.主要更新的功能點

 SPARK-19654:R的結構化流式API。

 SPARK-20159:在R中支持完整的Catalog API。

 SPARK-19795:列函數to_json、from_json。

 SPARK-19399:在DataFrame上合并,并在列上合并。

 SPARK-20020:支持DataFrame檢查點。

 SPARK-18285:R中的多列近似數。

2.廢棄功能

SPARK-20195:棄用createExternalTable。

3.行為變化

SPARK-19291:為SparkR高斯混合模型增加了對數似然,但這導致SparkR 2.1版本與2.2版本不兼容:從SparkR 2.1保存的高斯混合模型可能不會加載到SparkR 2.2中。計劃未來推出SparkR的向后兼容性保證。

4.已知的問題

SPARK-21093:在SparkR中,多次執行有時會失敗。

Spark 2.X版本對SparkR的最大改進是用戶自定義函數,包括dapply、gapply和lapply,前兩者可以用于執行基于分區的用戶自定義函數(如分區域模型學習),而后者可用于超參數整定。

Spark 2.X對R語言的機器學習增加了幾種算法:Random Forest(隨機森林)、Gaussian Mixture Model(高斯混合模型)、Naive Bayes(樸素貝葉斯)、Survival Regression(生存回歸分析)以及K-Means(K-均值)等。支持多項邏輯回歸,來提供與glmnet R相似的功能。

同時對Python的機器學習也增加了一些算法,如LDA(線性判別式分析Linear Discriminant Analysis)、高斯混合模型、廣義線性回歸等。

主站蜘蛛池模板: 龙江县| 荆门市| 宜川县| 宽甸| 成安县| 和田县| 华安县| 加查县| 江孜县| 山丹县| 兴宁市| 平和县| 曲松县| 芜湖市| 阳城县| 门头沟区| 龙口市| 广南县| 鄱阳县| 任丘市| 乡城县| 泗水县| 龙山县| 女性| 清原| 桐柏县| 颍上县| 定西市| 枝江市| 始兴县| 库尔勒市| 达孜县| 鹤岗市| 高清| 栾城县| 平安县| 长汀县| 陵川县| 高陵县| 磐石市| 遂溪县|