def test_euclidean_distance(self):
        attributes = [
            attr.Attribute('A1', ['a', 'b'], 0),
            attr.Attribute('A2', ['continuous'], 1),
            attr.Attribute('A3', ['continuous'], 2),
            attr.Attribute('A4', ['g', 'h'], 3)
        ]
        instance1 = ins.TrainingInstance(['a', 5, 3.4, 'g'], 'y')
        instance2 = ins.TestInstance(['a', 5, 3.4, 'g'])
        self.assertEqual(
            0,
            distancemetric.euclidean_distance(instance1, instance2,
                                              attributes))

        instance2 = ins.TestInstance(['b', 5, 3.4, 'g'])
        self.assertEqual(
            1,
            distancemetric.euclidean_distance(instance1, instance2,
                                              attributes))

        instance2 = ins.TestInstance(['b', 4, 3.4, 'h'])
        self.assertEqual(
            math.sqrt(3),
            distancemetric.euclidean_distance(instance1, instance2,
                                              attributes))

        instance2 = ins.TestInstance(['b', 4, 1.4, 'h'])
        self.assertEqual(
            math.sqrt(7),
            distancemetric.euclidean_distance(instance1, instance2,
                                              attributes))
    def test_euclidean_distance(self):
        attributes = [attr.Attribute('A1', ['a','b'], 0), attr.Attribute('A2', ['continuous'], 1), 
                      attr.Attribute('A3', ['continuous'], 2), attr.Attribute('A4', ['g','h'], 3)]
        instance1 = ins.TrainingInstance(['a', 5, 3.4, 'g'], 'y')
        instance2 = ins.TestInstance(['a', 5, 3.4, 'g'])
        self.assertEqual(0, distancemetric.euclidean_distance(instance1, instance2, attributes))
        
        instance2 = ins.TestInstance(['b', 5, 3.4, 'g'])
        self.assertEqual(1, distancemetric.euclidean_distance(instance1, instance2, attributes))

        instance2 = ins.TestInstance(['b', 4, 3.4, 'h'])
        self.assertEqual(math.sqrt(3), distancemetric.euclidean_distance(instance1, instance2, attributes))

        instance2 = ins.TestInstance(['b', 4, 1.4, 'h'])
        self.assertEqual(math.sqrt(7), distancemetric.euclidean_distance(instance1, instance2, attributes))
Example #3
0
 def classify(self, instances):
     for each_test in instances:
         id = InstanceDistances()
         for each_training in self.training:
             dist = dm.euclidean_distance(each_test, each_training, self.attributes)
             id.distance(dist, each_training)
         each_test.classified_klass = id.klass(majority_klass_vote)