9 votos

Mina patrón secuencial de secuencia única

Alguien puede darme una pista sobre un buen enfoque para encontrar una frecuente de patrones en una sola secuencia.

Por ejemplo no es la única secuencia

3 6 1 2 7 3 8 9 7 2 2 0 2 7 2 8 4 8 9 7 2 4 1 0 3 2 7 2 0 3 8 9 7 2 0

Estoy buscando un método que puede detectar patrones frecuentes en esta secuencia ordenada:

3 6 1 [2 7] 3 [8 9 7 2] 2 0 [2 7] 2 8 4 [8 9 7 2] 4 1 0 3 [2 7] 2 0 3 [8 9 7 2] 0

También otra información sería interesante como:

  • ¿Cuál es la probabilidad de que 7 viene después de 2
  • Cuando cada número tiene una marca de tiempo asignado para ello, ¿cuál es el estimado de intervalo de tiempo que el 7 se produce después de 2

El patrón secuencial métodos de minería he encontrado requieren de varias secuencias, pero tengo una gran secuencia en la que quiero para detectar regularidades.

Gracias por la ayuda!

4voto

mmh Puntos 177

Calcular el histograma de N-gramas y el umbral a un nivel adecuado. En Python:

from scipy.stats import itemfreq
s = '36127389722027284897241032720389720'
N = 2 # bi-grams
grams = [s[i:i+N] for i in xrange(len(s)-N)]
print itemfreq(grams)

El N-grama de cálculo (líneas tres y cuatro) son de esta respuesta.

El resultado del ejemplo es

[['02' '1']
 ['03' '2']
 ['10' '1']
 ['12' '1']
 ['20' '2']
 ['22' '1']
 ['24' '1']
 ['27' '3']
 ['28' '1']
 ['32' '1']
 ['36' '1']
 ['38' '2']
 ['41' '1']
 ['48' '1']
 ['61' '1']
 ['72' '5']
 ['73' '1']
 ['84' '1']
 ['89' '3']
 ['97' '3']]

Así que 72 es la más frecuente de dos dígitos larga en tu ejemplo, produciendo un total de cinco veces. Usted puede ejecutar el código para todos los $N$ usted está interesado acerca de.

1voto

missingdataguy Puntos 70

Creo que se puede utilizar el algoritmo de Apriori. Contar el número de cada elemento se produce en la secuencia. Si la cuenta es mayor que un umbral $\varepsilon$ el punto es frecuente. Luego contar el número de pares de elementos frecuentes. Continuar con el numero de frecuencia $4$-tuplas, etcetera.

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