KNORA-U¶
-
class
deslib.des.knora_u.
KNORAU
(pool_classifiers, k=7, DFP=False, with_IH=False, safe_k=None, IH_rate=0.3)[source]¶ k-Nearest Oracles Union (KNORA-U).
This method works selects all classifiers that correctly classified at least one sample belonging to the region of competence of the test sample x. Each selected classifier has a number of votes equals to the number of samples in the region of competence that it predicts the correct label.
Parameters: - k : int (Default = 7)
Number of neighbors used to estimate the competence of the base classifiers.
- DFP : Boolean (Default = False)
Determines if the dynamic frienemy pruning is applied.
- with_IH : Boolean (Default = False)
Whether the hardness level of the region of competence is used to decide between using the DS algorithm or the KNN for classification of a given query sample.
- safe_k : int (default = None)
The size of the indecision region.
- IH_rate : float (default = 0.3)
Hardness threshold. If the hardness level of the competence region is lower than the IH_rate the KNN classifier is used. Otherwise, the DS algorithm is used for classification.
- aknn : Boolean (Default = False)
Determines the type of KNN algorithm that is used. set to true for the A-KNN method.
References
Ko, Albert HR, Robert Sabourin, and Alceu Souza Britto Jr. “From dynamic classifier selection to dynamic ensemble selection.” Pattern Recognition 41.5 (2008): 1718-1731.
Britto, Alceu S., Robert Sabourin, and Luiz ES Oliveira. “Dynamic selection of classifiers—a comprehensive review.” Pattern Recognition 47.11 (2014): 3665-3680.
R. M. O. Cruz, R. Sabourin, and G. D. Cavalcanti, “Dynamic classifier selection: Recent advances and perspectives,” Information Fusion, vol. 41, pp. 195 – 216, 2018.
-
estimate_competence
(query)[source]¶ The competence of the base classifiers is simply estimated as the number of samples in the region of competence that it correctly classified.
Parameters: - query : array of shape = [n_features] containing the test sample
Returns: - competences : array of shape = [n_classifiers] containing the competence level estimated
for each base classifier
-
fit
(X, y)[source]¶ Prepare the DS model by setting the KNN algorithm and pre-processing the information required to apply the DS methods
Parameters: - X : matrix of shape = [n_samples, n_features] with the data.
- y : class labels of each sample in X.
Returns: - self
-
predict
(X)[source]¶ Predict the class label for each sample in X.
Parameters: - X : array of shape = [n_samples, n_features]
The input data.
Returns: - predicted_labels : array of shape = [n_samples]
Predicted class label for each sample in X.
-
predict_proba
(X)[source]¶ Estimates the posterior probabilities for sample in X.
Parameters: - X : array of shape = [n_samples, n_features]
The input data.
Returns: - predicted_proba : array of shape = [n_samples, n_classes] with the
- probabilities estimates for each class in the classifier model.
-
score
(X, y, sample_weight=None)[source]¶ Returns the mean accuracy on the given test data and labels.
In multi-label classification, this is the subset accuracy which is a harsh metric since you require for each sample that each label set be correctly predicted.
Parameters: - X : array-like, shape = (n_samples, n_features)
Test samples.
- y : array-like, shape = (n_samples) or (n_samples, n_outputs)
True labels for X.
- sample_weight : array-like, shape = [n_samples], optional
Sample weights.
Returns: - score : float
Mean accuracy of self.predict(X) wrt. y.
-
select
(query)[source]¶ Select the base classifiers for the classification of the query sample.
Each base classifier can be selected more than once. The number of times a base classifier is selected (votes) is equals to the number of samples it correctly classified in the region of competence.
Parameters: - query : array of shape = [n_features] containing the test sample
Returns: - votes : the number of votes for each class