Chapter3 决策树案例

发布时间 2023-04-18 14:56:27作者: gao79138

决策树案例-预测隐形眼镜类型


1. 步骤

    示例:使用决策树预测隐形眼镜类型
    (1)收集数据:提供的文本文件。
    (2)准备数据:解析tab键分隔的数据行。
    (3)分析数据:快速检查数据,确保正确地解析数据内容,使用createPlot()函数绘制最终的树形图。
    (4)训练算法:使用3.1节的createTree()函数。
    (5)测试算法:编写测试函数验证决策树可以正确分类给定的数据实例。
    (6)使用算法:存储树的数据结构,以便下次使用时无需重新构造树。

2. 构造决策树

# 该代码的作用是用于构造决策树
# 该代码位于personalTest.py文件中

import trees
import treePlotter
fr = open('lenses.txt')
lenses = [example.strip().split('\t') for example in fr.readlines()]
lensesLabels = ['age','prescript','astigmatic','tearRate']
lensesTree = trees.createTree(lenses,lensesLabels)
treePlotter.createPlot(lensesTree)

img

3. 测试算法

# 该代码的作用是用于测试
# 该代码位于personalTest.py文件中
import trees
import treePlotter
fr = open('lenses.txt')
lenses = [example.strip().split('\t') for example in fr.readlines()]
lensesLabels = ['age','prescript','astigmatic','tearRate']
lensesLabels1 = lensesLabels[:]
lensesTree = trees.createTree(lenses,lensesLabels1)
treePlotter.createPlot(lensesTree)
print(trees.classify1(lensesTree,lensesLabels,['pre','hyper','yes','reduced']))
'''
no lenses
'''
print(trees.classify1(lensesTree,lensesLabels,['pre','hyper','yes','normal']))
'''
no lenses
'''
print(trees.classify1(lensesTree,lensesLabels,['young','hyper','yes','normal']))
'''
hard
'''
    预测结果与构造树的结果是一致的