def computePerformance(self, instances):
X = instances.features
labels = instances.true_labels
# For unsupervised projection methods, the performance is always computed with the labels (not the families).
if hasattr(self.projection.conf, 'families_supervision'):
if self.projection.conf.families_supervision:
labels = instances.true_families
unique_labels, label_inds = np.unique(labels, return_inverse = True)
ratio = 0
for li in xrange(len(unique_labels)):
Xc = X[label_inds == li]
Xnc = X[label_inds != li]
ratio += pairwise_distances(Xc).mean() / pairwise_distances(Xc, Xnc).mean()
self.class_separation = ratio / len(unique_labels)
评论列表
文章目录