scikit learn 极限森林

丶灬走出姿态 提交于 2020-01-17 11:50:21
from sklearn.ensemble import ExtraTreesClassifier,RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_score
from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

# 决策树,进行裂分时候,根据信息增益最大进行裂分,刻板
# 情深不寿,慧极必伤
# 极限森林 1、样本随机 2、分裂条件随机(不是最好的裂分条件)
# 随机性在计算分割的方式上进一步向前迈进了一步。
# 像在随机森林中一样,使用候选特征的随机子集,但不是寻找最有区别的阈值,
# 而是为每个候选特征随机绘制阈值,
# 并选择这些随机生成的阈值中的最佳阈值作为划分规则

X,y = datasets.load_wine(True)

clf = DecisionTreeClassifier()
cross_val_score(clf,X,y,cv = 6,scoring='accuracy').mean()
#0.8531746031746033

forest = RandomForestClassifier(n_estimators=100)
cross_val_score(forest,X,y,cv = 6,scoring='accuracy').mean()
#0.9666666666666667

extra = ExtraTreesClassifier(n_estimators=100)
cross_val_score(extra,X,y,cv = 6,scoring='accuracy').mean()
#0.9833333333333334

# 鸢尾花数据,特征只有四个,相对于葡萄酒,数据量简单
X,y = datasets.load_iris(True)

# 数据简单,那么普通的算法和牛X效果一样
# 清洗后数据,优化后的数据,整理的数据,对算法要求变低

# 数据预处理 !!!非常重要的
# 一般算法(铁锅)-------复杂算法(不锈钢)-------神经网络(钛合金)
# 数据的质量,异常重要
# 烂白菜(数据质量不好)
# 纯天然,无污染,绿色,有机食品

clf = DecisionTreeClassifier()
cross_val_score(clf,X,y,cv = 6,scoring='accuracy').mean()
#0.9591049382716048

forest = RandomForestClassifier(n_estimators=100)
cross_val_score(forest,X,y,cv = 6,scoring='accuracy').mean()
#0.9660493827160493

extra = ExtraTreesClassifier(n_estimators=100)
cross_val_score(extra,X,y,cv = 6,scoring='accuracy').mean()
#0.9521604938271605
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!