Question

Je fais le problème de l'apprentissage de la machine de catégorisation de texte à l'aide Naive Bayes. Je chaque mot comme une caractéristique. Je suis en mesure de le mettre en œuvre et je suis d'obtenir une bonne précision.

moi Est-il possible d'utiliser tuples des mots comme caractéristiques?

Par exemple, s'il y a deux classes, la politique et le sport. Le mot appelé le gouvernement pourrait apparaître dans les deux. Cependant, dans la politique, je peux avoir un tuple (gouvernement, démocratie), alors que dans les sports de classe je peux avoir un tuple (gouvernement, sportif). Donc, si un nouvel article de texte vient dans lequel est politique, la probabilité du tuple (gouvernement, la démocratie) a plus de probabilité que le tuple (gouvernement, sportif).

Je pose cette question parce que, ce faisant, je suis viole l'hypothèse d'indépendance du problème Naive Bayes, parce que je considère comme des mots simples fonctionnalités aussi.

En outre, je pense à ajouter des poids aux fonctions. Par exemple, une fonctionnalité 3-tuple aura moins de poids qu'une caractéristique 4-tuple.

En théorie, sont ces deux approches ne change pas les hypothèses d'indépendance sur le classificateur Naive Bayes? De plus, je ne l'ai pas commencé avec l'approche je l'ai mentionné encore, mais cela améliorera la précision? Je pense que la précision pourrait ne pas améliorer, mais la quantité de données de formation nécessaires pour obtenir la même précision serait moins.

Était-ce utile?

La solution

Même sans ajouter bigrams, les documents réels violent déjà l'hypothèse d'indépendance. Conditionné d'avoir Obama dans un document, le président est beaucoup plus susceptible d'apparaître. Néanmoins, Bayes naïves encore un emploi décent au classement, même si la probabilité estime qu'elle donne sont désespérément hors. Je vous recommande d'aller sur et ajouter des fonctionnalités plus complexes à votre classificateur et voir si elles améliorent la précision.

Si vous obtenez la même précision avec moins de données, qui est essentiellement équivalent à obtenir une meilleure précision avec la même quantité de données.

D'autre part, en utilisant plus simples, des fonctionnalités plus courantes fonctionne mieux que vous réduisez la quantité de données. Si vous essayez d'adapter trop de paramètres trop peu de données, vous avez tendance à surajuster mal.

Mais la ligne de fond est de l'essayer et voir.

Autres conseils

Non, d'un point de vue théorique, vous ne changez pas l'hypothèse d'indépendance. Vous créez simplement un espace d'échantillon modifié (ou nouveau). En général, une fois que vous commencez à utiliser n-grammes plus que les événements dans votre espace échantillon, sparsity de données devient un problème. Je pense que l'aide tuples conduiront à la même question. Vous aurez probablement besoin de plus de données de formation, pas moins. Vous aurez probablement aussi de donner un peu plus pensé au type de lissage que vous utilisez. lissage simple Laplace ne peut pas être idéal.

Point le plus important, je pense, est la suivante: quel que soit classificateur que vous utilisez, les caractéristiques dépendent fortement du domaine (et parfois même l'ensemble de données). Par exemple, si vous classifient sentiment de textes basés sur des critiques de films, en utilisant seulement unigrammes peut sembler contre-intuitif, mais ils effectuent mieux que d'utiliser uniquement des adjectifs. D'autre part, pour les ensembles de données de twitter, ont été trouvés une combinaison de unigrammes et bigrams être bon, mais plus n-grammes ne sont pas utiles. Sur la base de ces rapports (réf. Pang et Lee, Avis minier et Sentiment Analysis ), je pense à l'aide tuples plus montrera des résultats similaires, puisque, après tout, tuples de mots sont tout simplement des points dans un-supérieur espace tridimensionnel. L'algorithme de base se comporte de la même manière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top