Skip to content

METADES get index error when predicting testing data. #278

@IxSxHxY

Description

@IxSxHxY

I try to use METADES to predict the testing data, however it shows the index error.
The shape of the data is
X_train.shape = (5040, 192)
X_test.shape = (1260, 192)
Below is the implementation:

pool = [mlp1, mlp2, mlp3, mlp4, mlp5]
mt = METADES(pool)
mt.fit(X_train, y_train)

score = mt.score(X_test, y_test)

predict(), predict_proba(), score() works on training data but not testing data too.

Here is the error message:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Cell In[525], line 1
----> 1 kk.predict_proba(X_test)

File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\deslib\base.py:643, in BaseDS.predict_proba(self, X)
    638             DFP_mask = np.ones(
    639                 (ind_ds_classifier.size, self.n_classifiers_))
    641         ind_ds_original_matrix = ind_disagreement[ind_ds_classifier]
--> 643         proba_ds = self.predict_proba_with_ds(
    644             X[ind_ds_original_matrix],
    645             base_predictions[
    646                 ind_ds_original_matrix],
    647             base_probabilities[
    648                 ind_ds_original_matrix],
    649             neighbors=neighbors,
    650             distances=distances,
    651             DFP_mask=DFP_mask)
    653         predicted_proba[ind_ds_original_matrix] = proba_ds
    655 return predicted_proba

File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\deslib\des\base.py:269, in BaseDES.predict_proba_with_ds(self, query, predictions, probabilities, neighbors, distances, DFP_mask)
    262     raise ValueError(
    263         'The arrays query and predictions must have the same number'
    264         ' of samples. query.shape is {}'
    265         'and predictions.shape is {}'.format(query.shape,
    266                                              predictions.shape))
    268 if self.needs_proba:
--> 269     competences = self.estimate_competence_from_proba(
    270         query,
    271         neighbors=neighbors,
    272         distances=distances,
    273         probabilities=probabilities)
    274 else:
    275     competences = self.estimate_competence(query,
    276                                            neighbors=neighbors,
    277                                            distances=distances,
    278                                            predictions=predictions)

File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\deslib\des\meta_des.py:483, in METADES.estimate_competence_from_proba(self, query, neighbors, probabilities, distances)
    479     meta_feature_vectors = np.digitize(meta_feature_vectors,
    480                                        np.linspace(0.1, 1, 10))
    482 # Get the probability for class 1 (Competent)
--> 483 competences = self.meta_classifier_.predict_proba(
    484     meta_feature_vectors)[:, 1]
    486 # Reshape the array from 1D [n_samples x n_classifiers]
    487 # to 2D [n_samples, n_classifiers]
    488 competences = competences.reshape(-1, self.n_classifiers_)

IndexError: index 1 is out of bounds for axis 1 with size 1

May I know what is the problem?

Edit 1: Change code snippet to python code snippet

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions