周志华《机器学习》第四章决策树-调用sklearn.tree实现
一、导入需要用的包
import csv # 导入文件
import pandas as pd
from sklearn.feature_extraction import DictVectorizer # 用于生成哑变量
from sklearn import tree
二、导入数据
1、利用csv导入数据
melon = open(r".../data/watermelon_3.csv","rt")
reader = csv.reader(melon) # 迭代器
headers = next(reader) # python2语法为reader.next()
print(headers)
# ['编号', '色泽', '根蒂', '敲声', '纹理', '脐部', '触感', '密度', '含糖率', '好瓜']
for row in reader:
print(row)
# ['1', '青绿', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '0.697', '0.46', '是']
# ['2', '乌黑', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', '0.774', '0.376', '是']
# ['3', '乌黑', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '0.634', '0.264', '是']
# ['4', '青绿', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', '0.608', '0.318', '是']
# ['5', '浅白', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '0.556', '0.215', '是']
# ['6', '青绿', '稍蜷', '浊响', '清晰', '稍凹', '软粘', '0.403', '0.237', '是']
# ['7', '乌黑', '稍蜷', '浊响', '稍糊', '稍凹', '软粘', '0.481', '0.149', '是']
# ['8', '乌黑', '稍蜷', '浊响', '清晰', '稍凹', '硬滑', '0.437', '0.211', '是']
# ['9', '乌黑', '稍蜷', '沉闷', '稍糊', '稍凹', '硬滑', '0.666', '0.091', '否']
# ['10', '青绿', '硬挺', '清脆', '清晰', '平坦', '软粘', '0.243', '0.267', '否']
# ['11', '浅白', '硬挺', '清脆', '模糊', '平坦', '硬滑', '0.245', '0.057', '否']
# ['12', '浅白', '蜷缩', '浊响', '模糊', '平坦', '软粘', '0.343', '0.099', '否']
# ['13', '青绿', '稍蜷', '浊响', '稍糊', '凹陷', '硬滑', '0.639', '0.161', '否']
# ['14', '浅白', '稍蜷', '沉闷', '稍糊', '凹陷', '硬滑', '0.657', '0.198', '否']
# ['15', '乌黑', '稍蜷', '浊响', '清晰', '稍凹', '软粘', '0.36', '0.37', '否']
# ['16', '浅白', '蜷缩', '浊响', '模糊', '平坦', '硬滑', '0.593', '0.042', '否']
# ['17', '青绿