Python 超參數調校
Alex Scriven
Data Scientist
在真實世界的遺傳演化中,流程如下:
我們也能把同樣概念用於超參數調校:
這是一種知情式搜尋,優點包括:
一個適合做遺傳式超參數調校的函式庫是 TPOT:
將 TPOT 視為你的資料科學助理。TPOT 是一個 Python 自動化機器學習工具,透過遺傳程式設計最佳化機器學習管線。
管線不只包含模型(可能不只一個),也會處理特徵與流程中的其他步驟。而且它會把該管線的 Python 程式碼回傳給你!
TPOT 分類器的關鍵參數:
generations:訓練要跑的迭代次數。population_size:每次迭代後保留的模型數。offspring_size:每次迭代要產生的模型數。mutation_rate:套用隨機變異的管線比例。crossover_rate:每次迭代要交配的管線比例。scoring:用來決定最佳模型的函式。cv:要使用的交叉驗證策略。簡單範例:
from tpot import TPOTClassifier tpot = TPOTClassifier(generations=3, population_size=5, verbosity=2, offspring_size=10, scoring='accuracy', cv=5)tpot.fit(X_train, y_train) print(tpot.score(X_test, y_test))
我們保留 mutation_rate 與 crossover_rate 的預設值;若無更深入的遺傳程式設計知識,使用預設通常最佳。
注意:沒有演算法特定的超參數嗎?
Python 超參數調校