随机森林总结 - 参数列表(五)

303 阅读8分钟

根据菜菜的课程进行整理,方便记忆理解

代码位置如下:

Bagging vs Boosting

装袋法 Bagging提升法 Boosting
评估器相互独立,同时运行相互关联,按顺序依次构建,后建的模型会在先建模型预 测失败的样本上有更多的权重
抽样数集有放回抽样有放回抽样,但会确认数据的权重,每次抽样都会给容易 预测失败的样本更多的权重
决定集成的结果平均或少数服从多数原则加权平均,在训练集上表现更好的模型会有更大的权重
目标降低方差,提高模型 整体的稳定性降低偏差,提高模型整体的精确度
单个评估器存在过拟 合问题的时候能够一定程度上解决 过拟合问题可能会加剧过拟合问题
单个评估器的效力比 较弱的时候不是非常有帮助很可能会提升模型表现
代表算法随机森林梯度提升树,Adaboost

RFC的参数列表

n_estimators整数,可不填,默认10 随机森林中树模型的数量
criterion字符型,可不填,默认基尼系数('gini") 用来衡量分枝质量的指标.即衡量不纯度的指标,输入'gini'用基尼系数,或输入’entropy' 使用信息增益(Information Gain)
splitter字符型,可不填,默认最佳分枝('best') 确定每个节点的分枝策略 输入"best"使用最佳分枝,或输入"random"使用最佳随机分枝
max_depth整数或None,可不填,默认None 树的最大深度。如果是None,树会持续生长直到所有叶子节点的不纯度为0,或者直到每个叶子节点所含的样本量都小于参数min_ samples_ split中输入的数字
min_samples_split整数或浮点数,可不填,默认=2 一个中间节点要分枝所需要的最小样本量。如果一个节点包含的样本量小于 min_ samples_ split中填写的数字,这个节点的分枝就不会发生,也就是说,这个节点一定会成为一个叶子节点 1) 如果输入整数,则认为输入的数字是分枝所需的最小样本量 2) 如果输入浮点数则认为输入的浮点数是比例.输入的浮点数 * 输入模型的数据集的样本量(n_samples)是分枝所需的最小样本量
min_sample_leaf整数或浮点数,可不填,默认=1 一个叶节点要存在所需要的最小样本量。一个节点在分枝后的每了子节点中,必须要包含至 少min_sample_leaf个训练样本,否则分枝就不会发生.这个参数可能会有着使模型更平滑的效果,尤其是在回归中 1) 如果输入整数,则认为输入的数字是叶节点存在所需要的最小的样本量 2) 如果输入浮点数,则认为输入的浮点数是比例 输入的浮点数 * 输入模型的数据集的样本量(n_samples)是叶节点存在所需的最小样本量
min_weight_fraction_leaf浮点数,可不填,默认0 一个叶节点要存在所需要的权重占输入模型的数据集的总权重的比例。 总权重由fit接口中的sample_weight参数确定当sample_weight是None时,默认到有样本的权重相同
max_feature整数,浮点数,字符型或None,可不填,默认None 在做最佳分枝的时候,考虑的特征个数 1) 输入整数,则每一次分枝都考虑max_features个持征 2) 输入浮点数,则认为输入的浮点数是比例,每次分枝考虑的特征的数目是max_features 输入模型的数据集的特征个数(n_features) 3)输入auto",采用n_features的平方根作为分枝时考虑的特征数目 4)输入‘'sqrt,采用n_features平方根作为分枝时考虑的特征数目 5)输入‘log2',采用log2 (n_features)作为分枝时考虑的特征数目 6)输入“None,n_features就是分枝时考虑的特征数目 注意:如果在限制的max_features中,决策树无法找到节点样本上至少一个有效的分枝,那对分枝的搜索不会停止决策树将会检查比限制的max_features数目更多的特征
random_state整数,sklearn中设定好的RandomState实例,或None,可不填,默认None 1) 输入整数,random state是由随机数生成器生成的随机数种子 2) 输入RandomState实例则random_ state是一个随机数生成器 3) 输入None,随机数生成器会是np.random模块中的一个Randomstate实例
max_leaf_nodes整数或None,可不填默认None 最大叶节点数量。在最佳分枝方式下以max_leaf_nodes为限制来生长树。如果是None, 则没有叶节点数量的限制。
min_impurity_decreaseimage.png
min_impurity_split浮点数 防止树生长的阈值之一,如果一个节点的不纯度高于min_impurity_split,这个节点就会被分枝否则的话这个节点就只能是叶子节点.
class_weightimage.png
warm_start布尔值,可不填,默认是False 设置为True时候,使用上一次实例化中得到的树模型来fit并以此向整体添加更多的估算器,否则,重新建立一棵树来训练。
verbose整数,可不填,默认是0 在拟合和预测时控制树的复杂度
n_jobs整数或None,可不填,默认是None 训练(fit)和预测(predict)并行运行的worker数,None表示1除非None是标注在参数joblib.parallel_backend context中,-1表示使用整个处理器来运行
boostrap布尔值,可不填,默认是True 在建树过程中,是否使用可放回样本抽样的方式。
oob_score布尔值,默认是False 在建树过程中,是否使用袋外样本来预测模型的泛化精确性。

