scikit learn各个常用模型调参总结

本文总结了scikit-learn中SVM、KNN、Naive Bayes、Decision Trees、RandomForest、LogisticRegression和XGBoost的调参方法。包括SVM的C参数、核函数设置,KNN的n_neighbors、weight、p参数,以及各模型的正则化、决策树深度、样本数量等关键参数的调整。通过调整这些参数,可以提高模型的性能和泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVM

  1. 对数据进行归一化 (simple scaling)
  2. 使用RBF kernel
  3. 使用cross_validation 和 grid_search得到最佳参数gamma和C
  4. 使用得到的最优C和gamma训练训练数据
  5. 测试

svm的C

C是惩罚系数,即对误差的宽容度。一般可以选择为:10^t , t=[- 4,4]就是0.0001 到10000。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差

常用核函数

在这里插入图片描述

核函数参数设置

  • 线性核函数:没有专门需要设置的参数
  • 多项式核函数:有三个参数。
    -d用来设置多项式核函数的最高次项次数,也就是公式中的d,默认值是3,一般选择1-11:1 3 5 7 9 11,也可以选择2,4,6…。
    -g用来设置核函数中的gamma参数设置,也就是公式中的gamma,默认值是1/k(特征数)。
    -r用来设置核函数中的coef0,也就是公式中的第二个r,默认值是0。
  • RBF核函数:有一个参数。-g用来设置核函数中的gamma参数设置,也就是公式中gamma,默认值是1/k(k是特征数)。
  • **sigmoid核函数又叫做S形内核 **:有两个参数。
    -g用来设置核函数中的gamma参数设置,也就是公式中gamma,默认值是1/k(k是特征数)。一般可选1 2 3 4
    -r用来设置核函数中的coef0,也就是公式中的第二个r,默认值是0。一般可选 0.2 0.4 0.6 0.8 1

rbf核函数gamma :

gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多支持向量的个数影响训练与预测的速度。

需要注意的就是gamma的物理意义,RBF的幅宽会影响每个支持向量对应的高斯的作用范围,从而影响泛化性能。如果gamma设的太大,方差会很小,方差很小的高斯分布长得又高又瘦, 会造成只会作用于支持向量样本附近,对于未知样本分类效果很差,存在训练准确率可以很高,(如果让方差无穷小,则理论上,高斯核的SVM可以拟合任何非线性数据,但容易过拟合)而测试准确率不高的可能,就是通常说的过训练;而如果设的过小,则会造成平滑效应太大,无法在训练集上得到特别高的准确率,也会影响测试集的准确率。

使用grid Search调参比较简单,详见交叉验证与网格搜索算法,而且看起来很naïve。有两个优点:
可以得到全局最优,(C,gamma)相互独立,便于并行化进行。缺点:耗时!!!

KNN

在这里插入图片描述

超参数为:n_neighbors /weight/p/algorithm(只有当weight=distance的时候,p值才有意义)

  • n_neighbors:取邻近点的个数k。k取1-9测试
  • weight:距离的权重,uniform:一致的权重;distance:距离的倒数作为权重
  • p:闵可斯基距离的p值; p=1:即欧式距离;p=2:即曼哈顿距离;p取1-6测试
  • algorithm: ‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’
    在实践中,选择较小的邻居个数(例如3或5个)效果较好
    sklearn中默认使用欧氏距离构建KNN模型速度很快,若训练集很大(特征数多或样本数多),预测速度可能较慢.
    对于稀疏数据集(大多数特征值为0),KNN效果很不好.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值