更新数据集和标签集 :param trainDataArr:要更新的数据集 :param trainLabelArr: 要更新的标签集 :param A: 要去除的特征索引 :param a: 当data[A]== a时,说明该行样本时要保留的 :return: 新的数据集和标签集
(trainDataArr, trainLabelArr, A, a)
| 164 | |
| 165 | |
| 166 | def getSubDataArr(trainDataArr, trainLabelArr, A, a): |
| 167 | ''' |
| 168 | 更新数据集和标签集 |
| 169 | :param trainDataArr:要更新的数据集 |
| 170 | :param trainLabelArr: 要更新的标签集 |
| 171 | :param A: 要去除的特征索引 |
| 172 | :param a: 当data[A]== a时,说明该行样本时要保留的 |
| 173 | :return: 新的数据集和标签集 |
| 174 | ''' |
| 175 | #返回的数据集 |
| 176 | retDataArr = [] |
| 177 | #返回的标签集 |
| 178 | retLabelArr = [] |
| 179 | #对当前数据的每一个样本进行遍历 |
| 180 | for i in range(len(trainDataArr)): |
| 181 | #如果当前样本的特征为指定特征值a |
| 182 | if trainDataArr[i][A] == a: |
| 183 | #那么将该样本的第A个特征切割掉,放入返回的数据集中 |
| 184 | retDataArr.append(trainDataArr[i][0:A] + trainDataArr[i][A+1:]) |
| 185 | #将该样本的标签放入返回标签集中 |
| 186 | retLabelArr.append(trainLabelArr[i]) |
| 187 | #返回新的数据集和标签集 |
| 188 | return retDataArr, retLabelArr |
| 189 | |
| 190 | def createTree(*dataSet): |
| 191 | ''' |