金融数据挖掘—科学计算语言—算法篇
决策树分类算法
决策树分类算法:根据历史数据提炼出规则,并以现有信息为基础形成决策,称之为决策树分类算法。
决策树(Decision Tree)是一种十分常用的分类方法,属于监督学习(Supervised Learning)。
监督学习:就是给出一批样本,每个样本都有一组属性和一个分类结果(即类标签已知),算法通过学习这些样本,得到一个决策树,这个决策树能够对新的数据给出合适的分类。
决策树概念主要是通过连续的逻辑判断来得到最后的结论,其关键点在于如何建立出这样一颗树来。决策树模型的建树依据主要用基尼系数(gini)。
基尼系数:用于计算一个系统中的失序现象,即系统的混乱程度。基尼系数越高,系统混乱程度越高,建立决策树模型的目的就是通过合适的分类来降低系统的混乱程度,其计算公式如下:
其中 pi 为类别 i 在样本 T 中出现的频率,即类别为 i 的样本占总样本个数的比率。
练习1.
from sklearn.tree import DecisionTreeClassifier
x = [[1,2],[3,4],[5,6],[7,8],[9,10]]
y = [1,0,0,1,1]
model = DecisionTreeClassifier(random_state=0)
model.fit(x,y)
model.predict([[5,5]])
from sklearn.tree import export_graphviz
import graphviz
import os
#对训练的决策树模型进行可视化
os.environ['PATH'] = os.pathsep + r"E:\Graphviz\bin"
d = export_graphviz(model, out_file=None, class_names=['0','1']) # 将搭建的决策树模型转换为字符串格式,需设置out_file=None
graph = graphviz.Source(d) # 转化为可视化格式
graph
graph.render("决策树") #保存成pdf形式
练习2.
from sklearn.tree import DecisionTreeRegressor
X = [[1,2],[3,4],[5,6],[7,8],[9,10]]
Y = [1,2,3,4,5]
model1 = DecisionTreeRegressor(max_depth=3,random_state=0)
model1.fit(X,Y)
model1.predict([[5,5]])
d1 = export_graphviz(model1,out_file=None) # 回归决策树就没有class分类参数了
graph1 = graphviz.Source(d1) # 转化为可视化格式
graph1
graph.render("决策树1") #保存成pdf格式