예제 #1
0
    def test_run(self):
        state = Mock()
        state.is_interruption_requested = Mock(return_value=False)
        for name, metric in METRICS:
            data = self.iris
            if not metric.supports_missing or name == "Bhattacharyya":
                data = distance.impute(data)
            elif name == "Jaccard":
                data = self.zoo

            # between rows, normalized
            dist1 = DistanceRunner.run(data, metric, True, 0, state)
            dist2 = metric(data, axis=1, impute=True, normalize=True)
            self.assertDistMatrixEqual(dist1, dist2)

            # between rows, not normalized
            dist1 = DistanceRunner.run(data, metric, False, 0, state)
            dist2 = metric(data, axis=1, impute=True, normalize=False)
            self.assertDistMatrixEqual(dist1, dist2)

            # between columns, normalized
            dist1 = DistanceRunner.run(data, metric, True, 1, state)
            dist2 = metric(data, axis=0, impute=True, normalize=True)
            self.assertDistMatrixEqual(dist1, dist2)

            # between columns, not normalized
            dist1 = DistanceRunner.run(data, metric, False, 1, state)
            dist2 = metric(data, axis=0, impute=True, normalize=False)
            self.assertDistMatrixEqual(dist1, dist2)
예제 #2
0
 def _fix_missing():
     nonlocal data
     if not metric.supports_missing and bn.anynan(data.X):
         self.Warning.imputing_data()
         data = distance.impute(data)
 def _fix_missing():
     nonlocal data
     if not metric.supports_missing and bn.anynan(data.X):
         self.Warning.imputing_data()
         data = distance.impute(data)