我的scikit-learn学习6.22

@[TOC] 学习笔记:随机森林

1 集成算法

集成评估器(ensemble estimator)由多个基评估器(base estimator)组成。
三类集成算法:
Bagging:相互独立的评估器,对多个独立的基评估器的预测结果进行平均或多数表决。
Boosting:基评估器相关
stacking

2 随机森林RF

2.1 库&模块导入

%matplotlib inline
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
import numpy as np
from scipy.special import comb

2.2 RandomForestClassifier

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=None, random_state=None, verbose=0, warm_start=False, class_weight=None)

2.2.1 参数学习曲线

#n_estimator的学习曲线
superpa = []
for i in range(200):
    rfc = RandomForestClassifier(n_estimators=i+1, n_jobs=-1)
    rfc_s = cross_val_score(rfc, wine.data, wine.target, cv=10).mean()
    superpa.append(rfc_s)
    
print(max(superpa),superpa.index(max(superpa)))
plt.figure(figsize=[20,5])
plt.plot(range(1,201), superpa)
plt.show()

2.2.2 参数:实例化过程中将模型具体化。

  • n_estimators,森林中树的数量,一般可取为10~200。
  • random_state 固定森林的模式。
  • bootstrap,默认为true,有放回随机抽样,对n个原始样本,进行有放回抽取n次,组成有n个样本的自助集,建立m个这样的自助集,m其实就是树的个数,用这些自助集来训练出不同的基分类器。1-1/e=63%的样本会进入自助集,剩余的即为袋外数据,可作为测试集。
  • oob_score=True.可使用袋外数据OOB作为测试集。

2.2.3 属性

  • rfc.estimators_
    -返回每棵树的属性
  • rfc.oob_score_
    返回袋外数据在经训练后的RF模型的测试结果
rfc = RandomForestClassifier(oob_score=True)
rfc = rfc.fit(wine.data, wine.target)#全部数据代入模型训练
rfc.oob_score_
  • rfc.feature_importances
    返回每个特征的重要性

2.2.4 接口

  • rfc.fit(Xtrain, Ytrain)
  • rfc.apply(xtest)
  • rfc.score(Xtest, Ytest)
  • rfc.predict(Xtest)
  • rfc.predict_proba(Xtest)

tips:

from scipy.special import comb
comb(10,1)#表示C^1^~10~
import sklearn
sorted(sklearn.metrics.SCORES.keys())#评分方式列表

随机森林比单棵决策树预测效果好的前提条件是:单棵决策树的预测正确率大于0.5。基分类器准确率大于0.5时,集成效果才比基分类器好。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值