机器学习之超参数是什么?
机器学习里的「超参数」,用最简单的话讲清楚
超参数 = 训练前由人手动设置、模型自己不会学的参数
1. 一句话区分
模型参数(参数):
模型在训练过程中自己学到的东西
比如:权重、系数、分割点超参数(超参):
训练之前就要定好,模型不会自己改,必须人来设置
比如:KNN 的 k、学习率、树的深度
2. 用你刚才的代码举例子
你写过:
estimator=KNeighborsClassifier(n_neighbors=3)这里的
n_neighbors=3
就是最典型的超参数
- 模型训练时不会自动把 3 改成 5、改成 1
- 必须由你手动写死
- 改它会直接影响模型效果
这就叫超参数。
3. 常见超参数有哪些?
- KNN:
n_neighbors(看最近几个邻居) - 决策树/随机森林:树深度
max_depth、树的数量 - 神经网络:学习率
learning_rate、批次大小batch_size - 训练:迭代次数
epochs - 正则化:
C、alpha
4. 超参数用来干嘛?
用来控制模型训练方式、复杂程度、速度,比如:
- k 太小 → 模型太敏感,容易过拟合
- k 太大 → 模型太迟钝,欠拟合
- 学习率太大 → 训不收敛
- 学习率太小 → 训练太慢
调参 = 调整超参数
5. 超参数 vs 参数 终极总结
- 参数:模型自己学出来的 → 不用人管
- 超参数:人提前设定的 → 要人调
你代码里的n_neighbors=3,就是超参数。
