根据某列值进行样本的分类
'''
dataSet:数据集
feature:待划分的特征
value:对应的特征值
'''
def binSplitDataSet(dataSet, feature, value):
#dataSet[:,feature]取出该列特征值
#dataSet[:,feature] > value将大于value的值筛选出来,得到的是true,false的矩阵
#然后利用nonzero选择为true的值所在的行,和列
#取出行,然后在dataset中取出对应的样本
mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:][0]
mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:][0]
return mat0,mat1
>>> testMat=mat(eye(4))
>>> testMat
matrix([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
>>> mat0,mat1=regtree.binSplitDataSet(testMat,1,0.5)
>>>
>>>
>>> mat0
matrix([[ 0., 1., 0., 0.]])
>>> mat1
matrix([[ 1., 0., 0., 0.]])
>>> b=testMat[:,1]>0.5
>>> b
matrix([[False],
[ True],
[False],
[False]], dtype=bool)
>>> nonzero(b)
(array([1], dtype=int64), array([0], dtype=int64))
>>> nonzero(b)[0]
array([1], dtype=int64)
>>> testMat[nonzero(b)[0],:]
matrix([[ 0., 1., 0., 0.]])
>>> testMat[nonzero(b)[0],:][0]
matrix([[ 0., 1., 0., 0.]])
>>>