【内容简介】了解随机森林训练和预测流程、特征重要性和oob分数计算、孤立森林原理以及训练和预测流程
【打卡内容】边栏练习、知识回顾后三个问题,孤立森林算法和分类的随机森林算法实现(可以使用sklearn决策树或task2自己实现的分类卡茨树) )。
4、什么是随机森林的oob分数? oob评分是对模型训练效果的评价,是利用提取的样本进行训练,预测oob样本,并对得到的预测效果的好坏进行评价。
5 .随机森林如何整合多个决策树模型? 合并多个模型训练的结果。 此处,如果目标为执行分类,则使用平均每个样本的重叶节点的输出概率的简单加权平均来找到输出的类别或概率值;回归问题,用求平均值的方法确定某样本的预测值,其中求平均值以该样本所在叶节点的平均值为最终预测输出。
6、请阐述孤立森林算法的原理和流程。模型训练:
为了给出输入的数据,需要生成树的数量和样本的比例输出树的集合
(a )初始化一棵树
将高度限制设置为Int(log2 ) int(log_2) phi (int ) log2 )
对各个树从原始数据集合进行采样,得到样本x’x’x ‘
将原始树与新树合并(新树的生成在下面有补充显示) ) )。
当所有的树都这样生成时,就会得到树的模型。生成树:
确认输入数据,并确定当前树的高度(从0开始) )。
我们像制作子树一样这样做。
if如果我们的树的高度高于预定高度,或树的样本数小于或等于1,then,但当前节点、当前节点的样本数是当前子树(一个节点)的样本点树。
else否则
用q记忆x的属性,从q中随机选择一个属性,随机选择一个分割点,从最大最小值中随机选择(q在x中),生成左树和右树(左q p ) ); 右侧数据(样本) q=p (拆分点)递归(递归当前函数)参数)样本为左侧样本,深度加1,最大深度l ),返回当前函数(右侧样本节点,左侧节点),将当前拆分属性q
预测阶段:
c(t.size )当前叶节点上的采样数与可生长的平均路径值相对应,整体树的高度有限,可从上网生长的高度越来越小。
输入:实例(样例)、t (以前生成的树)、e )当前路径长度、初始化为0 (即空节点)、预期路径长度
TODO:通过补充随机森林和孤立森林实现:
学习的时间有点少,我会补充的。 (一定要补充哦!
随机森林实现基于sklearn的决策树(回归), 子树特征提取分类实现importnumpyasnpfromnumpy.random.mtrandimportchoicefromsklearn.datasetsimportload _ diabetes from的reimporttes mforestsregressor 3360 def _ init _ (self,x,y, n _ estimators=5(-none : self.x=x self.y=y self.n _ estimators=n _ estimatorsdeffit (self ) 3360 models=oice ) list range (n ),size=N, 替换=true (x _ sampled=self.x [ choices ] y _ sampled=self.y [ choices ] regressor=decisiontreeregressor ) reciontreegressor y _ sampled (models.append (regressor ) self.models=modelsdelsdefprer x ) :y_predicts=NP.array ) [ modelinenumerate(self.models ) :x=x.reshape(1,-1) y _ predict=modele
importnumpyasnpfromrandomforestimportrandomforestsregressorfromsklearn.datasetsimportload _ diabetes x, y=load _ diabetes (return _ x _ y=true ) regressor=randomforestsregressor ) x,y ) regressor.fit (y _ predict=y !