Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Vorraussage von Werten(Neuronale Netzte?) (https://www.delphipraxis.net/174332-vorraussage-von-werten-neuronale-netzte.html)

nuclear 17. Apr 2013 19:44

Vorraussage von Werten(Neuronale Netzte?)
 
Hallo zusammen,
ich habe in Programm geschrieben, welches in belibigen Intervallen veschiedene Daten abfragt. In dem aktuellen Fall sind dies einige Wetterdaten aus Stationen in meiner Nähe. Diese werden nun nach markannten Stellen durchsucht und mit vorherigen Werten abgeglichen um so eine Prognose erstellen zu können. Dies klappt zwar auch schon recht ordentlich (ca 70-80% Treffengenauigkeit was die grobe Entwicklung betrifft), jedoch bin ich mit dem Programm insofern nicht zufrieden, dass es eine große Menge an Arbeitsspeicher belegt. Mit der aktuellen Datenbank liegt der Verbrauch be ca. 3Gb. Das Problem ist nur, dass mit jeder neuen Abfrage der Speicherverbrauch steigt, da die vorherigen Werte zusammen mit der tatsächlichen Entwicklung wieder der Refferenzdatenbank hinzugefügt wird. Dies ist zwar gut um genauere Prognosen zu erhalten, jedoch habe ich bemerkt das die Genauigkeit mitlerweise nur noch sehr langsam ansteigt, woraufhin ich mich mal genauer mit diesem Zusammenhang beschäftigt habe. Als Ergebniss habe ich herausgefunden, dass die Datenbank wohl mindestens um den Faktor 10 zunehmen muss, bis ich ca. 90% Genauigkeit erreichen werde. Meine Frage ist nun, ob sich der Speicherverbrauch mit neuronalen Netzten verringen lässt. Es wäre ja theoretisch genügent Material da um das NN zu tainieren. Die nächste Frage wäre dann, ob gute Arbeiten über neuronale Netze kennt, wo vllt. auch mal eine Impementation bei ist, da mein Fähigkeiten als Programmierer nicht ausreichent sind um ein NN nur aus theoretischen Überlegungen herraus zu erstellen.
MfG nuclear

BUG 17. Apr 2013 22:09

AW: Vorraussage von Werten(Neuronale Netzte?)
 
Zitat:

Zitat von nuclear (Beitrag 1211805)
Als Ergebniss habe ich herausgefunden, dass die Datenbank wohl mindestens um den Faktor 10 zunehmen muss, bis ich ca. 90% Genauigkeit erreichen werde.

Ich finde 70-80% sind einen ad-hoc Algorithmus schon ziemlich gut. Andererseits ist fraglich, ob du die 90% jemals erreichst ... nicht umsonst werden für Wettervorhersagen aufwendige Simulation genutzt, die von Meteorologen betreut werden.

Wenn du deinen Aufwand reduzieren willst, sehe ich drei Ansätze:
  • Reduziere deine älteren Referenzdatensätze auf häufig genutzte "markante" Werte, die gute Vorhersagen liefern und die du dementsprechend wertest. Damit kannst deinen guten Algorithmus behalten. Möglicherweise kannst du mit verschiedenen Alters- und Aggregationsstufen arbeiten: z.B. globale Pattern (gesamte Historie, stark aggregiert) + Monats-Pattern (aktueller Monat aller Jahre, mittelstark aggregiert) + Daten des letzten Monats (nicht aggregiert).
  • Benutze neuronale Netze für die Vorhersage. Schwierig ist dabei afaik das geschickte Auswählen der Aus- und Eingabedaten (zB. absolute vs. relative Temperaturänderung in der letzten Stunde).
  • Suche "per Hand" nach Korrelationen in den gesammelten Daten. Das kann mühsam sein, allerdings könntest du vielleicht spannende Zusammenhänge entdecken. Vielleicht findest du auch andere Heuristiken, die du einfließen lassen kannst.
Natürlich lassen sich solche Techniken dann auch zusammen einsetzen und dann ein gewichtetes Mittel bilden.
Die Gewichte kannst du ermitteln, indem du alle drei Verfahren auf historische Datensätze anwendest und dann die Gewichte so einstellst, das global die geringste Abweichung besteht.

Insgesamt wird es immer eine Heuristik bleiben, wo du mit den Parametern rumspielen musst.

nuclear 17. Apr 2013 23:02

AW: Vorraussage von Werten(Neuronale Netzte?)
 
Danke für die Antwort. Die 70%-80% sind ja nur für grobe Vorhersagen, also ob sich markant Veränderungen innerhalb der nächsten Stunden auftreten werden :) Für die genaueren Bereiche istb die Wahrscheinlichkeit längst nicht so hoch, aber das war mich von vorherein klar.
Zu dem 1. Vorschlag: Das kling gut daran hatte ich garnicht gedacht.
Zum 2. Vorschlag: Dies mache ich ja jetzt schon. Die Funktion filtert die wichtigsten Daten aus, um die grobe Analyse zu betreiben. Erst zur genaueren Bestimmung werden mehr Daten verwendet. Somit sollten die Werte dafür ja schon vorhanden sein. Da habe ich ja nur das Problem mit der Implementierung.
Zu 3.: Auch eine gute Idee. Habe dies zwar schon mla getan wird aber sicher nicht schaden dies zu wiederholen. ICh werde auch mal schauen welche Parameter das Programm am häufigsten findet. Das sollte auch ganz interessant sein.

