python随机森林变量重要性_python机器学习之随机森林(七)

机器学习之随机森林,供大家参考,具体内容如下

1、Bootstraping(自助法)

名字来自成语“pull up by your own bootstraps”,意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法。其核心思想和基本步骤如下:

(1) 采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样。

(2) 根据抽出的样本计算给定的统计量T。

(3) 重复上述N次(一般大于1000),得到N个统计量T。

(4) 计算上述N个统计量T的样本方差,得到统计量的方差。

应该说Bootstrap是现代统计学较为流行的一种统计方法,在小样本时效果很好。通过方差的估计可以构造置信区间等,其运用范围得到进一步延伸。

2、Bagging (套袋法)

Bagging即bootstrap aggregating(自举汇聚法)的缩写,其算法过程如下:

A).从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本,意思是从原始集合中随机选择一个样本,然后随机选择一个样本来代替这个样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)

B).每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)

3、Boosting(提升法):

其主要思想是将弱分类器组装成一个强分类器。在PAC(概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器。关于Boosting的两个核心问题:

1)在每一轮如何改变训练数据的权值或概率分布?

通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。

2)通过什么方式来组合弱分类器?

通过加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。而提升树通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

4、gradient boosting(梯度提升法):

Boosting是一种思想,Gradient Boosting是一种实现Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向。损失函数(loss function)描述的是模型的不靠谱程度,损失函数越大,则说明模型越容易出错。如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度(Gradient)的方向上下降。

5、Bagging,Boosting二者之间的区别:

相同点:

bagging算法和boosting算法都属于集成学习集成学习(Ensemble Learning)。

不同点:

1)样本选择上:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

2)样例权重:

Bagging:使用均匀取样,每个样例的权重相等

Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3)预测函数:

Bagging:所有预测函数的权重相等。

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4)并行计算:

Bagging:各个预测函数可以并行生成

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

总结:

1)Bagging + 决策树 = 随机森林

2)AdaBoost + 决策树 = 提升树

3)Gradient Boosting + 决策树 = GBDT

6、Rand forest(随机森林):

随机森林是一种重要的基于Bagging的集成学习方法,可以用来做分类、回归等问题。

随机森林优点:

1)具有极高的准确率

2)随机性

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用随机森林模型来填补数值变量的缺失值。首先,需要导入所需的库,包括numpy、pandas、matplotlib.pyplot、sklearn.datasets中的load_boston、sklearn.impute中的SimpleImputer以及sklearn.ensemble中的RandomForestRegressor。然后,可以使用SimpleImputer类将缺失值填补为均值、中值或其他常用的数值。接下来,可以使用RandomForestRegressor来拟合数据集并填补缺失值。最后,可以通过验证不同填补方法的拟合情况,找到最适合数据集的缺失值填补方法。具体的代码实现如下: ```python # 导入所需的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_boston from sklearn.impute import SimpleImputer from sklearn.ensemble import RandomForestRegressor # 导入数据集 dataset = load_boston() # 创建SimpleImputer对象,使用均值填补缺失值 imputer = SimpleImputer(strategy='mean') # 填补缺失值 dataset_filled = imputer.fit_transform(dataset.data) # 创建随机森林回归器对象 regressor = RandomForestRegressor() # 拟合数据集 regressor.fit(dataset_filled, dataset.target) # 使用拟合好的模型预测缺失值 missing_values = np.isnan(dataset.data) predicted_values = regressor.predict(dataset.data\[missing_values\]) # 将预测值填补到缺失值的位置 dataset.data\[missing_values\] = predicted_values ``` 通过以上步骤,可以使用随机森林模型来填补数值变量的缺失值。 #### 引用[.reference_title] - *1* *2* *3* [【机器学习笔记】【随机森林】【回归器】【填充缺失值】](https://blog.csdn.net/weixin_62684026/article/details/126836589)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值