AI人工智能 随机森林分类器

2026-02-10 11:16 更新

随机森林是集成学习算法,由多个决策树组成,通过平均多个决策树的结果,在保留预测能力的同时降低过拟合风险。本文使用乳腺癌数据集实现。

1. 实现步骤

步骤1:导入库

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
import matplotlib.pyplot as plt
import numpy as np

步骤2:加载数据集并划分

## 加载乳腺癌数据集
cancer = load_breast_cancer()
## 划分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(
    cancer.data, cancer.target, random_state=0
)

步骤3:构建并训练随机森林

## 初始化随机森林(n_estimators=决策树数量,random_state=随机种子)
forest = RandomForestClassifier(n_estimators=50, random_state=0)
## 训练模型
forest.fit(X_train, y_train)

步骤4:模型准确率评估

## 计算训练集准确率
print('训练集准确率:{:.3f}'.format(forest.score(X_train, y_train)))  # 输出:1.000(全对)
## 计算测试集准确率
print('测试集准确率:{:.3f}'.format(forest.score(X_test, y_test)))    # 输出:0.965(约96.5%)

说明:增加决策树数量(n_estimators)通常可提升测试集准确率。

步骤5:特征重要性可视化

随机森林可输出每个特征对预测的贡献度,帮助识别关键特征:

## 特征数量
n_features = cancer.data.shape[1]
## 绘制水平条形图
plt.barh(range(n_features), forest.feature_importances_, align='center')
## 设置y轴标签(特征名)
plt.yticks(np.arange(n_features), cancer.feature_names)
## 设置坐标轴标题
plt.xlabel('Feature Importance(特征重要性)')
plt.ylabel('Feature(特征)')
plt.show()

可视化结果:最差半径(worst radius)、最差面积(worst area)、最差分形维数(worst fractal dimension)等特征的重要性最高。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号