总第114篇
随机森林(RandomForest,简称RF)是集成学习bagging的一种代表模型,随机森林模型正如他表面意思,是由若干颗树随机组成一片森林,这里的树就是决策树。
在GBDT篇我们说了GBDT和Adaboost的不同,那么RF和GBDT又有什么异同呢?主要有以下两点:
class sklearn.ensemble.RandomForestClassifier(
n_estimators=10, criterion='gini', max_depth=None,
min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0,
max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0,
min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=1,
random_state=None, verbose=0, warm_start=False, class_weight=None)
因随机森林中的树是决策树,所以关于决策树的大部分参数与前面决策树模型中的参数意思一致,这里就不再赘述,可查看:Sklearn参数详解--决策树
n_estimators:随机森林中树的棵树,默认是10棵。
criterion:样本集切分策略,默认是gini指数
,此时树模型为CART模型,当值选为信息增益
的时候,模型就成了ID3模型,默认为CART模型。
bootstrap:是统计学中的一种重采样技术,可以简单理解成是有放回地抽样,默认是True,即采取有放回抽样这种策略,这不就是bagging的思想么。
oob_score:袋外估计(out-of-bag),这个外是针对于bagging这个袋子而言的,我们知道,bagging采取的随机抽样的方式去建立树模型,那么那些未被抽取到的样本集,也就是未参与建立树模型的数据集就是袋外数据集,我们就可以用这部分数据集去验证模型效果,默认值为False。
estimators_:打印输出随机森林中所有的树。
classes_:输出样本集的类别。 n_classes_:输出类别数量。 n_features_:特征数量。 n_outputs_:当模型被fit时的输出维度。看看下图来感受一些这个属性。
feature_importances_:特征重要性。
oob_score_:袋外估计准确率得分,必须是oob_score
参数选择True的时候才可用。
oob_decision_function_:袋外估计对应的决策函数。
apply(X):将训练好的模型应用在数据集X上,并返回数据集X对应的叶指数。 decision_function(X):返回决策函数值(比如svm中的决策距离) fit(X,Y):在数据集(X,Y)上训练模型。 get_parms():获取模型参数 predict(X):预测数据集X的结果。 predict_log_proba(X):预测数据集X的对数概率。 predict_proba(X):预测数据集X的概率值。 score(X,Y):输出数据集(X,Y)在模型上的准确率。