Übung 2 zu Einführung in Maschinelles Lernen (PD Stefan Bosse)

Naive Klassifikation

Naive Klassifikation
Daten
Kategorische Daten
Data 1: Der Klassiker: Sportliche Aktivität
Ein einfacher Klassifikator

Daten

Kategorische Daten

Data 1: Der Klassiker: Sportliche Aktivität

DATA: Variable dataex01D Type: {Beispiel, Aussicht, Temperatur, Luftfeuchtigk., Windig?, Klasse} []

X=[]
Y=[Klasse]
X,Y=Klasse={N,P}
1
2
 
print(dataex01D);
Table(dataex01D);

 ▸ 
 ✗ 

Ein einfacher Klassifikator

Nachfolgend wird gezeigt wie auf einfachen kategorischen Daten rein programmatisch ein einfacher Klassifikator programmiert (also algorithmisch erzeugt) werden kann.


a b c
A1 B1 C1
A1 B2 C1
A1 B1 C1
A2 B2 C2
A2 B1 C2

Beispiel Datentabelle
1
2
3
4
5
6
7
8
9
 
data = [
{a:'A1',b:'B1',c:'C1' },
{a:'A1',b:'B2',c:'C1' },
{a:'A1',b:'B1',c:'C1' },
{a:'A2',b:'B2',c:'C2' },
{a:'A2',b:'B1',c:'C2' },
{a:'A1',b:'B1',c:'C2' },
]
Table(data);

 ▸ 
 ✗ 

Beispiel Klassifikator 1 und Test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
// Klassifikatorfunktion
function classifiy1(instance) {
  if (instance.a=='A1') return 'C1';
  else return 'C2';
}
// Inferenz und Fehlerberechnung
var error = 0;
var results = data.map(function(instance) {
  var pred = classifiy1(instance);
  if (pred != instance.c) error++;
  return {y:pred,y0:instance.c};
});
// Ergebnisse ausgeben
Table(results);
print('Fehlerrate: '+error/data.length*100+'%');

 ▸ 
 ✗ 

Beispiel Klassifikator 2 und Test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
// Klassifikatorfunktion
function classifiy2(instance) {
  switch (instance["a"]) {  // v.a == v["a"]!
    case 'A1': return 'C1';
    case 'A2': return 'C2';
    default : return 'C2';
  }
}
// Inferenz und Fehlerberechnung
var error = 0;
var results = data.map(function(instance) {
  var pred = classifiy2(instance);
  if (pred != instance.c) error++;
  return {y:pred,y0:instance.c};
});
// Ergebnisse ausgeben
Table(results);
print('Fehlerrate: '+error/data.length*100+'%');

 ▸ 
 ✗ 

Aufgabe. 1.

Benutze D=Datensatz 1.

  1. Wähle das beste Attribute aus mit dem sich die Zielvariable mit der höchsten richtig-positiv Quote bestimmen lässt (also höchster Informationsgewinn), bestimme die Symbolmenge dieser Eingabevariable und der Zielvariable ('N','P'!).
  2. Implementiere eine einfache Klassifikationsfunktion um aus x das y zu berechnen
  3. Wende diese Funktion auf alle Instanzen aus D an
  4. Gebe Ergebnisse und Fehler aus

Auswahl der Variable und die berechnete Fehlerrate in das Eingabefeld eintragen.

Klassifikator für Datensatz 1
1
2
3
4
5
6
 
// dataex01D verwenden
var data = dataex01D;
// Klassifikatorfunktion
// function classify(instance) { .. }
// Inferenz und Fehlerberechnung
// Ergebnisse ausgeben

 ▸ 
 ✗ 




Hilfe



Einreichung (Assignment #08-86047)



Prüfen



Bewerten (Lehrer)




Created by the NoteBook Compiler Ver. 1.8.8 (c) Dr. Stefan Bosse (Sat Dec 12 2020 10:48:05 GMT+0100 (CET))