瞎聊机器学习——随机森林(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月前
|
机器学习/深度学习 算法 前端开发
【机器学习】Bagging和随机森林
【机器学习】Bagging和随机森林
|
6月前
|
机器学习/深度学习 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-4
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
5月前
|
机器学习/深度学习 数据采集 算法
【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
|
2月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
3月前
|
机器学习/深度学习 存储 缓存
【机器学习】随机森林、AdaBoost、GBDT、XGBoost从零开始理解
介绍了机器学习中的几种集成学习算法,包括随机森林、AdaBoost、梯度提升决策树(GBDT)和XGBoost,解释了它们的概念、优缺点、算法过程以及系统设计。
156 5
【机器学习】随机森林、AdaBoost、GBDT、XGBoost从零开始理解
|
5月前
|
机器学习/深度学习 数据采集 算法
基于机器学习预测未来的二氧化碳排放量(随机森林和XGBoost)
基于机器学习预测未来的二氧化碳排放量(随机森林和XGBoost)
222 2
|
6月前
|
机器学习/深度学习 数据采集 前端开发
【机器学习】随机森林:深度解析与应用实践
在机器学习的广阔天地中,集成学习方法因其卓越的预测能力和泛化性能而备受青睐。其中,随机森林(Random Forest)作为集成学习的一个重要分支,凭借其简单、高效且易于实现的特性,在分类和回归任务中展现了非凡的表现。本文将深入探讨随机森林的基本原理、核心构建模块、关键参数调优以及在实际应用中的策略与案例分析,旨在为读者提供一个全面而深入的理解。
773 3
|
5月前
|
机器学习/深度学习 数据采集 JavaScript
技术心得记录:机器学习——用逻辑回归及随机森林实现泰坦尼克号的生存预测
技术心得记录:机器学习——用逻辑回归及随机森林实现泰坦尼克号的生存预测
53 0
|
6月前
|
机器学习/深度学习 算法 Python
【Python 机器学习专栏】随机森林算法的性能与调优
【4月更文挑战第30天】随机森林是一种集成学习方法,通过构建多棵决策树并投票或平均预测结果,具有高准确性、抗过拟合、处理高维数据的能力。关键性能因素包括树的数量、深度、特征选择和样本大小。调优方法包括调整树的数量、深度,选择关键特征和参数优化。Python 示例展示了使用 GridSearchCV 进行调优。随机森林广泛应用于分类、回归和特征选择问题,是机器学习中的重要工具。
291 1
|
6月前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-3
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享