系列文章目录
第二章 随机森林算法实践
一、随机森林算法是什么?
随机森林算法是一种集成学习方法,在处理回归问题上有很好的表现。
个人理解:
随机森林就是生成多个决策树,使用数据集中数量相同但数据不完全相同的数据集进行决策分析,得出不同模型(即不同的决策树),然后根据不同决策树得出预测结果,并最终求取不同决策树结果的平均值作为最后的预测值。
其中随机体现在数据选取过程中的随机,森林体现在使用了多个决策树,因为使用了多个模型的预测结果进行综合判断所以该算法属于集成学习。
一、随机森林算法的实现
本文使用python进行实现。
1.引入库
# 引入库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestRegressor # 引入随机森林算法
# 读取数据集
X = pd.read_csv('train_open.csv', usecols=['p1'])
y = pd.read_csv('train_open.csv', usecols=['open'])
2.建立模型
# 随机森林建模
regr_rf = RandomForestRegressor(n_estimators=n_trees, max_depth=max_depth, random_state=2)
regr_rf.fit(X, y)
RandomForestRegressor参数介绍:
n_estimators为决策树数量,一般来说越大越好,但当大于特定值时会出现反效果;
max_depth为最大深度,一般默认值为None;
random_state为随机种子,必须设置,当设置为整数时,制定随机数生成器的种子,当为None时,制定默认的随机数生产器。
3.结果预测
# 生成新数据进行预测
X_test = np.arange(90, 230, 0.01)[:, np.newaxis]
y_rf = regr_rf.predict(X_test)
# 绘制结果
plt.figure(figsize=(10, 6))
plt.scatter(X, y, edgecolor="k", c="navy", s=20, marker="o", label="Data")
plt.plot(X_test, y_rf, color="darkorange", label="Random Forest Prediction", linewidth=2)
plt.xlabel("Input Feature")
plt.ylabel("Target")
plt.title("Random Forest Regression")
plt.legend()
plt.show()
总结
本文简单介绍了随机森林算法python实现,重点针对RandomForestRegressor函数进行介绍。