Übung 3.8 zu Einführung in Maschinelles Lernen (PD Stefan Bosse) |
DATA: Variable State.dataTI01 Type: {pclass, survived, name, sex, age, sibsp, parch, ticket, fare, cabin, embarked, boat, body, home.dest} []
X: { class,name,sex,age,sibsp,parch,ticket,fare,cabin,embarked,boat,body }
Y: { survival }
"This is a classic dataset used in many data mining tutorials and demos --
perfect for getting started with exploratory analysis and building binary
classification models to predict survival."
Data covers passengers only, not crew.
Features
survival - Survival (0 = No; 1 = Yes)
class - Passenger Class (1 = 1st; 2 = 2nd; 3 = 3rd)
name - Name
sex - Sex
age - Age
sibsp - Number of Siblings/Spouses Aboard
parch - Number of Parents/Children Aboard
ticket - Ticket Number
fare - Passenger Fare
cabin - Cabin
embarked - Port of Embarkation (C = Cherbourg; Q = Queenstown; S = Southampton)
boat - Lifeboat (if survived)
body - Body number (if did not survive and body was recovered)
Instances: 1309 (one instance per passenger)
X,Y=Klasse={N,P}
▸
|
✗
≡
|
this
(eine Datenstruktur) ausgetauscht. D.h. wenn z.B. in einem Snippet Daten erzeugt werden dann dort this.data=[1,2,3]
, und in einem anderen Snippet können diese dann mit this.data
wieder abgerufen (und natürlich auch verändert) werden.Nachfolgend wird gezeigt wie auf einfachen kategorischen Daten ein einfacher Klassifikator algorithmisch durch Tarining erzeugt werden kann.
ML
verwendet.ML.learn
: Eine neue Trainingsinatanz erstellen und mit Trainingsdaten trainierenML.predict
: Inferenz eines trainiertesnModellsML.test
: Inferenz eines trainiertesn Modells mit Testdaten und Ausgabe von Fehlerstatistiken (momentan unvollstänig; daher mit ML.predict
arbeiten und eigene Fehleranalyse durchführen)ML.print
: Ausgabe der Modellstruktur (wird nicht für alle Algorithmen unterstützt)
▸
|
✗
≡
|
▸
|
✗
≡
|
▸
|
✗
≡
|
▸
|
✗
|
|
|
ML.split(data,a,b)
teilt den Datensatz randomisiert in zwei Partionen mit a und b Instanzen
▸
|
✗
≡
|
Achtung: C4.5 kann numerische und kategorische Eingabewerte verwenden. Die Ausgabe ist kategorisch, aber es gibt auch den symbolischen Wert 'unknown' bei der Inferenz!
▸
|
✗
≡
|
▸
|
✗
≡
|
▸
|
✗
|
|
|
ML.split(data,a,b)
teilt den Datensatz randomisiert in zwei Partionen mit a und b Instanzen
▸
|
✗
≡
|
Punkte: | 1. | /2 | 2. | /2 | 3. | /2 | 4. | /2 |
▸
|
✗
≡
|
Benutze D=this.data
.
time()
Funktion, gibt Zeit in ms zurück).Eine Kodierung von numerischen Werten ist nicht erforderlich!
Im folgenden Eingabefeld die Ergebnisse zusammentragen (geeignete Features, verschiedene Versuche, Fehler, Rechenzeit für das Training, Inferenzzeit beim Test):
▸
|
✗
≡
|
▸
|
✗
≡
|
▸
|
✗
≡
|
▸
|
✗
|
|
|