Ejemplo n.º 1
0
    def __init__(self, D:np.ndarray, secondary_distance_type:str,
                 metric:str='distance', classes:np.ndarray=None,
                 vectors:np.ndarray=None):
        """Initialize a hubness experiment"""

        IO._check_distance_matrix_shape(D)
        IO._check_valid_metric_parameter(metric)
        if secondary_distance_type not in SEC_DIST.keys():
            raise ValueError("Requested secondary distance type unknown.")
        if classes is not None:
            IO._check_distance_matrix_shape_fits_labels(D, classes)
        if vectors is None:
            self.embedding_dim = None
        else: # got vectors
            IO._check_distance_matrix_shape_fits_vectors(D, vectors)
            self.embedding_dim = vectors.shape[1]
        self.original_distance = D
        self.secondary_distance_type = secondary_distance_type
        self.classes = classes
        self.vectors = vectors
        self.metric = metric
        self.n = D.shape[0]
        # Obtained later through functions:
        self.secondary_distance = None
        self.hubness = dict()
        self.anti_hubs = dict()
        self.max_hub_k_occurence = dict()
        self.knn_accuracy = dict()
        self.gk_index = None
Ejemplo n.º 2
0
 def test_check_dist_vs_vectors(self):
     with self.assertRaises(TypeError):
         D = np.zeros((5, 5))
         vectors = np.zeros((4, 5))
         IO._check_distance_matrix_shape_fits_vectors(D, vectors)