5 votos

Detectar si están automatizadas web visitas

Estoy tratando de detectar automatizado de visitas a un sitio web. Un típico conjunto de datos para un sistema automatizado de cliente es de la forma:

userid: visit_time1, visit_time2, ...
94562:  5, 10, 15, 25, 30
                  ^
                missed 

Por lo que el período de la visita veces es 5.

De vez en cuando (como he señalado arriba), el sistema automatizado de cliente se olvida de un período de tiempo, pero la próxima visita será todavía un número entero múltiplo de la época.

Por favor, tenga en cuenta que los datos es un poco ruidoso así. De manera más realista un conjunto de datos, se vería así:

userid: visit_time1, visit_time2, ...
94562:  5, 11, 14, 25, 30
                  ^
                missed 

Mientras que un no-automático de cliente que tiene un conjunto de datos que se parece más:

13345: 5, 21, 34, 89

con ningún patrón claro.

Traté de hacer un vector con 1's en el tiempo de visita de los índices y 0's en todas las demás. Entonces hice de autocorrelación y funcionó bastante bien para subjetivamente determinar si un cliente está de visita en un intervalo regular. Esto estaba basado en esta cuestión de la DSP stackexchange

Sin embargo, aún no sé cómo detectar mediante programación este comportamiento.

También he pensado en las pruebas de la varianza de los intervalos entre las visitas, pero algunos intervalos son múltiplos del período base y esto sesga la media.

3voto

Jeff Bauer Puntos 236

En un comentario, me propuso Datos de la Agrupación, pero parece ser una exageración, ya que hemos uni-dimesnional de datos. Considere el siguiente algoritmo.

1) Tomar una serie y calcular las longitudes entre las visitas

2) Obtener todos los valores únicos en la diferencian de la serie, así como sus frecuencias

3) Solo el valor en la diferencian de la serie con la frecuencia más alta.

(marque: es este valor también el mínimo valor de longitud? Para un sistema automatizado de visitante, debe ser, ya que será el "período de base")

4) Dividir todos los otros valores con este valor máximo-valor de la frecuencia de

5) Criterio: son todos los resultados de las anteriores divisiones de números enteros? Si sí, usted tiene un sistema automatizado de visitante.

La probabilidad de que una no automatizado visitante va a satisfacer el criterio 5) es próximo a cero. Y creo que el de arriba es fácil de programar.

ANEXO

Nueva información de la OP, reveló que las longitudes observadas entre las visitas son ruidosas. Así que aquí es un modelo, lleno de supuestos necesarios con el fin de proporcionar un resultado tangible. El método de estimación utilizado es el Método de los Momentos.

Deje $\ell_i$ ser el tiempo entre las visitas en tiempo $t_i$$t_{i-1}$. Deje $\tilde \ell$ ser la "base de longitud", seguido por un visitante (no necesariamente una autómata), sin el ruido. Deje $u_i$ ser el ruido, la contaminación de la hora exacta de la visita.
Hipótesis 1: $u_i$ es un yo.yo.d. ruido blanco (cero media, varianza constante, no autocorrelación). Entiendo que la contaminación viene también en valores enteros, por lo que asumimos que el $u_i$ sigue una distribución discreta toma valores enteros, y es simétrica alrededor de cero.

Por último, vamos a $m_i=1,2,3,...$ ser el parámetro que indica si la longitud actual entre las visitas es un múltiplo del período de base, y si se trata de ($m_i>1$), cuántos múltiplos es. Hipótesis 2: $m_i$ sigue una distribución geométrica de la primera variante, con el parámetro $0 \leq p \leq 1$.

Hipótesis 3: $u_i$ $m_i$ son independientes, a través de índices también.

Dado todo lo anterior, el valor de $\ell_i$ puede ser escrito como

$$\ell_i= m_i\tilde \ell +u_i $$ y es estrictamente un proceso estacionario. Tenga en cuenta que esta es una representación válida de longitudes entre las visitas de ambos automatizado y no automatizado de los visitantes.

También tenemos

$$E(\ell_i)= \frac 1{p}\tilde \ell, \;\;\;\; \text{Var}(\ell_i) = \frac {1-p}{p^2}\tilde \ell^2 + \sigma^2_u$$

