Je voudrais utiliser l'implémentation de Naive Bayes semi-supervisée (Bernoulli) de Scikit-learn. Selon this link in github, il y avait un peu de travail et de discussion il y a un an (classe SemisupervisedNB). D'un autre côté, il semble y avoir another different implementation (function fit_semi?) which seems it was polished by another user afterwards. Cependant, aucun d'entre eux n'est disponible dans la version stable actuelle.Scikit-learn: l'implémentation semi-supervisée de Naive Bayes est-elle disponible?
Quelqu'un pourrait-il me montrer un exemple sur comment pourrais-je utiliser une de ces deux implémentations avec la version actuelle de scikit-learn afin de construire un Naive Bayes semi-supervisé? Merci.
PS: J'utilise scikit-learn classificateurs de NLTK avec la classe SklearnClassifier
EDIT
J'ai essayé le code de SemiSupervisedNB dans mon projet de changer l'étiquette de la classe sans étiquette de -1 à 2 (j'utilise SKlearnClassifier de NLTK et ma classe non étiquetée obtient le label 2). Cependant, je reçois ValueError: array ne doit pas contenir d'infs ou de NaNs lors du calcul de d (différence entre les paramètres actuels et précédents du modèle) car les tableaux d'interception contiennent des valeurs inf ... Une idée sur la façon de résoudre cela?
Vous pouvez essayer de vérifier la branche et de travailler dessus, mais je ne suis pas sûr qu'elle soit dans un bon état actuellement - elle est également très en retard par rapport à la version actuelle. Vous pourriez essayer de rebaser/fusionner la branche sur le maître actuel. Mais si vous n'êtes pas familier avec git/le projet, vous aurez probablement quelques problèmes. Ou attendez simplement sur @larsmans pour commenter et vous dire quoi faire;) –
Merci pour votre réponse. Malheureusement je n'ai pas beaucoup de temps pour revoir le code maintenant ... Je vais attendre aussi @ogrisel :) – AM2
Je suis désolé, mais je n'ai vraiment pas le temps de réparer ça ou même de vous dire comment fais le. Le NB semi-supervisé devrait fonctionner (un collègue a essayé il y a quelques mois), mais ne correspond pas du tout à l'actuel scikit-learn. Vous pourriez essayer de le rebaser, comme suggéré par @amueller. –