8 Spark MLlib
簡答題
T1 與 MapReduce 框架相比,為何 Spark 更適合進行機器學習各演算法的處理?
答:通常情況下,機器學習演算法引數學習的過程都是迭代計算。MapReduce 由於延遲高、磁碟開銷大、無法高效支援迭代計算,不適合高效的實現機器學習演算法;Spark 由於立足於記憶體計算,所以能很好地與機器學習演算法相匹配。
T2 簡述流水線(Pipeline)幾個部件及主要作用,使用 Pipeline 來構建機器學習工作流有什麼好處?🌱
答:
① 流水線部件及其作用:
(1) DataFrame: 即 Spark SQL 中的 DataFrame。與 RDD 資料集相比,它包含了模式(schema)資訊,類似於傳統資料庫中的二維表格;
(2) 轉換器(Transformer): 可以將一個 DataFrame 轉換為另一個 DataFrame 的演算法;
(3) 評估器(Estimator):評估器是對學習演算法或在訓練資料上的訓練方法的概念抽象;
(4) 流水線(PipeLine):流水線將多個工作流階段(轉換器和評估器)連線在一起,形成機器學習的工作流,並獲得結果輸出;
(5) 引數(Parameter):即用來設定轉換器或者評估器的引數。
② 好處:
(1)結構清晰:流水線可以將複雜的機器學習任務分解為多個獨立的部件,使整個工作流更易於理解和管理。
(2)程式碼重用:透過將各個部件模組化,可以在不同的專案中重複使用和共享這些部件,提高開發效率。
T3 基於 RDD 的機器學習 API 和基於 DataFrame 的機器學習 API 有什麼不同點?請思考基於 DataFrame 進行機器學習的優點。🌱
答:
① 兩者不同點:基於 RDD 的機器學習 API 的演算法實現都是基於原始的 RDD;基於 DataFrame 的機器學習 API 除此之外額外有一個機器學習流水線式 API 套件。
② 基於 DataFrame 的優點:基於內部流水線 API 進行機器學習更加靈活,也更符合機器學習的特點,同時也更容易從其他的語言進行遷移。