def test_estimate_competence_kuncheva_ex(): query = np.array([1, 1]) a_posteriori_test = APosteriori([create_base_classifier(return_value=1)], k=k_ex_kuncheva) a_posteriori_test.processed_dsel = dsel_processed_kuncheva a_posteriori_test.dsel_scores = dsel_scores_ex_kuncheva a_posteriori_test.DSEL_target = y_dsel_ex_kuncheva_dependent a_posteriori_test.n_classes = n_classes_ex_kuncheva a_posteriori_test.neighbors = neighbors_ex_kuncheva a_posteriori_test.distances = distances_ex_kuncheva a_posteriori_test.DFP_mask = [1] competences = a_posteriori_test.estimate_competence(query.reshape(1, -1)) assert np.isclose(competences, 0.95, atol=0.01)
def test_estimate_competence_all_ones(index): query = np.array([1, 1]) a_posteriori_test = APosteriori(create_pool_classifiers()) a_posteriori_test.processed_dsel = dsel_processed_ex1 a_posteriori_test.dsel_scores = dsel_scores_all_ones a_posteriori_test.DSEL_target = y_dsel_ex1 a_posteriori_test.n_classes = 2 a_posteriori_test.neighbors = neighbors_ex1[index, :] a_posteriori_test.distances = distances_all_ones[index, :] a_posteriori_test.DFP_mask = [1, 1, 1] expected = [1.0, 1.0, 1.0] competences = a_posteriori_test.estimate_competence(query.reshape(1, -1)) assert np.isclose(competences, expected).all()
def test_estimate_competence_kuncheva_ex(): query = np.atleast_2d([1, 1]) a_posteriori_test = APosteriori([create_base_classifier(return_value=1)], k=k_ex_kuncheva) a_posteriori_test.processed_dsel = dsel_processed_kuncheva a_posteriori_test.dsel_scores = dsel_scores_ex_kuncheva a_posteriori_test.DSEL_target = y_dsel_ex_kuncheva_dependent a_posteriori_test.n_classes = n_classes_ex_kuncheva a_posteriori_test.neighbors = neighbors_ex_kuncheva a_posteriori_test.distances = distances_ex_kuncheva a_posteriori_test.DFP_mask = [1] predictions = [] for clf in a_posteriori_test.pool_classifiers: predictions.append(clf.predict(query)[0]) competences = a_posteriori_test.estimate_competence( query, predictions=np.array(predictions)) assert np.isclose(competences, 0.95, atol=0.01)
def test_estimate_competence_all_ones(index): query = np.atleast_2d([1, 1]) a_posteriori_test = APosteriori(create_pool_classifiers()) a_posteriori_test.processed_dsel = dsel_processed_ex1 a_posteriori_test.dsel_scores = dsel_scores_all_ones a_posteriori_test.DSEL_target = y_dsel_ex1 a_posteriori_test.n_classes = 2 a_posteriori_test.neighbors = neighbors_ex1[index, :] a_posteriori_test.distances = distances_all_ones[index, :] a_posteriori_test.DFP_mask = [1, 1, 1] expected = [1.0, 1.0, 1.0] predictions = [] for clf in a_posteriori_test.pool_classifiers: predictions.append(clf.predict(query)[0]) competences = a_posteriori_test.estimate_competence( query, predictions=np.array(predictions)) assert np.isclose(competences, expected).all()
def test_estimate_competence_kuncheva_ex_batch(): # considering a batch composed of 10 samples query = np.ones((10, 2)) a_posteriori_test = APosteriori([create_base_classifier(return_value=1)], k=k_ex_kuncheva) a_posteriori_test.processed_dsel = dsel_processed_kuncheva a_posteriori_test.dsel_scores = dsel_scores_ex_kuncheva a_posteriori_test.DSEL_target = y_dsel_ex_kuncheva_dependent a_posteriori_test.n_classes = n_classes_ex_kuncheva # repeating the same matrix in a new axis to simulate a batch input. a_posteriori_test.neighbors = np.tile(neighbors_ex_kuncheva, (10, 1)) a_posteriori_test.distances = np.tile(distances_ex_kuncheva, (10, 1)) a_posteriori_test.DFP_mask = np.ones((10, 1)) predictions = [] for clf in a_posteriori_test.pool_classifiers: predictions.append(clf.predict(query)[0]) competences = a_posteriori_test.estimate_competence( query, predictions=np.array(predictions)) assert np.allclose(competences, 0.95, atol=0.01)