MCPcopy Index your code
hub / github.com/apachecn/ailearning / createTree

Function createTree

src/python/9.RegTrees/regTrees.py:142–168  ·  view source on GitHub ↗

createTree(获取回归树) Description:递归函数:如果构建的是回归树,该模型是一个常数,如果是模型树,其模型师一个线性方程。 Args: dataSet 加载的原始数据集 leafType 建立叶子点的函数 errType 误差计算函数 ops=(1, 4) [容许误差下降值,切分的最少样本数] Returns: retTree 决策树最后的结果

(dataSet, leafType=regLeaf, errType=regErr, ops=(1, 4))

Source from the content-addressed store, hash-verified

140# assume dataSet is NumPy Mat so we can array filtering
141# 假设 dataSet 是 NumPy Mat 类型的,那么我们可以进行 array 过滤
142def createTree(dataSet, leafType=regLeaf, errType=regErr, ops=(1, 4)):
143 """createTree(获取回归树)
144 Description:递归函数:如果构建的是回归树,该模型是一个常数,如果是模型树,其模型师一个线性方程。
145 Args:
146 dataSet 加载的原始数据集
147 leafType 建立叶子点的函数
148 errType 误差计算函数
149 ops=(1, 4) [容许误差下降值,切分的最少样本数]
150 Returns:
151 retTree 决策树最后的结果
152 """
153 # 选择最好的切分方式: feature索引值,最优切分值
154 # choose the best split
155 feat, val = chooseBestSplit(dataSet, leafType, errType, ops)
156 # if the splitting hit a stop condition return val
157 # 如果 splitting 达到一个停止条件,那么返回 val
158 if feat is None:
159 return val
160 retTree = {}
161 retTree['spInd'] = feat
162 retTree['spVal'] = val
163 # 大于在右边,小于在左边,分为2个数据集
164 lSet, rSet = binSplitDataSet(dataSet, feat, val)
165 # 递归的进行调用,在左右子树中继续递归生成树
166 retTree['left'] = createTree(lSet, leafType, errType, ops)
167 retTree['right'] = createTree(rSet, leafType, errType, ops)
168 return retTree
169
170
171# 判断节点是否是一个字典

Callers 1

regTrees.pyFile · 0.70

Calls 2

chooseBestSplitFunction · 0.85
binSplitDataSetFunction · 0.85

Tested by

no test coverage detected