Seite 1 von 1

Daten umstrukturieren für TF Keras LSTM

Verfasst: Dienstag 8. Juni 2021, 15:32
von Hinnerk8
Hallo zusammen,
ich möchte gerne mit tensorflow keras ein LSTM Netz aufbauen. Dafür muss ich meine Daten in eine bestimmte Form bringen.
Aktuell sind meine Daten wie folgt in einer Tabelle aufgebaut:
Zeit | Feature 1 | Feature 2 | Ergebnis
Brauchen tue ich eine Matrix X mit der Form (Anzahl der Samples, Zeitschritte die in jedem Sample berücksichtigt werden, Anzahl der Features). Außerdem brauche ich eine Matrix Y mit den Ergebnissen der jeweiligen Samples.
Ich würde das ganze gerne als Funktion schrieben, aber ich weiß nicht, wie ich meine Tabelle in die richtige Form bringen kann. Meine bisherigen Ansätze für eine Funktion sahen wie folgt aus:
Der Startindex gibt dabei an, wo es in meinen Daten losgehen soll und die Enddaten, bis wohin berücksichtigt werden soll. History soll ein Parameter sein, der angibt, wie weit die "Geschichte" berücksichtigt wird (also wie viele Zeitschritte zurück). Der Targetstep ist mein Vorhersageziel.

Code: Alles auswählen

def Strukturierte_Daten_LSTM(data, start index, end_index, history, target_step)

	start_index = start_index + history_length
   	if end_index is None:
        	end_index = len(data) - target_step
	X=[]
	For i in range(start_index, end_index): 
	Indices = range(i, i+history_length)
Also zum Beispiel: Die folgenden Sequenzdaten sollen 2 Samples werden, mit einer history von 4.
Zeit | Feature 1 | Feature 2 | Ergebnis
t1 | x11 | x21 | y1
t2 | x12 | x22 | y2
t3 | x13 | x23 | y3
t4 | x14 | x24 | y4
t5 | x15 | x25 | y5
t6 | x16 | x26 | y6
t7 | x17 | x27 | y7
t8 | x18 | x28 | y8


Dann bräuchte ich als X zunächst eine Matrix, die wie folgt aussieht:
[[x11, x21],
[x12, x22],
[x13, x23],
[x14, x24],
[x15, x25],
[x16, x26],
[x17, x27],
[x18, x28]]
Und dann müsste ich diese mit X=X.reshape(2, 4, 2) in die richtige Form bringen können.
Ich habe allerdings keine Idee, wie ich diese erste Matrix kreire.
Kann mit jemand behilflich sein?
Vieien Dank vorab!
Beste Grüße,
Hinnerk8

Re: Daten umstrukturieren für TF Keras LSTM

Verfasst: Dienstag 8. Juni 2021, 15:55
von ThomasL
Das macht man üblicherweise mit Numpy (ein Tutorial als Beispiel) https://jakevdp.github.io/PythonDataSci ... numpy.html
und Pandas. https://pandas.pydata.org/pandas-docs/s ... 10min.html

Um vernünftig das zu machen was du willst, benötigst du durchaus mehr als Anfänger Kenntnisse über diese Bibliotheken.

Re: Daten umstrukturieren für TF Keras LSTM

Verfasst: Dienstag 8. Juni 2021, 17:18
von Hinnerk8
Hallo Thomas,
danke dir für den Hinweis! Ich habe tatsächlich bisher nur Grundkenntnisse in Pandas und Numpy.
Könntest du mir eventuell sagen, welche Funktionen du für das oben beschriebene Problem für relevant hälst? Dann würde ich mich da einarbeiten.
Besten Dank!
Hinnerk8

Re: Daten umstrukturieren für TF Keras LSTM

Verfasst: Mittwoch 9. Juni 2021, 06:12
von ThomasL
Schau mal in diese Playlist rein: https://www.youtube.com/watch?v=sRy26qW ... pDlxivl_BN

Videos 11 bis 15 betreffen Pandas und für dein Vorhaben sind Video 51 und 52 wohl am interessantesten.

Time Series Data Encoding: https://www.youtube.com/watch?v=dMUmHsk ... N&index=51

Programming LSTM: https://www.youtube.com/watch?v=wY0dyFg ... N&index=52

Re: Daten umstrukturieren für TF Keras LSTM

Verfasst: Mittwoch 9. Juni 2021, 07:48
von Hinnerk8
Vielen, vielen Dank!!!