资源简介
ID3决策树的Python代码和相关的数据集
代码片段和文件信息
#coding:utf-8
import numpy
import math
import matplotlib.pyplot as plt
import pre_processing
‘‘‘
决策树的节点结构
attrPos;整型,节点分枝属性的下标,也就是作为父节点产生分枝所用的属性
attrValue:字符串型,节点分枝属性的值,也就是作为子节点从父节点分枝所对应的属性值
classLabel:字符串型,落入该节点的样本中比例最高的类标签
sons:list对象,保存当前节点的所有子节点
‘‘‘
class Node :
attrPos = None
attrValue = None
classLabel = None
def __init__(self):
self.sons = []
‘‘‘
函数功能:计算字典对象所有值的和
变量说明:
inputDict:输入的字典对象
返回值说明:
返回字典对象所有值的和
‘‘‘
def calcTotalValue(inputDict) :
return numpy.array(inputDict.values()).sum()
‘‘‘
函数功能:计算当前节点的信息熵
变量说明:
classCount:字典对象,保存当前节点中各个类标签的出现次数
返回值说明:
ent:float型,返回节点的信息熵
‘‘‘
def calcEnt(classCount) :
ent = 0.0
#空字典,也就是没有样本落入当前节点
if classCount == {} :
return ent
valueArray =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 299 2015-01-04 19:38 agaricus-lepiota\agaricus-lepiota-names.txt
文件 12465 2014-12-29 19:19 agaricus-lepiota\agaricus-lepiota-test.data
文件 361238 2014-12-29 19:19 agaricus-lepiota\agaricus-lepiota-train.data
文件 384 2014-12-29 18:47 decision_tree\.project
文件 593 2015-01-05 10:37 decision_tree\.pydevproject
文件 179 2014-12-29 18:52 decision_tree\.settings\org.eclipse.core.resources.prefs
文件 11104 2015-01-05 10:43 decision_tree\src\decision_tree\decision_tree.py
文件 6558 2015-01-05 10:43 decision_tree\src\decision_tree\decision_tree.pyc
文件 790 2015-01-05 10:43 decision_tree\src\decision_tree\main.py
文件 463 2014-12-29 19:43 decision_tree\src\decision_tree\pre_processing.py
文件 672 2014-12-30 10:36 decision_tree\src\decision_tree\pre_processing.pyc
目录 0 2015-01-05 11:21 decision_tree\src\decision_tree
目录 0 2015-01-05 11:21 decision_tree\.settings
目录 0 2015-01-05 11:21 decision_tree\src
目录 0 2015-01-05 11:22 agaricus-lepiota
目录 0 2015-01-05 11:21 decision_tree
----------- --------- ---------- ----- ----
394745 16
评论
共有 条评论