【机器学习与实战】分类与聚类算法:Bagging和随机森林

83 阅读1分钟

【机器学习与实战】分类与聚类算法:Bagging和随机森林

配套视频课程:www.bilibili.com/video/BV1iS…

一、Bagging集成原理

目标:把下面的圈和方块进行分类

1.jpg

实现过程:

1、采样不同数据集

2.jpeg

2、训练分类器

3.jpeg

3、平权投票,获取最终结果

4.jpeg

二、随机森林构造过程

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由决策树输出的类别的众数而定。

随机森林 = Bagging + 决策树

随机森林的构造步骤

  1. 随机选 m 条数据
  2. 随机选取 n 个数据特征
  3. 训练决策树
  4. 重复 1-3 步构造 T 个弱决策树
  5. 平权投票集成 T 个弱决策树

5.jpeg

例如, 如果你训练了 5 个树,对某个样本进行估计,其中有 4 个树的结果是True,1 个树的结果是False,那么最终投票结果就是True

随机森林主要有两个随机化策略( M 表示样本总数,N 表示特征总数):

(1)一次随机选出一个样本,有放回的抽样,重复 M 次 (有可能出现重复的样本)

(2)随机去选出 n 个特征, n << N

三、代码实现
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
heart = pd.read_csv('../regress/heart.csv')
x = heart.iloc[:, 0:13]
y = heart['target']
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)
scaler = MinMaxScaler()
x_train = scaler.fit_transform(x_train)
x_test = scaler.transform(x_test)
forest = RandomForestClassifier(n_estimators=500, random_state=3)
forest.fit(x_train, y_train)
print(forest.score(x_test, y_test))