相關專案#
我們鼓勵實作 scikit-learn 估計器 API 的專案使用 scikit-learn-contrib 範本,這有助於實作測試和記錄估計器的最佳實務。 scikit-learn-contrib GitHub 組織 也接受符合此範本的高品質儲存庫貢獻。
以下是相關專案、擴充功能和特定領域套件的列表。
互通性和框架增強#
這些工具調整 scikit-learn 以便與其他技術一起使用,或以其他方式增強 scikit-learn 估計器的功能。
自動機器學習 (Auto-ML)
auto-sklearn 一個自動化的機器學習工具包,可作為 scikit-learn 估計器的直接替代品
autoviml 只需一行程式碼即可自動建構多個機器學習模型。設計為使用 scikit-learn 模型而不必預先處理資料的更快方法。
TPOT 一個自動化的機器學習工具包,可最佳化一系列 scikit-learn 運算子,以設計機器學習管道,包括資料和特徵預處理器以及估計器。可作為 scikit-learn 估計器的直接替代品。
Featuretools 一個執行自動特徵工程的框架。它可以將時間和關係資料集轉換為機器學習的特徵矩陣。
EvalML EvalML 是一個 AutoML 函式庫,它使用特定領域的目標函數來建構、最佳化和評估機器學習管道。它在一個 API 下整合多個建模函式庫,而且 EvalML 建立的物件使用與 sklearn 相容的 API。
MLJAR AutoML 用於表格資料 AutoML 的 Python 套件,具有特徵工程、超參數調整、解釋和自動文件。
實驗和模型註冊框架
MLFlow MLflow 是一個開放原始碼平台,用於管理 ML 生命周期,包括實驗、再現性、部署和中央模型註冊。
Neptune MLOps 的中繼資料儲存,專為執行大量實驗的團隊而建。它提供一個單一位置來記錄、儲存、顯示、組織、比較和查詢所有模型建置中繼資料。
Sacred 一個協助您配置、組織、記錄和重現實驗的工具
Scikit-Learn Laboratory 一個 scikit-learn 的命令列包裝器,可讓您輕鬆使用多個學習器和大型特徵集來執行機器學習實驗。
模型檢查和視覺化
dtreeviz 一個用於決策樹視覺化和模型解釋的 Python 函式庫。
sklearn-evaluation 讓機器學習模型評估變得輕鬆:繪圖、表格、HTML 報表、實驗追蹤和 Jupyter 筆記本分析。視覺分析、模型選擇、評估和診斷。
yellowbrick 一套用於 scikit-learn 估計器的自訂 matplotlib 視覺化工具,以支援視覺特徵分析、模型選擇、評估和診斷。
用於生產的模型匯出
sklearn-onnx 將許多 Scikit-learn 管道序列化為 ONNX,以進行交換和預測。
skops.io 一個比 pickle 更安全的持久化模型,在大多數常見情況下可以用來替代 pickle。
sklearn2pmml 在 JPMML-SkLearn 函式庫的協助下,將各種 scikit-learn 估計器和轉換器序列化為 PMML。
treelite 將基於樹的集成模型編譯為 C 程式碼,以最大限度地減少預測延遲。
emlearn 在嵌入式裝置和微控制器中以 C99 實作 scikit-learn 估計器。支援多種分類器、迴歸和離群值偵測模型。
模型吞吐量
Intel(R) Extension for scikit-learn 主要在高階 Intel(R) 硬體上,在某些情況下會加速某些 scikit-learn 模型的訓練和推論。此專案由 Intel(R) 維護,而 scikit-learn 的維護人員並未參與此專案的開發。另請注意,在某些情況下,使用
scikit-learn-intelex
下的工具和估計器會產生與scikit-learn
本身不同的結果。如果您在使用此專案時遇到問題,請務必在其各自的儲存庫中回報潛在的問題。
與 R 的介面,用於基因體應用
BiocSklearn 公開少量的降維工具,作為使用 basilisk 通訊協定將 Python 與 R 連接的範例。旨在作為更完整互通性的起點。
其他估計器和任務#
並非所有東西都屬於或已足夠成熟,可納入中央 scikit-learn 專案。以下專案提供類似於 scikit-learn 的介面,用於額外的學習演算法、基礎結構和任務。
時間序列和預測
Darts Darts 是一個 Python 函式庫,用於對時間序列進行使用者友善的預測和異常偵測。它包含各種模型,從 ARIMA 等經典模型到深度神經網路。所有預測模型都可以使用相同的方式,使用 fit() 和 predict() 函數,類似於 scikit-learn。
sktime 一個與 scikit-learn 相容的工具箱,用於時間序列機器學習,包括時間序列分類/迴歸和(監督/面板)預測。
skforecast 一個 Python 函式庫,可讓您輕鬆地將 scikit-learn 迴歸器用作多步驟預測器。它也適用於任何與 scikit-learn API 相容的迴歸器。
tslearn 一個用於時間序列的機器學習函式庫,提供預先處理和特徵擷取工具,以及用於群集、分類和迴歸的專用模型。
梯度(樹)提升
請注意 scikit-learn 自己現代的梯度提升估計器 HistGradientBoostingClassifier
和 HistGradientBoostingRegressor
。
XGBoost XGBoost 是一個最佳化的分散式梯度提升函式庫,旨在具有高效、彈性和可攜性。
LightGBM LightGBM 是一個使用基於樹的學習演算法的梯度提升框架。它被設計為分散式和高效的。
結構化學習
HMMLearn 隱藏式馬可夫模型的實作,之前是 scikit-learn 的一部分。
pomegranate 用於 Python 的機率建模,重點是隱藏式馬可夫模型。
深度神經網路等
skorch 一個與 scikit-learn 相容的神經網路函式庫,可包裝 PyTorch。
scikeras 提供 Keras 的包裝器,以將其與 scikit-learn 連接。SciKeras 是
tf.keras.wrappers.scikit_learn
的後繼者。
聯邦學習
Flower 一個友善的聯邦學習框架,具有統一的方法,可以聯邦化任何工作負載、任何 ML 框架和任何程式設計語言。
隱私保護機器學習
Concrete ML 一個建立在 Concrete 之上的隱私保護 ML 框架,由於完全同態加密,與傳統 ML 框架具有繫結。所謂的 Concrete ML 內建模型的 API 非常接近 scikit-learn API。
廣泛範圍
mlxtend 包括許多額外的估計器以及模型視覺化工具。
scikit-lego 許多與 scikit-learn 相容的自訂轉換器、模型和指標,重點是解決實際的產業任務。
其他迴歸和分類
py-earth 多變量適應性迴歸樣條
gplearn 用於符號迴歸任務的基因程式設計。
scikit-multilearn 多標籤分類,重點是標籤空間操作。
分解和群集
lda:在 Cython 中快速實作潛在狄利克雷分配,使用 吉布斯取樣 從真實後驗分佈中取樣。(scikit-learn 的
LatentDirichletAllocation
實作使用 變分貝氏方法 從主題模型的後驗分佈的易處理近似值中取樣。)kmodes 用於分類資料的 k-modes 群集演算法及其多種變體。
hdbscan 用於穩健可變密度群集的 HDBSCAN 和穩健單一連結群集演算法。從 scikit-learn 1.3.0 版開始,有
HDBSCAN
。
預先處理
categorical-encoding 一個與 sklearn 相容的分類變數編碼器函式庫。從 scikit-learn 1.3.0 版開始,有
TargetEncoder
。imbalanced-learn 各種對資料集進行欠採樣和過採樣的方法。
Feature-engine 一個與 sklearn 相容的轉換器函式庫,用於遺失資料填補、分類編碼、變數轉換、離散化、離群值處理等。Feature-engine 允許將預先處理步驟套用至選定的變數群組,並且與 Scikit-learn Pipeline 完全相容。
拓撲資料分析
giotto-tda 是一個用於拓撲數據分析的函式庫,旨在提供與 scikit-learn 相容的 API。它提供了將數據輸入(點雲、圖形、時間序列、圖像)轉換為適合計算拓撲摘要的形式的工具,以及專用於提取拓撲來源的純量特徵集合的組件,這些組件可以與 scikit-learn 中的其他特徵提取方法一起使用。
使用 Python 進行統計學習#
其他用於數據分析和機器學習的實用套件。
Pandas 用於處理異質和欄狀數據、關聯查詢、時間序列和基本統計的工具。
statsmodels 用於估計和分析統計模型。相較於 scikit-learn,它更專注於統計檢定,較少專注於預測。
PyMC 貝氏統計模型和擬合演算法。
Seaborn 基於 matplotlib 的視覺化函式庫。它提供了一個用於繪製有吸引力的統計圖形的高階介面。
scikit-survival 一個實現從刪減的時間到事件數據(也稱為生存分析)中學習的模型函式庫。這些模型與 scikit-learn 完全相容。
推薦引擎套件#
implicit,用於隱性回饋資料集的函式庫。
lightfm 一個 Python/Cython 混合推薦系統的實作。
Surprise Lib 用於顯性回饋資料集的函式庫。
特定領域的套件#
scikit-network 在圖形上進行機器學習。
scikit-image 在 Python 中進行影像處理和電腦視覺。
自然語言工具包 (nltk) 自然語言處理和一些機器學習。
gensim 用於主題建模、文檔索引和相似性檢索的函式庫。
NiLearn 用於神經影像的機器學習。
AstroML 用於天文學的機器學習。
scikit-learn 文件翻譯#
翻譯的目的是為了讓非英語人士更容易閱讀和理解。其目的是幫助那些不理解英語或對其解釋有疑問的人。此外,有些人喜歡以他們的母語閱讀文件,但請記住,唯一官方的文件是英文版本[1]。
這些翻譯工作是社群的倡議,我們無法控制它們。如果您想貢獻或回報翻譯問題,請聯絡翻譯的作者。這裡連結了一些可用的翻譯,以改善其傳播並促進社群的努力。
腳註