def _check_p_distance_vs_KDT(self, p): bt = BallTree(self.X, leaf_size=10, metric='minkowski', p=p) kdt = cKDTree(self.X, leafsize=10) dist_bt, ind_bt = bt.query(self.X, k=5) dist_kd, ind_kd = kdt.query(self.X, k=5, p=p) assert_array_almost_equal(dist_bt, dist_kd)
def _check_p_distance_vs_KDT(self, p): bt = BallTree(self.X, leaf_size=10, metric='minkowski', p=p) kdt = cKDTree(self.X, leafsize=10) dist_bt, ind_bt = bt.query(self.X, k=5) dist_kd, ind_kd = kdt.query(self.X, k=5, p=p) assert_array_almost_equal(dist_bt, dist_kd)
def _check_metrics_float(self, k, metric, kwargs): bt = BallTree(self.X, metric=metric, **kwargs) dist_bt, ind_bt = bt.query(self.X, k=k) dm = DistanceMetric(metric=metric, **kwargs) D = dm.pdist(self.X, squareform=True) ind_dm = np.argsort(D, 1)[:, :k] dist_dm = D[np.arange(self.X.shape[0])[:, None], ind_dm] # we don't check the indices here because if there is a tie for # nearest neighbor, then the test may fail. Distances will reflect # whether the search was successful assert_array_almost_equal(dist_bt, dist_dm)
def _check_metrics_bool(self, k, metric, kwargs): bt = BallTree(self.Xbool, metric=metric, **kwargs) dist_bt, ind_bt = bt.query(self.Ybool, k=k) dm = DistanceMetric(metric=metric, **kwargs) D = dm.cdist(self.Ybool, self.Xbool) ind_dm = np.argsort(D, 1)[:, :k] dist_dm = D[np.arange(self.Ybool.shape[0])[:, None], ind_dm] # we don't check the indices here because there are very often # ties for nearest neighbors, which cause the test to fail. # Distances will be correct in either case. assert_array_almost_equal(dist_bt, dist_dm)
def _check_metrics_float(self, k, metric, kwargs): bt = BallTree(self.X, metric=metric, **kwargs) dist_bt, ind_bt = bt.query(self.X, k=k) dm = DistanceMetric(metric=metric, **kwargs) D = dm.pdist(self.X, squareform=True) ind_dm = np.argsort(D, 1)[:, :k] dist_dm = D[np.arange(self.X.shape[0])[:, None], ind_dm] # we don't check the indices here because if there is a tie for # nearest neighbor, then the test may fail. Distances will reflect # whether the search was successful assert_array_almost_equal(dist_bt, dist_dm)
def _check_metrics_bool(self, k, metric, kwargs): bt = BallTree(self.Xbool, metric=metric, **kwargs) dist_bt, ind_bt = bt.query(self.Ybool, k=k) dm = DistanceMetric(metric=metric, **kwargs) D = dm.cdist(self.Ybool, self.Xbool) ind_dm = np.argsort(D, 1)[:, :k] dist_dm = D[np.arange(self.Ybool.shape[0])[:, None], ind_dm] # we don't check the indices here because there are very often # ties for nearest neighbors, which cause the test to fail. # Distances will be correct in either case. assert_array_almost_equal(dist_bt, dist_dm)
def test_pickle(self): bt1 = BallTree(self.X, leaf_size=1) ind1, dist1 = bt1.query(self.X) for protocol in (0, 1, 2): yield (self._check_pickle, protocol, bt1, ind1, dist1)
def test_pickle(self): bt1 = BallTree(self.X, leaf_size=1) ind1, dist1 = bt1.query(self.X) for protocol in (0, 1, 2): yield (self._check_pickle, protocol, bt1, ind1, dist1)