(self, X, y)
| 257 | self.root.right = self._build_tree(right_X, right_y) |
| 258 | |
| 259 | def _build_tree(self, X, y): |
| 260 | centroid, left_X, left_y, right_X, right_y = self._split(X, y) |
| 261 | |
| 262 | if X.shape[0] <= self.leaf_size: |
| 263 | leaf = BallTreeNode(centroid=centroid, X=X, y=y) |
| 264 | leaf.radius = np.max([self.metric(centroid, x) for x in X]) |
| 265 | leaf.is_leaf = True |
| 266 | return leaf |
| 267 | |
| 268 | node = BallTreeNode(centroid=centroid) |
| 269 | node.radius = np.max([self.metric(centroid, x) for x in X]) |
| 270 | node.left = self._build_tree(left_X, left_y) |
| 271 | node.right = self._build_tree(right_X, right_y) |
| 272 | return node |
| 273 | |
| 274 | def _split(self, X, y=None): |
| 275 | # find the dimension with greatest variance |
no test coverage detected