随机森林是一种元估计器,它在数据集的各个子样本上拟合许多分类决策树,并使用平均来提高预测准确性并控制过拟合。子样本大小始终与原始输入样本大小相同,但样本是使用替换绘制的(可由用户更改)。
通常,决策树和随机森林模型用于分类任务。然而,将随机森林作为单个决策树上的正则化元估计器的想法最好地通过将它们应用于 regresion 问题来证明。通过这种方式,可以证明,在存在随机噪声的情况下,单个决策树容易出现过拟合并学习虚假相关性,而正确构建的随机森林模型则更不受这种过拟合的影响。
1.1 使用 scikit-learn 内置回归生成器生成合成数据
# 安装依赖
%pip install statsmodels
import matplotlib.pyplot as plt
%matplotlib inline
import pandas as pd
import numpy as np
import statsmodels.api as sm
from sklearn.datasets import make_regression
from sklearn import tree
from sklearn.ensemble import RandomForestRegressor
1.1.1 make_regression 方法的随机回归问题生成及输出原理
make_regression 方法是 scikit-learn stable 的一种方便的方法/函数,用于生成随机回归问题。输入集可以是良好的条件(默认情况下),也可以具有低 rank-fat tail 奇异轮廓。输出是通过将具有非零回归量的 n_informative (可能有偏差的)随机线性回归模型应用于先前生成的输入和一些具有一些可调比例的高斯中心噪声来生成的。
n_samples = 100 # 样本数
n_features = 6 # 特征数量
n_informative = 3 # 信息特征的数量,即影响输出的实际特征
X, y,coef = make_regression(n_samples=n_samples, n_features=n_features, n_informative=n_informative,
random_state=None, shuffle=False,noise=20,coef=True)
1.1.2制作数据框并创建基本可视化
# 数据帧
df1 = pd.DataFrame(data=X,columns=['X'+str(i) for i in range(1,n_features+1)])
df2=pd.DataFrame(data=y,columns=['y'])
df=pd.concat([df1,df2],axis=1)
df.head(10)
# 查看 matplotlib 库的可用样式
print(plt.style.available)
# 选择一个可用样式,例如 'seaborn-v0_8-dark',绘制散点图
with plt.style.context(('seaborn-v0_8-dark')):
for i,col in enumerate(df.columns

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



