函数说明:树构建函数 Parameters: dataSet - 数据集合 leafType - 建立叶结点的函数 errType - 误差计算函数 ops - 包含树构建所有其他参数的元组 Returns: retTree - 构建的回归树 Website: http://www.cuijiahua.com/ Modify: 2017-12-12
(dataSet, leafType = regLeaf, errType = regErr, ops = (1, 4))
| 148 | return bestIndex, bestValue |
| 149 | |
| 150 | def createTree(dataSet, leafType = regLeaf, errType = regErr, ops = (1, 4)): |
| 151 | """ |
| 152 | 函数说明:树构建函数 |
| 153 | Parameters: |
| 154 | dataSet - 数据集合 |
| 155 | leafType - 建立叶结点的函数 |
| 156 | errType - 误差计算函数 |
| 157 | ops - 包含树构建所有其他参数的元组 |
| 158 | Returns: |
| 159 | retTree - 构建的回归树 |
| 160 | Website: |
| 161 | http://www.cuijiahua.com/ |
| 162 | Modify: |
| 163 | 2017-12-12 |
| 164 | """ |
| 165 | #选择最佳切分特征和特征值 |
| 166 | feat, val = chooseBestSplit(dataSet, leafType, errType, ops) |
| 167 | #r如果没有特征,则返回特征值 |
| 168 | if feat == None: return val |
| 169 | #回归树 |
| 170 | retTree = {} |
| 171 | retTree['spInd'] = feat |
| 172 | retTree['spVal'] = val |
| 173 | #分成左数据集和右数据集 |
| 174 | lSet, rSet = binSplitDataSet(dataSet, feat, val) |
| 175 | #创建左子树和右子树 |
| 176 | retTree['left'] = createTree(lSet, leafType, errType, ops) |
| 177 | retTree['right'] = createTree(rSet, leafType, errType, ops) |
| 178 | return retTree |
| 179 | |
| 180 | def isTree(obj): |
| 181 | """ |
no test coverage detected