做网站弄什么语言,沐众科技网站建设,品牌建设包括,如何搜索网页关键词1、随机森林算法简介
随机森林算法(Random Forests)是LeoBreiman于2001年提出的#xff0c;它是一种通过重采样办法从原始训练样本集中有放回地重复随机抽取若干个样本生成多个决策树#xff0c;样本的最终预测值由这些决策树的结果投票决定的一种有监督集成学习模型。
其核…1、随机森林算法简介
随机森林算法(Random Forests)是LeoBreiman于2001年提出的它是一种通过重采样办法从原始训练样本集中有放回地重复随机抽取若干个样本生成多个决策树样本的最终预测值由这些决策树的结果投票决定的一种有监督集成学习模型。
其核心思想是通过随机的样本抽样和特征抽样生成众多决策树形成一片“森林”以多数的表决结果作为预测值。
随机森林作为一种bagging集成学习在决策树算法中有着重要的地位。
2、随机森林算法基本原理
2.1 样本的选择
随机森林的样本采样选择可以看作是行采样。随机森林每棵在构建过程中这棵树的样本从总样本中随机抽样生成。完成抽样后将样本放回以便下一棵树的抽样。假设总样本有N个随机森林每棵树的随机抽样样本数为n一般可取n为N的平方根。
2.2 特征的选择
随机森林的特征采样可以看作是列采样。每棵树都是从总体M个特征中随机选择m特征进行树的生成。列采样有两种形式一种是全局列采样即同一棵树的生成过程中均采用同一批特征另一种是局部列采样即每一次节点分裂的时候都单独随机挑选m个特征进行分裂。
2.3 分裂准则
在树的生成过程中采用的分裂准则。在随机森林算法中可以有多种分裂准则。在随机森林的分类算法中比较常见的有信息增益、基尼不纯度在随机森林的回归算法中比较常见的有均方误差。
3、随机森林算法步骤
3.1 输入输出
1输入给定训练样本参数设置森林里树的数量、分裂的准则、分裂终止条件等。
2输出样本的分类或回归值。
3.2 算法步骤
1从训练样本N个中随机有放回地选择n个
2从特征中随机不放回地选择k个特征
3根据指定的分裂准则进行分裂生成一棵决策树叶子节点的输出值当为分类问题时叶子的取值为分类最多的值当为回归问题时叶子节点的取值为该节点所有样本的平均值
4当森林中树的数量小于指定值时继续步骤1到3最终成生指定数量的决策树
5预测时样本在每棵决策树下会有一个对应叶子的值。当为分类问题时最终取值为所有树下该叶子值的数量最多的值分类当为回归问题时最终取值为所有树下叶子值的平均值。
4、随机森林算法实例
这里以用scikit-learn自带的数据集进行演示。
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
#加载数据集
X, y make_classification(n_samples1000, n_features4,n_informative2, n_redundant0,random_state0, shuffleFalse)
# 划分数据集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)#模型训练
clf RandomForestClassifier(max_depth2, random_state0)
clf.fit(X_train,y_train)# 预测测试集
y_pred clf.predict(X_test)# 评估模型
accuracy accuracy_score(y_test, y_pred)
print(Model accuracy: %.2f%accuracy) Model accuracy: 0.94 5、随机森林算法总结
1随机森林算法具有很高的准确性和鲁棒性。随机森林算法由众多决策树共同投票决策其结果具有较好的准确性和鲁棒性。
2随机森林算法可以很好地防止过拟合。随机森林每棵树的训练都是在小部分样本及特征上训练而成可以很好地防止过拟合。
3随机森林算法可以并行构建决策树提高运算效率。
4随机森林算法可以很好地处理高维度数据。
5随机森林算法在小样本上的表现可能会不佳。