RFC的属性列表

estimators_输出包含单个决策树分类器的列表,是所有训练过的基分类器的集合
classes_输出一个数组(array)或者一个数组的列表(list),结构为标签的数目(n_classes) 输出所有标签
feature_importances_输出一个数组,结构为特征的数目(n_features) 返回每个持征的重要性.一般是这个特征在多次分枝中产生的信息增益的综合,也被称为基尼重要性“(Gini Importance)
n_classes_输出整数或列表 标签类别的数据
n_features_在训练模型(fit)时使用的特征个数
n_outputs_在训练模型(fit)时输出的结果的个数
oob_score_输出浮点数,使用袋外数据来验证模型效益的分数
oob_decision_function_根据袋外验证结果计算的决策函数。如果n_estimators非常小,那么可能在进行随机放回抽样的过程中没有数据掉落在袋外,在这种情况下,oob_decision_function_的结果会是NaN

RFC的接口列表

apply(X[,check_input])输入测试集或样本点,返回每个样本被分到的叶节点的索引 check_input是接口apply的参数,输入布尔值,默认True,通常不使用
decision_path(X[,check_input])输入测试集或样本点,返回树中的决策树结构 Check_input同样是参数
fit(X,y[,sample_weight,check_input,...])训练模型的接口,其中x代表训练样本的特征,y代表目标数据即标签,X和y都必须是类数组结构,一般我们都使用ndarray来导入 sample_weight是fit的参数,用来为样本标签设置权重,输入的格式是一个和测试集样本量一致长度的数字数组,数组中所带有的数字表示每个样本量所占的权重,数组中数字的综合代表整个测试集的权重总数 返回训练完毕的模型
get_params([deep])布尔值,获取这个模型评估对象的参数。接口本身的参数deep,默认为True,表示返回此估计器的参数并包含作为估算器的子对象。 返回模型评估对象在实例化时的参数设置
predict(X[,check_input])预测所提供的测试集x中样本点的标签,这里的测试集K必须和fit中提供的训练集结构一致 返回模型预测的测试样本的标签或回归值
predict_log_proba(X)预测所提供的测试集X中样本点归属于各个标签的对数概率
predict_proba(X[,check_input])预测所提供的测试集x中样本点归属于各个标签的概率 返回测试集中每个样本点对应的每个标签的概率,各个标签按词典顺序排序。 概率是叶中相同类的样本的分数
score(X,y[,sample_weight])用给定测试数据和标签的平均准确度作为模型的评分标准,分数越高模型越好。其中x是测试集,y是测试集的真实标签。sample_weight是score的参数,用法与fit的参数一致 返回给定决策树数据和标签的平均准确度在多标签分类中,这个指标是子集精度.
**set_params(params)可以为已经建立的评估器重设参数 返回重新设置的评估器本身