决策树

tree.DecisionTreeClassifier  分类树

from sklearn import tree                                         #导入需要的模块

clf = tree.DecisionTreeClassifier()                       #实例化

clf = clf.fit(x_train,y_train)                                    #用训练集数据训练模型

result = clf.score(x_test,y_test)                           #导入测试集,从接口中调用需要的信息

 criterion    #用来记录不纯度方法的

输入"entropy",使用信息熵(Entropy)
输入"gini",使用基尼系数(GiniImpurity)

建立一棵树

from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split

探究数据

wine = load_wine()

wine.data.shape

wine.target

#如果wine是一张表,应该长这样:

import pandas as pd

#导入pandas库(别名pd

#其DataFrame结构可以将数据组织成类似 “表格” 的形式,便于查看和操作。

pd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1)

#将wine.data 转化为dataFrame的结构

#axis是按列拼接

wine.feature_names

wine.target_names

分训练集和测试集

Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.3)

Xtrain.shape

Xtest.shape

建立模型

clf = tree.DecisionTreeClassifier(criterion="entropy")

clf = clf.fit(Xtrain, Ytrain)

score = clf.score(Xtest, Ytest) #返回预测的准确度score

画一棵树

feature_name=[‘酒精',‘苹果酸',灰',灰的碱性',‘镁',总酚',‘类黄酮',‘非黄烷类酚类',花青素',颜色强度’,色调',‘od280/od315稀释葡萄酒',‘脯氨酸’]
import graphviz
dot_data = tree.export_graphviz(clf
,feature_names= feature_name
,class_names=["琴酒","雪莉","贝尔摩德"]
,filled=True
,rounded=True
)
graph = graphviz.source(dot_data)
graph

剪枝

max_depth 

#限制树的最大深度,超过设定深度的树枝全部剪掉

min_samples_leaf & min_samples_split

如果一个节点的样本数少于min_samples_split,则该节点不会再分裂,直接作为叶节点。  

决策树不擅长环形模型

回归树

交叉验证

更多推荐