Diversity¶
This file contains the implementation of key diversity measures found in the ensemble literature:
- Double Fault
- Negative Double fault
- Q-statistics
- Ratio of errors
The implementation are made according to the specifications from the book “Combining Pattern Classifiers”.
-
deslib.util.diversity.
Q_statistic
(y, y_pred1, y_pred2)[source]¶ Calculates the Q-statistics diversity measure between a pair of classifiers. The Q value is in a range [-1, 1]. Classifiers that tend to classify the same object correctly will have positive values of Q, and Q = 0 for two independent classifiers.
Parameters: - y : array of shape (n_samples):
class labels of each sample.
- y_pred1 : array of shape (n_samples):
predicted class labels by the classifier 1 for each sample.
- y_pred2 : array of shape (n_samples):
predicted class labels by the classifier 2 for each sample.
Returns: - Q : The q-statistic measure between two classifiers
-
deslib.util.diversity.
agreement_measure
(y, y_pred1, y_pred2)[source]¶ Calculates the agreement measure between a pair of classifiers. This measure is calculated by the frequency that both classifiers either obtained the correct or incorrect prediction for any given sample
Parameters: - y : array of shape (n_samples):
class labels of each sample.
- y_pred1 : array of shape (n_samples):
predicted class labels by the classifier 1 for each sample.
- y_pred2 : array of shape (n_samples):
predicted class labels by the classifier 2 for each sample.
Returns: - agreement : The frequency at which both classifiers agrees
-
deslib.util.diversity.
compute_pairwise_diversity
(targets, prediction_matrix, diversity_func)[source]¶ Computes the pairwise diversity matrix.
Parameters: - targets : array of shape (n_samples):
Class labels of each sample in X.
- prediction_matrix : array of shape (n_samples, n_classifiers):
Predicted class labels for each classifier in the pool
- diversity_func : Function
Function used to estimate the pairwise diversity
Returns: - diversity : array of shape = [n_classifiers]
The average pairwise diversity matrix calculated for the pool of classifiers
-
deslib.util.diversity.
correlation_coefficient
(y, y_pred1, y_pred2)[source]¶ Calculates the correlation between two classifiers using oracle outputs. Coefficient is a value in a range [-1, 1].
Parameters: - y : array of shape (n_samples):
class labels of each sample.
- y_pred1 : array of shape (n_samples):
predicted class labels by the classifier 1 for each sample.
- y_pred2 : array of shape (n_samples):
predicted class labels by the classifier 2 for each sample.
Returns: - rho : The correlation coefficient measured between two classifiers
-
deslib.util.diversity.
disagreement_measure
(y, y_pred1, y_pred2)[source]¶ Calculates the disagreement measure between a pair of classifiers. This measure is calculated by the frequency that only one classifier makes the correct prediction.
Parameters: - y : array of shape (n_samples):
class labels of each sample.
- y_pred1 : array of shape (n_samples):
predicted class labels by the classifier 1 for each sample.
- y_pred2 : array of shape (n_samples):
predicted class labels by the classifier 2 for each sample.
Returns: - disagreement : The frequency at which both classifiers disagrees
-
deslib.util.diversity.
double_fault
(y, y_pred1, y_pred2)[source]¶ Calculates the double fault (df) measure. This measure represents the probability that both classifiers makes the wrong prediction. A lower value of df means the base classifiers are less likely to make the same error. This measure must be minimized to increase diversity.
Parameters: - y : array of shape (n_samples):
class labels of each sample.
- y_pred1 : array of shape (n_samples):
predicted class labels by the classifier 1 for each sample.
- y_pred2 : array of shape (n_samples):
predicted class labels by the classifier 2 for each sample.
Returns: - df : The double fault measure between two classifiers
References
Giacinto, Giorgio, and Fabio Roli. “Design of effective neural network ensembles for image classification purposes.” Image and Vision Computing 19.9 (2001): 699-707.
-
deslib.util.diversity.
negative_double_fault
(y, y_pred1, y_pred2)[source]¶ The negative of the double fault measure. This measure should be maximized for a higher diversity.
Parameters: - y : array of shape (n_samples):
class labels of each sample.
- y_pred1 : array of shape (n_samples):
predicted class labels by the classifier 1 for each sample.
- y_pred2 : array of shape (n_samples):
predicted class labels by the classifier 2 for each sample.
Returns: - df : The negative double fault measure between two classifiers
References
Giacinto, Giorgio, and Fabio Roli. “Design of effective neural network ensembles for image classification purposes.” Image and Vision Computing 19.9 (2001): 699-707.
-
deslib.util.diversity.
ratio_errors
(y, y_pred1, y_pred2)[source]¶ Calculates Ratio of errors diversity measure between a pair of classifiers. A higher value means that the base classifiers are less likely to make the same errors. The ratio must be maximized for a higher diversity
Parameters: - y : array of shape (n_samples):
class labels of each sample.
- y_pred1 : array of shape (n_samples):
predicted class labels by the classifier 1 for each sample.
- y_pred2 : array of shape (n_samples):
predicted class labels by the classifier 2 for each sample.
Returns: - ratio : The q-statistic measure between two classifiers
References
Aksela, Matti. “Comparison of classifier selection methods for improving committee performance.” Multiple Classifier Systems (2003): 159-159.