机器学习实战(基于scikit-learn和TensorFlow)学习心得(12)---cross-validation,超参的选取等杂记

  1. cross-validation,这是一个很好的用来测试model是否好用的工具,可以在测试集量不够大的时候增加检测model是否好用的一种重要的方法.
    但c-v有利有弊.他会大幅度增加机器计算的负担以及大幅度延长调试时间.
    需要自我取舍.

  2. 当我们遇到overfitting的问题的时候,有三种解决办法:1.增加数据量 2.简化模型 3.给模型加上约束超参. 但我们首先应该考虑的是换一种模型而不是在超参上花费大量时间. 一般来讲更换2-5次不同的train_model之后我们再考虑寻找合适的约束超参比较合适.

  3. 应该保存试验过的每个模型,以便可以轻松地返回到你想要的任何模型。确保保存超参数和训练参数,以及交叉验证分数,可能还保存预测数据。这将允许你轻松地比较不同模型类型的分数,并比较它们所犯的错误类型(overfit/underfit)。你可以通过使用Python的Pickle模块或使用在序列化大型NumPy数组时更高效的joblib库(你可以使用pip安装此库)来轻松保存Scikit-Learning模型:
    在这里插入图片描述

  4. 超参寻找的方法
    你应该让Scikit-Learning的GridSearchCV来做而不是手动的找。我们所需要做的就是告诉它我们希望它试验哪些超参数以及尝试哪些值,然后它将使用交叉验证来评估所有可能的超参数值组合。例如,下面的代码搜索Random Forest Regressor的超参数值的最佳组合:
    在这里插入图片描述
    上面的第一个{}中的就是我们想要的第一组超参 n_estimators和max_features这两个超参的组合,一共有34=12种组合*.第二个{}中有三种超参,其中bootstrap是默认true的,我们手动设置为false.然后在bootstrap=false的情况下对第二对超参进行测试一共有2*3=6中可能的组合.
    所有这两组超参一共是12+6=18中可能的组合,而这个函数就是找出这18中可能中效果最好的超参了.

  5. 当我们不确定超参应该选什么数字的时候我们就用10的连续次幂来找,以确定超参的范围,然后再慢慢收缩范围.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值