从sklearn中导入决策树分类器。
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split ,cross_val_score
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_wine
#下载数据
wine = load_wine()
#转为Dataframe
data_wine = pd.DataFrame(wine.data,columns=wine.feature_names)
data_wine["y"] = wine.target
#划分训练集与测试集
xtrain,xtest,ytrain,ytest = train_test_split(data_wine.iloc[:,:-1],data_wine.y,test_size=0.3,random_state=6)
#拟合训练集
dtc = DecisionTreeClassifier(max_depth=4,
random_state=2)
dtc_wine = dtc.fit(xtrain,ytrain)
dtc.score(xtest,ytest)
score为0.9444444444444444。
绘制决策树:
import graphviz
from sklearn import tree
wine_data2 = tree.export_graphviz(dtc_wine,
out_file= None,
feature_names=feature_name,
class_names=["朗姆","琴酒","伏特加"],
filled= True,
rounded=True)
graph = graphviz.Source(wine_data2)
graph
绘图如下:
图形可视化graphviz,需要下载,下载地址:
https://www.graphviz.org/download/