Outils pour utilisateurs

Outils du site


public:specs_specificites

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
public:specs_specificites [2019/04/09 15:08]
matthieu.decorde@ens-lyon.fr
public:specs_specificites [2019/04/09 15:22]
matthieu.decorde@ens-lyon.fr
Ligne 12: Ligne 12:
 ==== Paramètres ==== ==== Paramètres ====
  
-  * indice maximum de spécificité+  * indice maximum de spécificité ​<- préférences = 1000
  
 ==== Construction ==== ==== Construction ====
  
 À partir : À partir :
-  * d'une table lexicale, avec : +  * d'une table lexicale
-    * indice maximum de spécificité <- préférences = 1000+
   * d'une partition, avec :   * d'une partition, avec :
     * une table lexicale ​     * une table lexicale ​
Ligne 43: Ligne 42:
 Or, quand l'​étape 1 produit la valeur 0.0, l'​étape 2 n'a plus l'​information du signe de la probabilité Or, quand l'​étape 1 produit la valeur 0.0, l'​étape 2 n'a plus l'​information du signe de la probabilité
 pour gérer la convention +/-. pour gérer la convention +/-.
 +
 +=== solution ===
 +
 +Dans l'​étape 1 : quand phyper retourne 0.0, soit :
 +  * solution 1 : on retourne (+/​-)convention 1.0E < -MAX EXPOSANT>​
 +  * solution 2 : on retourne (+/​-)convention 10.0
 +  * solution 3 : on retourne (+/​-)convention d'une part et les retours bruts de phyper d'​autre part
 +Dans l'​étape 2 :
 +  * solution 1 : on applique le log10 habituel
 +  * solution 2 : si +/-10.0 on retourne +/-Inf ou +/​-<​INDICE SPECIF MAX> sinon applique le log10 habituel
 +  * solution 3 : on utilise les deux informations conventions+probabilités pour retourner le tableau de spécificités habituel
 +
 +[MD] : Lors du passage au logarithme dans l'​étape 2, ajouter un test pour vérifier si la probabilité vaut 0.0, si c'est le cas alors l'​indice de spécificité vaut EXPOSANT_MAX,​ où EXPOSANT_MAX est l'​exposant négatif maximum que la fonction phyper peut retourner (lié à l'​architecture de la machine qui execute R).
 +
 +[BP] La solution 2 me semble un bon compromis à condition de documenter très clairement ce "​10.0"​ arbitraire dans le code. L'​inconvénient de la solution 1 est de ne pas faire la différence entre une probabilité qui arriverait juste avant le seuil et une probabilité qui le dépasse. La solution 3 est plus propre mais beaucoup plus lourde ? Une 4e solution serait, lorsque la probabilité vaut 0, de calculer le signe (positif si f/t > F/T), mais sans doute est-ce plus lourd que de systématiquement passer un tableau avec toutes les conventions (solution 3).
 +
 +Actuel code de specificities.R :
 +<​code>​
 +    spe <- specificities.lexicon.probabilities(lexicon,​ sublexicon);​
 +    spelog <- matrix(0, nrow=nrow(spe),​ ncol=ncol(spe));​
 +    spelog[spe < 0] <- log10(-spe[spe < 0]);
 +    spelog[spe > 0] <- abs(log10(spe[spe >=0])); # MD: why abs ?
 +    spelog[spe == 0] <- 0; # MD: why not +/-Inf ? We need to store negative and positive indexes instead of checking score sign
 +    spelog[is.infinite(spe)] <- 0; # MD: why not max/min specif score
 +</​code>​
 +Plusieurs questions :
 +  * pourquoi faire un abs du log des probabilités des lignes positives ?
 +    * BP : je pense que c'est simplement une manière de passer d'une valeur négative (un log d'un argument compris entre 0 et 1) à une valeur positive.
 +  * pourquoi log(proba=0) = 0 ? et ne pas mettre Inf +/- (ou la valeur max de spécif +/-)
 +    * BP : oui là je suis tout à fait d'​accord pour dire que cela ne va pas
 +  * pourquoi log(proba=-Inf) = 0 ? et ne pas mettre Inf +/- (ou la valeur max de spécif +/-) (c'est possible un score de proba en Inf ?????? ça devrait rester compris entre 0 et 1)
 +    * BP : oui je suis étonnée comme Matthieu et je ne sais pas si je comprends bien, mais je ne vois pas pourquoi spe pourrait être infini vu qu'il doit être borné entre zéro et 1.
 +
 +Actuellement,​ c'est le signe de la probabilité indique s'il s'agit d'un indice de spécificité positif ou négatif. ​
 +Lorsque que le score vaut 0, on ne peut donc pas savoir le signe de l'​indice. ​
 +Une proposition est que les fonctions "​specificities.lexicon.probabilities"​ et "​specificities.probabilities"​ retournent un objet qui contient la matrice des probabilités ainsi que les listes d'​index des indices positifs et négatifs
 +  * BP : oui effectivement il faut chercher une solution pour avoir le signe de la spécificité en cas de probabilité (quasi)nulle.
  
  
Ligne 93: Ligne 129:
   * encore moins urgent : prise en compte combinée des spécificités positives et négatives (en utilisant leur magnitude) : oui/non, par défaut non   * encore moins urgent : prise en compte combinée des spécificités positives et négatives (en utilisant leur magnitude) : oui/non, par défaut non
  
-==== Indice de spécificité 0.0 ==== 
- 
-Dans l'​étape 1 : quand phyper retourne 0.0, soit : 
-  * solution 1 : on retourne (+/​-)convention 1.0E < -MAX EXPOSANT>​ 
-  * solution 2 : on retourne (+/​-)convention 10.0 
-  * solution 3 : on retourne (+/​-)convention d'une part et les retours bruts de phyper d'​autre part 
-Dans l'​étape 2 : 
-  * solution 1 : on applique le log10 habituel 
-  * solution 2 : si +/-10.0 on retourne +/-Inf ou +/​-<​INDICE SPECIF MAX> sinon applique le log10 habituel 
-  * solution 3 : on utilise les deux informations conventions+probabilités pour retourner le tableau de spécificités habituel 
- 
-[MD] : Lors du passage au logarithme dans l'​étape 2, ajouter un test pour vérifier si la probabilité vaut 0.0, si c'est le cas alors l'​indice de spécificité vaut EXPOSANT_MAX,​ où EXPOSANT_MAX est l'​exposant négatif maximum que la fonction phyper peut retourner (lié à l'​architecture de la machine qui execute R). 
- 
-[BP] La solution 2 me semble un bon compromis à condition de documenter très clairement ce "​10.0"​ arbitraire dans le code. L'​inconvénient de la solution 1 est de ne pas faire la différence entre une probabilité qui arriverait juste avant le seuil et une probabilité qui le dépasse. La solution 3 est plus propre mais beaucoup plus lourde ? Une 4e solution serait, lorsque la probabilité vaut 0, de calculer le signe (positif si f/t > F/T), mais sans doute est-ce plus lourd que de systématiquement passer un tableau avec toutes les conventions (solution 3). 
- 
-Actuel code de specificities.R : 
-<​code>​ 
-    spe <- specificities.lexicon.probabilities(lexicon,​ sublexicon);​ 
-    spelog <- matrix(0, nrow=nrow(spe),​ ncol=ncol(spe));​ 
-    spelog[spe < 0] <- log10(-spe[spe < 0]); 
-    spelog[spe > 0] <- abs(log10(spe[spe >=0])); # MD: why abs ? 
-    spelog[spe == 0] <- 0; # MD: why not +/-Inf ? We need to store negative and positive indexes instead of checking score sign 
-    spelog[is.infinite(spe)] <- 0; # MD: why not max/min specif score 
-</​code>​ 
-Plusieurs questions : 
-  * pourquoi faire un abs du log des probabilités des lignes positives ? 
-    * BP : je pense que c'est simplement une manière de passer d'une valeur négative (un log d'un argument compris entre 0 et 1) à une valeur positive. 
-  * pourquoi log(proba=0) = 0 ? et ne pas mettre Inf +/- (ou la valeur max de spécif +/-) 
-    * BP : oui là je suis tout à fait d'​accord pour dire que cela ne va pas 
-  * pourquoi log(proba=-Inf) = 0 ? et ne pas mettre Inf +/- (ou la valeur max de spécif +/-) (c'est possible un score de proba en Inf ?????? ça devrait rester compris entre 0 et 1) 
-    * BP : oui je suis étonnée comme Matthieu et je ne sais pas si je comprends bien, mais je ne vois pas pourquoi spe pourrait être infini vu qu'il doit être borné entre zéro et 1. 
- 
-Actuellement,​ c'est le signe de la probabilité indique s'il s'agit d'un indice de spécificité positif ou négatif. ​ 
-Lorsque que le score vaut 0, on ne peut donc pas savoir le signe de l'​indice. ​ 
-Une proposition est que les fonctions "​specificities.lexicon.probabilities"​ et "​specificities.probabilities"​ retournent un objet qui contient la matrice des probabilités ainsi que les listes d'​index des indices positifs et négatifs 
-  * BP : oui effectivement il faut chercher une solution pour avoir le signe de la spécificité en cas de probabilité (quasi)nulle. 
  
 ==== Affichage des résultats ==== ==== Affichage des résultats ====
public/specs_specificites.txt · Dernière modification: 2019/04/09 15:22 par matthieu.decorde@ens-lyon.fr