瞎聊机器学习——随机森林(RF)

简介: 本文来讲述一下机器学习中常见的一种集成学习算法——随机森林。

随机森林(Random forest)

随机森林的定义

随机森林是一种集成学习算法,也可以说是一种特殊的Bagging算法,随机森林中将决策树作为基分类器放到Bagging中最后得到随机森林。


对于随机森林,顾名思义,就是用一个随机的方式去建立一个森林,而森林又是有无数个决策树构成的,并且随机的意义在于整个森林中的所有决策树是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。


随机森林的构造过程

随机森林的构造过程中两个随机是最重要的地方(随机选取样本、随机选取属性)

  1. 假如有N个样本,则有放回的随机选择N个样本,用选好的N个样本来训练一个决策树,作为决策树根节点的样本。
  2. 当每个样本中有M个属性时,在决策树的每个节点需要分裂时,随机从M个属性中选取m个属性,满足m<<M。然后采用某种策略(信息增益等方法)来选择一个属性作为该节点的分类属性。
  3. 在决策树构成的过程中每个节点都要按照2中的方法来进行分裂(如果该节点选出的属性和其父节点选出的属性相同,也就证明没有信息增益,该节点也就达到了叶子节点无需继续分裂)。每一个决策树都要分裂到不能分裂为止,并且整个过程中无需剪枝。
  4. 按照1-3建立大量的决策树,这样就构成随机森林了。


随机森林的优点

随机森林不仅包含了决策树和集成学习的优点,同时也包含了如下的优点:


  1. 随机森林对于随机性的引入使得随机森林在数据集上的表现很好,有效的防止了过拟合的产生。
  2. 随机森林的抗噪声能力很强。
  3. 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化。
  4. 在训练过程中,能够检测到feature间的互相影响。
  5. 容易做成并行化方法。
  6. 实现起来比较简单。

随机森林的应用

随机森林简单的Sklearn应用如下:

from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
print(iris["target_names"])
print(iris["target"].shape)
rf = RandomForestRegressor()
rf.fit(iris.data[:150], iris.target[:150])  #选择部分数据进行模型的训练
instance = iris.data[[111,123]]
print(instance)
re0 = rf.predict(instance[[0]])
re1 = rf.predict(instance[[1]])
print("re0:",re0)
print("re1:",re1)
print(iris.target[111],iris.target[123])


相关文章
|
1月前
|
机器学习/深度学习 数据采集 算法
Machine Learning机器学习之随机森林(Random Forests)
Machine Learning机器学习之随机森林(Random Forests)
|
2月前
|
机器学习/深度学习 数据可视化 算法
机器学习-可解释性机器学习:随机森林与fastshap的可视化模型解析
机器学习-可解释性机器学习:随机森林与fastshap的可视化模型解析
153 1
|
2月前
|
机器学习/深度学习 算法 数据可视化
可解释性机器学习:基于随机森林和Ceteris-paribus的乳腺癌早期诊断研究
可解释性机器学习:基于随机森林和Ceteris-paribus的乳腺癌早期诊断研究
69 1
|
19天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
19天前
|
机器学习/深度学习 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-4
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
11天前
|
机器学习/深度学习 算法 Python
【Python 机器学习专栏】随机森林算法的性能与调优
【4月更文挑战第30天】随机森林是一种集成学习方法,通过构建多棵决策树并投票或平均预测结果,具有高准确性、抗过拟合、处理高维数据的能力。关键性能因素包括树的数量、深度、特征选择和样本大小。调优方法包括调整树的数量、深度,选择关键特征和参数优化。Python 示例展示了使用 GridSearchCV 进行调优。随机森林广泛应用于分类、回归和特征选择问题,是机器学习中的重要工具。
|
17天前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(下)
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
17天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(上)
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
19天前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-3
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
19天前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-1
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-1