【教程】5分钟直接了解随机森林模型

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/

随机森林模型是机器学习中常用的模型之一,它是决策树模型的一个延伸。
本文简单快速直接地介绍什么是随机森林模型以及如何实现一个随机森林模型。

一、什么是随机森林模型

1.1.随机森林模型介绍

随机森林模型顾名思义,就是有很多棵树的模式,这里的树,指的是决策树。
它训练了许多棵决策树,然后集合在一起,作为一个集成模型进行决策。
什么是随机森林
如图所示,随机森林的模型表达式如下:
y = 1 k [ t 1 . prob ( x ) + t 2 . prob ( x ) + . . . + t k . prob ( x ) ] \text{y}= \dfrac{1}{k} \left [ \text{t}_1.\text{prob}(x)+\text{t}_2.\text{prob}(x)+...+\text{t}_k.\text{prob}(x) \right ] y=k1[t1.prob(x)+t2.prob(x)+...+tk.prob(x)]
其中,y:随机森林给出的各类别的预测概率
ti : 决策树
ti*prob(x): 第i棵树对x的预测,输出为各个类别的预测概率(行向量)
k : 森林规模数

1.2.为什么随机森林要用多棵决策树

随机森林模型采用了多棵决策树进行集成,这主要是因为决策树是一个极易过拟合的模型,因此集成多棵决策树,让它们一起进行综合评估,使得预测结果更加稳定。

二、怎么训练一个随机森林模型

2.1.训练一个随机森林模型

在python中通过sklearn如下实现一个随机森林模型,代码示例如下:

# -*- coding: utf-8 -*-
"""
sklearn的随机森林Demo
"""
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import numpy as np

np.random.seed(888)
# ==================== 加载数据 =====================================================
iris = load_iris()
X   = iris.data
y   = iris.target

# ========================= 模型训练 ====================================================
clf = RandomForestClassifier(n_jobs=1,oob_score=True,max_features=2,n_estimators=100)
clf.fit(X, y)

# =============================== 模型预测 ===================================================
pred_prob = clf.predict_proba(X)
pred_c    = clf.predict(X)
preds     = iris.target_names[pred_c]

#=================打印结果==========================
print("\n----前5条预测结果:----") 
print(pred_prob[0:5])
print("\n----袋外准确率oob_score:----") 
print(clf.oob_score_)
print("\n----特征得分:----") 
print(clf.feature_importances_)

代码运行结果如下:

----前5条预测结果:----
[[1.   0.   0.  ]
 [0.99 0.01 0.  ]
 [1.   0.   0.  ]
 [1.   0.   0.  ]
 [1.   0.   0.  ]]

----袋外准确率oob_score:----
0.9533333333333334

----特征得分:----
[0.08186032 0.02758341 0.44209899 0.44845728]

其中,特征得分是指每个特征对随机森林贡献度的占比,它是决策树特征得分的拓展。


相关链接:

《老饼讲解-机器学习》:老饼讲解-机器学习教程-通俗易懂
《老饼讲解-神经网络》:老饼讲解-matlab神经网络-通俗易懂
《老饼讲解-神经网络》:老饼讲解-深度学习-通俗易懂

  • 14
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老饼讲解-BP神经网络

请老饼喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值