龙空技术网

简单理解随机森林回归(附Python实现)

你看我独角兽吗 257

前言:

今天我们对“随机森林python分类”大约比较讲究,我们都需要剖析一些“随机森林python分类”的相关资讯。那么小编在网摘上搜集了一些有关“随机森林python分类””的相关资讯,希望你们能喜欢,看官们一起来了解一下吧!

我们知道,每个决策树都有很高的方差,但是当我们将所有决策树并行组合在一起时,由于每个决策树都在特定样本数据上得到了完美的训练,因此集成结果方差很低,输出不依赖于一个决策树,而是多个决策树。在分类问题的情况下,最终输出是通过使用多数表决分类器获得的。在回归问题的情况下,最终输出是所有输出的平均值。这部分称为bagging

简单理解

随机森林是一种集成技术,能够通过使用多个决策树和一种称为bagging方法来执行回归和分类任务。这背后的基本思想是结合多个决策树来确定最终输出,而不是依赖于单个决策树。

随机森林有多个决策树作为基础学习模型。我们从数据集中随机执行行采样和特征采样,形成每个模型的样本数据集。下面是随机森林回归的分步展示实现。

代码实现

第 1 步: 导入所需的库。

# Importing the librariesimport numpy as npimport matplotlib.pyplot as pltimport pandas as pd

第 2 步: 导入并打印数据集

data = pd.read_csv('Salaries.csv')print(data)

第 3 步: 选择数据集中的所有行和列 1 到 x,所有行和列 2 作为 y

x= df.iloc [:, : -1] # “ : ”表示它将选择所有行,“: -1 ”表示它将忽略最后一列 y= df.iloc [:, -1 :] # ” : ”表示它将选择所有行,“-1 :”表示它将忽略除最后一列之外的所有列# “iloc()”函数使我们能够选择数据集的特定单元格,也就是说,它帮助我们从数据框或数据集的一组值中选择属于特定行或列的值。

第 4 步: 将随机森林回归器拟合到数据集

# Fitting Random Forest Regression to the dataset# import the regressorfrom sklearn.ensemble import RandomForestRegressor# create regressor objectregressor = RandomForestRegressor(n_estimators = 100, random_state = 0)# fit the regressor with x and y dataregressor.fit(x, y)

第 5 步: 预测新结果

Y_pred = regressor.predict(np.array([6.5]).reshape(1, 1)) # test the output by changing values

第 6 步: 可视化结果

# Visualising the Random Forest Regression results# arrange for creating a range of values# from min value of x to max# value of x with a difference of 0.01# between two consecutive valuesX_grid = np.arrange(min(x), max(x), 0.01)# reshape for reshaping the data into a len(X_grid)*1 array,# i.e. to make a column out of the X_grid value    X_grid = X_grid.reshape((len(X_grid), 1))# Scatter plot for original dataplt.scatter(x, y, color = 'blue')# plot predicted dataplt.plot(X_grid, regressor.predict(X_grid),  color = 'green')plt.title('Random Forest Regression')plt.xlabel('Position level')plt.ylabel('Salary')plt.show()
RandomForest 中的OOB分数

Out of Bag 分数或 OOB 分数是一种验证技术,主要用于装袋算法以验证装袋算法。这里一小部分验证数据是从主流数据中提取的,对特定验证数据进行预测并与其他结果进行比较。

OOB 分数提供的主要优点是,这里的验证数据并不会被 bagging 算法观测到,这就是为什么 OOB 分数的结果是表明 bagging 算法实际性能的真实结果。

如果要获得特定随机森林算法的 OOB 分数,可以在算法中的 OOB_Score 参数设置值“True”。

from sklearn.trees import RandomForestClassifierRandomeForest = RandomForestClassifier(oob_score=True)RandomForest.fit(X_train,y_train)print(RandomForest.oob_score_)

标签: #随机森林python分类