Archiv Dezember 11, 2016

Shiny: Web Application Framework für R

Gegenwärtig evaluiere ich in einem kleinen privaten Projekt das Web Application Framework Shiny der Firma RStudio. Shiny ermöglicht die Entwicklung komfortabler und interaktiver Web-Anwendungen basierend auf der freien Programmiersprache R. Das User Interface (UI) wird über den Web-Browser zur Verfügung gestellt, wobei der zugrundeliegende R-Code serverseitig ausgeführt wird.
Unter dem folgenden Link habe ich exemplarisch eine einfache R-Anwendung zur Darstellung von Zeitreihen und zur Berechnung des historischen Value-at-Risk entwickelt:

Historical Value-at-Risk

Zum Testen der Anwendung habe ich nachfolgend ein paar Daten-Files zum Download bereitgestellt:

DAX
S&P500
EUR/USD

Weitere Informationen zu Shiny und der ebenfalls sehr guten R-Entwicklungsumgebung mit dem Namen RStudio finden Sie unter der Website von RStudio.

Künstliches Neuronales Netz (KNN)

Zur Zeit arbeite ich an der Entwicklung eines eigenen künstlichen neuronalen Netzes (KNN) zur Prognose von Kursen und ökonomischen Indikatoren. Das KNN ist so entwickelt, dass es eine Reihe von Konfigurationsmöglichkeiten besitzt. So kann beispielsweise die Anzahl der Hidden-Layer und der jeweiligen Neuronen frei gewählt werden. Die Anzahl der Input- und Output-Neuronen ergibt sich implizit aus den verwendeten Eingangsdaten bzw. den zu lernenden und später zu prognostizierenden Output-Daten. Sofern erforderlich und gewünscht können sog. Bias-Units verwendet werden. Daneben kann zwischen zwei sigmoiden und einer linearen Aktivierungsfunktion ausgewählt werden. Zur Vermeidung von lokalen Minima ist ebenfalls ein Verfahren implementiert, dass bei Bedarf aktiviert werden kann. Zum Lernen kommt das klassische Backpropagationverfahren zum Einsatz. Programmiert ist das KNN in R.
Künstliche neuronale Netze sind wirklich ein spannendes Thema und es macht viel Spaß, sich mit den Konzepten auseinander zu setzen. Ich kann nur jedem raten, der sich tiefer mit diesem Thema beschäftigen möchte, mal ein eigenes KNN zu programmieren und somit ein Gefühl für das Verhalten solcher Systeme zu entwickeln. Über meine Erfahrungen und Ergebnisse werde ich weiter berichten.

KNN_Result