def createTree(dataSet,labels):
classList = [example[-1] for example in dataSet]
#设置递归停止条件
if classList.count(classList[0]) == len(classList):
return classList[0]#stop splitting when all of the classes are equal
if len(dataSet[0]) == 1: #stop splitting when there are no more features in dataSet
return majorityCnt(classList)
bestFeat = chooseBestFeatureToSplit(dataSet)
bestFeatLabel = labels[bestFeat]
myTree = {bestFeatLabel:{}}
del(labels[bestFeat])
featValues = [example[bestFeat] for example in dataSet]
uniqueVals = set(featValues)
#递归处理
for value in uniqueVals:
subLabels = labels[:] #copy all of labels, so trees don't mess up existing labels
myTree[bestFeatLabel][value] = createTree(splitDataSet(dataSet, bestFeat, value),subLabels)
return myTree 机器学习实战-用递归方法创建树
最新推荐文章于 2025-09-22 23:11:09 发布
本文深入讲解了决策树算法的核心原理及实现过程。通过定义createTree函数来递归地创建决策树,选择最佳划分特征,并根据该特征的不同取值继续划分数据集。当所有样本属于同一类别或无法再进行特征划分时,递归终止。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Wan2.2-T2V-A5B
文生视频
Wan2.2
Wan2.2是由通义万相开源高效文本到视频生成模型,是有50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力
419

被折叠的 条评论
为什么被折叠?



