Пример #1
0
 def test_dimensions(self):
     x = Table('iris')[:20].X
     xt = Table('iris')[:20].X.T
     mah = MahalanobisDistance(x)
     mah(x[0], x[1])
     mah = MahalanobisDistance(xt)
     mah(xt[0], xt[1])
Пример #2
0
 def test_correctness(self):
     mah = MahalanobisDistance(self.x)
     d = scipy.spatial.distance.pdist(self.x, 'mahalanobis')
     d = scipy.spatial.distance.squareform(d)
     for i in range(self.n):
         for j in range(self.n):
             self.assertAlmostEqual(d[i][j], mah(self.x[i], self.x[j]),
                                    delta=1e-5)
Пример #3
0
 def test_distance_combo(self):
     """Check distances when the metric changes"""
     self.assertEqual(self.widget.metrics_combo.count(), len(METRICS))
     self.send_signal("Data", self.iris)
     for i, metric in enumerate(METRICS):
         if isinstance(metric, MahalanobisDistance):
             metric = MahalanobisDistance(self.iris)
         self.widget.metrics_combo.activated.emit(i)
         self.widget.metrics_combo.setCurrentIndex(i)
         self.send_signal("Data", self.iris)
         np.testing.assert_array_equal(metric(self.iris),
                                       self.get_output("Distances"))
Пример #4
0
 def test_attributes(self):
     metric = MahalanobisDistance(self.x)
     self.assertEqual(metric(self.x[0], self.x[1]).shape, (1, 1))
     self.assertEqual(metric(self.x).shape, (self.n, self.n))
     self.assertEqual(metric(self.x[0:3], self.x[5:7]).shape, (3, 2))
     self.assertEqual(metric(self.x1, self.x2).shape, (1, 1))
     metric(self.x, impute=True)
     metric(self.x[:-1, :])
     self.assertRaises(ValueError, metric, self.x[:, :-1])
     self.assertRaises(ValueError, metric, self.x1[:-1], self.x2)
     self.assertRaises(ValueError, metric, self.x1, self.x2[:-1])
     self.assertRaises(ValueError, metric, self.x.T)
Пример #5
0
    def test_knn_distance(self):
        icp = InductiveClassifier(KNNDistance(Euclidean), self.train,
                                  self.calibrate)
        pred = icp(self.test.x, 0.1)
        self.assertEqual(pred, ['Iris-setosa'])

        icp = InductiveClassifier(KNNDistance(Cosine, 5), self.train,
                                  self.calibrate)
        pred = icp(self.test.x, 0.1)
        self.assertEqual(pred, ['Iris-setosa'])

        from Orange.distance import Mahalanobis
        icp = InductiveClassifier(KNNDistance(Mahalanobis, 5), self.train,
                                  self.calibrate)
        pred = icp(self.test.x, 0.1)
        self.assertEqual(pred, ['Iris-setosa'])

        from Orange.distance import MahalanobisDistance
        Mah = MahalanobisDistance(self.train)
        icp = InductiveClassifier(KNNDistance(Mah, 5), self.train,
                                  self.calibrate)
        pred = icp(self.test.x, 0.1)
        self.assertEqual(pred, ['Iris-setosa'])
Пример #6
0
 def test_iris(self):
     tab = Table('iris')
     metric = MahalanobisDistance(tab)
     self.assertEqual(metric(tab).shape, (150, 150))
     self.assertEqual(metric(tab[0], tab[1]).shape, (1, 1))