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
来源:CSDN
作者:W流沙W
链接:https://blog.csdn.net/shunjianxaioshi/article/details/104013880