k折交叉验证_K重交叉验证 和 网格搜索验证

本文介绍Keras一些常见的验证和调参技巧,快速地验证模型和调节超参。

小技巧:

  • CSV数据文件加载
  • Dense初始化警告

验证与调参:

  • 模型验证(Validation)
  • K重交叉验证(K-fold Cross-Validation)
  • 网格搜索验证(Grid Search Cross-Validation)
7ed14396a8fecac9b92f6b47454c3976.png

Keras

CSV数据文件加载

使用NumPy的 loadtxt() 方法加载CSV数据文件

  • delimiter:数据单元的分割符;
  • skiprows:略过首行标题;

Dense初始化警告

Dense初始化参数的警告:

将init参数替换为 kernel_initializer 参数即可。

模型验证

fit()自动 划分验证集:

通过设置参数 validation_split 的值(0~1)确定验证集的比例。

实现:

fit()手动 划分验证集:

train_test_split 来源sklearn.model_selection:

  • test_size :验证集的比例;
  • random_state :随机数的种子;

通过参数 validation_data 添加验证数据,格式是 数据+标签 的元组。

实现:

交叉验证

K重交叉验证(K-fold Cross-Validation)是常见的模型评估统计。

人工模式

交叉验证函数 StratifiedKFold() 来源于sklearn.model_selection:

  • n_splits :交叉的重数,即N重交叉验证;
  • shuffle :数据和标签是否随机洗牌;
  • random_state :随机数种子;
  • skf.split(X, y) :划分数据和标签的索引。

cvscores用于统计K重交叉验证的结果,计算均值和方差。

实现:

输出:

Wrapper模式

通过 cross_val_score() 函数集成模型和交叉验证逻辑。

  • 将模型封装成wrapper,注意使用 内置函数 ,而 调用,没有括号 () 。
  • epochs 即轮次, batch_size 即批次数;
  • StratifiedKFold是K重交叉验证的逻辑;

cross_val_score 的输入是模型wrapper、数据X、标签Y、交叉验证cv;输出是每次验证的结果,再计算均值和方差。

实现:

输出:

网格搜索验证

网格搜索验证(Grid Search Cross-Validation)用于选择模型的最优超参值。

交叉验证函数 GridSearchCV() 来源于sklearn.model_selection:

  • 设置超参列表,如optimizers、 init_modes 、epochs、batches;
  • 创建参数字典,key值是模型的参数,或者wrapper的参数;
  • estimator是模型, param_grid 是网格参数字典, n_jobs 是进程数;
  • 输出最优结果和其他排列组合结果。

实现:

输出:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值