Pero de mayor interés es el 3d momento central de $\ell_i$, y esto es debido a los supuestos de: a) la simetría de la distribución de $u_i$ alrededor de cero, y 2) la Independencia de $m_i$$u_i$. Un poco de cuidado álgebra da

$$E(\ell_i - E(\ell_i))^3 = \tilde \ell^3E[m_i-E(m_i)]^3 = \tilde \ell^3\left(\frac{1-p}{p^2}\right)^{3/2}\cdot \frac {2-p}{\sqrt {1-p}}$$

donde para una rápida derivación hemos utilizado la relación entre el 3d momento central y el coeficiente de asimetría (relacionado con el $m_i$ r.v.). Esta magnitud es de interés porque no contiene la varianza de $u_i$ (y no contiene en 3d raw momento porque dada nuestra simetría alrededor de cero hipótesis, es cero). Simplificando obtenemos

$$E[\ell_i - E(\ell_i)]^3 = \tilde \ell^3\frac{(1-p)(2-p)}{p^3}$$

A partir de la expresión de la media de $\ell_i$ tenemos $\tilde \ell = pE(\ell_i)$. Sustituyendo en la 3d momento central, re-organización, la simplificación y la descomposición, obtenemos

$$\frac {E[\ell_i - E(\ell_i)]^3}{\Big [E(\ell_i)\Big]^3} = (1-p)(2-p)$$

$$\Rightarrow p^2 - 3p + \left(2-\frac {E[\ell_i - E(\ell_i)]^3}{\Big [E(\ell_i)\Big]^3}\right) = 0 $$

La relación de los valores esperados pueden ser calculados a partir de la muestra, llame a la estimación $\hat q$. A continuación, sólo una de las raíces del polinomio es significativo,

$$\hat p = \frac {3 - \sqrt {1+4\hat q}}{2}$$

que a su vez nos dará una estimación de $\tilde \ell$, y luego, a través de la varianza de la muestra, una estimación también de $\sigma^2_u$.

¿Qué hemos aprendido?

Bueno, piensa en lo que es la interpretación de $p$: es la probabilidad de que $m_i$ va a tomar el valor de $1$, y así en una larga serie, $1-p$ es la proporción de veces que los visitantes han perdido uno o más visita.
A mí me parece que la parte inferior $p$ (el mayor $1-p$ es -las más veces el visitante se pierde una visita o más en una fila), la menos probable parece que es un autómata.

Además, el valor de $\sigma^2_u$ se debe esperar a ser menor en un fichero automatizado de visitante (suponiendo que es menos moody y la idiosincrasia de un ser humano).

Como una medida compuesta, el coeficiente de variación estandariza la variabilidad con respecto al valor de la media

$$\text{CV}(\ell_i) = \frac {\sqrt {\text{Var}(\ell_i)}}{E(\ell_i)} = \sqrt {(1-p)+\left(p/\tilde \ell\right)^2\sigma^2_u}$$

y esperamos que los valores bajos para ella, para la automatización de los visitantes.

Por supuesto, ya que la anterior se aplicará a todas las series de forma individual, y se estima que será obtenida por todos los visitantes, automatizado o no, queda por determinar un criterio de clasificación. Yo voy a dejar esta tarea para el OP, si es que se decide implementar este método (por ejemplo, si existe alguna serie de la que conocemos con certeza de que provienen de automatizado de los visitantes, entonces podemos trabajar con ellos para obtener valores de referencia para los umbrales relacionados con los parámetros).

Una nota final: si uno quiere asumir una distribución específica para $u_i$, también se podría aplicar el máximo de probabilidad, mediante la obtención de la función de masa de probabilidad de $\ell_i$, a través de la convolución discreta variables aleatorias.

0voto

Underminer Puntos 1112

Podrían romper la secuencia en varias ventanas de tiempo. Si usted puede asumir las visitas dentro de cada ventana son Aleatorios de Poisson Proceso y que el proceso es homogéneo a través de las ventanas (esto se basa en gran medida en cómo se siente usted DEBE comportarse, pero me parece razonable a través de una corta duración), puede determinar si sus visitas por la ventana se desvian desde que asumió el proceso de Poisson. Si es así, usted puede tener autobot.

Para la prueba de la desviación de la distribución de Poisson, esta pregunta y la respuesta puede ayudar a: ¿Cómo puedo probar si dado que las muestras se toman a partir de una distribución de Poisson?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X