超参数调优

用 Python 赢下 Kaggle 竞赛

Yauhen Babakhin

Kaggle Grandmaster

迭代

模型 验证 RMSE 公共榜 RMSE 公共榜名次
简单均值 9.986 9.409 1449 / 1500
分组均值 9.978 9.407 1411 / 1500
梯度提升 5.996 4.595 1109 / 1500
加入小时特征 5.553 4.352 1068 / 1500
加入距离特征 5.268 4.103 1006 / 1500
... ... ... ...
用 Python 赢下 Kaggle 竞赛

迭代

模型 验证 RMSE 公共榜 RMSE 公共榜名次
简单均值 9.986 9.409 1449 / 1500
分组均值 9.978
梯度提升 5.996 4.595 1109 / 1500
加入小时特征 5.553
加入距离特征 5.268 4.103 1006 / 1500
... ... ... ...
用 Python 赢下 Kaggle 竞赛

超参数优化

 

竞赛类型 特征工程 超参数优化
经典机器学习 +++ +
深度学习 - +++
用 Python 赢下 Kaggle 竞赛

岭回归

 

最小二乘线性回归

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2} \to \min$$

用 Python 赢下 Kaggle 竞赛

岭回归

 

最小二乘线性回归

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2} \to \min$$

岭回归

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2 + \alpha\sum_{j=1}^{K}{{w_j}^2}} \to \min$$

用 Python 赢下 Kaggle 竞赛

超参数优化策略

 

  • 网格搜索: 选择预设的超参数取值网格
  • 随机搜索: 选择超参数取值的搜索空间
  • 贝叶斯优化: 选择超参数取值的搜索空间

网格搜索示意图

随机搜索示意图

用 Python 赢下 Kaggle 竞赛

网格搜索

# Possible alpha values
alpha_grid = [0.01, 0.1, 1, 10]

from sklearn.linear_model import Ridge results = {} # For each value in the grid for candidate_alpha in alpha_grid:
# Create a model with a specific alpha value ridge_regression = Ridge(alpha=candidate_alpha)
# Find the validation score for this model
# Save the results for each alpha value results[candidate_alpha] = validation_score
用 Python 赢下 Kaggle 竞赛

Vamos praticar!

用 Python 赢下 Kaggle 竞赛

Preparing Video For Download...