Stratification, ou comment apprendre à faire confiance aux données

Regardez ces deux ensembles de points et pensez: lequel vous semble le plus «aléatoire»? La répartition dans la figure de gauche est clairement inégale. Il y a des endroits où les points sont condensés, et il y a aussi des endroits où il n'y a presque pas de points: à cause de cela, il peut même sembler que le graphique de gauche est plus sombre. Sur la figure de droite, des condensations et des raréfactions locales sont également présentes, mais elles sont moins marquantes.




Pendant ce temps, c'est le graphique de gauche qui a été obtenu en utilisant le générateur de nombres aléatoires «honnête». Le graphique de droite contient également des points complètement aléatoires; mais ces points sont générés de sorte que tous les petits carrés contiennent un nombre égal de points.


La stratification est une méthode de sélection d'un sous-ensemble d'objets dans la population générale, divisée en sous-ensembles (strates). Pendant la stratification, les objets sont sélectionnés de telle manière que l'échantillon final conserve le rapport de la taille des strates (ou de manière contrôlée a violé ces relations, voir l'article 3). Disons, dans l'exemple considéré, que la population générale est constituée de points à l'intérieur d'un carré d'unité; les strates sont des ensembles de points à l'intérieur de petits carrés.


. , . , - .


1. :



, , — , 0.4. . -.



() :


import random

random.seed(100)

for i in range(500):
    x, y = random.random(), random.random()
    print x, y

, : , ; . , , , .


import random

random.seed(100)

cellsCount = 10
cellId = 0

for i in range(500):
    cellVerticalIdx = (cellId / cellsCount) % cellsCount
    cellHorizontalIdx = cellId % cellsCount
    cellId += 1

    left = float(cellVerticalIdx + 0) / cellsCount
    right = float(cellVerticalIdx + 1) / cellsCount

    top = float(cellHorizontalIdx + 1) / cellsCount
    bottom = float(cellHorizontalIdx + 0) / cellsCount

    x, y = random.random(), random.random()
    x = left + x * (right - left)
    y = bottom + y * (top - bottom)

    print x, y

— . , — .



, , , .


, . ! , , , .


2. -


.


: , . , , . , .


: , .. . , , . , . , , — .


. :



. , . , «» , , . , , !


, , -, .. , . ( ), :



, , , . , , , , .


3.


-, -: , , , . A/B- , , , 0.5% , .


( , , ..), , .


Online Stratified Sampling: Evaluating Classifiers at Web-Scale Microsoft Research, .


, N, npC.


K— . k- Nkp^kC.


p^=k=1KNkNp^k


:


var(p^)=k=1K(NkN)2var(p^k)


, !


n, nkk- :


nkNkvar(pk)


, . , .


, : . , - , , .




, , . - SimilarWeb Alexa - , . , . , , .


: ? ? ?


S'il n'y a pas de réponses ou qu'elles ne sont pas satisfaisantes, il se peut fort bien que les données vous trompent.


All Articles