机器学习sklearn
决策树
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,则该节点不会再分裂,直接作为叶节点。
决策树不擅长环形模型
回归树
交叉验证
更多推荐
所有评论(0)