6、机器学习之随机森林

这篇具有很好参考价值的文章主要介绍了6、机器学习之随机森林。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用更复杂的机器学习算法。

本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2
提取码:uDzP

1、简介

决策树给你留下了一个困难的选择。一个深度很大、有很多叶子的树会因为每个预测都来自其叶子上仅有的几个房屋的历史数据而过拟合。但是一个浅树,叶子较少,表现会较差,因为它未能捕捉原始数据中的许多细微差异。

即使是今天最先进的建模技术也面临欠拟合和过拟合之间的棘手问题。然而,许多模型有一些巧妙的思想,可以带来更好的性能。我们将以随机森林为例进行说明。

随机森林使用多个决策树,并通过对每个组成树的预测进行平均来进行预测。它通常比单个决策树具有更好的预测准确性,并且在使用默认参数时表现良好。如果你继续建模,可以学到更多性能更好的模型,但其中许多对于参数的设置比较敏感。

2、实例

您已经看过几次加载数据的代码了。在数据加载结束时,我们有以下变量:

  • train_X

  • val_X

  • train_y

  • val_y

  • y

In [1]:

import pandas as pd
    
# Load data
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
melbourne_data = pd.read_csv(melbourne_file_path) 
# Filter rows with missing values
melbourne_data = melbourne_data.dropna(axis=0)
# Choose target and features
y = melbourne_data.Price
melbourne_features = ['Rooms', 'Bathroom', 'Landsize', 'BuildingArea', 
                        'YearBuilt', 'Lattitude', 'Longtitude']
X = melbourne_data[melbourne_features]

from sklearn.model_selection import train_test_split

# split data into training and validation data, for both features and target
# The split is based on a random number generator. Supplying a numeric value to
# the random_state argument guarantees we get the same split every time we
# run this script.
train_X, val_X, train_y, val_y = train_test_split(X, y,random_state = 0)

我们构建随机森林模型的方法与在 scikit-learn 中构建决策树的方式类似,只是这次我们使用 RandomForestRegressor 类而不是 DecisionTreeRegressor

In [2]:

from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error

forest_model = RandomForestRegressor(random_state=1)
forest_model.fit(train_X, train_y)
melb_preds = forest_model.predict(val_X)
print(mean_absolute_error(val_y, melb_preds))

191669.7536453626

3、结论

很可能还有进一步改进的空间,但这已经相比最佳决策树误差为 250,000 有了很大的提升。有一些参数可以像我们改变单个决策树的最大深度那样,改变随机森林的性能。但随机森林模型最好的特点之一是,它们通常即使在没有进行调优的情况下也能表现得相当不错。

进入机器学习比赛的世界,不断进步,看看你的进步。机器学习比赛是提高你的数据科学技能和衡量你进步的好方法。文章来源地址https://www.toymoban.com/news/detail-806253.html

到了这里,关于6、机器学习之随机森林的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【 Python 全栈开发 - 人工智能篇 - 45 】决策树与随机森林

    1.1.1 概念 决策树是一种机器学习算法,其模型呈现为一个树状结构,用于解决分类和回归问题。决策树通过对数据集的特征进行分析和判断,构建出一系列的决策规则,并根据这些规则对新的数据进行预测。 决策树的每个节点表示一个特征,每个分支代表该特征的某个取值

    2024年02月15日
    浏览(41)
  • 机器学习——决策树/随机森林

    决策树可以做分类也可以做回归,决策树容易过拟合 决策树算法的基本原理是依据信息学熵的概念设计的(Logistic回归和贝叶斯是基于概率论),熵最早起源于物理学,在信息学当中表示不确定性的度量,熵值越大表示不确定性越大。 ID3算法就是一种通过熵的变化,构造决策

    2024年02月07日
    浏览(39)
  • 机器学习笔记:随机森林

    集成学习通过构建多个学习器采用加权的方式来完成学习任务 一般来讲,多个学习器同属于一种模型,比如决策树,线性模型,而不会交叉用多种模型 为了保证集成学习的有效性,多个弱分类器之间应该满足两个条件 准确性 :个体学习器要有一定的准确性,这样才能有好的

    2024年02月16日
    浏览(64)
  • 17. 机器学习 - 随机森林

    Hi,你好。我是茶桁。 我们之前那一节课讲了决策树,说了决策树的优点,也说了其缺点。 决策树实现起来比较简单,解释解释性也比较强。但是它唯一的问题就是不能拟合比较复杂的关系。 后来人们为了解决这个问题,让其能够拟合更加复杂的情况,提出来了一种模型,

    2024年02月05日
    浏览(51)
  • 机器学习随机森林笔记

            随机森林(Random Forests)是一种集成学习方法,用于解决分类和回归问题。它是由Leo Breiman和Adele Cutler于2001年提出的,是集成学习中最受欢迎和广泛应用的算法之一。         随机森林通过组合多个决策树来进行预测。每个决策树都是独立地从原始数据的随机

    2024年02月15日
    浏览(43)
  • 【机器学习】随机森林

    集成学习方法通过建立几个模型组合来解决单一预测问题。它的工作原理就是生成多个分类器/模型,各自独立地学习和做出预测。这些预测最后结合成组合预测,因此优于任何一个单分类做出的预测。 在机器学习中,随机森林是一个包含多个决策树的分类器。并且其输出的

    2024年02月05日
    浏览(53)
  • 【机器学习】python实现随机森林

    目录 一、模型介绍 1. 集成学习 2. bagging 3. 随机森林算法 二、随机森林算法优缺点 三、代码实现 四、疑问 五、总结 本文使用mnist数据集,进行随机森林算法。 集成学习通过训练学习出多个估计器,当需要预测时通过结合器将多个估计器的结果整合起来当作最后的结果输出。

    2024年02月05日
    浏览(49)
  • 机器学习——决策树与随机森林

    机器学习——决策树与随机森林 决策树和随机森林都是常见的机器学习算法,用于分类和回归任务,本文将对这两种算法进行介绍。 决策树算法是一种基于树结构的分类和回归算法。它通过对数据集进行 递归地二分 ,选择最佳的特征进行划分,直到达到终止条件。 决策树

    2024年02月09日
    浏览(39)
  • 【机器学习】随机森林 – Random forest

    随机森林是一种由 决策树 构成的 集成算法 ,他在很多情况下都能有不错的表现。 要深入理解上面这句话,请阅读我的另外两篇文章: 【机器学习】决策树 – Decision Tree 【机器学习】集成学习 - Ensemble Learning 随机森林属于 集成学习 中的 Bagging (Bootstrap AGgregation 的简称)

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包