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 中的超参数调优