机器学习 ||《菜菜的sklearn机器学习》笔记——2 随机森林

1 集成算法

  • 集成学习 非常流行的机器学习算法,通过在数据上构建多个模型,集成所有模型的结果。
  • 多个模型集成成为的模型叫做集成评估器,其中的每个模型叫做基评估器。通常来说,有三类集成算法:袋装法(Bagging)、提升法(Boosting)、stacking。
  • Bagging:构建多个独立平行的评估器,对其预测进行平均或多数表决原则来决定结果。
  • Boosting:基评估器是相关的,按顺序一一建造的。

2 RandomForestClassifier 随机森林

  • n_estimators:
    森林中树木的数量。
    越大,模型效果往往最好,需要的计算量内存也越大,达到一定程度之后,随机森林的精确性往往不再上升或者停止波动。
#代码与决策树基本一致
from sklearn.tree import RandomForestClassifier  #导入需要的模块

rfc = RandomForestClassfier()  #实例化
rfc = rfc.fit(X_train, Y_train)  #用训练集数据训练模型
result = rfc.score(X_test,Y_test)  #导入测试集,从接口中调用需要的信息
  • 来建立一片森林吧
#随机森林和单个决策树的对比
%matplotlib inline 
from sklearn.tree import DecisionTreeClassifier #构建决策树
from sklearn.ensemble import RandomForestClassifier #随机森林分类器
from sklearn.datasets import load_wine #加载Wine数据集
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt

wine=load_wine() #导入红酒数据集
"""
X_train, X_test, Y_train, Y_test = train_test_split(wine.data, wine.target, test_size = 0.3)
#单个决策树
clf = DecisionTreeClassifier(random_state = 0) # random_state 随机种子 确定固定值
clf = clf.fit(X_train,Y_train)
score_c = clf.score(X_test,Y_test)
#随机森林
rfc = RandomForestClassifier(random_state = 0) 
rfc = rfc.fit(X_train,Y_train)
score_r = rfc.score(X_test,Y_test)
"""
#在十组交叉验证的效果对比
rfc_l = []
clf_l = []
for i in range(10):
  rfc = RandomForestClassifier(n_estimators=25) #n_estimators 森林中树的个数
  rfc_s = cross_val_score(rfc, wine.data, wine.target, cv=10).mean() #cv 交叉验证的折数k的。常用的cv值有5、10等
  rfc_l.append(rfc_s)
  clf = DecisionTreeClassifier()
  clf_s = cross_val_score(clf, wine.data, wine.target, cv=10).mean()
  clf_l.append(clf_s)
plt.plot(range(1,11), rfc_l, label = "Random Forest")
plt.plot(range(1,11), clf_l, label = "Decision Tree")
plt.legend() #添加图例
plt.show()

波动一致,但随机森林的优越性显而易见

.estimators

  • 随机森林中所有树的列表

.oob_score_

  • 袋外得分。对训练集放回抽样不断组成新的训练集时总有一些数据从来没有被随机挑选到,称为“袋外数据”,sklearn可以用他们来测试模型,测试的结果就用“
    obb_score_”来导出

.feature_importance_

  • 输出各个特征的重要性。

apply, fit, predict, score 以及 predict_proba 五个接口

  • apply返回每个测试样本所在的叶子节点的索引;
  • predict返回每个测试样本的分类/回归结果;
  • predict_proba返回每个测试样本对应的被分到每一类标签的概率,标签有几个分类就返回几个概率。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值