随机森林算法

1、随机森林算法简介

随机森林算法(Random Forests)是LeoBreiman于2001年提出的,它是一种通过重采样办法从原始训练样本集中有放回地重复随机抽取若干个样本生成多个决策树,样本的最终预测值由这些决策树的结果投票决定的一种有监督集成学习模型。

其核心思想是通过随机的样本抽样和特征抽样生成众多决策树,形成一片"森林",以多数的表决结果作为预测值。

随机森林作为一种bagging集成学习,在决策树算法中有着重要的地位。

2、随机森林算法基本原理

2.1 样本的选择

随机森林的样本采样选择可以看作是行采样。随机森林每棵在构建过程中,这棵树的样本从总样本中随机抽样生成。完成抽样后将样本放回,以便下一棵树的抽样。假设总样本有N个,随机森林每棵树的随机抽样样本数为n,一般可取n为N的平方根。

2.2 特征的选择

随机森林的特征采样可以看作是列采样。每棵树都是从总体M个特征中随机选择m特征进行树的生成。列采样有两种形式,一种是全局列采样,即同一棵树的生成过程中均采用同一批特征;另一种是局部列采样,即每一次节点分裂的时候都单独随机挑选m个特征进行分裂。

2.3 分裂准则

在树的生成过程中,采用的分裂准则。在随机森林算法中,可以有多种分裂准则。在随机森林的分类算法中,比较常见的有信息增益、基尼不纯度;在随机森林的回归算法中,比较常见的有均方误差。

3、随机森林算法步骤

3.1 输入输出

(1)输入:给定训练样本;参数设置:森林里树的数量、分裂的准则、分裂终止条件等。

(2)输出:样本的分类或回归值。

3.2 算法步骤

(1)从训练样本N个中随机有放回地选择n个;

(2)从特征中随机不放回地选择k个特征;

(3)根据指定的分裂准则进行分裂,生成一棵决策树;叶子节点的输出值:当为分类问题时,叶子的取值为分类最多的值;当为回归问题时,叶子节点的取值为该节点所有样本的平均值;

(4)当森林中树的数量小于指定值时,继续步骤(1)到(3),最终成生指定数量的决策树;

(5)预测时,样本在每棵决策树下会有一个对应叶子的值。当为分类问题时,最终取值为所有树下该叶子值的数量最多的值(分类);当为回归问题时,最终取值为所有树下叶子值的平均值。

4、随机森林算法实例

这里以用scikit-learn自带的数据集进行演示。

python 复制代码
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
python 复制代码
#加载数据集
X, y = make_classification(n_samples=1000, n_features=4,n_informative=2, n_redundant=0,
                          random_state=0, shuffle=False)
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

#模型训练
clf = RandomForestClassifier(max_depth=2, random_state=0)
clf.fit(X_train,y_train)

# 预测测试集
y_pred = clf.predict(X_test)
 
# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print("Model accuracy: %.2f"%accuracy)
复制代码
Model accuracy: 0.94

5、随机森林算法总结

(1)随机森林算法具有很高的准确性和鲁棒性。随机森林算法由众多决策树共同投票决策,其结果具有较好的准确性和鲁棒性。

(2)随机森林算法可以很好地防止过拟合。随机森林每棵树的训练都是在小部分样本及特征上训练而成,可以很好地防止过拟合。

(3)随机森林算法可以并行构建决策树,提高运算效率。

(4)随机森林算法可以很好地处理高维度数据。

(5)随机森林算法在小样本上的表现可能会不佳。

相关推荐
HRTOS7 分钟前
HRTOS应用示例:信号量机制详解
c语言·人工智能·嵌入式硬件·51单片机
鲲穹AI种草10 分钟前
AI 证件照制作处理,多款证件照工具能力客观记录
人工智能·证件照
西柚小萌新13 分钟前
【LLM&&AI应用开发 八股文】--RAG的分块策略
人工智能
商业白皮书15 分钟前
企业大模型应用可获得哪些安全防护能力?Amazon Bedrock Guardrails 从内容过滤到规则验证搭建 AI 安全护栏
网络·人工智能·安全
Yan-英杰16 分钟前
从“投屏“到“办公“,ToDesk鸿蒙版4.8.0.0补齐远控“进入→处理→离开“全流程
服务器·人工智能·爬虫·机器学习·ai开发工具
SDWAN_Cheap21 分钟前
SD-WAN智能选路技术的算法与实现机制
算法·php·sdwan
CCYe、23 分钟前
企业AI网关中的密钥生命周期:从一把Key走天下到自动轮换
网络·人工智能·安全
小蒋观天下28 分钟前
2026交通安防AI摄像头完整选型指南
大数据·人工智能
Alter123036 分钟前
算力决定下限,存力决定上限:Gartner魔力象限背后的AI存储暗战
大数据·人工智能
不会就选b42 分钟前
数据结构之树&&二叉树(二)
数据结构·算法