Hat denn vllt. einer gute Informationen zur Implementation von neuralen Netzen, oder generell ein Vergleich der verschiedenen Typen?

Caps 18. Apr 2013 10:18

AW: Vorraussage von Werten(Neuronale Netzte?)
 
Bezüglich der 70-80% eine rein informative Frage von mir:

Welche Fragestellungen benutzt Du?
z.B.
- Änderung J/N
- Änderung in eine gewisse Richtung?
- Änderung in eine gewisse Richtung innerhalb eines gewissen Intervalls?

Es ist ja so, dass allein uninformiertes Raten schon 50% Vorhersagekraft bzgl. der Frage bringt, ob sich das Wetter in einem gegebenen zukünftigen Zeitraum ändern wird oder nicht :-).

Grüße
Caps

nuclear 18. Apr 2013 11:16

AW: Vorraussage von Werten(Neuronale Netzte?)
 
Die 70%-80% sind halt grobe Informationen. Also wie du beispielsweise schon gesagt hast, in ob es wärmer oder kälter wird oder ob es regnen wird. Deswegen sind diese Werte auch nicht so erstaunlich. Auch weil einige der Informationsquellen um die 30km in westlicher Richtung von mir entfernt sind. Da ist es halt häufig so, dass dort das Wetter das selbe ist wie es bei uns in wenigen Stunden sein wird. Aus dem Grund sind auch die Werte zur genaueren Temperaturentwicklung innerhalb der nächsten Stunden noch relativ genau. Die Prognosen für den nächsten Tag dagegen liegen im Schnitt bei ca 50%(alle Vorhersagewahrscheinlichkeiten gemittelt), also immer noch relativ gut, da in diesen 50% auch die genaueren Vorhersagen ernthalten sind. Wenn ich da die Wahrscheinlichkeit der groben Informationen nutze, dann ligen die immernoch bei ca.60%-70%, also doch deutlich über den 50%.

Edit: Also die genauen Fagestellungen bei der 70%-80% Prognose sind:
-Änderung allgemein Ja/Nein
-Änderung der Themperatur in eine gewisse Richtung
-Änderung des Luftdrucks in eine gewisse Richtung
-Änderung der Bewölkung(keine, leicht,mittel, stark)
-Regen Ja/Nein
-Vorraussichtliche Themperatur(2,5°C Schritte)
-Vorraussichtlicher Luftdruck(2 hPa Schritte)

Sind also auch Werte dabei, welche keine 50% Chance haben:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz