机器学习算法[6]--集成方法之随机森林原理详解及sklearn实现

1. 随机森林

1.1 原理

随机森林(Random Forest)通过并行的方式构建多个相互独立的决策树模型,最后综合多个决策树模型共同作用产生输出

随机森林构建过程:
在这里插入图片描述

  • 每次构建单个决策树模型时对输入数据(样本)进行有放回的随机采样,即自助采样法(Bootstrap sampling)
  • 单个决策树模型构建过程中节点分裂时随机选取特征
  • 重复随机采样和随机选取特征过程,并行方式重复构建多个相互独立的决策树模型
  • 多个决策树模型结合生成随机森林,共同作用产生输出
  • 分类问题:采用投票法(即少数服从多数)产生输出;回归问题:平均法(即取平均值)产生输出

有关单个决策树模型建立的原理,点击查看

1.2 sklearn实现

随机森林模型分为随机森林分类和随机森林回归,仅列出随机森林分类

参考官方文档:点击查看

随机森林分类可通过sklearn库中ensemble下的RandomForestClassifier类实现
在这里插入图片描述

有关参数

  • n_estimators:随机森林中单个决策树的数量
  • criterion:决策树构建时特征选择的准则,即对应的决策规则
  • max_depth:决策树的最大深度
  • min_samples_split:节点拆分时需要的最少数据量
  • min_samples_leaf:叶子节点需要的最少数据量
  • min_weight_fraction_leaf:叶子节点的权重总和中需要的最小加权分数
  • max_features:决策树模型建立时考虑的特征数量
  • max_leaf_nodes:最大叶子节点数
  • min_impurity_decrease:递归生成决策树时相应准则数值减少量的最小阈值
  • bootstrap:是否进行有放回随机采样
  • oob_score:是否计算保外估计数值(out-of-bag estimate)
  • n_jobs:并行计算的内核数量
  • random_state:控制随机过程和节点分裂特征选择的随机性
  • verbose:控制拟合和预测时的详细程度
  • warm_start:是否使用上一次随机森林模型并添加更多决策树
  • class_weight:各类别的权重
  • ccp_alpha:控制最小化复杂度剪枝的阈值,默认不剪枝
  • max_samples:随机采样的样本数量

有关属性
在这里插入图片描述

  • base_estimateor_:单个决策树模型
  • estimators_:随机森林中决策树模型列表集合
  • classes_:各类别标签
  • n_classes_:类别数量
  • n_features_:已弃用
  • n_features_in_:特征的个数
  • feature_names_in_:特征的名称,仅当输入特征有(字符)名称时可用
  • n_outputs_:输出类别数量
  • feature_importances_:基于特征计算准则的各特征重要程度
  • oob_score_:包外估计数值
  • oob_decision_function:由包外估计数值计算的决策函数

有关方法
在这里插入图片描述

  • apply:获取随机森林中决策树上每个叶子节点对应输入数据的索引
  • decision_path:获取输入数据的决策路径(过程)
  • fit:生成随机森林模型
  • get_params:获取对应模型参数
  • predict:预测类别
  • predict_log_proba:预测类别概率的对数
  • predict_proba:预测类别概率
  • score:获取给定数据集的平均准确度
  • set_params:设置对应模型参数

使用案例

>>> import numpy as np
>>> from sklearn.ensemble import RandomForestClassifier

>>> clf = RandomForestClassifier() #实例化随机森林分类模型对象
>>> X = np.array([[1, 1], [1, 0], [0, 1]]) #数据
>>> y = np.array(['yes', 'no', 'no']) #类别
>>> clf.fit(X, y) #拟合求解
>>> clf.classes_
['no', 'yes']
>>> clf.n_features_in_
2
>>> clf.predict([[1, 0]])
['no']
>>> clf.score(X, y)
1.0

有关随机森林回归,点击查看官方文档

猜你喜欢

转载自blog.csdn.net/qq_56749449/article/details/125498277
今日推荐