Einführung in Data-Mining mit analytischen Funktionen und R Vladimir Poliakov, Nürnberg, November 2015 • • • • • Vladimir Poliakov (v.poliakov@gmx.net) Hydrometeorologische Hochschule in St.Petersburg (mathematische Modellierung) Seit 1998 in Deutschland als Softwareentwickler Seit 2007 als Oracle DBA (Tuning, Reporting, Schnittstellenprogrammierung, Data Mining etc.) https://www.gulp.de/gulp2/home/profil/dba Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 2 • • • • • • • • R wurde 1993 für statistisches Rechnen und Grafiken entwickelt R ist eine freie Software und läuft auf vielen Plattformen R hat mehr als 4000 Pakete und kann die Daten aus verschiedenen Datenquellen lesen (CSV-Dateien, Oracle Datenbank etc.) R wurde ursprünglich in der Wissenschaft eingesetzt und erst in den letzten Jahren kommt mehr bei den Unternehmen zum Einsatz (Bankwesen, Handel, Industrie etc.) Installation und Konfiguration R Software Desktop Variante Vorbereitung der Daten mit Hilfe der Oracle analytischen Funktionen Präsentation von R Studio, R Commander und Paket Rattel (R Data Miner) Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 3 • • • „Daten-Bergbau“ – Erkennen der Querverbindungen und Trends „Everything is numbers“ ☺ Kleine ad hoc sowie große und komplizierte Analysen Mögliche Einsatzbereiche: • • • • • • • Bankwesen: Kreditwürdigkeit, Betrugserkennung Handel: Warenkorbanalyse Industrie: Optimierung Poduktions- und Fertigungsprozesse Energieversorgung: Effizienz der Windanlagen IT: Kapazität Management, Ausfall der Serverkomponenten Technik: prognostizierbare Ausfälle der Geräte Sonstiges: Vorhersage im Sportevent Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 4 • Frage für die Data-Mining Analyse formulieren • Daten vorbereiten (finden, bereinigen und ins Data-Mining Tool laden) • Die Verteilung der Daten analysieren!!! • Die Variablen auswählen dann das Datamodell mit den Trainingsdaten bilden • Ergebnisse der Berechnung überprüfen, interpretieren und auf die Testdaten anwenden. Das Modell deployen. Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 5 • Deutsche Eishockey Liga (DEL) und National Hockey League (NHL) • Öffentliche Datenquelle = Internet (www.del.org und www.nhl.com) • Echte Daten und Zahlen, keine Datenmanipulation ☺ Ist die Anzahl der Tore im Spiel von der Stärke der Mannschaften abhängig? oder Ist die Anzahl der Tore im Spiel von der vor dem Spiel herrschenden Tordifferenz beziehungsweise von der Gegentordifferenz beider Gegner abhängig? Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 6 • https://www.r-project.org/ - R Project Homepage • Download vom CRAN (Comprehensive R Archive Network) Mirrors • Aktuellste Version ist 3.2.2 (Stand 01.11.2015) • 32- and 64-bit R kann auf einem Rechner installiert werden • R läuft in einer Console = Kommandozeileumgebung • R Studio und zusätzliche Pakete für die Erweiterung Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 7 • R ist plattformunabhängig • R wird nicht kompiliert • R ist Open Source • Speicherverwaltung Probleme • R Community ist sehr groß • Wenige Datentypen • Über 4000 R Pakete • Keine Prüfung der Funktionsparameter auf den Typ Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 8 R Studio R Console Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 9 R Studio – Import der Daten Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 10 Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 11 Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 12 • • • • ROracle, RODBC, RJDBC Konfigurieren der Verbindung via ODBC • Installieren des Oracle Instant Clients + ODBC Library • Konfigurieren eines System DNS via C:\Windows\SysWOW64\odbcad32.exe (32Bit ODBC Admin auf 64Bit Windows) • Setzen des Passwortes beim Bedarf unter HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC .INI\<DSN_NAME> (Registry Eintrag für 32Bit ODBC System DSN) Starten von Rattel via rattle() in der R Console / R Studio Testen der Verbindung Daten laden ggf. Fehler korrigieren Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 13 • Instant Client und ODBC Bibliotheken Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 14 1. R Dataset als eine mögliche Alternative 2. In der R Konsole den ODBC-Zugriff durchführen Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 15 1. Library „RODBC“ fehlt 2. R-Engine ist mit dem ODBC-Treiber inkompatibel (32Bit vs. 64Bit oder umgekehrt) Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 16 1. Library „RODBC“ fehlt 2. Kein Passwort in der Registry 3. Falsches Passwort in der Registry Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 17 „Typisches Stern“ Data Warehouse Schema Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 18 • Besorgen der Daten aus dem Internet • Bereinigen der Daten • Laden der Daten via SQL*Loader • Vorbereiten der Daten als Analytical Records Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 19 die Prädiktoren der vorherzusagende Wert Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 20 • • • • • Eingefügt in Oracle 8i In allen Editions (EE, SE/SE1/SE2 und XE) verfügbar Ähnlich wie Gruppenfunktionen, aber der Wert wird für jede Zeile ausgegeben Viele Gruppenfunktionen sind auch analytische Funktionen Sehr effizient zusammen mit den Materialized Views im DWH Umfeld FUNCTION_NAME([column|expression]) OVER ([analytische Klausel]) Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 21 LAG(GOALS,1,0) OVER (PARTITION BY TEAM_ID ORDER BY MATCHDATE, TEAM_ID) PREV_GOALS SUM(PREV_GOALS) OVER (PARTITION BY TEAM_ID ORDER BY MATCHDATE, TEAM_ID) SUM_PREV_GOALS LAG(…) - ohne Self-Join Zugriff auf andere Zeilen in der Ergebnismenge SUM(…) - Aufsummieren der Werte Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 22 • y = f(x) + e, y = k0 + k1 * x + e, eindimensionaler Fall • y = f(x1, x2, …, xn) + e, n-dimensionaler Fall • Lineare Regression • Polynomiale Regression • Logistische Regression, nicht parametrische Regression etc. Lineare Regression Polynomiale Regression Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 23 • • library(psych) pairs.panels(<data_matrix>) Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 24 • Rattle starten • Laden der Daten in R Studio oder in Rattle • Variablen auswählen • Modell auswählen • Berechnen • Analysieren • Ergebnisse präsentieren / Model deployen Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 25 nicht signifikant signifikant Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 26 Entscheidungsbaum Regeln Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 27 Model mit einem Prädiktor (Input-Variable) Modell mit zwei Prädiktoren (Input-Variablen) Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 28 Tuning Parameter Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 29 Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 30 Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 31 Verwendete Prädiktoren Vorhersage Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 32 • Ohne sauberen Daten gibt es keine brauchbaren Ergebnisse • 80% Zeit wird in die Datenvorbereitung investiert • Rattle ist keine Wundertüte, hilft aber einen Einstieg in Data Mining zu machen • Alles was Rattle kann, kann manuell in R gemacht werden • Abhängig von der Aufgabestellung sollte man auch die möglichen Alternativen unter die Lupe nehmen Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 33 • http://www.kdnuggets.com/software/index.html • Parallele Berechnungen der eigenen Modellen auf einem Server oder einem Cluster (Fortran mit OpenMP, C/C++, Multiprocessing Modul in Python, MS Task Parallel Library (TPL), Parallele Programmierung in Java etc.) • R Enterprise Oracle • Hadoop Framework (MapReduce Algorithmus) • Apache Spark (Berechnungen im Speicher) Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 34 • Data-Mining in Wikipedia: https://de.wikipedia.org/wiki/Data-Mining • Bernd Weiler, DOAG 2014, Einführung in die Statistik mit R • Heuer, Andreas, Der perfekte Tipp: Statistik des Fußballspiels (Erlebnis Wissenschaft) 1. Auflage September 2012, Wiley-VCH, Weinheim Verlag, ISBN 978-3-527-33103-1 • Zeitschrift iX Developer Big Data 2015 - Analytics Design Patterns • Zeitschrift iX Developer Big Data 2015 – Kennzeichen R • Dormann, Carsten F., Parametrische Statistik : Verteilungen, maximum likelihood und GLM in R, Springer Spektrum, 2013, ISBN 978-3-642-34785-6 • Williams, Graham, Data Mining with Rattle and R: The Art of Excavating Data for Knowledge Discovery (Use R) Auflage: 2011 (4. August 2011), Springer Verlag, ISBN 978-1-441-99889-7 • Online platform Kaggle for predictive modelling and analytics competitions: http://www.kaggle.com • Online Platform for Knowledge Discovery in Databases: http://www.kdnuggets.com Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 35 Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 36 Copyright © 2015, Vladimir Poliakov (v.poliakov@gmx.net) 37