def test_double_fault(): labels = np.array([0, 0, 0, 0, 1, 1, 1]) pred1 = np.array([1, 0, 1, 0, 0, 0, 0]) pred2 = np.array([1, 0, 0, 0, 1, 0, 0]) actual = double_fault(labels, pred1, pred2) assert actual == 3. / 7 # three common errors out of 7 predictions
def diversity_matrix(pool_classifiers, X, y, pruned_indices): if pruned_indices is not None: preds = np.array([ pool_classifiers.estimators_[id].predict(X) for id in pruned_indices ]) else: preds = np.array([ estimator.predict(X) for estimator in pool_classifiers.estimators_ ]) n = len(preds) div = np.zeros((n, n)) for i in range(n): div[i][i] = double_fault(y, preds[i], preds[i]) for i in range(n): for j in range(i + 1, n): div[i][j] = div[j][i] = double_fault(y, preds[i], preds[j]) return div
def test_double_fault_ones(): df = double_fault(y_dsel_ex1, y_pred_ones, y_pred_ones) assert df == 9.0 / 15.0
def test_double_fault_zeros(): df = double_fault(y_dsel_ex1, y_pred_zeros, y_pred_zeros) assert df == 6.0 / 15.0
def test_double_fault_order(): df1 = double_fault(y_dsel_ex1, y_pred_ones, y_pred_zeros) df2 = double_fault(y_dsel_ex1, y_pred_zeros, y_pred_ones) assert df1 == df2
def test_double_fault_ones_zeros(): df = double_fault(y_dsel_ex1, y_pred_ones, y_pred_zeros) assert df == 0.0
def test_double_fault_ones(example_diversity_ones_zeros): y, y_pred_ones, y_pred_zeros = example_diversity_ones_zeros df = double_fault(y, y_pred_ones, y_pred_ones) assert df == 9.0 / 15.0
def test_double_fault_order(example_diversity_ones_zeros): y, y_pred_ones, y_pred_zeros = example_diversity_ones_zeros df1 = double_fault(y, y_pred_ones, y_pred_zeros) df2 = double_fault(y, y_pred_zeros, y_pred_ones) assert df1 == df2