def get_distribution(self, instance, class_attribute): dist = [0.0 for i in range(class_attribute.num_values())] for i in range(class_attribute.num_values()): mass = self.class_distribution.get(class_attribute.value(i), None) if mass is not None: dist[i] = mass.weight else: dist[i] = 1.0 utils.normalize(dist) return dist
def distribution_for_instance(self, instance): """Return the class probabilities for an instance. Args: instance (Instance): The instance to calculate the class probabilites for. Returns: list[float]: The class probabilities. """ class_attribute = instance.class_attribute() pred = [] if self._root is not None: l = self._root.leaf_for_instance(instance, None, None) actual_node = l.the_node if actual_node is None: actual_node = l.parent_node pred = actual_node.get_distribution(instance, class_attribute) else: # All class values equally likely pred = [1 for i in range(class_attribute.num_values())] utils.normalize(pred) return pred
def get_scores(self, samples): return normalize(self.classifier.decision_function(samples).tolist(), absolute=True)