5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation •...

13
5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02.2018, 23:59 Uhr Berlin, 22. Januar 2018 Patrick Schäfer [email protected] Vorlesung: https://hu.berlin/vl_dwhdm17 Übung: https://hu.berlin/ue_dwhdm17

Transcript of 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation •...

Page 1: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

5.AufgabenblattNaïveBayesKlassifikation

Abgabe:07.02.2018,23:59Uhr

Berlin,22.Januar 2018PatrickSchäfer

[email protected]

Vorlesung: https://hu.berlin/vl_dwhdm17Übung: https://hu.berlin/ue_dwhdm17

Page 2: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Daten (Kreuzfahrt)- EinVeranstaltermöchtefürdiePlanungzukünftigerKreuzfahrtenvorhersagen,welcheseinerGästeSpaßhabenwerden

- GegebensinddiefolgendenDatenderGästeeinerKreuzfahrt:- ID,LABEL,PCLASS,NAME,SEX,AGE,FARE,EMBARKED

- LABEL: DerGasthatteSpaß(1)odernicht(0)- PLCASS: Ticket-Klasse- Name: NamedesGasts- Sex: Geschlecht- FARE: Ticket-Kosten- AGE: AlterdesGasts,fallsbekannt- EMBARKED: EingeschifftimHafen

Page 3: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Test/TrainingSplit

- DieDatensindaufgeteiltineinenTraining- undeinenTest-Split:– Training: 799GästemitLabel– Test: 510(zukünftige)GästeohneLabel

• EuerZielistes,– denNaiveBayes Klassifikator inPL-SQLzuimplementierenundaufdenTrainingsdatenzutrainierenund

– VorhersagenfürdieTestdatenzuerstellen

Page 4: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Beispieldaten (Auszug)id label pclass name sex age fare embarked

1 0 3 TilmanHeuer male 7,250 S2 0 3 GalinaWeinhold female 17 7,733 Q3 1 1 DietwaltRadermacher female 30 31,000 C4 0 3 HassoDittmann male 69,550 S5 1 1MaryKögler male 56 35,500 C6 0 3 SteffenKracht male 25,467 S7 0 3MelitaBuß male 11,5 14,500 S8 0 3 FelizitasScheer male 20 9,225 S9 1 1MetaGraßl female 79,200 C

10 1 2 AugusteBurkhart female 41 19,500 S11 1 3 HeidegretBluhm female 7,733 Q12 1 3 AlwineBohm female 36 17,400 S13 0 1 LuciaSiepmann male 55 59,400 C14 0 3 NeithardStrasser male 28,5 16,100 S15 0 3 AdolphHeide male 8,050 S16 0 1 KatherinaLeder male 47 25,588 S17 0 3 EdelfriedKeitel male 7,750 Q18 0 3 ChristineKrone male 23 13,900 S19 0 3 SigtrudBrendel male 30 8,050 S20 1 1 HagenHarder male 26,000 S

Page 5: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Import

• ErstelltinsgesamtzweiTabellen:– CRUISE_TRAIN: speichert dieTrainingsdaten– CRUISE_TEST: speichert dieTestdaten

• Importiert dieDaten (vonderWebseite)indieTabellen

Page 6: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

NaïveBayesKlassifikation• ImplementiertdenNaïve-Bayes-Klassifikator alsPL-SQL-Funktion (Vorlage

s.Webseite)mitfolgendemInterfaceCREATE OR REPLACE FUNCTION predict_naive_bayes_sex(m_sex IN cruise_train.sex%TYPE)RETURN NUMBER AS ...

• Eingabe: DasGeschlechteinesGasts• Ausgabe: DerGastwirdSpaßhaben(1)odernicht(0)

• Beispiel:– Aufruf

SELECT predict_naive_bayes_sex(‘female') FROM DUAL;– Ausgabe

1

Page 7: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

NaïveBayesKlassifikation• ImplementiertnundenNaïve-Bayes-Klassifikator alsPL-SQL-Funktion

(Vorlages.Webseite)aufzweiSpalten,mitdemInterfaceCREATE OR REPLACE FUNCTION predict_naive_bayes_sex_class(m_sex IN cruise_train.sex%TYPE,m_class IN cruise_train.pclass%TYPE)

RETURN NUMBER AS ...

• Eingabe: DasGeschlechtunddieKlassedesTicketseinesGasts• Ausgabe: DerGastwirdSpaßhaben(1)odernicht(0)

• Beispiel:– Aufruf

SELECT predict_naive_bayes_sex_class(‘female‘,1) FROM DUAL;

– Ausgabe1

Page 8: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

NaïveBayesKlassifikation• ImplementiertnundiebeidenMethoden(Vorlages.Webseite),diedieGenauigkeitaufdenTrainingsdatenberechnenCREATE OR REPLACE FUNCTION eval_naive_bayes_sexRETURN NUMBER AS ...

• Ausgabe:Genauigkeit(Accuracy)• Beispiel:– Aufruf:

SELECT eval_naive_bayes_sex FROM dual;

– Ausgabe:0.7834...

Page 9: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Wettbewerb (Genauigkeit)• ZieldesWettbewerbsistes,möglichstguteVorhersagenaufden

Testdaten zutreffen• Bedingungist,dassihreurenKlassifikator alsPL/SQL-Funktion

implementiert,diedieVorhersagenerstellt

• Ideen:– Naive-Bayes aufbeliebigeSpalten-Kombinationenanwenden– Datenvorverarbeiten/Histogramme– WertistgrößeralsKonstantek (Case-when-Statements)

SELECT CASE WHEN pclass<... THEN 1 ELSE (CASE WHEN age>... THEN ... END)

END FROM cruise_test;

• Punkte1.Gruppe:5Punkte2.Gruppe:3Punkte3.Gruppe:2Punkte

Page 10: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Wettbewerb (Genauigkeit)

• DieVorhersagenalsText-Dateianmichschicken

• JeweilseineVorhersageproZeile(sortiertnachIDdesGasts,wieinderEingabedatei):01001...

Page 11: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Abgabe• Deadlineist Mittwoch,07.02.2018,23:59Uhr

• UploadeinerZip-Datei„Gruppenname.zip“perHU-Box:https://hu.berlin/dwhdm_ue5

• DiePL-SQL-FunktionenmüssenineurerOracleDBliegen

• DieAbgabe(ZIP-Datei)imEinzelnen:– Text-DateimitPL-SQL-FunktionenundErgebnisderAusführung– Wettbewerb(2Dateien):

• Text-Datei:VorhersagenaufdenTest-Daten,eineVorhersageproZeile• Text-Datei:DiePL-SQL-FunktionzurErstellungderVorhersagen

Page 12: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Präsentation• Ihrdürfteuchaussuchen,wasundwannihrpräsentierenwollt(first-come-first-served).

• Montags(Gruppe1)https://dudle.inf.tu-dresden.de/dwhdm_mo_ue5/

• Mittwochs(Gruppe2)https://dudle.inf.tu-dresden.de/dwhdm_mi_ue5/

• KurzpräsentationderLösungam12.02.(Gruppe1)bzw.14.02.(Gruppe2).

Page 13: 5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: 07.02 ... · Naïve Bayes Klassifikation • Implementiert den Naïve-Bayes-Klassifikatorals PL-SQL-Funktion(Vorlage s. Webseite)

Fragen?