def MedidasDiversidade(medida, x_val, y_val, ensemble): ''' Metodo para calcular a diversidade de um ensemble utilizando a estatistica Q :param: x_val: dados com atributos que serao usados para a poda :param: y_val: dados com rotulos que serao usados para a poda :return: Q: diversidade do ensemble ''' L = len(ensemble.estimators_) Q = 0 for i in range(L-1): for k in range(i+1, L): y_pred0 = ensemble.estimators_[i].predict(x_val) y_pred1 = ensemble.estimators_[k].predict(x_val) if(medida == 'q'): Q += Q_statistic(y_val, y_pred0, y_pred1) elif(medida == 'disagreement'): Q += disagreement_measure(y_val, y_pred0, y_pred1) Q = (2/(L*(L-1)))*Q return Q
def test_disagreement(): disagreement = disagreement_measure(y_real, y_pred_classifier1, y_pred_classifier2) assert np.isclose(disagreement, 0.5)
def test_disagreement(example_diversity): y_pred_classifier1, y_pred_classifier2, y_real, y_ex1 = example_diversity disagreement = disagreement_measure(y_real, y_pred_classifier1, y_pred_classifier2) assert np.isclose(disagreement, 0.5)