您的位置:首页 > 编程语言 > Python开发

决策树的Python代码分析(二)

2015-06-09 16:37 477 查看
参考《机器学习实战》

<span style="font-family:SimSun;font-size:18px;">1.def splitDataSet(dataSet, axis, value):
2.    retDataSet = []
3.    for featVec in dataSet:
4.        if featVec[axis] == value:
5.            reducedFeatVec = featVec[:axis]
6.            reducedFeatVec.extend(featVec[axis + 1:])
7.            retDataSet.append(reducedFeatVec)
8.    return retDataSet</span>


参数:待划分的数据集、划分数据集的特征、划分数据集的特征的对应值

学习的地方:

1.函数传递的是列表的引用,所以需要新建一个列表,以防对原列表进行修改

2.列表的分片,代码的第五、六行将对原数据除去axis这个特征

3.列表方法的extend和append的区别

其中featVec[:axis] 返回的是一个列表,其元素是featVec这个列表的索引从0到axis - 1的元素,

也就是不包括axis这个索引上的值,若axis为0,则返回空列表

其中featVec[axis + 1: ]返回的是一个列表,其元素是featVec这个列表的索引从axis + 1开始的所有元素

方法extend和append的区别:

例子:

>>>a = [1, 2, 4]

>>>b = [5, 6, 7]

>>>a.extend(b)

[1, 2, 4, 5, 6, 7]

>>>a = [1, 2, 4]

>>>a.append(b)

[1, 2, 4, [5, 6, 7]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: