机器学习(10)-随机森林案例(调参)之公共自行车使用量预测

本文介绍了如何使用随机森林模型预测公共自行车的使用量,通过调参来提高模型性能。首先,对数据进行预处理,检查无缺失值。接着,通过线性回归、决策树和随机森林模型进行比较,随机森林模型表现出色,RMSE为18.028。在调参过程中,重点调整了n_estimators、max_depth、max_features等参数,最终将RMSE优化至14.492。
摘要由CSDN通过智能技术生成

1. 前言

1.1 背景介绍

公共自行车低碳,环保,健康,并且解决了交通中“最后一公里”的痛点,在全国各个城市越来越受欢迎。本次数据取自于两个城市某街道上的几处公共自行车停车桩。希望根据时间,天气等信息,预测出该街区在一小时内的被借取的公共自行车的数量。

1.2 任务类型

回归

1.3 数据文件说明

数据集 作用 说明
train.csv 训练集 文件大小为273KB
test.csv 测试集 文件大小为179KB

1.4 数据变量说明

训练集中共有10000条样本,预测集中有7000条样本

变量名 解释
id 行编号
y 一小时内自行车被借取的数量,在测试集中是需要被预测的数值
city 表示该行记录所发生的城市
hour 当时的时间,精确到小时,24小时计时法
is_workday 1表示工作日,0表示节假日或周末
temp_1 当时的气温,单位为摄氏度
temp_2 当时的体感温度,单位为摄氏度
weather 当时的天气状况,1为晴朗,2为多云、阴天,3为小雨,4为大雨
wind 当时的风速,数值越大风速越大

1.5 评估方法

评价方法为RMSE(Root of Mean Squared Error)

若真实值为 y = ( y 1 , y 2 , . . . , y n ) y=(y_1,y_2,...,y_n) y=(y1,y2,...,yn),模型的预测值为 y ^ = ( y ^ 1 , y ^ 2 , . . . , y ^ n ) \hat y=(\hat y_1,\hat y_2,...,\hat y_n) y^=(y^1,y^2,...,y^n),那么该模型的RMSE的计算公式为:
R M S E = ∑ i = 1 n ( y i − y ^ i ) 2 n RMSE=\sqrt {\frac{\sum_{i=1}^n(y_i-\hat y_i)^2}{n}} RMSE=ni=1n(yi<

  • 6
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
随机森林是一种集成学习的方法,它利用多个决策树来进行分类或回归,最终选择结果时,采用投票或平均法得出最终结果。随机森林具有很强的准确性和鲁棒性,适用于解决高维特征的分类和回归问题。 下面我们以一个随机森林分类的例子来介绍如何利用Python进行分析。我们使用的数据集是Iris,它包含了3类共150个样本,每个样本有4个特征,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。我们将使用scikit-learn库中的随机森林分类器来进行分类。 首先,我们需要导入必要的包和数据。代码如下: ``` import pandas as pd import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score # 导入数据集 iris = load_iris() X = iris.data y = iris.target ``` 接着,我们将数据集划分为训练集和测试集。代码如下: ``` # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) ``` 然后,我们将创建一个随机森林分类器,并使用训练集对其进行训练。代码如下: ``` # 创建随机森林分类器并进行训练 clf = RandomForestClassifier(n_estimators=100, random_state=42) clf.fit(X_train, y_train) ``` 接下来,我们将使用测试集对训练好的模型进行测试,并计算其精度。代码如下: ``` # 在测试集上测试模型并计算其精度 y_pred = clf.predict(X_test) acc = accuracy_score(y_test, y_pred) print("Accuracy:", acc) ``` 最后,我们可以输出特征重要性来了解哪些特征对分类最具有影响力。代码如下: ``` # 输出特征重要性 feature_importances = pd.Series(clf.feature_importances_, index=iris.feature_names) print(feature_importances) ``` 完整的代码如下: ``` import pandas as pd import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score # 导入数据集 iris = load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 创建随机森林分类器并进行训练 clf = RandomForestClassifier(n_estimators=100, random_state=42) clf.fit(X_train, y_train) # 在测试集上测试模型并计算其精度 y_pred = clf.predict(X_test) acc = accuracy_score(y_test, y_pred) print("Accuracy:", acc) # 输出特征重要性 feature_importances = pd.Series(clf.feature_importances_, index=iris.feature_names) print(feature_importances) ``` 通过以上步骤,我们可以完成一个简单的随机森林分类的案例并了解其源数据和Python实现方法。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值