(十四、)极限森林

一、极限森林

特征随机
参数随机
分裂随机
因为分裂是随机的,所以就不需要样本是随机的了

  • 随机森林和极限森林不同之处:
    • 随机森林样本抽样,随机性,而极限森林样本都是固定的
    • 随机森林在分裂的时候,best;极限森林 分裂方式是:random
    • 其他的都是一样的。
  • 好处:
    • 降低模型方差,模型更加稳定(高中同学考试为例,张三,发挥不稳定),鲁棒性增强robust。
    • 偏差变大。集成算法多颗树,有的树,选择类别0,有的选择类别1,最终统计:众数
    • 提升模型的准确率

二、代码的实现

import warnings
warnings.filterwarnings('ignore')
import numpy as np

from sklearn.ensemble import RandomForestClassifier,ExtraTreesClassifier

from sklearn.tree import DecisionTreeClassifier

from sklearn import datasets

from sklearn import datasets

from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
from sklearn import tree
X,y = datasets.load_wine(True)
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 119)
clf = DecisionTreeClassifier()
clf.fit(X_train,y_train)
clf.score(X_test,y_test)
0.9333333333333333
clf2 = RandomForestClassifier()
clf2.fit(X_train,y_train)
clf2.score(X_test,y_test)
1.0

随机森林,随机抽样

极限森林,不仅有随机抽样,属性裂分随机

'''max_features : int, float, string or None, optional (default="auto")
    The number of features to consider when looking for the best split:'''
clf3 = ExtraTreesClassifier(max_depth=3,max_features=1)
clf3.fit(X_train,y_train)
clf3.score(X_test,y_test)
0.9777777777777777
# 第一颗树样本:45,55,33
plt.figure(figsize=(9,7))
_ = tree.plot_tree(clf3[0],filled=True)
output_6_0.png
# 第二颗树样本:45,55,33
plt.figure(figsize=(9,7))
_ = tree.plot_tree(clf3[1],filled=True)
output_7_0.png
# 第三颗树样本:45,55,33
plt.figure(figsize=(9,7))
_ = tree.plot_tree(clf3[2],filled=True)
output_8_0.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值