Hallo Leute,
ich suche ein Modul oder eine Idee wie ich Muster aus Zahlenreihnen erkennen kann.
Ich habe ca. 1,6Millionen Zahlen im 8 bit bereich, diese möchte ich gerne duchsuchen nach Muster und Regelmässigkeiten.
Mit dem blossen Auge sieht man nicht viel auser das es am anfang recht niedrige Werte sind und mit der Zeit (Positionierung+=1) immer grössere Werte werden.
Zwischen Durch fallen aber ständig die kleinen Werte ein, so das man mit nicht viel erkennen kann da die Zahlenreihe zu gross ist.
Was für möglichkeiten habe ich , würde auch auf externe Tools zugreifen die nicht in Python geschrieben sind.
Lieber wäre mir aber wenn mir jemand einen Tip geben kann wie ich so eine Erkennung selber schreiben könnte.
Danke schon mal für alle Antworten.
Gruß der Holger
Muster Suche und Erkennung mit Python.
Hoi Holger,
um was für Daten handelt es sich denn überhaupt? Möchtest Du eine numerische Analyse? Eine anderweitig mathematisch-physikalische Analyse? Suchst Du tatsächlich "Muster" im Sinne regulärer Ausdrücke?
Je nachdem, was Du eigentlich möchtest, werden die Antworten anders ausfallen. Jedenfalls habe ich Deine Frage nicht verstanden. Vielleicht können andere hier mehr damit anfangen?
Gruß,
Christian
um was für Daten handelt es sich denn überhaupt? Möchtest Du eine numerische Analyse? Eine anderweitig mathematisch-physikalische Analyse? Suchst Du tatsächlich "Muster" im Sinne regulärer Ausdrücke?
Je nachdem, was Du eigentlich möchtest, werden die Antworten anders ausfallen. Jedenfalls habe ich Deine Frage nicht verstanden. Vielleicht können andere hier mehr damit anfangen?
Gruß,
Christian
Also ich habe eine Liste mit Zahlen von 0 - 255 , diese liste ist derzeit ca. 1.600.000 Zahlen gross.
Diese möchte ich einfach auswerten ob es ein muster gibt und wenn was für ein muster.
Genaues weiss ich leider nicht über Mustererkennung,
daher habe ich ja hier gepostet.
Es sind wirre Zahlen die einfach durch ein Skript via PrimzahlenRandom generiert wurden.
Nun möchte ich überprüfen ob es wirklich zufallszahlen sind oder halt doch ein muster entsteht, da Zufallszahlen wo ein muster entsteht ja schon kein Zufall mehr sein kann.
Bin dahin gehen für jeden tip offen und jede bemerkung oder link.
Danke noch mal.
Gruß Holger
Diese möchte ich einfach auswerten ob es ein muster gibt und wenn was für ein muster.
Genaues weiss ich leider nicht über Mustererkennung,
daher habe ich ja hier gepostet.
Es sind wirre Zahlen die einfach durch ein Skript via PrimzahlenRandom generiert wurden.
Nun möchte ich überprüfen ob es wirklich zufallszahlen sind oder halt doch ein muster entsteht, da Zufallszahlen wo ein muster entsteht ja schon kein Zufall mehr sein kann.
Bin dahin gehen für jeden tip offen und jede bemerkung oder link.
Danke noch mal.
Gruß Holger
Ah, jetzt!
Wie wäre, quick & dirty, so etwas:
Also, was passiert hier? Erst machen wir eine Liste von Zufallszahlen zwischen 0 und 255 und dann eine definitiv nicht zufällige Liste (gibt schönere Beispiele, aber ich habe wenig Zeit). Dann berechnen wir eine diskrete Fourier Transformation, wobei uns mal nur die realen Werte interessieren (daher das 'r' in der Funktion). Und schließlich wird das geplottet, wobei uns das Maximum bei 0 nicht interessiert. Du siehst deutlich: Die zweite Kurve hat einen klaren Peak. Folglich: Die Inputsequenz war nicht zufällig.
Unabhängig vom Muster: Wenn dieses periodisch ist, so wirst Du es mit dieser Methode erkennen. Wie man ein Muster als nicht zufällig erkennt, das sich in 1.6e6 Ziffern nicht wiederholt, weiß ich auch nicht.
numpy gibt es unter www.scipy.org. matplotlib für das pylab-Modul unter matplotlib.sourceforge.net - Falls Du diese Pakete noch nicht kennst.
Gruß,
Christian
Wie wäre, quick & dirty, so etwas:
Code: Alles auswählen
from numpy import array, fft
from random import randint
import pylab
from math import sin
# make random sample list of length 1e6
rsample = array([randint(0, 255) for x in xrange(1000000)])
sinsample = array([sin(x) for x in xrange(1000000)])
power_rsample = fft.rfft(rsample)
power_sinsample = fft.rfft(sinsample)
pylab.plot(power_rsample[1:])
pylab.plot(power_sinsample[1:])
pylab.show()
Unabhängig vom Muster: Wenn dieses periodisch ist, so wirst Du es mit dieser Methode erkennen. Wie man ein Muster als nicht zufällig erkennt, das sich in 1.6e6 Ziffern nicht wiederholt, weiß ich auch nicht.
numpy gibt es unter www.scipy.org. matplotlib für das pylab-Modul unter matplotlib.sourceforge.net - Falls Du diese Pakete noch nicht kennst.
Gruß,
Christian
Danke Dir für die Antwort , werde das gleich mal ausprobieren !
Gebe dann auch feedback obs geklappt hat oder nicht.
Danke !
Gebe dann auch feedback obs geklappt hat oder nicht.
Danke !