「红」的信息增益为:1
「大」的信息增益为:0
因此选择「红」的作为根节点,「大」作为子节点。接着再通过计算得出「大」作为子节点效果更差,故进行剪枝。因此最终的完整决策树就只有「红」一个节点:
红(是)---好苹果(是)
红(否)---好苹果(否)
通过使用sklearn来验证一下:
from sklearn import tree
import sys
import os
import graphviz
import numpy as np
os.environ["PATH"] += os.pathsep + 'D:/Program Files/Anaconda3/Library/bin/graphviz'
#创建数据[红,大],1==是,0==否
data = np.array([[1,1],[1,0],[0,1],[0,0]])
#数据标注为,1==好苹果,0==坏苹果
target = np.array([1,1,0,0])
clf = tree.DecisionTreeClassifier() #创建决策树分类器模型
clf = clf.fit(data, target) #拟合数据
#最后利用graphviz库打印出决策树图
dot_data = tree.export_graphviz(clf,out_file=None)
graph = graphviz.Source(dot_data)
graph
展开