决策树算法学习笔记之参数构造

目录

决策树中的正则化

Ensemble learning(集成算法)


决策树中的正则化

DecisionTreeClassifier类还有一些其他参数类似的限制了决策书的形状:

  • min_samples_split:节点在分割之前必须具有的最小样本数
  • min_samples_leaf:叶子节点必须具有的最小样本数
  • max_leaf_nodes:叶子节点的最大数量
  • max_features:在每个节点处评估用于拆分的最大特征数
  • max_depth:树最大的深度

Ensemble learning(集成算法)

  • 目的:让机器学习效果更好,单个不行,群殴走起
  • Bagging:训练多个分类器取平均f(x)=1/M\sum_{m=1}^{M}f_{m}(x)
    • 全称:booststrap aggregation(并行训练一堆分类器)
    • 树模型:(理论上越多的树效果会越好,但实际上基本超过一定数量就差不多上下浮动了)
    • 最典型的代表就是随机森林
      • 随机:数据采样随机,特征选择随机
      • 森林:很多个决策树并行放在一起
      • 由于二重随机性,使得每个树基本都不会一样,最终的结果也是不同的(之所以要进行随机,是要保证泛化能力)
      • 随机森林的优势
        • 它能够处理高维度(feature很多)的数据,并且不用做特征选择
        • 在训练完后,它能够给出那些feature比较重要
        • 容易做成并行化方法,速度比较快
        • 可以进行可视化展示,便于分析
  • Boosting:从弱学习器开始加强,通过加权来进行训练F_{m}(x)=F_{m-1}(x)+argmin_{h}\sum_{i=1}^{n}L(y_{i},F_{m-1}(x{_{i}})+h(x_{i}))(加入一棵树,要比原来的强)
    • 典型代表:AdaBoost,Xgboost
    • Adaboost会根据前一次的分类效果调整数据权重(每一次切一刀,最终合在一起,弱分类器就升级了)
    • 解释:如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重 
    • 最终的结果:每个分类器根据自身的准确性来确定各自的权重,再合体
  • Stacking:聚合多个分类或回归模型(可以分阶段来做)
    • 堆叠:很暴力,拿来一堆直接上(各种分类器都来了)
    • 可以堆叠各种各样的分类器(KNN、SVM、RF等)
    • 分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练
    • 堆叠在一起确实能使得准确率提升,但是速度是个问题,集成算法是竞赛与论文神器,当我们更关注与结果时,可以试试。

你可能感兴趣的:(编程学习,Python编程问题,决策树,算法,学习)