Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Count sketch
Count sketch 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

En informatique, le count sketch est une technique de réduction de dimensionnalité basée sur une structure de données probabiliste, permettant d'estimer avec un coût en mémoire limité le nombre d'apparitions des éléments les plus fréquents dans un flux de données.

Il a été introduit en 2004 par M. Charikar, K. Chen, et M. Farach-Colton[1].

Histoire

[modifier | modifier le code]

Le count sketch a été proposé comme une amélioration du sketch AMS de N.Alon, Y.Matias et M.Szegedy[2].

Définition

[modifier | modifier le code]

Le count sketch peut être vu comme un nom recouvrant à la fois une structure de données, une procédure permettant de la mettre à jour lorsqu'un nouvel élément du flux doit être traité, ainsi qu'une règle permettant à tout moment d'estimer la fréquence des éléments les plus courants à partir de la structure de données.

Structure de données

[modifier | modifier le code]

Soit X {\displaystyle {\mathcal {X}}} {\displaystyle {\mathcal {X}}} l'ensemble d'entrée, c.-à-d. auquel appartiennent les éléments du flux. Soit t , b ∈ N > 0 {\displaystyle t,b\in \mathbb {N} _{>0}} {\displaystyle t,b\in \mathbb {N} _{>0}} deux paramètres controllant la taille du sketch. Soient h 1 , … , h t {\displaystyle h_{1},\dots ,h_{t}} {\displaystyle h_{1},\dots ,h_{t}} des fonctions de hachage de X {\displaystyle {\mathcal {X}}} {\displaystyle {\mathcal {X}}} vers { 1 , … , b } {\displaystyle \{1,\dots ,b\}} {\displaystyle \{1,\dots ,b\}} indépendantes. Soient s 1 , … , s t {\displaystyle s_{1},\dots ,s_{t}} {\displaystyle s_{1},\dots ,s_{t}} des fonctions de hachage de X {\displaystyle {\mathcal {X}}} {\displaystyle {\mathcal {X}}} vers { − 1 , + 1 } {\displaystyle \{-1,+1\}} {\displaystyle \{-1,+1\}}, indépendantes deux à deux et indépendantes des ( h i ) 1 ≤ i ≤ t {\displaystyle (h_{i})_{1\leq i\leq t}} {\displaystyle (h_{i})_{1\leq i\leq t}}

Le sketch lui-même consiste en une table (matrice) T ∈ Z t × b {\displaystyle T\in \mathbb {Z} ^{t\times b}} {\displaystyle T\in \mathbb {Z} ^{t\times b}}, dont toutes les entrées sont initialisées à zéro.

Ajout d'un élément

[modifier | modifier le code]

Lorsqu'un nouvel élément x ∈ X {\displaystyle x\in {\mathcal {X}}} {\displaystyle x\in {\mathcal {X}}} est traité, la table est mise à jour de la manière suivante:

 Pour 
  
    
      
        i
        =
        1
        ,
        …
        ,
        t
      
    
    {\displaystyle i=1,\dots ,t}
  
{\displaystyle i=1,\dots ,t}  
   
  
    
      
        
          T
          
            i
            ,
            
              h
              
                i
              
            
            (
            x
            )
          
        
        =
        
          T
          
            i
            ,
            
              h
              
                i
              
            
            (
            x
            )
          
        
        +
        
          s
          
            i
          
        
        (
        x
        )
      
    
    {\displaystyle T_{i,h_{i}(x)}=T_{i,h_{i}(x)}+s_{i}(x)}
  
{\displaystyle T_{i,h_{i}(x)}=T_{i,h_{i}(x)}+s_{i}(x)} 

Ainsi, chaque ligne du tableau a exactement une entrée qui est modifiée (incrémentée ou décrémentée selon la valeur de s i ( x ) {\displaystyle s_{i}(x)} {\displaystyle s_{i}(x)}) lors de l'ajout d'un nouvel élément.

Estimation du nombre d'occurrences

[modifier | modifier le code]

Pour estimer le nombre d'occurrences d'un élément e ∈ X {\displaystyle e\in {\mathcal {X}}} {\displaystyle e\in {\mathcal {X}}}, l'estimateur suivant est calculé:

n ^ ( e ) = m e d i a n e ( h 1 ( e ) s 1 ( e ) , … , h t ( e ) s t ( e ) ) {\displaystyle {\hat {n}}(e)=\mathrm {mediane} (h_{1}(e)s_{1}(e),\dots ,h_{t}(e)s_{t}(e))} {\displaystyle {\hat {n}}(e)=\mathrm {mediane} (h_{1}(e)s_{1}(e),\dots ,h_{t}(e)s_{t}(e))}

Garanties

[modifier | modifier le code]

Soit ϵ > 0 , k ∈ N > 0 {\displaystyle \epsilon >0,k\in \mathbb {N} _{>0}} {\displaystyle \epsilon >0,k\in \mathbb {N} _{>0}}, et n {\displaystyle n} {\displaystyle n} le nombre total d'éléments dans le flux. Soit n k {\displaystyle n_{k}} {\displaystyle n_{k}} le nombre d’occurrences dans le flux du k {\displaystyle k} {\displaystyle k}-ième élément apparaissant le plus. Dans leur article original, les auteurs prouvent[1] qu'en choisissant t = Θ ( log ⁡ ( n ) / δ ) {\displaystyle t=\Theta (\log(n)/\delta )} {\displaystyle t=\Theta (\log(n)/\delta )} et b {\displaystyle b} {\displaystyle b} plus grand qu'un seuil dépendant notamment de k , ϵ {\displaystyle k,\epsilon } {\displaystyle k,\epsilon }, l'algorithme permet de retrouver une liste de k {\displaystyle k} {\displaystyle k} éléments apparaissant chacun strictement plus de ( 1 − ϵ ) n k {\displaystyle (1-\epsilon )n_{k}} {\displaystyle (1-\epsilon )n_{k}}.

Références

[modifier | modifier le code]
  1. ↑ a et b M. Charikar, K. Chen, M. Farach-Colton, « Finding frequent items in data streams », Theoretical Computer Science, Elsevier, vol. 312, t. 1,‎ 2004
  2. ↑ N. Alon, Y. Matias, M. Szegedy, « The space complexity of approximating the frequency moments », Proceedings of the twenty-eighth annual ACM symposium on Theory of Computing,‎ 1996

Voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]
  • Algorithme de Flajolet–Martin
  • Filtre de Bloom
  • HyperLogLog
  • icône décorative Portail de l’informatique
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Count_sketch&oldid=233083197 ».
Catégorie :
  • Structure de données probabiliste
Catégories cachées :
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id