def test_pearson_score(self): self.assertEquals(pearson_score([42], [42]), 0.0) self.assertEquals(pearson_score([0, 1, 2], [0, 1, 2]), 0.0) self.assertEquals(pearson_score([0, 1, 3], [0, 1, 2]), 0.051316701949486232) self.assertEquals(pearson_score([0, 1, 2], [0, 1, 3]), 0.051316701949486232)
def compute_related(object_id, dataset): """Compute related nodetypes to a nodetype with a dataset""" object_vector = None for nodetype, e_vector in dataset.items(): if nodetype.pk == object_id: object_vector = e_vector if not object_vector: return [] nodetype_related = {} for nodetype, e_vector in dataset.items(): if nodetype.pk != object_id: score = pearson_score(object_vector, e_vector) if score: nodetype_related[nodetype] = score related = sorted(nodetype_related.items(), key=lambda(k, v): (v, k)) return [rel[0] for rel in related]