一、Decision Trees
Decision Trees决策树是用于分类和回归的无参监督学习方法,在sklearn.tree中
1.DecisionTree分类问题
1.1 sklearn库API使用方法:DecisionTreeClassifier参数
可用于二分类,也可应用与多分类
引入 ==> from sklearn import tree
引入 ==> from sklearn.tree import DecisionTreeClassifier
创建模型实例 ==> clf = DecisionTreeClassifier()
训练模型 ==> clf.fit(X,Y)
预测 ==> clf.predict([..])
1.2 graphviz生成树文档
引入 ==> import graphviz
传入 ==> dot_data = tree.export_graphviz(clf, out_file=None) #将训练的模型传入graphviz
生成 ==> graph = graphviz.Source(dot_data) #生成graphviz对象
导出 ==> graph.render(“iris”) #生成本地文件,可以指定路径
1.2.1 tree.export_graphv()方法参数
参数 ==> tree.export_graphv(
clf, # 训练好的决策树模型实例
out_file=None, #必选参数
feature_names=,
class_names=, #string,显示各节点的分类名字
filled=True, #用颜色填充生成的文档树,可选,defaul=False
rounded=True,
special_characters=True
)
1.2.2 graphv对象常用方法
copy
directory
encoding
engine
filename
filepath
format
from_file
pipe
render ==> graph.render(path) #在指定路径下,生成一个分类文件和一个.pdf的图文件
save ==> graph.save(path) #在指定路径下,只生成一个决策树分类文件,相比render少了个pdf图文档
source ==> graph.source(prahpdata) #传入对象
view
1.3 DecisionTreeClassifier参数
参数==> DecisionTreeClassifier.(
criterion, #分类标准,string类型,可选,default=”gini”,示例: criterion =”gini”
splitter, #分离器,string类型,可选,default=”best”, 示例:splitter=”best”
max_depth, #最大树深度,int or None,default=None
min_samples_split, #可选,int,float,default=2
min_samples_leaf, #最小本叶数 int, float, 可选,default=1
min_weight_fraction_leaf, #float,可选,default=0
max_features, #int,float,string or None,可选,default=None
random_state, #int, RandomState instance or None, optional (default=None)
max_leaf_nodes, #int or None, 可选,default=None
min_impurity_decrease, #float, 可选, default=0
min_impurity_split, #float
class_weight, #dict, list of dicts, “balanced” or None, default=None
presort, #bool, optional (default=False)
)
2.DecisionTree回归问题
待完善