建立单层决策树的伪代码如下:
将最小错误率minError设为+∞
对数据集中的每一个特征(第一层循环):
\qquad 对每个步长(第二层循环):
\qquad \qquad 对每个不等号(第三层循环):
\qquad \qquad \qquad 建立一棵单层决策树并利用加权数据集对它进行测试
\qquad \qquad \qquad 如果错误率低于minError,则将当前单层决策树设为最佳单层决策树
返回最佳单层决策树
from numpy import *
def loadSimpData():
datMat = matrix([[ 1. , 2.1],
[ 2. , 1.1],
[ 1.3, 1. ],
[ 1. , 1. ],
[ 2. , 1. ]])
classLabels = [1.0, 1.0, -1.0, -1.0, 1.0]
return datMat,classLabels
def loadDataSet(fileName): #general function to parse tab -delimited floats
numFeat = len(open(fileName).readline().split('\t')) #get number of fields
dataMat = []; labelMat = []
fr = open(fileName)
for line in fr.readlines(<