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))
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)