Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Machine Learning mit R ist OK - aber auch mit großen Datenmengen?

Ähnliche Präsentationen


Präsentation zum Thema: "Machine Learning mit R ist OK - aber auch mit großen Datenmengen?"—  Präsentation transkript:

1 Machine Learning mit R ist OK - aber auch mit großen Datenmengen?
Alfred Schlaucher, Oracle

2 Warum bekomme ich beim Würfeln nie eine 6, wenn ich sie brauche?
Die Wahrscheinlichkeit, dass wir eine 6 würfeln, wenn wir sie brauchen, liegt bei 1/6* 100, also bei 16 %. Dass das nicht stimmt, weiß jeder, der 20 mal würfelt und (wenn überhaupt) nur einmal eine 6 bekommt.

3 Und die 16% stimmen doch… …man muss nur oft genug würfeln…
Masse sticht , je mehr desto genauer Die Aussage über die Wahrscheinlichkeit des Eintretens eines Ereignisses wird glaubwürdiger je größer der Umfang der Ereignisdaten oder Beobachtungen ist. Also beschaffen wir möglichst viele Daten zu Ereignissen, damit Analysen zu Wahrscheinlichkeiten und Vorhersagen stimmiger werden. Die Unternehmen mit ihren großen Datenbeständen können also glücklich sein.

4 Statistische Methoden
Ära von Big Data: Was hat sich verändert Interne / Externe Daten Maschinen- / Sensordaten Social Media Bewegungs- / Geo-Daten Digitalisierung von allen Lebensbereichen Zur Verfügung stehende Daten Technischer Fortschritt Statistische Methoden Hadoop, Spark, R, Python In Memory Gesunkene Kosten für Storage + Memory Machine Learning Data Mining Exploratives Analysieren Predictive Analytics

5 Was ist R Analyse-Sprache für die Anwendung von Machine Learning Verfahren Viele vorgefertigte Objektstrukturen für spezifische Informationsobjekte (Data Frames, Vektoren, Matrizen, Faktor-Objekte, Listen) Daten-zentriertes Arbeiten („Bringe Funktionen zu den Daten“) Scripting und eingebettetes Plotting für Adhoc-Graphiken Open Source -> nahezu alle statistischen Verfahren und Machine Learning Algorithmen stehen zur Verfügung Offenes und wachsendes Package-System (> 9000 Pakete) Ideales und bevorzugtes Data Science Werkzeug für alle Phasen und Aufgaben des Analyse-Prozesses Oracle Confidential – Restricted

6 Typische Arbeitsweise eines Analysten mit R
Skripte Memory Modelle Regeln Wissen Console Plottings Oracle Confidential – Restricted

7 Machine Learning (Beispiele)
Classification Nearest Neighbors Decision Tree Logistic Regression (GLM) Naïve Bayes Support Vector Machine (SVM) Random Forest Erkennen von gleichen Krankheitsbildern bei Patienten Vorhersagen, ob eine Person ein Produkt mag oder nicht Musterkennung für Veranlagungen bei der Kombination von Genen Vorhersagen einer Kreditwürdigkeit Betrugserkennung bei Versicherungen Kunden-Zufriedenheitsanalysen Erkennen von graphischen Mustern, Gesichtserkennung Zeitreihenanalysen Erkennen von langfristigen Trends Wettervorhersagen Vorhersagen von gesellschaftliche Entwicklungen Machine Learning (Beispiele) Association Warenkorbanalyse Betrugsdatenerkennung Vorhersagen von Magengeschwüren Vorhersage von Vertragskündigungen Attribute Importance Finden der wichtigsten Eigenschaften von etwas z. B. für Marketing-Kampagnen Regression Multiple Regression (GLM) Support Vector Machine (SVM) Linear Model Generalized Linear Model Multi-Layer Neural Networks Stepwise Linear Regression Vorhersage von Wartungszyklen Vorhersage von Naturkatastrophen, Wetter Unterstützung bei Medikamententests Clustering Hierarchical k-Means Orthogonal Partitioning Clustering Expectation-Maximization Finden von Gruppen mit gleichem Kaufverhalten Finden von Gruppen mit gleichem Verhalten bei der Softwarenutzung Oracle Confidential – Restricted

8 Analytics Pain Points zum Beispiel…
“Es dauert zu lange, um auf Daten zuzugreifen bzw. bis ich die richtigen Daten habe” “Ich kann nicht alle Daten analysieren, ich muss samplen” “R-Modelle in die Produktion zu übernehmen, ist oft Handarbeit und komplex” “Recoding von R Modellen in SQL, C, oder Java dauert zu lange und ist fehleranfällig” “In unserer Firma gibt es Bedenken bzgl. Security, Backup + Recovery Anforderungen” “Wir müssen 10 -Tausende von Modellen erstellen, um die Anforderungen zu erfüllen” See:

