机器学习之随机森林(五)

机器学习之随机森林(五)


文章目录


集成学习与随机森林算法详解

一、集成学习概述

集成学习(Ensemble Learning)通过组合多个分类器,构建预测效果更好的集成分类器。类比"三个臭皮匠,赛过诸葛亮"。

主要类型

  • Bagging:并行训练多个基学习器
  • Boosting:串行训练,后续模型修正前序模型的错误
  • Stacking:用元学习器组合多个基学习器

Bagging典型流程

  1. 有放回地抽取n个训练样本
  2. 训练M个子模型
  3. 分类问题采用投票法确定最终结果

二、随机森林原理

核心特点

  • 随机性
    • 样本随机:有放回抽样(Bootstrap)
    • 特征随机:每次随机选择k个特征(k<d)
  • 森林结构:多个决策树构成
  • 优势
    • 处理高维特征无需降维
    • 通过平均/投票提高精度,控制过拟合

三、Sklearn API详解

python 复制代码
class sklearn.ensemble.RandomForestClassifier(
    n_estimators=100,          # 树的数量
    criterion='gini',           # 划分标准:"gini"或"entropy"
    max_depth=None,             # 树的最大深度
    ...
)

关键参数

参数 说明
n_estimators 森林中决策树的数量
criterion 划分算法:"gini"基尼系数/"entropy"信息增益
max_depth 树的最大深度限制

四、实战案例:泰坦尼克生存预测

1. 数据准备与预处理

python 复制代码
import pandas as pd
from sklearn.feature_extraction import DictVectorizer

# 数据加载
titanic = pd.read_csv("src/titanic/titanic.csv")
x = titanic[["pclass", "age", "sex"]]
y = titanic["survived"]

# 数据处理
x["age"].fillna(x["age"].mean(), inplace=True)  # 年龄缺失值填充
x = x.to_dict(orient="records")  # 转为字典格式

2. 模型训练与调优

python 复制代码
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV

# 特征转换
transfer = DictVectorizer()
x_train = transfer.fit_transform(x_train)

# 网格搜索调参
param_dict = {
    "n_estimators": [120,200,300,500,800,1200],
    "max_depth": [5,8,15,25,30]
}
estimator = GridSearchCV(
    RandomForestClassifier(),
    param_grid=param_dict,
    cv=3  # 3折交叉验证
)
estimator.fit(x_train, y_train)

3. 模型评估

python 复制代码
# 最佳参数输出
print("最佳参数:", estimator.best_params_)
print("最佳准确率:", estimator.best_score_)

# 测试集评估
score = estimator.score(x_test, y_test)
print("测试集准确率:", score)

五、关键要点总结

  1. 随机森林通过双重随机性(样本+特征)增强多样性
  2. 典型超参数需调优:
    • 树的数量(n_estimators)
    • 树深度(max_depth)
    • 划分标准(criterion)
  3. 网格搜索+交叉验证是调参的有效方法
  4. 适用于高维数据,兼具准确性和抗过拟合能力
相关推荐
陈天伟教授4 分钟前
人工智能训练师认证教程(4)OpenCV 快速实践
人工智能·python·神经网络·opencv·机器学习·计算机视觉
数式Oinone5 分钟前
数式Oinone7早鸟体验版发布,全面适配JDK17,AI Native加速产品智能化转型
人工智能·低代码·低代码平台·数式oinone
啊阿狸不会拉杆8 分钟前
《数字图像处理》第 5 章-图像复原与重建
图像处理·人工智能·算法·matlab·数字图像处理
千殇华来11 分钟前
音频定义/声道/音频格式-Ambisonics声音
人工智能·语音识别
百***787511 分钟前
【技术教程】3步极速接入GPT-5.1:零门槛体验多模态AI能力
android·java·人工智能·gpt·opencv
音视频牛哥17 分钟前
【深度扫盲】音视频开发:拆解黑盒,从入门到精通的成长之路
人工智能·机器学习·计算机视觉·音视频·大牛直播sdk·超低延迟rtsp播放器·超低延迟rtmp播放器
默 语18 分钟前
IPIDEA 代理技术在海外品牌社媒数据采集中的实操落地(Instagram 营销分析案例版)
java·人工智能·ai·ai编程
rockingdingo19 分钟前
0-1教程 ChatGPT Apps Store应用提交教程——和MCP开发部署
人工智能·chatgpt·chatgpt-app
福客AI智能客服19 分钟前
智能客服机器人:家居建材电商的场景化服务核心
大数据·人工智能·机器人
badfl21 分钟前
OpenAI官方发布gpt-image-1.5有哪些亮点?
人工智能·ai·ai作画