def purity(self) -> evaluation.FitnessResult: """Purity is the product of the frequencies of the most frequent labels carried by the nodes within the communities :return: FitnessResult object """ res = None if self.coms_labels is not None: res = evaluation.purity(self.coms_labels) return res
def test_purity(self): l1 = ["one", "two", "three", "four"] l2 = ["A", "B", "C"] g_attr = nx.barabasi_albert_graph(100, 5) labels = dict() for node in g_attr.nodes(): labels[node] = {"l1": random.choice(l1), "l2": random.choice(l2)} coms = eva(g_attr, labels, alpha=0.8) pur = evaluation.purity(coms) self.assertGreaterEqual(pur.score, 0) self.assertLessEqual(pur.score, 1)