MADlib是一個在AliPG核心資料庫中運行機器學習、圖計算模型的開源庫。在機器學習方面,MADlib除提供數理統計通用函數、預存程序之外,還提供一系列比較經典的監督、非監督學習演算法庫。
前提條件
- RDS PostgreSQL執行個體版本滿足以下要求:
- 執行個體大版本為PostgreSQL 12、11。
執行個體核心小版本為20230830或以上。
重要20230830核心小版本之前已支援此外掛程式,但為了規範外掛程式管理,提升RDS PostgreSQL在外掛程式側的安全防護,RDS計劃在核心版本迭代中陸續對部分存在安全風險的外掛程式進行最佳化,部分外掛程式在低核心小版本無法建立,更多資訊,請參見【產品/功能變更】RDS PostgreSQL限制建立外掛程式說明。
如果您在20230830核心小版前已經使用了此外掛程式,則不影響使用。
如果您首次建立或重新建立此外掛程式,請升級核心小版本到最新。
- 您的帳號類型必須為高許可權帳號。您可以在RDS控制台目標執行個體的帳號管理中查看您的帳號權限類別型。如果您的帳號類型為普通帳號,您需要建立高許可權帳號,建立詳情請參見建立帳號。
外掛程式簡介
MADlib機器學習模組主要解決以下問題:
- 分類、迴歸問題:提供一系列演算法,如K最近鄰、MLP多層感知神經網路、SVM支援向量機、決策樹等演算法來解決二元分類、迴歸問題,整合最小二乘法、GLM廣義線性迴歸、羅吉斯迴歸、多項式迴歸等模型來解決迴歸問題。
- 聚類問題:提供K-Means演算法實現群集。
- 關聯分析:提供Apriori演算法實現關聯分析,解決如“啤酒與尿布”的關聯問題。
- 時序分析:提供ARIMA自迴歸移動平均模型預測時間序列資料的未來值。
- 其他:資料降維如通過PCA主成分分析模型來提煉主因子,文檔分類與LDA文檔主題建模。
MADlib還整合圖計算模型,解決諸如最短路徑、PageRank排名、社交網路“誰認識誰,誰與誰更熟悉”等問題。圖計算模型相關演算法如下表:
類別 | 模型/功能 | 說明 |
最短路徑 | 所有頂點之間最短路徑 | 計算所有頂點之間的最短路徑並儲存到指定結果表,根據結果表尋找任意起點到任意終點的最短路徑。 |
給定頂點到其他之間最短路徑 | 計算給定頂點到其他頂點之間的最短路徑並儲存到指定結果表,根據結果表尋找給定頂點到任意終點的最短路徑。 | |
廣度優先搜尋 | 廣度優先搜尋 | 使用廣度優先方法尋找從給定源頂點可到達的節點。 |
HITS | HITS分數 | 在有向圖中找到所有頂點的HITS分數(權威度和中心度)。 |
網頁排名 | PageRank | 在有向圖中找到所有頂點的PageRank。 |
弱連通分量 | 弱連通分量 | 尋找圖的所有弱串連組件。 |
度量 | 平均路徑長度 | 計算圖的平均最短路徑長度。 |
緊密度 | 計算圖中每個節點的緊密度中心值。 | |
圖形直徑 | 計算圖的直徑。 | |
入/出度 | 計算每個頂點的度數(入度/出度)。 |
外掛程式開啟和關閉
- 開啟MADlib說明 開啟MADlib外掛程式前,需要使用
CREATE EXTENSION plpythonu;
命令先建立plpythonu外掛程式。CREATE EXTENSION madlib;
- 關閉MADlib
DROP EXTENSION madlib;
相關參考
MADlib的詳細說明,請參見MADlib官方文檔。