Evan 2018-08-31
随机森林(Random forests)或随机决策森林(Random decision forests)是一种用于分类、回归和其他任务的集成学习方法,通过在训练时构建大量决策树并输出作为单个树的类(分类)或平均预测(回归)模式的类(class)来操作。随机决策森林修正了决策树过度适应训练集的习惯
随机决策森林的第一个算法是由Tin Kam Ho使用随机子空间方法创建的,在Ho的公式中,这是一种实现由Eugene Kleinberg提出的“stochastic discrimination”分类方法的方法。
该算法的一个扩展是由Leo Breiman和Adele Cutler开发的,“随机森林”是他们的商标。该扩展整合了Breiman的“bagging”(bagging)思想和随机选择的特征,首先由Ho引入,随后由Amit和Geman独立引入,以构建具有受控变化的决策树的集合。
Esemoble learning 是决策树分类的一个版本,您可以在不同时间采用多种算法并将它们组合在一起以制作更强大的功能。在RF中,我们从训练集中获取数据点,并构建与这些数据点相关的决策树,观察的子集,并选择我们想要构建或建模的N个树,并为每个新数据点迭代此过程。预测Y.RF可以显着提高我们预测的准确性,因为我们的数据集中的任何变化都只会影响很少的树,因此并非所有树都会受到影响。这让我想起的是游戏中我们有一个装有许多气球的罐子,我们必须猜测罐子里有多少个气球。最好的方法是不要单独猜测这个数字,
要在Python中实现RF,我们需要通过sklearn.ensemble库和RandomForestRegressor类创建我们的回归器,并创建对象并将其应用于我们指定我们想要在林中拥有的树数的功能矩阵。Python代码如下:
# Data Preprocessing
# Importing the Library
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Importing the dataset
dataset= pd.read_csv('Data.csv')
X = dataset.iloc[: , 1:2].values
Y = dataset.iloc[: , 2].values
# Fitting Random Forest Regression model to the data set
from sklearn.resemble import RandomForestRegressor
regressor = RandomForestRegressor(n_estimators = 300, random_state = 0)
regressor.fit(X, y)
# Predicting a new result
y_pred = regressor.predict(6.5)
# Visualising the Decision Tree Regression results
X_grid = np.arange(min(X), max(X), 0.1)
X_grid = X_grid.reshape((len(X_grid), 1))
plt.scatter(X, y, color = 'red')
plt.plot(X, regressor.predict(X_grid), color = 'blue')
plt.title('Truth or Bluff (Random Forest Regression)')
plt.xlabel('Position level')
plt.ylabel('Salary')
plt.show()