机器学习笔记(3) 随机森林

random forest 和 extra-trees是对decison tree做ensemble而得到最终模型的两种算法. 阅读本文前需要先了解一下 机器学习笔记1:决策树 机器学习笔记2:集成学习 random_forest 决策树在节点划分上,在随机的特征子集中寻找最优划分特征.进一步增强了随机性,抑制了过拟合. 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)¶ 随机树的随机性体现在 每一颗决策树只学习部分的训练数据 决策树在做节点划分时,从某一特征子集中选取出最优划分特征.而不是从全部特征中选取. extra-trees class sklearn.ensemble.ExtraTreesClassifier(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=False, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None)¶ 从名字就可以看出来,extra-trees,极限随机树们 =。=. 其实也是一个森林,只是这个森林里的树比random forest里的树还要更随机. 相比与random forest extra-trees进一步增大了随机性。这种随机性地增加体现在 在节点划分上,不光特征是从特征子集随机取的,阈值也是随机取的. This usually allows to reduce the variance of the model a bit more, at the expense of a slightly greater increase in bias. 这种随机性的引入,通常会导致模型的方差减小,代价就是偏差可能会略微升高. 这里解释一下机器学习中的偏差(bias)和方差(variance). 一图胜千言 上图的点可以理解为一个个的模型, high bias意味着欠拟合,模型过于简单了. low bias意味着准确率比较高. 这个相对好理解. 点离红心越近,说明在训练集上预测越准确.偏差越小. high variance意味着过拟合,模型过于复杂,过分地去拟合训练数据了,点很分散,一旦训练数据发生一些变化,学习的结果将产生巨大变化. 更多细致的讨论见知乎上的这个回答 使用sklearn中的random forest和extra-trees 复制代码 from sklearn.ensemble import RandomForestClassifier rf_clf = RandomForestClassifier(n_estimators=500, oob_score=True, random_state=666, n_jobs=-1) rf_clf.fit(X, y) from sklearn.ensemble import ExtraTreesClassifier et_clf = ExtraTreesClassifier(n_estimators=500, bootstrap=True, oob_score=True, random_state=666, n_jobs=-1) et_clf.fit(X, y) https://www.cnblogs.com/sdu20112013/p/10063722.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信