Exemplo n.º 1
0
def test_estimate_competence_batch(example_estimate_competence,
                                   create_pool_classifiers):
    _, y, nn, _, dsel_processed, dsel_scores = example_estimate_competence

    query = np.ones((3, 1))
    meta_test = METADES(pool_classifiers=create_pool_classifiers)
    meta_test.n_classifiers_ = 3
    n_meta_features = 21
    meta_test.meta_classifier_ = GaussianNB
    # Set the state of the system which is set by the fit method.
    meta_test.DSEL_processed_ = dsel_processed
    meta_test.dsel_scores_ = dsel_scores
    meta_test.DSEL_target_ = y
    nn = nn

    meta_test._get_similar_out_profiles = MagicMock(
        return_value=(None, nn[:, 0:meta_test.Kp]))
    meta_test.compute_meta_features = MagicMock(
        return_value=np.ones((9, n_meta_features)))
    meta_test.meta_classifier_.predict_proba = MagicMock(
        return_value=np.tile([0.0, 0.8], (9, 1)))

    probabilities = []
    for clf in meta_test.pool_classifiers:
        probabilities.append(clf.predict_proba(query))

    probabilities = np.array(probabilities).transpose((1, 0, 2))

    expected = np.ones((3, 3)) * 0.8
    competences = meta_test.estimate_competence_from_proba(
        query, nn, probabilities)
    assert np.array_equal(competences, expected)
Exemplo n.º 2
0
def test_estimate_competence(example_estimate_competence,
                             create_pool_classifiers):
    _, y, nn, _, dsel_processed, dsel_scores = example_estimate_competence

    query = np.ones((1, 2))
    meta_test = METADES(create_pool_classifiers)
    meta_test.n_classifiers_ = 3
    meta_test.k_ = 7
    meta_test.Kp_ = 5
    # Set the state of the system which is set by the fit method.
    meta_test.DSEL_processed_ = dsel_processed
    meta_test.dsel_scores_ = dsel_scores
    meta_test.DSEL_target_ = y
    meta_test.n_classes_ = 2

    meta_test.meta_classifier_ = GaussianNB()

    meta_test._get_similar_out_profiles = MagicMock(
        return_value=(None, nn[0, 0:meta_test.Kp]))
    meta_test.meta_classifier_.predict_proba = MagicMock(
        return_value=np.array([[0.2, 0.8], [1.0, 0.0], [0.2, 0.8]]))

    probabilities = []
    for clf in meta_test.pool_classifiers:
        probabilities.append(clf.predict_proba(query))

    probabilities = np.array(probabilities).transpose((1, 0, 2))

    expected = np.array([[0.8, 0.0, 0.8]])
    competences = meta_test.estimate_competence_from_proba(
        query, nn[0, :], probabilities)
    assert np.array_equal(competences, expected)
Exemplo n.º 3
0
def test_estimate_competence():

    query = np.ones((1, 2))
    meta_test = METADES(create_pool_classifiers())

    # Set the state of the system which is set by the fit method.
    meta_test.processed_dsel = dsel_processed_ex1
    meta_test.dsel_scores = dsel_scores_ex1
    meta_test.DSEL_target = y_dsel_ex1
    meta_test.n_classes = 2

    meta_test.meta_classifier = GaussianNB()
    meta_test.neighbors = neighbors_ex1[0, :]
    meta_test.distances = distances_ex1[0, :]

    meta_test._get_similar_out_profiles = MagicMock(
        return_value=(None, neighbors_ex1[0, 0:meta_test.Kp]))
    meta_test.meta_classifier.predict_proba = MagicMock(
        return_value=np.array([[0.2, 0.8], [1.0, 0.0], [0.2, 0.8]]))

    probabilities = []
    for clf in meta_test.pool_classifiers:
        probabilities.append(clf.predict_proba(query))

    probabilities = np.array(probabilities).transpose((1, 0, 2))

    expected = np.array([[0.8, 0.0, 0.8]])
    competences = meta_test.estimate_competence_from_proba(
        query, probabilities)
    assert np.array_equal(competences, expected)
Exemplo n.º 4
0
def test_estimate_competence():

    query = np.atleast_2d([1, 1])
    meta_test = METADES(create_pool_classifiers())

    # Set the state of the system which is set by the fit method.
    meta_test.processed_dsel = dsel_processed_ex1
    meta_test.dsel_scores = dsel_scores_ex1
    meta_test.DSEL_target = y_dsel_ex1
    meta_test.n_classes = 3

    meta_test.meta_classifier = GaussianNB()
    meta_test.neighbors = neighbors_ex1
    meta_test.distances = distances_ex1

    meta_test._get_similar_out_profiles = MagicMock(
        return_value=[0, neighbors_ex1[2, 0:meta_test.Kp]])

    meta_test.meta_classifier.predict_proba = MagicMock(
        return_value=np.array([[0.0, 0.8]]))
    meta_test.DFP_mask = np.array([1, 0, 1])

    competences = meta_test.estimate_competence(query)
    assert np.allclose(competences, [0.8, 0.0, 0.8])