2017-10-05 5 views
0

Je suis en train de créer un classificateur de forêt aléatoire pour un problème de classification binaire.Mes étiquettes sont toutes numériques.ValueError: Type d'étiquette inconnu: 'unknown' -Les étiquettes sont numériques

print labels.unique() 
[1 0] 

print type(labels) 
    <class 'pandas.core.series.Series'> 
print labels.shape 
(3000,) 

Mais quand je suis ajustement du modèle avec Gridsearchcv

pipeline = Pipeline(steps=[('scaler', scaler), ('algorithm', algo)]) 
cv = StratifiedShuffleSplit(labels, 5, test_size=0.25, random_state=42) 
gs = GridSearchCV(pipeline, param_grid, cv=cv, scoring='f1') 
gs.fit(features, labels) 

Je reçois cette erreur

ValueError: Unknown label type: 'unknown' 

Mais quand j'utilise

gs.fit(features, labels.astype(int)) 

Il fonctionne bien .Peut-on me dire où mentir s le problème dans mes étiquettes?

Répondre

1

Vous avez juste besoin de changer le type de vos étiquettes à la liste en utilisant la méthode tolist(). Utiliser

labels_lst = labels.tolist() 

Scikit-learn ne peut pas convertir automatiquement la série en une liste d'étiquettes.