预测模型及超参数:1.传统机器学习:SVR与KNN
假设我们是一家水果商店的老板,目标是根据水果的外观(形状、颜色、大小等特征)来预测它们的甜度(一个连续的数值,比如 0-10)。为了实现这个目标,我们可以使用机器学习模型——支持向量回归(SVR)和 K 近邻回归(KNN)。它们是两种不同的回归方法,各有优势。
1. SVR(支持向量回归):
SVR 就像是用一根橡皮筋绕着水果散点分布的边缘,找到一条最佳的“回归线”或“超平面”,既不过于贴合数据(防止过拟合),又能很好地预测水果的甜度。SVR 试图找到一个“容器”(间隔),让尽可能多的数据点落在容器里,容器外部的数据点则会被“罚款”(误差越大,罚款越高)。
2. KNN(K 近邻回归):
KNN 则像是问了一些经验丰富的水果挑选员(邻居):“你觉得这个水果的甜度是多少?” 模型会挑选最近的 K 个邻居,将他们的甜度预测平均后作为最终结果。换句话说,KNN 假设相似的水果有相似的甜度。
SVR 的相关参数决定了“橡皮筋”回归线的形状和弹性。以下是常见的参数:
- kernel(核函数)
- 作用:决定用什么方式测量水果的特征相似性。SVR 需要将特征映射到高维空间来找到最佳回归线,核函数就是映射的方式。
- 通俗解释:核函数就像不同的“尺子”,用来度量水果的特征差异。例如:
- linear:线性核,相当于用直尺,只考虑直线关系。
- poly:多项式核,相当于用曲尺,可以考虑曲线关系。
- rbf:径向基核(高斯核),相当于用柔性尺子,能适应更复杂的关系。
- sigmoid:S 型核,适合处理一些非线性数据。
- 取值:['linear', 'poly', 'rbf', 'sigmoid']
- C(惩罚系数)
- 作用:控制“橡皮筋”的弹性,决定模型应该更多关注准确预测还是允许一定程度的误差。
- 通俗解释:值越大,模型越倾向于减少误差(更贴合数据,但可能过拟合);值越小,模型更宽容(更简化,但可能欠拟合)。
- 取值:1e-3 到 1e3,通常采用对数刻度搜索。
- epsilon(ε 边界)
- 作用:定义“橡皮筋”容器的宽度,允许预测结果在这个范围内误差不用罚款。
- 通俗解释:就像一个“甜度误差余地”。如果预测结果和真实值差在 ε 范围内,就不罚款;超出范围的部分才罚款。ε 越大,模型越宽松。
- 取值:1e-3 到 1e1
- gamma(核函数的系数)
- 作用:控制水果间相似性的权重。
- 通俗解释:就像挑选挑选员的“视野宽度”。gamma 值较高时,模型更关注附近的水果(局部),值较低时,模型关注更远的水果(全局)。
- 取值:['scale', 'auto']
- scale:根据样本特征数量自动调整。
- auto:直接使用特征数量的倒数。
- degree(多项式核的阶数,仅对 poly 核有效)
- 作用:控制多项式核的复杂度。
- 通俗解释:相当于决定“橡皮筋”的弯曲程度。阶数越高,模型越能拟合复杂的非线性关系。
- 取值:通常设置为 2-5。
- max_iter(最大迭代次数)
- 作用:控制训练过程的限制,避免时间过长。
- 通俗解释:就像告诉水果商挑选员“最多只能尝试这么多次”,如果超出就停止。
- 取值:-1 表示无限制,或设置为一个正整数。
SVR的完整数学原理推导及超参数解释如下视频:(推荐1.25倍速)
SVR数学原理与超参数
K 近邻回归(KNN)参数
KNN 的参数决定了模型如何选择邻居以及如何预测甜度。以下是KNN中所含参数:
- n_neighbors(邻居数)
- 作用:决定挑选多少个最相似的水果来预测甜度。
- 通俗解释:假设模型问了 n_neighbors 个挑选员的意见,把他们的预测甜度平均后作为最终结果。n_neighbors 越大,预测越稳健,但可能无法捕捉细节;越小,预测更灵活,但可能受单个“挑选员”的影响。
- 取值:通常为正整数,比如 1-30。
- weights(权重)
- 作用:决定邻居对预测结果的贡献。
- 通俗解释:挑选员的意见可以是等权重(uniform),即每个人的建议权重相同;也可以是按距离权重(distance),即离目标水果越近的挑选员意见权重越高。
- 取值:['uniform', 'distance']
- algorithm(搜索算法)
- 作用:决定如何快速找到最近的邻居。
- 通俗解释:就像挑选员的寻找策略:
- auto:自动选择最优算法。
- ball_tree:使用“球树”结构。
- kd_tree:使用“kd 树”结构。
- brute:穷举所有数据点。
- 取值:['auto', 'ball_tree', 'kd_tree', 'brute']
- leaf_size(叶子节点大小)
- 作用:控制树结构的复杂度。
- 通俗解释:如果用球树或 kd 树,leaf_size 决定挑选员的分组大小,值越小,分组越细致;值越大,分组越粗略。
- 取值:通常为正整数,比如 10-50。
- p(距离度量的指标,曼哈顿距离或欧几里得距离)
- 作用:控制相似性计算时使用的距离公式。
- 通俗解释:
- p=1:使用曼哈顿距离(城市街道的网格距离)。
- p=2:使用欧几里得距离(直线距离)。
- 取值:1 或 2,也可以更高。
KNN的完整数学原理推导及超参数解释如下视频:(推荐1.25倍速)
KNN数学原理与超参数
参数汇总表:
参数名 | 模型 | 通俗解释 | 取值范围 |
kernel | SVR | 测量水果特征相似性的“尺子” | 'linear', 'poly', 'rbf', 'sigmoid' |
C | SVR | 橡皮筋的弹性,控制过拟合程度 | 1e-3 到 1e3 |
epsilon | SVR | 允许误差的宽度 | 1e-3 到 1e1 |
gamma | SVR | 挑选员视野的宽窄 | 'scale', 'auto' |
degree | SVR | 橡皮筋的弯曲程度,仅对 poly 核有效 | 2-5 |
max_iter | SVR | 最多尝试预测几次 | -1 或正整数 |
n_neighbors | KNN | 挑选几个最相似的水果 | 1-30 |
weights | KNN | 挑选员的建议是等权还是按距离加权 | 'uniform', 'distance' |
algorithm | KNN | 挑选邻居的策略 | 'auto', 'ball_tree', 'kd_tree', 'brute' |
leaf_size | KNN | 挑选员的分组大小 | 10-50 |
p | KNN | 使用曼哈顿距离(p=1)还是欧几里得距离(p=2) | 1-5 |