跳到主要内容

随机森林

随机森林是对决策树集合的特有名称。

随机森林里我们有多个决策树(所以叫“森林”)。

为了给一个新的观察值分类,根据它的特征,每一个决策树都会给出一个分类。

随机森林算法选出投票最多的分类作为分类结果。

怎样生成决策树:

  1. 如果训练集中有 N 种类别,则有重复地随机选取 N 个样本。这些样本将组成培养决策树的训练集。
  2. 如果有 M 个特征变量,那么选取数m << M,从而在每个节点上随机选取 m 个特征变量来分割该节点。m 在整个森林养成中保持不变。
  3. 每个决策树都最大程度上进行分割,没有剪枝。

from sklearn.ensemble import RandomForestClassifier
import numpy as np

# 创建一些示例数据
X = np.array([[1, 2], [2, 3], [2, 5], [3, 2], [3, 3], [4, 5]]) # 特征
y = np.array([0, 0, 1, 0, 1, 1]) # 目标标签

# 创建随机森林分类器
'''
一般来说,深度越大,拟合效果越好,速度越慢,常用的可以取值10到100之间。
'''
n_estimators = 100 # 设置随机森林中的树的数量
model = RandomForestClassifier(n_estimators=n_estimators)

# 拟合模型
model.fit(X, y)

# 预测新数据点
new_data_point = np.array([[3, 4]]) # 要预测的新数据点
predicted_class = model.predict(new_data_point)

print("预测类别:", predicted_class)