随机森林原理

1、随机森林步骤
1)给定包含N个样本的数据集,经过m次有放回的随机抽样操作,得到T个含m个训练样本的采样集
2)对每个采样集,从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART模型,最终建立拥有T个CART模型的随机森林
注:k一般选择(其中d为样本所有属性):
k=log_{2}^{d}
3)将模型用于测试机,对于测试每个样本会有T个预测值,对分类任务使用简单投票法确定该样本最终预测值,对回归任务使用简单平均法确定该样本最终预测值

2、特征重要性
1)对整个随机森林,得到相应的袋外数据(out of bag,OOB)​计算袋外数据误差,记为errOOB1.
注:每个采样集只使用了初始训练集中约63.2%的样本【每个样本被抽到的概率是1/N,样本不被抽到概率就是1-1/N,总共抽了m次,第m次试验后样本不被抽到的概率是(1-1/N)m,当m趋近于无穷大时,(1-1/n)m=1/e,约等于36.8%】,另外抽不到的样本叫做out-of-bag(OOB) examples,这部分数据可以用于对决策树的性能进行评估,计算模型的预测错误率,称为袋外数据误差。这已经经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计

2)随机对袋外数据OOB所有样本的特征X加入噪声干扰(可以随机改变样本在特征X处的值),再次计算袋外数据误差,记为errOOB2。假设森林中有N棵树,则特征X的重要性=∑errOOB2−errOOB1N∑errOOB2−errOOB1N。这个数值之所以能够说明特征的重要性是因为,如果加入随机噪声后,袋外数据准确率大幅度下降(即errOOB2上升),说明这个特征对于样本的预测结果有很大影响,进而说明重要程度比较高。

3)在特征重要性的基础上,特征选择的步骤如下:
a)计算每个特征的重要性,并按降序排序
b)确定要剔除的比例,依据特征重要性剔除相应比例的特征,得到一个新的特征集
c)用新的特征集重复上述过程,直到剩下m个特征(m为提前设定的值)。
d)根据上述过程中得到的各个特征集和特征集对应的袋外误差率,选择袋外误差率最低的特征集。​

3、随机森林优点
随机森林中的基学习器多样性不仅来自样本扰动,还来自属性的扰动,这就使得最终模型的泛化性能可通过个体学习器之间的差异度增加而进一步提升

3、python代码
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_split=1e-07, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False,class_weight=None)
以下用常用参数:
1)n_estimators:设置多少个基分类器(取决于数据量)
2)min_samplies_split:单独叶子节点至少要有几个样本,
3)max_features:一次抽样抽多少feature,回归问题设置为特征数,分类问题设置为sqrt(n_features)
4)max_depth:树的最大深度(5-10)
5)oob_score

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import precision_recall_curve
rf=RandomForestClassifier(n_estimators=10, criterion='gini', max_depth=5,
min_samples_split=2,  oob_score=True, n_jobs=1 )
param_grid ={"n_estimators":[5,10],'max_depth':[3,5]}
gscv = GridSearchCV(clf,param_grid,n_jobs= -1,verbose = 1,cv = 5,error_score = 0,scoring='auc')
gscv.fit(X,y)
gscv.best_score_
gscv.best_params_
gscv.predict_proba(X)#refit=True,gscv为最佳分类器
gscv.grid_scores_#score=roc_auc,auc值
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容