Je suis coincé avec un problème où je ne sais pas comment utiliser une liste comme étiquettes dans un modèle ML. Fondamentalement, j'ai une trame de données comme suit: Data Frame

Mon ensemble de fonctionnalités est une liste de nombres et mon étiquette est également une liste de nombres. Comment associer l'un à l'autre? J'ai déjà travaillé avec des étiquettes binaires, mais je ne peux pas le gérer avec des étiquettes non binaires.

Ps: Je suis conscient que mes données manquent de prétraitement, et je ne charge qu'une infime partie de l'ensemble pour des raisons de vitesse de traitement

EDIT - Désolé de ne pas être assez clair: chaque numéro est un mot. Mon ensemble de fonctionnalités est un texte, mon étiquette est un titre. J'essaie de construire un modèle qui, étant donné un texte, génère un titre, basé sur le modèle entraîné

1
Bruno Antonieto 1 sept. 2020 à 05:46

3 réponses

Meilleure réponse

Vous pouvez essayer MultiLabelBinarizer() de sklearn. Jetez un œil à ce post

1
Sherzod 1 sept. 2020 à 03:09

Je pense que vous pouvez essayer le OneHotEncoding qui est intégré dans les pandas "get_dummies".

Selon ce que je comprends, vos données ressemblent à (en donnant un exemple de «y» ici):

df
 
   a  b  y
0  1  2  1
1  4  5  2
2  7  1  3
3  4  7  1
4  6  0  3
5  7  9  2
6  8  1  1

Où chaque nombre dans la colonne y représente chaque classe.

Alors ce que vous pouvez faire est:

new_y = pd.get_dummies(df['y'], drop_first=True)

It would be very helpful if you post some sample data here and what exactly you are willing to achieve.

PS: En dehors de cela, vous devrez utiliser Categorical_CrossEntropy comme calcul de perte.

0
madhukant dinker 1 sept. 2020 à 03:29

https://scikit-learn.org/stable/modules/ multiclass.html # multilabel-classification-format Vous devez utiliser des approches multi-étiquettes pour résoudre votre problème

0
Andrey Lukyanenko 1 sept. 2020 à 03:02