机器学习:集成学习(随机森林、集成学习参数)

一、基础理解

  • 随机森林(Random-Trees)

 1)定义

  • 定义:使用决策树算法进行集成学习时所得到的集成学习的模型,称为随机森林;
  • 只要集成学习的底层算法是 决策树算法,最终得到的模型都可以称为随机森林;

 2)scikit-learn 中:随机森林分类器及回归器

  • RandomForestClassifier():分类器
  • RandomForestRegressor():回归器
  • 特点:所有子模型在节点划分时,都是在随机的特征子集上寻找最优的花饭特征;
  1. 也就是在迭代寻找划分维度及其阈值时,不是对全部特征进行搜索,而是对部分特征进行搜索;
  • 优点:这种方式增加了每一个子模型的随机性及差异性;
  • 使用格式

    from sklearn.ensemble import RandomForestClassifier
    
    rf_clf = RandomForestClassifier(n_estimators=500, random_state=666, oob_score=True, n_jobs=-1)
    rf_clf.fit(X, y)

 3)scikit-learn 中:Extra-Trees(极其随机的森林)

  • 特点:决策树子模型在节点划分时,使用随机的特征和随机的阈值;
  1. 也就是说,节点划分时,选择的特征及对应的特征值不是搜索比较所得,而是随机抽取一个特征,再从该特征中随机抽取一个特征值,作为该节点划分的依据;
  • 理论支撑:只要子模型的准确率大于 50%,并且集成的子模型的数量足够多,最终整个集成系统的准确率就能达到要求;
  • 优点:提供额外的随机性,抑制过拟合;并且具有更快的训练速度;
  • 缺点:增大了 bias(偏差);
  • 使用格式

    from sklearn.ensemble import ExtraTreesClassifier
    
    et_clf = ExtraTreesClassifier(n_estimators=500, bootstrap=True, oob_score=True, random_state=666)
    et_clf.fit(X, y)

 4)大多数集成学习算法都可以解决回归问题

  • 解决分类问题的算法

    from sklearn.ensemble import BaggingClassifier
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.ensemble import ExtraTreesClassifier
  • 解决回归问题的算法

    from sklearn.ensemble import BaggingRegressor
    from sklearn.ensemble import RandomForestRegressor
    from sklearn.ensemble import ExtraTreesRegressor
  • 两类算法的参数相同

二、随机森林中的参数

 1)属于决策树算法和集成学习算法共同的参数

  1. max_depth = None:决策树的最高深度;(如果不做设置,按其它参数条件结束划分)
  2. max_features = 'auto':节点划分时,进行所搜的特征的种类数;(默认搜索全部特征)
  3. max_leaf_nodes = None:划分结束时,模型最多的叶子数;(如果不做设置,按其它参数条件结束划分)
  4. min_impurity_decrease = 0.0:
  • 不懂的查文档
原文地址:https://www.cnblogs.com/volcao/p/9488771.html