📅  最后修改于: 2023-12-03 15:04:37.489000             🧑  作者: Mango
随机森林是一种集成学习算法,它由多颗决策树组成的集合,每一颗决策树都是独立且相互之间无关联的。随机森林回归是一种应用随机森林算法来进行回归的技术。
随机森林算法采用自助采样法Bootstrap抽样,对样本进行抽样,生成若干个样本的采样集。同时,在决策树的形成过程中,采用了随机选择特征的方式,来降低决策树之间的相关性,以避免过拟合。
在回归过程中,随机森林对每颗决策树的输出结果进行平均或求中位数来获得最终的预测结果。
在开始前,确保已经安装好Python环境,并且已经安装了以下几个第三方库:
本次介绍使用的数据集是波士顿房价数据集。该数据集包含506组数据,每组数据有13个属性。我们需要利用这些属性来预测房价。
先使用以下代码读取数据:
import pandas as pd
# 读取数据集
data = pd.read_csv('data/boston.csv')
# 查看前五行数据
print(data.head())
将数据集分为特征集和目标集两部分,分别存储到X和y两个变量中。
import numpy as np
# 将数据集分为特征集和目标集
X = np.array(data.drop(['medv'], axis=1))
y = np.array(data['medv'])
将数据集划分为训练集和测试集,采用默认的7:3比例划分。
from sklearn.model_selection import train_test_split
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
在sklearn库中使用ensemble中的RandomForestRegressor类建立随机森林回归模型。
from sklearn.ensemble import RandomForestRegressor
# 建立随机森林回归模型
rf = RandomForestRegressor(n_estimators=100, random_state=1)
这里我们选择建立100颗决策树,random_state设置为1,以确保每次运行时结果相同。
使用fit()函数训练模型。
# 对模型进行训练
rf.fit(X_train, y_train)
使用predict()函数对测试集进行预测。
# 对测试集进行预测
y_pred = rf.predict(X_test)
使用sklearn库中的r2_score函数对模型进行评估。
from sklearn.metrics import r2_score
# 评估模型
r2 = r2_score(y_test, y_pred)
print('R2 score:', r2)
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import r2_score
# 读取数据集
data = pd.read_csv('data/boston.csv')
# 将数据集分为特征集和目标集
X = np.array(data.drop(['medv'], axis=1))
y = np.array(data['medv'])
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
# 建立随机森林回归模型
rf = RandomForestRegressor(n_estimators=100, random_state=1)
# 对模型进行训练
rf.fit(X_train, y_train)
# 对测试集进行预测
y_pred = rf.predict(X_test)
# 评估模型
r2 = r2_score(y_test, y_pred)
print('R2 score:', r2)
随机森林回归在数据处理、特征选择和数据拟合等方面都有着较好的表现。此外,由于随机性和并行性,计算速度也比较快。在使用时需要注意对参数的选择,以达到较好的预测效果。