概述
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report
def load_data():
from sklearn.datasets import load_iris#鸢尾花数据集
from sklearn.preprocessing import StandardScaler#特征缩放
from sklearn.model_selection import train_test_split#交叉验证
data = load_iris()
X = data.data
y = data.target
ss = StandardScaler()
X = ss.fit_transform(X)
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)
return x_train, y_train, x_test, y_test, data.feature_names
def train():
x_train, y_train, x_test, y_test, _ = load_data()
model = DecisionTreeClassifier()
model.fit(x_train, y_train)
y_pre = model.predict(x_test)
print(model.score(x_test, y_test))
print(classification_report(y_test, y_pre))
def grid_search():
from sklearn.model_selection import GridSearchCV#网格搜索
x_train, y_train, x_test, y_test, _ = load_data()#'_'值date.feature_names,我们不用这
#个参数
model = DecisionTreeClassifier()
parameters = {'max_depth': np.arange(1, 50, 2)}#这里超参数为决策树中的深度
gs = GridSearchCV(model, parameters, verbose=5, cv=5)
gs.fit(x_train, y_train)
print('最佳模型:', gs.best_params_, gs.best_score_)
y_pre = gs.predict(x_test)
print(classification_report(y_test, y_pre))
def tree_visilize():
from sklearn import tree
x_train, y_train, x_test, y_test, feature_names = load_data()
print('类标:', np.unique(y_train))#np.unique为除去y_train中重复的数字
print('特征名称:', feature_names)
model = DecisionTreeClassifier(max_depth=3)
model.fit(x_train, y_train)
print(model.score(x_test, y_test))
with open("allElectronicsData.dot", "w") as f:
tree.export_graphviz(model, feature_names=feature_names, class_names=['A', 'B', 'C'], out_file=f)
if __name__ == '__main__':
train()#训练决策树,这里的决策树没有剪枝,生成的是最大最复杂的树,容易过拟合
grid_search()#训练决策树并找出最合适的超参数,这个参数是根据决策树剪枝来的
tree_visilize()#决策树的显示,运用剪枝后的决策树,剪枝后深度为3
其中,tree_visilize函数为显示决策树的函数,需要下载软件:软件为graphviz-2.38.msi 详细操作
决策树的显示:
这个文件是代码生成的,
显示所生成的决策树可以用装好的gvedit.exe打开,在这里。
显示:
决策树详细讲解文章:
文章1
文章2
文章3
最后
以上就是苹果外套为你收集整理的决策树实例的全部内容,希望文章能够帮你解决决策树实例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复