什麼是機器學習中的TPOT AutoML?


自動化最佳機器學習管道對於資料科學家而言變得極其重要。TPOT(基於樹的管道最佳化工具)是一個優秀的機器學習庫,它消除了對手動和耗時的任務的需求,例如特徵工程、演算法選擇和超引數調整。

TPOT 的一些關鍵點如下所示

使用 TPOT 簡化管道最佳化

傳統的機器學習工作流程通常涉及大量的實驗來找到最佳模型。TPOT 透過採用遺傳程式設計(一種進化演算法)來簡化此過程,該演算法可以自動探索大量的潛在管道空間並智慧地識別最有希望的管道。

定製和靈活性

TPOT 提供定製選項,允許使用者指定管道的搜尋空間。他們可以指定預處理技術、演算法和超引數範圍,將領域知識和約束條件納入搜尋過程。

並行和分散式處理

TPOT 支援並行和分散式計算,可以更快地探索搜尋空間。它利用多個 CPU 核心或分散式計算叢集來高效地最佳化管道。

評估和評分

TPOT 使用使用者定義的評分指標評估管道的效能,使用交叉驗證來估計對未見資料的效能並防止過擬合。可以使用準確性、精確度、召回率和 F1 分數等指標進行評估。

解釋 TPOT 管道

TPOT 提供對生成的管道的洞察,幫助使用者理解操作順序和特徵重要性。這有助於提高模型的可解釋性,並有助於發現潛在的模式和決策過程。

自動化的特徵工程和選擇

TPOT 自動化特徵工程和選擇,考慮各種預處理技術以提高整體管道效能。它探索諸如縮放、規範化、插補和降維等技術來最佳化特徵表示。

演算法選擇和超引數調整

TPOT 透過探索各種機器學習演算法和超引數配置來進行廣泛的演算法選擇。它採用網格搜尋、隨機搜尋或貝葉斯最佳化等技術來自動調整超引數,從而提高模型效能。

匯出最佳化的管道

一旦 TPOT 發現最佳管道,它就會提供匯出最佳化程式碼的選項。這使得可以無縫整合到生產系統中或根據特定要求進行進一步定製。

您可以在您的機器學習工作流程中實現 TPOT!

要在您的機器學習中實現 TPOT,您可以按照以下一般步驟操作:

1. 安裝 TPOT − 首先在您的機器上安裝 TPOT。您可以使用 Python 的包管理器 pip 透過執行以下命令來安裝 TPOT:

pip install tpot

2. 匯入必要的庫 − 在您的 Python 指令碼或筆記本中,匯入所需的庫,包括 TPOT 和您將用於資料預處理和評估的任何其他庫,例如 pandas 和 scikit-learn。

import tpot
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

3. 載入和預處理您的資料 − 使用 pandas 或其他首選方法載入您的資料集。執行任何必要的預處理步驟,例如處理缺失值、縮放特徵或編碼分類變數。

4. 拆分您的資料 − 使用 scikit-learn 中的 `train_test_split` 函式將您的資料集拆分為訓練集和測試集。這將允許您評估 TPOT 生成的管道在未見資料上的效能。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

5. 建立 TPOT 例項 − 根據您的問題型別(分類或迴歸),例項化 TPOT 分類器或迴歸器物件。

tpot_classifier = tpot.TPOTClassifier(generations=10, population_size=50, verbosity=2)

6. 將 TPOT 擬合到您的資料 − 使用 `fit` 方法將 TPOT 例項擬合到您的訓練資料。

tpot_classifier.fit(X_train, y_train)

7. 評估 TPOT 管道 − TPOT 完成對最佳管道的搜尋後,評估其在測試集上的效能。

y_pred = tpot_classifier.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

8. 訪問最佳管道 − 您可以使用 `fitted_pipeline_` 屬性訪問 TPOT 發現的最佳管道。

best_pipeline = tpot_classifier.fitted_pipeline_

9. 匯出和使用管道 − 如果您對最佳管道的效能滿意,您可以將其匯出為 Python 指令碼以便稍後使用或整合到生產環境中。

tpot_classifier.export('tpot_pipeline.py')

10. 迭代和改進 − 嘗試不同的 TPOT 配置,例如代數、種群規模和評分指標,以進一步提高管道的效能。根據需要迭代和改進該過程。

輸出

Generation 1 - Current best internal CV score: 0.85
Generation 2 - Current best internal CV score: 0.86
Generation 3 - Current best internal CV score: 0.87
...
Generation 10 - Current best internal CV score: 0.89
Best pipeline: RandomForestClassifier(SelectPercentile(input_matrix, percentile=18), bootstrap=True, criterion=gini, max_features=0.55, min_samples_leaf=4, min_samples_split=14, n_estimators=100)

Accuracy: 0.88

輸出顯示了 TPOT 在幾代中的進展,指示當前最佳交叉驗證分數。最後,它顯示了找到的最佳管道,包括所選演算法和超引數設定。測試集上的準確性分數也顯示出來,反映了最佳管道的效能。

結論

使用 TPOT,可以自動化特徵工程、演算法選擇和超引數調整這些複雜且繁瑣的任務,從而提高模型效能並提高生產力。TPOT 智慧探索巨大搜索空間並在幾代中改進管道的能力使其成為自動化機器學習工作流程的強大工具。

更新於:2023年9月29日

129 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告