9 Schwächen einer Client-based-R-Engine
Beschränkter Hauptspeicher Zu hohe Rechenzeit Zu hohe Latenzzeiten bei Datentransporten Keine Parallelisierung Als Folge eine Einschränkung bei der Menge der gemeinsam betrachteten Input-Attribute für Algorithmen Einschränkungen bei der operativen Nutzung von Modellen Einschränkungen in dem Analyse-Workflow Oracle Database User tables Database Compute Engine Memory User R Engine on desktop HDFS

10 Machine Learning Bekannte Input-Merkmale Output- /
Ein Machine Learning Algorithmus erkennt in bekannten Daten Muster, kann Schlüsse daraus ziehen und Vorhersagen für künftige Entwicklungen machen. Bekannte Input-Merkmale Output- / Vorhersage- Ergebnis Machine Learning Algorithmus EIGENTUM ja/nein LEBENSALTER Stand GESCHLECHT BILDUNG WOHNART EINKOMMENSGRUPPE BERUFSGRUPPE NIEDRIG_PREIS_ KUNDE ? ANZ_KINDER KUNDE_SEIT Std_der_Messung Laufzeit_total Drehzahl_minute Ampere Temp_Gehaeuse Temp_Zuluft Temp_Abluft Temp_Rotor Aussetzzeit-Beginn Drehmoment Temp_Wicklung Prozess_Segment Luftdruck Raumtemperatur Laufzeit_Prozess Wann ist ein Kunde ein Niedrig_Preis_Kunde? Unter welchen Rahmenbedingungen stoppt eine Maschine?

11 Machine Learning Solche Analysen bergen zwei Herausforderung:
Ein Machine Learning Algorithmus erkennt in bekannten Daten Musterkann Schlüsse daraus ziehen und Vorhersagen für künftige Entwicklungen machen. Solche Analysen bergen zwei Herausforderung: Die Menge der Input-Daten (-> Datenvolumen in mehrstelligen GB-Größen, die als Ganzes zu analysieren sind) Die Komplexität als Folge der Anzahl der Input-Merkmale (-> Welche und wie viele Merkmale werden benötigt? -> over / under fitting ) Bekannte Input-Merkmale Output- / Vorhersage- Ergebnis Machine Learning Algorithmus Wann ist ein Kunde ein Niedrig_Preis_Kunde? Unter welchen Rahmenbedingungen stoppt eine Maschine? EIGENTUM ja/nein LEBENSALTER Stand GESCHLECHT BILDUNG WOHNART EINKOMMENSGRUPPE BERUFSGRUPPE NIEDRIG_PREIS_ KUNDE ? ANZ_KINDER KUNDE_SEIT Std_der_Messung Laufzeit_total Drehzahl_minute Ampere Temp_Gehaeuse Temp_Zuluft Temp_Abluft Temp_Rotor Aussetzzeit-Beginn Drehmoment Temp_Wicklung Prozess_Segment Luftdruck Raumtemperatur Laufzeit_Prozess

12 Es bestehen unterschiedliche Abhängigkeiten…
Aussentemperatur numerisch unabhängig Std_der_Messung Laufzeit_total Drehzahl_minute Ampere Temp_Gehaeuse Temp_Zuluft Temp_Abluft Temp_Rotor Aussetzzeit-Beginn Drehmoment Temp_Wicklung Prozess_Segment Luftdruck Raumtemperatur Laufzeit_Prozess Standort kategorial unabhängig Drehzahl numerisch unabhängig Stromaufnahme numerisch abhängig Temperatur Feldspule numerisch abhängig Temperatur Anker numerisch abhängig Ankertyp kategorial unabhängig Volumen Kühlluft numerisch abhängig Temperatur- Sensor Kühlung Aussenluft Drehzahlmessung Stromaufnahme- messung Gehäuse Temperatursensor Feldwicklung (Spulen) Drehmoment- messung Rotor mit eigenem Magnetfeld (nur bei Drehung) Temperatur- Sensor Abluft Es bestehen unterschiedliche Abhängigkeiten… Drehzahl Volumen Kühlluft Temp. Spule Drehmoment Strom …die nicht immer offensichtlich sind => Interatives Wiederholen von Analyseläufen Selektieren / Deselektieren von Attributen Überprüfen der Vorhersagegenauigkeit ….

