Naive Bayes Multinomial paramètre paramètre alpha? scikit-learn
Ce que quelqu'un sais comment régler le paramètre de l'alpha lors naive bayes classification?
E. g. J'ai utilisé un sac de mots, d'abord, de construire la fonction de la matrice et chaque cellule de la matrice est comtes de mots, et ensuite, j'ai utilisé tf(term frequency) à une normalisation de la matrice.
Mais quand j'ai utilisé Naive bayes pour construire classificateur modèle, j'ai choisi d'utiliser multinomial N. B (qui, je pense, c'est correct, pas de Bernoulli et Gaussien). la valeur par défaut paramètre alpha, est de 1,0 (les documents dit que c'est le lissage de Laplace, je n'ai aucune idée de ce que c'est).
Le résultat est vraiment mauvais, comme seuls 21% rappel afin de trouver le positif de la classe (classe cible). mais quand j'ai mis alpha = 0.0001 (j'ai choisi au hasard), les résultats de 95% rappel score.
D'ailleurs, j'ai vérifié la multinomiale N. B formule, je pense que c'est parce que l'alpha problème, parce que si j'ai utilisé des comtes de mots comme fonction, l'alpha = 1 n'a pas pour effet de les résultats, cependant, depuis la tf est entre 0 et 1, l'alpha = 1 est vraiment d'incidence sur les résultats de cette formule.
J'ai aussi testé les résultats de ne pas utiliser tf, utilisé seulement comtes de sac de mots, le résultat est de 95%, ainsi, fait-on savoir comment définir la valeur alpha? parce que je dois utiliser tf comme caractéristique de la matrice.
Grâce.
avez-vous découvrez scikit-learn.org/stable/modules/generated/... ?
J'ai fait l'expérience sur un autre ensemble de données, à l'aide de tf, alpha = 1.0, le rappel de "positive" est de 0,11, la précision de "positive" est de 1,00 (bizarre?). et après j'ai mis l'alpha = 0.0001,tf, le rappel et la précision de "positive" de 1.00 , et l'après-je supprimer tf, utilisez uniquement des comtes de mots comme fonction, et set alpha = 1.0, le rappel de positif est de 0,98, la précision de positif est de 0,97. J'ai utilisé le jeu de données que négatif ont 4243 instances et positive a 900 cas.
oui, j'ai vérifié sur le web, cela dit, dans la pratique, les fractions de compte tels que le tf-idf. et sur la façon de définir alpha, pas d'autres références.
OriginalL'auteur HAO CHEN | 2015-11-20
Vous devez vous connecter pour publier un commentaire.
Dans Naive Bayes Multinomial, la
alpha
paramètre est ce qui est connu comme une hyper-paramètre; c'est à dire un paramètre qui contrôle la forme du modèle lui-même. Dans la plupart des cas, la meilleure façon de déterminer les valeurs optimales pour hyperparameters est par le biais d'un grille de recherche plus possible, les valeurs de paramètre, à l'aide de validation croisée pour évaluer la performance du modèle sur vos données à chaque valeur. Lire les liens ci-dessus pour plus de détails sur comment faire cela avec scikit-learn.Un hyper-paramètre est un paramètre qui définit le modèle, et doit être choisi avant que le modèle ne voit toutes les données (c'est à dire comme
alpha
ici, il est défini à l'initialisation de temps). Un modèle normal de paramètre, d'autre part, est flottant et réglé par l'application du modèle aux données. Un moyen utile de penser, c'est que hyperparameters permet de définir le modèle: donc, dans un certain sens,MultinomialNB
avecalpha=1
etMultinomialNB
avecalpha=2
qui doit être considéré comme fondamentalement différents modèles.OriginalL'auteur jakevdp