Je lis ce livre ( NLTK ) et c'est déroutant. L'entropie est définie comme :
L'entropie est la somme de la probabilité de chaque étiquette multipliée par la probabilité logarithmique de cette même étiquette
Comment puis-je appliquer l' entropie et l'entropie maximale en termes d'exploration de texte? Quelqu'un peut-il me donner un exemple facile et simple (visuel)?
Réponses:
Je suppose que l'entropie a été mentionnée dans le contexte de la construction d' arbres de décision .
Pour illustrer, imaginez la tâche d' apprendre à classer les prénoms en groupes hommes / femmes. On lui donne une liste de noms étiquetés chacun avec
m
ouf
, nous voulons apprendre un modèle qui correspond aux données et peut être utilisé pour prédire le sexe d'un nouveau prénom invisible.La première étape consiste à décider quelles caractéristiques des données sont pertinentes pour la classe cible que nous voulons prédire. Quelques exemples de fonctionnalités: première / dernière lettre, longueur, nombre de voyelles, se termine-t-il par une voyelle, etc. Ainsi, après l'extraction des fonctionnalités, nos données ressemblent à:
L'objectif est de construire un arbre de décision . Un exemple d' arbre serait:
fondamentalement, chaque nœud représente un test effectué sur un seul attribut, et nous allons à gauche ou à droite en fonction du résultat du test. Nous continuons à parcourir l'arbre jusqu'à ce que nous atteignions un nœud de feuille qui contient la prédiction de classe (
m
ouf
)Donc, si nous exécutons le nom Amro dans cet arbre, nous commençons par tester " est la longueur <7? " Et la réponse est oui , alors nous descendons cette branche. Après la branche, le test suivant " est le nombre de voyelles <3? " Est à nouveau évalué comme vrai . Cela conduit à un nœud de feuille étiqueté
m
, et donc la prédiction est masculine (ce qui se trouve être, donc l'arbre a prédit le résultat correctement ).L'arbre de décision est construit de façon descendante , mais la question est de savoir comment choisir l'attribut à diviser à chaque nœud? La réponse est de trouver la fonctionnalité qui divise le mieux la classe cible en nœuds enfants les plus purs possibles (c'est-à-dire: nœuds qui ne contiennent pas un mélange de nœuds masculins et féminins, plutôt purs avec une seule classe).
Cette mesure de pureté s'appelle l' information . Il représente la quantité d' informations attendue qui serait nécessaire pour spécifier si une nouvelle instance (prénom) doit être classée homme ou femme, compte tenu de l'exemple qui a atteint le nœud. Nous le calculons en fonction du nombre de classes masculines et féminines au nœud.
L'entropie d'autre part est une mesure d' impureté (l'inverse). Il est défini pour une classe binaire avec des valeurs
a
/b
as:Cette fonction d'entropie binaire est illustrée dans la figure ci-dessous (une variable aléatoire peut prendre l'une des deux valeurs). Il atteint son maximum lorsque la probabilité est
p=1/2
, ce qui signifie quep(X=a)=0.5
ou de mêmep(X=b)=0.5
avoir une chance de 50% / 50% d'être soita
oub
(l'incertitude est au maximum). La fonction d'entropie est au minimum nul lorsque la probabilité estp=1
oup=0
en toute certitude (p(X=a)=1
oup(X=a)=0
respectivement, cela impliquep(X=b)=1
).Bien sûr, la définition de l'entropie peut être généralisée pour une variable aléatoire discrète X avec N résultats (pas seulement deux):
(le
log
dans la formule est généralement considéré comme le logarithme de la base 2 )Revenons à notre tâche de classification des noms, regardons un exemple. Imaginez qu'à un moment donné au cours du processus de construction de l'arbre, nous envisagions la répartition suivante:
Comme vous pouvez le voir, avant la scission, nous avions 9 hommes et 5 femmes, c'est
P(m)=9/14
-à- dire etP(f)=5/14
. Selon la définition de l'entropie:Ensuite, nous le comparons à l'entropie calculée après avoir considéré la division en examinant deux branches enfants. Dans la branche gauche de
ends-vowel=1
, nous avons:et la branche droite de
ends-vowel=0
, nous avons:Nous combinons les entropies gauche / droite en utilisant le nombre d'instances dans chaque branche comme facteur de poids (7 instances sont allées à gauche et 7 instances à droite), et obtenons l'entropie finale après la scission:
Maintenant, en comparant l'entropie avant et après la scission, nous obtenons une mesure du gain d'informations , ou de la quantité d'informations que nous avons obtenues en effectuant la scission en utilisant cette fonction particulière:
Vous pouvez interpréter le calcul ci-dessus comme suit: en effectuant le fractionnement avec la
end-vowels
fonctionnalité, nous avons pu réduire l'incertitude dans le résultat de la prédiction de sous-arbre d'une petite quantité de 0,1518 (mesurée en bits comme unités d'information ).À chaque nœud de l'arbre, ce calcul est effectué pour chaque entité, et l'entité avec le plus grand gain d'informations est choisie pour la répartition de manière gourmande (favorisant ainsi les entités qui produisent des divisions pures avec une faible incertitude / entropie). Ce processus est appliqué de manière récursive à partir du nœud racine vers le bas et s'arrête lorsqu'un nœud feuille contient des instances ayant toutes la même classe (pas besoin de le diviser davantage).
Notez que j'ai ignoré certains détails qui dépassent le cadre de cet article, y compris comment gérer les fonctionnalités numériques , les valeurs manquantes , le sur- ajustement et l' élagage des arbres, etc.
la source
Pour commencer, il serait préférable de comprendre
the measure of information
.Comment utilisons-nous
measure
les informations?Quand quelque chose de peu probable se produit, nous disons que c'est une grande nouvelle. De plus, lorsque nous disons quelque chose de prévisible, ce n'est pas vraiment intéressant. Donc, pour quantifier cela
interesting-ness
, la fonction doit satisfaireone bit
des informations.Une mesure naturelle qui satisfait aux contraintes est
où p est la probabilité de l'événement
X
. Et l'unité est dedansbit
, le même bit que l'ordinateur utilise. 0 ou 1.Exemple 1
Tirage au sort équitable:
Combien d'informations pouvons-nous obtenir d'un coup de pièce?
Répondre :
-log(p) = -log(1/2) = 1 (bit)
Exemple 2
Si un météore frappe la Terre demain,
p=2^{-22}
alors nous pouvons obtenir 22 bits d'informations.Si le Soleil se lève demain,
p ~ 1
alors c'est 0 bit d'information.Entropie
Donc, si nous nous attendons à
interesting-ness
un événementY
, c'est l'entropie. l'entropie est une valeur attendue de l'intérêt d'un événement.Plus formellement, l'entropie est le nombre attendu de bits d'un événement.
Exemple
Y = 1: un événement X se produit avec une probabilité p
Y = 0: un événement X ne se produit pas avec la probabilité 1-p
Journal de base 2 pour tous les journaux.
la source
Je ne peux pas vous donner de graphiques, mais je peux peut-être donner une explication claire.
Supposons que nous ayons un canal d'information, comme une lumière qui clignote une fois par jour, rouge ou verte. Combien d'informations transmet-il? La première supposition pourrait être un bit par jour. Mais que se passe-t-il si nous ajoutons du bleu, afin que l'expéditeur ait trois options? Nous aimerions avoir une mesure de l'information qui peut gérer des choses autres que des puissances de deux, mais toujours être additive (la façon dont multiplier le nombre de messages possibles par deux ajoute un bit). Nous pourrions le faire en prenant le journal 2 (nombre de messages possibles), mais il s'avère qu'il existe un moyen plus général.
Supposons que nous soyons revenus au rouge / vert, mais l'ampoule rouge a grillé (c'est une notoriété publique) de sorte que la lampe doit toujours clignoter en vert. La chaîne est maintenant inutile, nous savons ce que sera le prochain flashdonc les flashs ne transmettent aucune information, aucune nouvelle. Maintenant, nous réparons l'ampoule mais imposons une règle selon laquelle l'ampoule rouge ne peut pas clignoter deux fois de suite. Lorsque la lampe clignote en rouge, nous savons quel sera le prochain flash. Si vous essayez d'envoyer un flux binaire par ce canal, vous constaterez que vous devez le coder avec plus de flashs que vous n'en avez (50% de plus, en fait). Et si vous voulez décrire une séquence de flashs, vous pouvez le faire avec moins de bits. La même chose s'applique si chaque flash est indépendant (hors contexte), mais les flashs verts sont plus courants que les rouges: plus la probabilité est asymétrique, moins vous avez besoin de bits pour décrire la séquence et moins elle contient d'informations, jusqu'à la tout-vert, limite de brûlure de l'ampoule.
Il s'avère qu'il existe un moyen de mesurer la quantité d'informations dans un signal, en fonction des probabilités des différents symboles. Si la probabilité de recevoir le symbole x i est p i , alors considérons la quantité
Plus p i est petit , plus cette valeur est élevée. Si x i devient deux fois moins probable, cette valeur augmente d'un montant fixe (log (2)). Cela devrait vous rappeler d'ajouter un bit à un message.
Si nous ne savons pas ce que sera le symbole (mais nous connaissons les probabilités), alors nous pouvons calculer la moyenne de cette valeur, combien nous obtiendrons, en additionnant les différentes possibilités:
C'est le contenu de l'information en un éclair.
Il s'agit du contenu de l'information, ou entropie, du message. Elle est maximale lorsque les différents symboles sont équiprobables. Si vous êtes physicien, vous utilisez le journal naturel, si vous êtes un informaticien, vous utilisez le journal 2 et obtenez des bits.
la source
Je vous recommande vraiment de lire sur la théorie de l'information, les méthodes bayésiennes et MaxEnt. Le point de départ est ce livre (disponible gratuitement en ligne) de David Mackay:
http://www.inference.phy.cam.ac.uk/mackay/itila/
Ces méthodes d'inférence sont vraiment bien plus générales que le simple text mining et je ne peux pas vraiment imaginer comment on pourrait l'appliquer à la PNL sans apprendre certaines des bases générales contenues dans ce livre ou d'autres livres d'introduction sur l'apprentissage automatique et le bayésien MaxEnt méthodes.
Le lien entre l'entropie et la théorie des probabilités au traitement et au stockage de l'information est vraiment, vraiment profond. Pour en donner un aperçu, il y a un théorème dû à Shannon qui stipule que la quantité maximale d'informations que vous pouvez passer sans erreur à travers un canal de communication bruyant est égale à l'entropie du processus de bruit. Il existe également un théorème qui relie la quantité de données que vous pouvez compresser pour occuper la mémoire minimale possible de votre ordinateur à l'entropie du processus qui a généré les données.
Je ne pense pas qu'il soit vraiment nécessaire que vous alliez en apprendre davantage sur tous ces théorèmes sur la théorie de la communication, mais il n'est pas possible d'apprendre cela sans apprendre les bases de ce qu'est l'entropie, comment elle est calculée, quelle est sa relation avec l'information et l'inférence, etc. ...
la source
Lorsque j'ai implémenté un algorithme pour calculer l'entropie d'une image, j'ai trouvé ces liens, voir ici et ici .
C'est le pseudo-code que j'ai utilisé, vous devrez l'adapter pour travailler avec du texte plutôt qu'avec des images mais les principes devraient être les mêmes.
J'ai obtenu ce code quelque part, mais je ne peux pas creuser le lien.
la source
Informellement
l'entropie est la disponibilité d'informations ou de connaissances, le manque d'informations entraînera des difficultés dans la prédiction de l'avenir, ce qui est une entropie élevée (prédiction du mot suivant dans l'exploration de texte) et la disponibilité des informations / connaissances nous aidera à une prédiction plus réaliste de l'avenir (faible entropie).
Les informations pertinentes de tout type réduiront l'entropie et nous aideront à prédire un avenir plus réaliste, que les informations peuvent être le mot "viande" est présent dans la phrase ou le mot "viande" n'est pas présent. C'est ce qu'on appelle le gain d'informations
Officiellement
l'entropie est un manque d'ordre de prévisibilité
la source
Alors que vous lisez un livre sur NLTK, il serait intéressant de lire sur le module de classification MaxEnt http://www.nltk.org/api/nltk.classify.html#module-nltk.classify.maxent
Pour la classification d'exploration de texte, les étapes peuvent être: le pré-traitement (tokenisation, vaporisation, sélection de fonctionnalités avec Information Gain ...), la transformation en numérique (fréquence ou TF-IDF) (je pense que c'est l'étape clé à comprendre lors de l'utilisation texte en entrée d'un algorithme qui n'accepte que du numérique), puis classer avec MaxEnt, bien sûr, ce n'est qu'un exemple.
la source