13 𝑇𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟 = 𝑎∗𝑆𝑡𝑟𝑜𝑚 + 𝑏
Strom Ampere Temperatur 𝑇𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟 = 𝑎∗𝑆𝑡𝑟𝑜𝑚 + 𝑏 Einfache lineare Regression Predict(Modell-Formel, Neue Variablenwerte 𝑇𝑒𝑚𝑝_𝑅𝑜𝑡𝑜𝑟 = 𝑎∗𝐴𝑚𝑝𝑒𝑟𝑒 + b∗𝐷𝑟𝑒ℎ𝑚𝑜𝑚𝑒𝑛𝑡 + 1 𝐷𝑟𝑒ℎ𝑧𝑎ℎ𝑙 Temp_Rotor Ampere Drehmoment Drehzahl Multiple Regression Vorhersage kritische Temperatur Oracle Confidential – Restricted

14 Typische Schritte eines Analyse-Workflows
Geschäfts- anforderung verstehen Daten verstehen 1. Daten aufbereiten Relevante Daten Start 2. Modell erstellen (trainieren) 5. Anpassen Attribut- auswahl Beobachtung Unternehmens daten Anwendung der Erkenntnis 4. Güte einer Vorhersage OK? 3. Modell überprüfen (testen) Unternehmensprozess Anwendung

15 Typische Schritte eines Analyse-Workflows
1. Daten aufbereiten z. B. Transformation (ETL) von großen Datenmengen Geschäfts- anforderung verstehen Daten verstehen z. B. Profiling von großen Datenmengen Daten verstehen 1. Daten aufbereiten Relevante Daten Start 2. Modell erstellen (trainieren) 2. Modell erstellen (trainieren) Große Single-Objekte (Joins + Datenvolumen am Ganzes zu verarbeiten) 5. Anpassen Attribut- auswahl Attribute- Importance 5. Anpassen Attribut- auswahl Beobachtung Unternehmens daten Anwendung der Erkenntnis 4. Güte einer Vorhersage OK? 3. Modell überprüfen (testen) Unternehmensprozess Anwendung

16 Herausforderungen bei der Umsetzung Wie würden wir diese Daten analysieren?
D_KUNDE KUNDEN_ID KUNDENNR GESCHLECHT VORNAME NACHNAME TITEL ANREDE GEBDAT BRANCHE WOHNART KUNDENART BILDUNG ANZ_KINDER EINKOMMENSGRUPPE ORTNR NUMBER, BERUFSGRUPPE STATUS STRASSE TELEFON TELEFAX KONTAKTPERSON FIRMENRABATT BERUFSGRUPPEN_NR BILDUNGS_NR EINKOMMENS_NR WOHNART_NR HAUSNUMMER PLZ ORT KUNDENKARTE ZAHLUNGSZIEL_TAGE BREITE LAENGE BERATERGESPRAECH PK PK Wo liegen die Daten? -> meist in einer relationalen DB Wie groß sind die Tabellen? -> Transaktionale Daten sind meist füllig, mehrstellige GB Brauchen wir eine oder mehrere Tabellen? -> Naive Bayes und viele andere Algorithmen werden nur ein Objekt verarbeiten Welche Attribute sind brauchbar? -> Data Profiling -> Attribute Importance D_ARTIKEL ARTIKEL_NAME GRUPPE_NR GRUPPE_NAME SPARTE_NAME SPARTE_NR ARTIKEL_ID D_ZEIT DATUM_ID TAG_DES_MONATS TAG_DES_JAHRES WOCHE_DES_JAHRES MONATS_NUMMER MONAT_DESC QUARTALS_NUMMER JAHR_NUMMER ZEIT_ID PK F_UMSATZ ARTIKEL_ID KUNDEN_ID ZEIT_ID REGION_ID KANAL_ID UMSATZ MENGE UMSATZ_GESAMT FK FK PK FK FK D_REGION REGION_ID ORTNR ORT KREISNR KREIS LANDNR LAND REGIONNR REGION FK PK D_VERTRIEBSKANAL KANAL_ID VERTRIEBSKANAL KANALBESCHREIBUNG VERANTWORTLICH KLASSE PK

17 4 Millionen Sätze Rechnen wir…mal einen Join durch… Datenvermehrung durch Join-Bildung großer Tabellen umsatz (693 MB) d_kunde (724 KB) d_artikel (128 KB) 22 Variablen, 4 Mill. Sätze 15 Variablen, 681 Artikel 43 Variablen, 3220 Kunden Ausschnitt aus Speicherbelegung von R-Studio auf einem Client-Rechner …das muss irgendwie alles in den Hauptspeicher einer R Umgebung… J_art_umsatz (1 GB) 36 Variablen 1. Join J_kd_art_umsatz (1,7 GB) 78 Variablen 2. Join

18 Kauf- transaktio nen (Anzahl Variablen)
Artikel- stamm (Anzahl Variablen) Kunden- stamm (Anzahl Variablen) Kauf- transaktio nen (Anzahl Variablen) Analyseobjekt bei 4 Millionen Transaktionen (Join zwischen Kunde, Artikel und Umsatz) (Objektgröße in GB) Analyseobjekt bei 40 Millionen Transaktionen (Join zwischen Kunde, Artikel und Umsatz) 15 43 22 1,7 GB 26 GB 30 1,9 GB 30 GB 88 2,4 GB 32 2,6 GB 50 100 8,3 GB 80 GB …diese Objektgrößen brauchen Platz im Hauptspeicher, damit die Algorithmen sie analysieren können… …sonst…

19 Fazit…und Lösung Rechenleistung und Hauptspeicher sind wichtig
Aber auch Parallelisierung und Partitionierung Oracle R Enterprise und Oracle Advanced for Hadoop (ORAAH) sind dafür gemacht, um diese Herausforderungen zu lösen

20 Oracle Advanced Analytics – Mit R in die Datenbank
In-Database Data Mining Algorithmen — SQL, R und GUI Zugriff Classification Clustering Predictive Queries Decision Tree Logistic Regression (GLM) Naïve Bayes Support Vector Machine (SVM) Random Forest Hierarchical k-Means Orthogonal Partitioning Clustering Expectation-Maximization Clustering Regression Anomaly Detection Feature Extraction Attribute Importance Feature Extraction & Creation Minimum Description Length Unsupervised pair-wise KL div. Regression Nonnegative Matrix Factorization Principal Component Analysis Singular Value Decomposition Explicit Semantic Analysis Anomaly Detection Multiple Regression (GLM) Support Vector Machine (SVM) Linear Model Generalized Linear Model Multi-Layer Neural Networks Stepwise Linear Regression 1 Class Support Vector Machine Time Series Open Source R Algorithms Single & Double Exp. Smoothing Ability to run any R package via Embedded R mode Market Basket Analysis Apriori – Association Rules * supports partitioned models, text mining Copyright 2011 Oracle Corporation 20

21 Machine Learning Algorithmen in der DB und in Hadoop
SQL Developer/ Oracle Data Miner Classification Time Series Regression Market Basket Analysis Attribute Importance Predictive Queries Anomaly Detection Feature Extraction Big Data SQL R Client Classification Time Series Regression Market Basket Analysis Attribute Importance Predictive Queries ORAAH Spark Spark MLIB Anomaly Detection Feature Extraction Oracle Confidential – Restricted

22 2 3 1 5 4 Oracle Advanced Analytics: Eine Menge Optionen zum Skalieren
Oracle Database Other R packages SQL Transparent Layer Oracle R Enterprise packages User tables 1 Results Results Database Compute Engine R Engine(s) managed by Oracle DB 5 Oracle R Enterprise packages Big Data SQL Other R packages HDFS User R Engine on desktop 4 Transparent Layer

23 Function overloading (Transperent Layer) In-Database Aggregation
Beispiel: aggregate() Function overloading (Transperent Layer) In-Database Aggregation Oracle Distribution of R version (--) -- "Full of Ingredients" Oracle Advanced Analytics ORE Client Packages Transparency Layer > attach(VW_KOMPLETT_UMSATZ) > anzahl <- aggregate(BERUFSGRUPPE,by=list(BERUFSGRUPPE), FUN=length) > class(anzahl) [1] "ore.frame" attr(,"package") [1] "OREbase" > colnames(anzahl) <- c("Gruppenbegriff","Anzahl") > anzahl Gruppenbegriff Anzahl Angestellt Arbeiter Arbeitslos Auszubildender Beamter Oeffentl_Dienst Praktikant Rente Schueler Selbststaendig Student Trainee nicht_erfasst Oracle SQL Select BERUFSGRUPPE from VW_KOMPLETT_UMSATZ Group by BERUFSGRUPPE In-db Stats Umsatz Kunde Oracle Confidential – Restricted

24 Oracle Advanced Analytics ORE Client Packages
Beispiel: ore.odmSVM() Skalierbare Machine Learning Algorithmen In-Database Data Mining Funktionalität (Support Vector Machine) Oracle Distribution of R version (--) -- "Full of Ingredients" Oracle Advanced Analytics ORE Client Packages Predictive Analytics Oracle PL/SQL > svm_mod <- ore.odmSVM(NIEDRIG_PREIS_KUNDE ~ EINKOMMENSGRUPPE , data=D_KUNDE,"classification") > summary(svm_mod) Call: ore.odmSVM(formula = NIEDRIG_PREIS_KUNDE ~ EINKOMMENSGRUPPE + STAND, data = D_KUNDE, type = "classification") Settings: value prep.auto on active.learning al.enable complexity.factor conv.tolerance e-04 kernel.function linear BEGIN DBMS_DATA_MINING.CREATE_MODEL( model_name => ’SVM_MOD’, mining_function => dbms_data_mining.classification... Coefficients: class variable value estimate EINKOMMENSGRUPPE _ e-07 EINKOMMENSGRUPPE _ e-05 EINKOMMENSGRUPPE _ e-05 EINKOMMENSGRUPPE _ e-05 EINKOMMENSGRUPPE _ e-05 EINKOMMENSGRUPPE _ e-05 EINKOMMENSGRUPPE 80000_ e-06 EINKOMMENSGRUPPE unter_ e-05 STAND e-14 (Intercept) e+00 In-db Mining Model Umsatz Kunde Oracle Confidential – Restricted

25 Skalierbare Machine Learning Algorithmen Parallelisierung (Linear Regression)
Beispiel: ore.lm() Oracle Advanced Analytics ORE Client Packages Predictive Analytics 1 Parallel ORE Framework Oracle Distribution of R version (--) -- "Full of Ingredients" 2 TB_SENSORDATEN ! ! > options(ore.parallel=4) > lm_mod <- ore.lm(TEMP_ROTOR ~ AMPERE + DREHMOMENT, data = TB_SENSORDATEN) > summary(lm_mod) Call: ore.lm(formula = TEMP_ROTOR ~ AMPERE + DREHMOMENT, data = TB_SENSORDATEN) Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) <2e-16 *** AMPERE <2e-16 *** DREHMOMENT <2e-16 *** --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: on 4997 degrees of freedom Multiple R-squared: , Adjusted R-squared: F-statistic: 6.923e+04 on 2 and 4997 DF, p-value: < 2.2e-16 extproc 3 Oracle R Distribution Parallel ore.lm Compute R Packages 4 Parallel Compute Engine

26 ore.lm Performance Vergleich: SPARC T5-8, 4TB of RAM
Berechnung eines Linearen Models mit Parallelisierung in der Datenbank von 31 numerische Input-Variablen bei 184 Millionen Sätzen in einer Oracle-Datenbank-Tabelle Algorithmus Benutzte Threads * Memory Bedarf** Zeit für das Laden der Daten*** Zeit für die Regressions-Berechnung Total Relative Performance Open-Source R Linear Model (lm) 1 220Gb 1h3min 43min 1h46min 1x Oracle R Enterprise lm (ore.lm) - 42.8min 2.47X 32 1min34s 67.7X 64 57.97s 110X 128 41.69s 153X *Open-Source R lm() kann nur mit einem Thread ** Daten müssen zunächst in den R-Hauptspeicher geladen werden, weil Open-Source lm() nur arbeitet, wenn alle Daten dort liegen ***Das ist die Zeit, die vergeht, bis alle Daten den Ahuptspeicher geladen sind

27 Beispiel: Attribute-Importance
Komplexität der Input-Daten Welche der 134 Input-Variablen eine Kunden-Retail-.Szenarios sind relevant? …und das bei knapp 30 Millionen Sätzen… > nrow(J_KD_ART_UMSATZ) [1] > options(ore.parallel=4) > start_zeit <- Sys.time() > ore.odmAI(formula = SCHNAEPPCHENJAEGER ~ GESCHLECHT + LEBENSALTER + BERUFSGRUPPE + BILDUNG + WOHNART, data = J_KD_ART_UMSATZ, auto.data.prep = TRUE,na.action = na.pass) Call: ore.odmAI(formula = SCHNAEPPCHENJAEGER ~ GESCHLECHT + LEBENSALTER + BERUFSGRUPPE + BILDUNG + WOHNART, data = J_KD_ART_UMSATZ, auto.data.prep = TRUE, na.action = na.pass) Importance: importance rank BILDUNG WOHNART LEBENSALTER BERUFSGRUPPE GESCHLECHT > Sys.time() - start_zeit Time difference of secs R-Umgebung und Datenbank zusammen auf 16GB-Laptop Aktivierung der In-Memory-Option Oracle Confidential – Restricted

28 IoT Beispiel / Smart Meter Sensor-Daten Analyse Massive Predictive Modeling – Parallelisierung auf Skript-Ebene, also nicht mit DB-Mitteln Vorhersage des individuellen Verbrauchsverhalten von Kunden zum Berechnen des Gesamtbedarfs Haushalte ausgerüstet mit einem “smart meter” 1 Lesevorgang pro Stunde x 365 x 24 / Jahr  Milliarden Lesevorgänge 3 Jahre  Milliarden Lesevorgänge Das sind Lesevorgänge pro Kunde Wenn die Berechnung eines Regressions-Modells 10 Sekunden dauert, dann braucht man dafür Stunden oder 23.2 Tage …mit einer Parallelisierung von 128 sind das  4.3 Stunden

29 Wie wird das gemacht? Smart Meter Scenario
ore.groupApply Wie wird das gemacht? Smart Meter Scenario Oracle Database ore.groupApply f(dat,args,…) { } Data c1 c2 ci cn R Script build model R Model Store R Script Repository Predict individual customer energy consumption to anticipate significant changes in demand. f(dat,args,…) Eine andere Art der Parallelisierung (ore.groupApply) Verlagerung von Skripten in die Datenbank Partitionierung der Daten nach fachlichen Kriterien, z. B. Kunden-Nr Parallelisiertes Aufrufen und Anwenden des Skriptes Model c1 Model c2 Model ci Model cn Berechnung aller Vorhersage-Modelle für alle Haushalte. Die Modelle liegen danach in dem Model-Store und können z. B. mit SQL ausgewertet werden.

30 ore.groupApply Parallelisiertes Modell-Erstellen in der Datenbank Smart Meter Scenario Partitioniung nach CUST_ID ore.groupApply (CUST_USAGE_DATA, CUST_USAGE_DATA$CUST_ID, function(dat, ds.name) { cust_id <- dat$CUST_ID[1] mod <- lm(Consumption ~ . -CUST_ID, dat) mod$effects <- mod$residuals <- mod$fitted.values <- NULL name <- paste("mod", cust_id,sep="") assign(name, mod) ds.name1 <- paste(ds.name,".",cust_id,sep="") ore.save(list=paste("mod",cust_id,sep=""), name=ds.name1, overwrite=TRUE) TRUE }, ds.name="myDatastore", ore.connect=TRUE, parallel=TRUE ) ! 14 Zeilen R-Skript

31 Den „Model Store“ gibt es nur bei Oracle
Oracle Database select Vorhersage-Feld1,...from predict-Skript(model , new-data) HDFS Parquet AVRO ORC Oracle noSQL Big Data SQL Objekte / Modelle Skripte Graphiken Plots save() R-binary File Model Store (Skripte und Modelle) R-Objekte R-Skripte (z. B. predict) ore.save() ore.create() R-Modelle (z.B Naive Bayes Classifier) Oracle Confidential – Restricted

32 Den „Model Store“ gibt es nur bei Oracle
OBIEE Applications Oracle Database Business Analysts/Mgrs Domain End Users select Vorhersage-Feld1,...from predict-Skript(model , new-data) HDFS Parquet AVRO ORC Oracle noSQL Big Data SQL Realtime Flow R-Skripte (z. B. predict) New Data R-Modelle (z.B Naive Bayes Classifier) Model Store (Skripte und Modelle) R-Objekte Realtime Flow New Data Oracle Confidential – Restricted

33 Der „Model Store“ kann auch eine zentrale Objekt-Bibliothek für Projektgruppen sein
Oracle Confidential – Restricted

34 Operativer Einsatz von Modellen erleichtern
Data Science (In Verbindung mit Data Lakes und Data Warehouse Systemen) Operative Umgebung z. B. OLTP-Anwendungen auch in Realtime Modell- Entwicklung Modell- Anwendung R Client OBIEE Predict Model-Store Model-Store Trainingsdaten Neue operative Daten Entwicklung neuer Modelle Anwendung der Modelle

35 Oracle Advanced Analytics und Hadoop (ORAAH)
Oracle Confidential – Restricted

36 Oracle R Advanced Analytics for Hadoop
R Predictive + Machine Learning + Analytics Algorithmen Classification Regression Feature Extraction GLM ORAAH MLP Neural Networks ORAAH Non-negative Matrix Factorization Logistic Regression ORAAH LASSO Collaborative Filtering (LMF) Logistic Regression Ridge Regression Singular Value Decomposition Random Forests Support Vector Machines Attribute Importance Decision Trees Random Forest Principal Components Analysis Support Vector Machines Linear Regression Clustering Principal Components Analysis Basic Statistics orch.ml.svd, 163 Hierarchical k-Means Correlation/Covariance Hierarchical k-Means Gaussian Mixture Models Copyright 2011 Oracle Corporation 36

37 ORAAH Benefits: Benchmark vs Spark Mllib / SparkR
Performance-Vergleich von LM und GLM mit unterschiedlichen Spark Memory footprints Szenario: Single X5-2 Node mit 74 Threads und 256 GB RAM, Spark auf CDH 5.8.0 Input Data 15GB ”Ontime” Airline Dataset mit 123 Millionen Sätzen, Vorhersage Coefficients Time in Seconds Time in Seconds Spark Context memory in GB Spark Context memory in GB LM formula used ARRDELAY ~ DISTANCE + ORIGIN + DEST + as.factor(MONTH) + as.factor(YEAR) + as.factor(DAYOFMONTH) + as.factor(DAYOFWEEK) + as.factor(FLIGHTNUM) GLM formula used CANCELLED ˜ DISTANCE + ORIGIN + DEST + as.factor(MONTH) + as.factor(YEAR) + as.factor(DAYOFMONTH) + as.factor(DAYOFWEEK) + as.factor(FLIGHTNUM)

38 ORAAH Benefits: Benchmark vs Spark Mllib / SparR
Performance-Vergleich von LM und GLM mit unterschiedlichen Spark Memory footprints Szenario: Single X5-2 Node mit 74 Threads und 256 GB RAM, Spark auf CDH 5.8.0 Input Data 15GB ”Ontime” Airline Dataset mit 123 Millionen Sätzen, Vorhersage Coefficients ORAAH ist 6x - 32x schneller als Spark MLlib für LM ORAAH ist 4x - 15x schneller als Spark MLlib für GLM Time in Seconds Time in Seconds Spark Context Memory in GB Spark Context Memory in GB LM formula: ARRDELAY ~ DISTANCE + ORIGIN + DEST + as.factor(MONTH) + as.factor(YEAR) + as.factor(DAYOFMONTH) + as.factor(DAYOFWEEK) + as.factor(FLIGHTNUM) GLM formula: CANCELLED ˜ DISTANCE + ORIGIN + DEST + as.factor(MONTH) + as.factor(YEAR) + as.factor(DAYOFMONTH) + as.factor(DAYOFWEEK) + as.factor(FLIGHTNUM)

39 ORAAH: Machine Learning in Spark auf HDFS Daten
ORAAH mit parallelisiert verteilter GLM Modell-Erstellung using Spark Caching Oracle Distribution of R version (--) -- "Full of Ingredients" Oracle R Advanced Analytics for Hadoop Client Packages Spark-Based Machine Learning algorithms module YARN: Apache Spark Job > Connects to Spark > spark.connect("yarn-client",memory="24g") > # Attaches the HDFS file for use within R > ont1bi <- hdfs.attach("/user/oracle/ontime_1bi") > # Formula definition: Cancelled flights (0 or 1) based on other attributes > form_oraah_glm2 <- CANCELLED ~ DISTANCE + ORIGIN + DEST + F(YEAR) + F(MONTH) + +   F(DAYOFMONTH) + F(DAYOFWEEK) > system.time(m_spark_glm <- orch.glm2(formula=form_oraah_glm2, ont1bi))  ORCH GLM: processed 6 factor variables, sec  ORCH GLM: created model matrix, partitions, sec  ORCH GLM: iter  1,  deviance   E+09,  elapsed time sec  ORCH GLM: iter  2,  deviance   E+08,  elapsed time sec  ORCH GLM: iter  3,  deviance   E+08,  elapsed time sec  ORCH GLM: iter  4,  deviance   E+08,  elapsed time sec  ORCH GLM: iter  5,  deviance   E+08,  elapsed time sec  ORCH GLM: iter  6,  deviance   E+08,  elapsed time sec  ORCH GLM: iter  7,  deviance   E+08,  elapsed time sec  ORCH GLM: iter  8,  deviance   E+08,  elapsed time sec user  system elapsed    1 4 2 Custom Spark Java Algorithm distributed in-Memory Computation 5 Custom Spark Java Algorithm distributed in-Memory Computation 3 /user/oracle/ontime_s

40 R: Transparent Layer auf HIVE Tabellen (ORAAH)
Thrift Server 1 HQL Oracle Distribution of R version (--) -- "Full of Ingredients" Oracle R Advanced Analytics for Hadoop Client Packages HIVE Transparency Engine Zugriff auf alle Hive Tabellen > ore.sync(table=“tab_input") > ore.sync(table=“tab_input2") Auflistung HIVE Tabellen > ore.ls() Metastore 2 4 /user/oracle/tab_input HDFS Storage 3 [1] “tab_input" “tab_input2" Abfage Variablebnamen der Tabellen > names(tab_input) > names(tab_input2) Join auf Hive-Tabellen > joined <- merge(tab_input,tab_input2,by="value") Erstellen neuer Variablen als Pointer-Objekte > joined$NEW_VARIABLE <- (joined$v1.x + joined$v1.y)/2

41 Exemplarische Sentiment- und Influencer -Analyse bei Bharti Airtel
führende Telefongesellschaft in 20 Ländern in Asien+ Afrika 350 Millionen Kunden, Asien Afrika Messung der Wahrnehmung beim Kunden (positiv/negativ) Einholen des Feedbacks über neue Services und Produkte Finden der “Influencers” für eine Zielgruppensegmentierug von Marketingkampagnen Erkennen von Trends, für neue Produkte Messen von Reaktionen bei unüblichen Vorkommnissen wie Netzausfall Apache Flume Oracle R Advanced Analytics for Hadoop (Sentiment, Trend analysis) Hive (Tweet-Tabelle) (Influencer Analysis) HDFS (tweets / JSON Format) Oracle Big Data Appliance Senke Twitter Streaming Big Data SQL Model-Store Naive Bayes Positiv/Negativ- Classifier Oracle DB HIVE-Zugriff mit ORAAH Zählen der Tweets/Retweets Oracle Confidential – Restricted

42 Vorgehensweise bei der Sentimentanalyse der Texten
Vorbereitung Corpus-Objekt Alle Tweets eines Zeitraums oder einer bestimmten Gruppe Historische Tweets Hadoop 1 Extrakt von Texten Operative Anwendung Neue Tweets Neue Tweets zugeordnet zu Zeiten und Personen Twitter Streaming Hadoop 5 Standardisieren der Texte 2 Kleinbuchstaben Keine Zahlen Keine Satzzeichen Keine Sonderzeichen Stoppworte entfernen Stemming durchführen Kategorisieren (Positiv/Negative- Label) der Wörter und Phrasen 3 OBIEE Classifier (gewichtete Positiv / Negative-Wort/Phrasen-Liste) NaiveBayes-Algorithmus Sentiment 4 Sentiment Dashboard

43 ORAAH vs Python: Spark MLlib Random Forest from HIVE
Zum Schluss noch einen Abstecher zu den Python-Kollegen… ORAAH vs Python: Spark MLlib Random Forest from HIVE Python Schritte – 47 Zeilen ORAAH Schritte – 14 Zeilen Load Libraries Load Libraries Establish HIVE and Spark Session Establish Spark Session Build Model directly against HIVE data with full formula support Process Formula The ORAAH formula parser can handle any of the complex transformations and processes that are present in the open-source R, while SparkR can only handle simple attributes with a limited subset of transformations Copy data from HIVE Predictions on HIVE data exported with desired columns Create 3rd copy of Data for vectors Build Model Single Vector of Predictions

44 Oracle Advanced Analytics—On Premise or Cloud
100% Compatibility Enables Easy Coexistence and Migration CoExistence and Migration Same Architecture On-Premise Same Analytics Oracle Cloud Same Standards Transparently move workloads and analytical methodologies between On-premise and public cloud

45 Ressourcen Folien Seminareprogramm Offload-Szenario anfordern über
-> Downloads –> Web-Sessions 2017 Folien Seminareprogramm Offload-Szenario anfordern über Oracle Confidential – Restricted

46 Ressourcen https://www.oracle.com/big-data/index.html
Ganztäge Seminar zu Big Data : 11. Sept GS Hamburg 28. Nov GS Frankfurt 29. Nov GS München 2-tägige Seminare „Einführung in R und Algorithmen“: 26. – 27. Sept GS Düsseldorf 17. – 18. Okt GS Berlin – 05. Dez GS Hamburg Seminarprogramm anfordern über Oracle Confidential – Restricted


Herunterladen ppt "Machine Learning mit R ist OK - aber auch mit großen Datenmengen?"

Ähnliche Präsentationen


Google-Anzeigen