机器学习——随机森林(Random forest)

本文介绍了集成学习中的随机森林算法,详细解析了其背后的熵、条件熵和信息增益等概念,并探讨了随机森林的生成过程及优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关文章链接:

        机器学习——人工神经网络(NN)

        机器学习——卷积神经网络(CNN)

        机器学习——循环神经网络(RNN)

        机器学习——长短期记忆(LSTM)

        机器学习——决策树(decision tree)

        机器学习——梯度提升决策树(GBDT)

        机器学习——XGboost模型

一、集成思想

两大流派:

  1. Boosting一族通过将弱学习器提升为强学习器的集成方法来提高预测精度(典型算法:AdaBoost),GBDT也是Boosting的成员。
  2. Bagging,即通过自助采用的方法生成众多并行式的分类器,通过“少数服从多数”的原则来确定最终的结果(典型算法:随机森林)

二、随机森林定义

随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。随机森林解决了决策树泛化能力弱的缺点,随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。

随机是指随机选择样本,随机选择特征。即每一棵树是从整个训练样本集当中选取固定数量的样本集,然后选取固定数量的特征集,从而构建随机森林中的每一棵决策树。

森林是指模型中包含了很多棵决策树。

从直观角度来解释,每棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,这就是一种最简单的Bagging思想。

 随机森林

三、熵

熵越大即这个类别的不确定性更大,反之越小,当随机变量的取值为两个时,熵随概率的变化曲线如下图:

 当p=0或p=1时,H(p)=0,随机变量完全没有不确定性,当p=0.5时,H(p)=1,此时随机变量的不确定性最大

四、条件熵

条件熵是用来解释信息增益而引入的概念,概率定义:随机变量X在给定条件下随机变量Y的条件熵,对定义描述为:X给定条件下Y的条件干率分布的熵对X的数学期望,在机器学习中为选定某个特征后的熵,公式如下:

p(xi)指是当xi发生时的概率

五、信息增益

信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好,在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差

六、随机森林的生成

1、预设模型的超参数。几棵树?分几层?

2、如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集,每次树进行分裂时,从这m个特征中选择最优的

                DATASTET [N*D] => data subset [n*d]

                        N,n表示样本数量  N>>n

                        D,d表示特征数量  D>>d

3、输入待测样本到每个树中,再将每个数的结果整合。

                Regression问题求均值

                Classification问题求众数

七、随机森林的优缺点

优点:

  1. 在当前所有算法中,具有极好的准确率;
  2. 能够有效地运行在大数据集上;
  3. 能够处理具有高维特征的输入样本,而且不需要降维;
  4. 能够评估各个特征在分类问题上的重要性;
  5. 在生成过程中,能够获取到内部生成误差的一种无偏估计;
  6. 对于缺省值问题也能够获得很好得结果

缺点:

    1、模型往往过于General,不具备正确处理过于困难的样本的能力。

### 随机森林与Bagging在机器学习中的应用 #### 1. Bagging 的基本概念 Bagging 是一种集成学习方法,全称为 Bootstrap Aggregating。它的核心思想是对原始数据集通过有放回采样(Bootstrap Sampling),生成多个不同的子数据集[^3]。对于分类问题,最终预测结果通常通过对各基学习器的结果进行多数投票决定;而对于回归问题,则通常是取平均值。 #### 2. 随机森林的定义与工作原理 随机森林是一种基于 Bagging 思想构建的集成学习算法,其中每个基学习器是一个决策树模型[^2]。随机森林不仅对训练样本进行了有放回抽样,还在每次分裂节点时引入了特征的随机选择,从而进一步增加了模型的多样性[^4]。 以下是随机森林的主要工作机制: - **数据采样**:从原始数据集中抽取若干个大小相同的子数据集。 - **特征随机化**:在每棵决策树生长过程中,仅考虑部分候选特征来寻找最佳分割点。 - **独立建模**:利用上述两步得到的数据和特征集合,单独训练每一棵树。 - **组合预测**:最后将所有单棵树的输出汇总起来形成整体预测结果。 #### 3. 实现代码示例 下面展示如何使用 Python 中 `sklearn` 库实现一个简单的随机森林分类器: ```python from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score # 加载鸢尾花数据集 data = load_iris() X, y = data.data, data.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 初始化并训练随机森林模型 rf_model = RandomForestClassifier(n_estimators=100, max_depth=None, min_samples_split=2, bootstrap=True) rf_model.fit(X_train, y_train) # 进行预测 y_pred = rf_model.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy of Random Forest Classifier: {accuracy:.4f}") ``` 此段代码展示了加载数据、划分数据集、初始化随机森林模型以及评估性能的过程。 #### 4. 随机森林的优势 相比单一决策树或其他传统模型,随机森林具有以下几个显著优点[^1]: - 减少过拟合风险; - 提高泛化能力; - 能够处理高维数据而无需复杂的预处理步骤; - 对缺失值不敏感,在一定程度上可以自动填补丢失的信息。 #### 5. 案例分析 假设我们正在解决一项医疗诊断任务——判断患者是否患有某种疾病。如果只依赖于某几个关键指标可能会导致误诊,因为个体差异较大且影响因素复杂多变。此时运用随机森林技术可以从大量生理参数中提取有效模式,并综合考量多种可能性得出更可靠的结论。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白天数糖晚上数羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值