python 随机森林调参_python的随机森林模型调参
一、一般的模型调参原则
1、调参前提:模型调参其实是没有定论,需要根据不同的数据集和不同的模型去调。但是有一些调参的思想是有规律可循的,首先我们可以知道,模型不准确只有两种情况:一是过拟合,而是欠拟合。过拟合是指模型过于复杂,欠拟合是指模型过于简单。
2、查找资料:调参时应该知道每一个参数的默认值是多少,其增大或者减小会使模型更加复杂还是更加简单。
3、调参可以使用两种方法:1、学习曲线 2、网格搜索
学习曲线只能对参数一个一个进行调整,可以观察参数的增大或者减小具体对模型产生怎样的影响;网格搜索可以同时对多个参数进行调整,也可以对单个参数进行调整。
我们可以查找资料???找出模型的各个参数对于模型的影响大小的顺序,先对影响较大的参数进行调整,再对影响较小的参数进行调整。——由粗到精
调参时应该确定模型处于方差-偏差曲线的左侧还是右侧,即模型是过拟合还是欠拟合。
4、学习曲线
有一些参数,我们不知道它对于模型有着怎样的影响,也不知道参数的合适范围,这时我们可以用学习曲线的方法进行调参。先按照step取较大值进行调,然后在可能最优的范围内缩小步长,进一步确定最佳参数。
5、网格搜索
网格搜索既可以一次对多个参数进行调参,也可以一次只调一个参数。但是在一次调多个参数时太费时间,且在调出的参数不是十分好的时候,我们因为不知道其调参的原理因此不知道该如何调整。
二、随机森林的调参——对于乳腺癌数据集
1、首先先调既不会增加模型复杂度,又对模型影响最大的参数n_estimators(学习曲线)
2、找到最佳值后,调max_depth(单个网格搜索,也可以用学习曲线)
一般根据数据的大小来进行一个试探,乳腺癌数据很小,所以可以采用1~10,或者1~20这样的试探但对于像digit recognition那样的大型数据来说,我们应该尝试30~50层深度(或许还不足够)
3、接下来依次对各个参数进行调参。
注:对于大型数据集,max_leaf_nodes可以尝试从1000来构建,先输入1000,每100个叶子一个区间,再逐渐缩小范围
对于min_samples_split和min_samples_leaf,一般是从他们的最小值开始向上增加10或20,面对高维度高样本量数据,如果不放心,也可以直接+50,对于大型数据,可能需要200~300的范围,如果调整的时候发现准确率无论如何都上不
来,那可以放心大胆调一个很大的数据,大力限制模型的复杂度
python 随机森林调参_python的随机森林模型调参相关推荐
- 基于python的随机森林回归实现_python实现随机森林
定义: 随机森林指的是利用多棵决策树对样本进行训练并预测的一种分类器.可回归可分类. 所以随机森林是基于多颗决策树的一种集成学习算法,常见的决策树算法主要有以下几种: 1. ID3:使用信息增益g(D ...
- python随机森林变量重要性_Python中随机森林的实现与解释
使用像Scikit-Learn这样的库,现在很容易在Python中实现数百种机器学习算法.这很容易,我们通常不需要任何关于模型如何工作的潜在知识来使用它.虽然不需要了解所有细节,但了解机器学习模型是如 ...
- python生成随机的测验试卷_python生成随机的测验试卷文件
假如你是一位地理老师,班上有 35 名学生,你希望进行美国各州首府的一个小测验.不妙的是,班里有几个坏蛋,你无法确信学生不会作弊.你希望随机调整问题的次序,这样每份试卷都是独一无二的,这让任何人都不能 ...
- python随机森林变量重要性_python中随机森林如何优化
2.声纳数据集案例研究 在本节中,我们将把随机森林算法应用到声纳数据集. 该示例假定数据集的CSV副本位于当前工作目录中,文件名为sonar.all-data.csv. 首先加载数据集,将字符串值转换 ...
- python随机森林特征重要性_Python中随机森林回归的特征重要性
当涉及到决策树时,特征重要性不是一个黑匣子.来自DecisionTreeRegressor的文档:The importance of a feature is computed as the (nor ...
- python随机红包怎么发_python生成随机红包的实例写法
假设红包金额为money,数量是num,并且红包金额money>=num*0.01 原理如下,从1~money*100的数的集合中,随机抽取num-1个数,然后对这些数进行排序,在排序后的集合前 ...
- python判断手机号码是否正确_Python实现随机生成手机号及正则验证手机号的方法...
本文实例讲述了Python实现随机生成手机号及正则验证手机号的方法.分享给大家供大家参考,具体如下: 依据 根据2017年10月份最新的手机号正则进行编码, 正则如下: (13\d|14[579]|1 ...
- python随机种子怎么用_python设置随机种子实例讲解
python设置随机种子实例讲解 对于原生的random模块 import random random.seed(1) 如果不设置,则python根据系统时间自己定一个. 也可以自己根据时间定一个随机 ...
- python打开浏览器怎么写_python实现随机调用一个浏览器打开网页
前两天总结了一下python爬虫 使用真实浏览器打开网页的两种方法总结 但那仅仅是总结一下而已,今天本文来实战演练一下 依然使用的是 webbrowser 这个模块 来调用浏览器 关于的三种打开方式在 ...
最新文章
- RxJava 教程第一部分:为何使用RxJava
- 定义派生类和继承类(从汇编分析)
- java调用接口失败重试,httpclient接口测试中重试控制器设置
- 利用Swift语言特性,随手写个伪随机数生成器
- Android中五种常用对话框的使用
- Java Swing编程之仿js树状折叠菜单
- std::dynamic_pointer_cast细节用法
- String和QString之间的转化----可避免出现中文乱码的现象
- POJ - 3046 多重集组合数问题的线性DP(四种方法)
- JavaScript学习(八十六)—运算符知识点总结
- [设计模式]单例模式
- linux windows双系统安装教程
- 运算放大电路设计实验
- 10-20210308华为海思Hi3516DV300在鸿蒙系统下测试网络(以太网+WIFI)
- 嵌入式驱动模块的加载与卸载
- Massive MIMO
- 2014校园招聘之一(8月华为机试题)
- 苹果你深深的伤害了我,还不让我说
- 如何打开.pt文件?
- 【JavaSE】之注解与反射