机器学习第二十讲:网格搜索 → 像尝试所有密码组合找最佳解锁方式

资料取自《零基础学机器学习》
查看总目录:学习大纲

关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南


网格搜索是机器学习的参数探险家,系统遍历所有可能组合寻找最优配置1。通过咖啡调参师案例详解:

一、核心原理(密码破解式探索)

假设咖啡机有3个调参旋钮:

flowchart LR
    温度 --> A[70℃]
    温度 --> B[80℃]
    温度 --> C[90℃]
    水量 --> D[200ml]
    水量 --> E[250ml]
    水量 --> F[300ml]
    时间 --> G[2min]
    时间 --> H[3min]
    时间 --> I[4min]

探索过程

  1. 生成3×3×3=27种组合 → 形成参数网格 [参考材料5]
  2. 逐一尝试所有组合 → 选出浓度最佳配方
  3. 最终发现:80℃+250ml+3min得分最高
类比说明:像试遍所有手机密码组合(000-999),必定能找出正确密码1

二、技术流程(心脏病预测实战)

参数清单

param_grid = {
    'n_estimators': [100, 300],  # 树的数量
    'max_depth': [None, 5, 10],  # 树的最大深度
    'min_samples_split': [2, 5]  # 节点分裂最小样本数
}

搜索过程
A["总参数组合12种"] --> B["每组合10折验证"] B --> C["120次训练验证循环"] C --> D["最佳参数组合得分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]

四、注意事项(避免过度拟合陷阱)

  1. 参数范围设定:根据经验缩小范围(如树深度不必超过20)2
  2. 交叉验证配合:需用K折验证防止训练集过拟合 [参考材料3]
  3. 计算资源优化:并行计算(如10个CPU同时跑不同组合)3

典型错误示范

graph LR
    A[过宽范围] --> B[上千次训练]
    B --> C[耗费3天时间]
    C --> D[准确率仅提升0.5%]
    E[正确做法] --> F[分析参数相关性]
    F --> G[缩小有效范围]
    G --> H[54组合达到最优]

目录:总目录
上篇文章:机器学习第十九讲:混淆矩阵 → 诊断模型在医疗检查中的误诊情况
下篇文章:机器学习第二十一讲:正则化 → 给模型带定位手环防走极端路线


342《零基础学机器学习》第八章第四节参数调优
1《零基础学机器学习》第八章第四节参数调优


  1. 8-3
  2. 5
  3. 2
  4. 4

kovli
13 声望8 粉丝