机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据,输出是期望的结果,只是这个函数过于复杂,以至于不太方便形式化表达。
需要注意的是,机器学习的目标是使学到的函数很好地适用于“新样本”,而不仅仅是在训练样本上表现很好。学到的函数适用于新样本的能力,称为泛化(Generalization)能力。
随机森林
随机森林是最流行和最强大的机器学习算法之一。它是 Bootstrap Aggregation(又称 bagging)集成机器学习算法的一种。
bootstrap 是从数据样本中估算数量的一种强大的统计方法。例如平均数。你从数据中抽取大量样本,计算平均值,然后平均所有的平均值以便更好的估计真实的平均值。
bagging 使用相同的方法,但是它估计整个统计模型,最常见的是决策树。在训练数据中抽取多个样本,然后对每个数据样本建模。当你需要对新数据进行预测时,每个模型都进行预测,并将所有的预测值平均以便更好的估计真实的输出值。
随机森林是对这种方法的一种调整,在随机森林的方法中决策树被创建以便于通过引入随机性来进行次优分割,而不是选择最佳分割点。
因此,针对每个数据样本创建的模型将会与其他方式得到的有所不同,不过虽然方法独特且不同,它们仍然是准确的。结合它们的预测可以更好的估计真实的输出值。
如果用方差较高的算法(如决策树)得到了很好的结果,那么通常可以通过 bagging 该算法来获得更好的结果。
算法思想: 训练数据集–> 随机数据采样 (第一重随机)AND 随机特征采样(第二重随机) –>训练数据集–> 建立决策树模型–>综合(平均/投票/多数结果法)–>最终结果
随机森林模型调参方法
随机森林学习器的默认参数配置:
1 | # 1. bootstrap=True |
1、系统参数
(1)random_state(随机发生器种子数)
如果是int,random_state是随机数发生器使用的种子; 如果是RandomState实例,random_state是随机数生成器; 如果为None,则随机数生成器是np.random使用的RandomState实例。
2、决策树参数
1 | (1)max_features(最大特征数) |
3、Bagging框架参数
Bagging框架中各弱学习器之间没有依赖,因此随机森林的调参难度低于梯度提升树。
1 | (1)n_estimators(弱学习器最大迭代次数) |
参考链接: https://blog.csdn.net/Caesar1993_Wang/article/details/80337103