机器学习第二十讲:网格搜索 → 像尝试所有密码组合找最佳解锁方式
资料取自《零基础学机器学习》。
查看总目录:学习大纲
关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南
网格搜索是机器学习的参数探险家,系统遍历所有可能组合寻找最优配置[^8-3]。通过咖啡调参师案例详解:
一、核心原理(密码破解式探索)
假设咖啡机有3个调参旋钮:
flowchart LR
温度 --> 70℃/80℃/90℃
水量 --> 200ml/250ml/300ml
时间 --> 2min/3min/4min
探索过程:
- 生成3×3×3=27种组合 → 形成参数网格 [参考材料5]
- 逐一尝试所有组合 → 选出浓度最佳配方
- 最终发现:80℃+250ml+3min得分最高
类比说明:像试遍所有手机密码组合(000-999),必定能找出正确密码[^8-3]
二、技术流程(心脏病预测实战)
参数清单:
param_grid = {
'n_estimators': [100, 300], # 树的数量
'max_depth': [None, 5, 10], # 树的最大深度
'min_samples_split': [2, 5] # 节点分裂最小样本数
}
搜索过程:
graph TB
总参数组合12种 --> 每组合10折验证 --> 120次训练验证循环 --> 最佳参数组合得分91%
代码实现:
from sklearn.model_selection import GridSearchCV
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=10)
grid_search.fit(X_train, y_train)
print("最佳参数:", grid_search.best_params_) # 输出:{'max_depth':10, ...}
结果验证:测试集准确率从85%提升至91% [参考材料4]
三、进阶策略(智慧搜索技巧)
| 搜索方式 | 特点 | 适用场景 | [参考材料5] |
|--------------|----------------------------|-----------------------|
| 网格搜索 | 暴力遍历 → 确保不漏最优解 | 参数少且取值范围小 |
| 随机搜索 | 随机采样 → 效率更高 | 参数多范围大时优先使用 |
| 贝叶斯优化 | 智能预测 → 减少无效尝试 | 超大数据集高阶调参 |
案例对比:
- 传统手工调参:尝试10次 → 最高87%
- 网格搜索自动调参:54种参数组合 → 准确率91% [参考材料5]
- 耗时对比:人工1天 vs 网格搜索1.3分钟(GPU加速)[参考材料2]
四、注意事项(避免过度拟合陷阱)
- 参数范围设定:根据经验缩小范围(如树深度不必超过20)[^5]
- 交叉验证配合:需用K折验证防止训练集过拟合 [参考材料3]
- 计算资源优化:并行计算(如10个CPU同时跑不同组合)[^2]
典型错误示范:
graph LR
过宽范围 --> 上千次训练 --> 耗费3天时间 --> 准确率仅提升0.5%
正确做法 --> 分析参数相关性 --> 缩小有效范围 --> 54组合达到最优
目录:总目录
上篇文章:机器学习第十九讲:混淆矩阵 → 诊断模型在医疗检查中的误诊情况
下篇文章:机器学习第二十一讲:正则化 → 给模型带定位手环防走极端路线
[2][4][^5]《零基础学机器学习》第八章第四节参数调优
[^8-3]《零基础学机器学习》第八章第四节参数调优