Künstliche Intelligenz (KI) als Hobby / Artificial Intelligence (AI) as a Hobby

Facebook Gruppe: Künstliche Intelligenz (KI) als Hobby

Specific to General in PHP

Basierend auf dem Tutorial: Machine Learning #14 - Concept Learning aka Induktives Lernen #1

Einleitung

Bei den Lern-Methoden Specific-to-General und General-to-Specific sollen auf Basis von Einzelfällen herausfinden, wie sich etwas im Allgemeinen verhält und was sich folglich in Zukunft ergeben könnte.

Bei der Lern-Methode Specific to General soll auf Basis von Einzelfällen herausgefunden werden, wie sich etwas im Allgemeinen verhält und was sich folglich in Zukunft ergeben könnte.

In diesem Online-Tool möchte man herausfinden, welche Dinge mit welchen Merkmalen einem gefallen, wenn man deren Merkmale kennt.

Um das für ein unbekanntes Ding vorhersagen zu können, werden bereits bekannte Dinge auf diese Merkmale hin klassifiziert und es wird für jedes Ding angegeben, ob einem dieses gefallen hat, oder nicht.

Dieses PHP-Skript ist so allgemein gehalten, dass es auf nahezu beliebige Dinge angewendet werden kann!

Schritt 1: Anzahl der Markmale und Datenreihen definieren

Zuerst muss generell die Anzahl der Merkmale definiert werden, die zur Auswertung benutzt werden. In dem im Video benutzten Beispiel (siehe Link oben) gibt es 4 Merkmale von Filmen, weshalb wir hier auch 4 Merkmale vorgeben (Bitte "Comedy, Action, Drama, Romance" in die Bezeichnung der Merkmale eingeben).

Die Anzahl der Datenreihen ist grundsätzlich beliebig. In dem Beispiel wurden jedoch 5 Filme auf ihre 4 Merkmale hin bewertet, sodass wir 5 Datenreihen (Filme) annehmen, die wir bewerten können.

Schritt 2: Nullhypothese im Ergebnis-Array vorgeben

Vor der Bewertung der Dinge, wird die Nullhypothese (NH) erstellt. Das bedeutet, dass wir erstmal davon ausgehen, dass jedes Merkmal die Ausprägung "egal" bekommt, wir also nicht wissen, ob das Merkmal einen Einfluss darauf hat, ob uns der Film gefällt oder nicht.

Anzahl der Merkmale (max. 10)
Anzahl der historischen Datenreihen (max. 50)

Bezeichnung der Merkmale:

NH: egal

NH: egal

NH: egal

NH: egal


Schritt 3: Historische Datenreihen eingeben

Wie in der Einleitung erwähnt, müssen wir nun bereits bekannte Dinge mit ihren Merkmalen bewerten.

Das bedeutet, dass wir pro Zeile jeweils ein Ding betrachten, bei dem die ersten 4 Spalten die Ausprägungen der Merkmale darstellt und die ganz rechte Spalte ein zusätzliches Bewertungsmerkmal (gefällt oder gefällt nicht) ist, sodass wir insgesamt 5 Merkmalsfelder brauchen. Die letzte Spalte stellt in dem Beispiel also die Bewertung des Filmes dar.

Dabei entspricht eine angeklickte Checkbox dem Wert = 1 (ja) und eine nicht angeklickte dem Wert = 0 (nein).

historische Datenreihen:

Wann kommt meine Bestellung?Ist meine Bestellung schon fertig?Wann wird meine Bestellung fertig?Wann kommt mein Paket?Bewertung

Schritt 4: Positiv bewertete Datenreihen auswerten

Jetzt werden nur die Datenreihen ausgewertet, die mit 1 positiv bewertet wurden (ganz rechte Spalte). Da uns ja in der Nullhypothese alles egal war, schalten wir jetzt Stück wür Stück die Merkmale auf 1, die bei mit 1 bewerteten Zeilen auch eine 1 bei dem jeweiligen Merkmal haben.

Andersrum schalten wir jetzt Stück wür Stück die Merkmale auf 0, die bei mit 1 bewerteten Zeilen eine 0 bei dem Merkmal haben.

Wenn ein Merkmal mal mit 1 und mal mit 0 angegeben wurde, dann wird es auf "ist egal" gesetzt. Es hat also keinen Einfluss darauf, ob wir etwas mögen.

Ergebnistabelle 1:

Wann kommt meine Bestellung?
egal
Ist meine Bestellung schon fertig?
egal
Wann wird meine Bestellung fertig?
egal
Wann kommt mein Paket?
egal

1011

Schritt 5: Positive Ergebnistabelle 1 auswerten

Die letzte Zeile liefert uns das Ergebnis. Die letzte Zeile ist folgendermaßen zu interpretieren:

Steht bei dem Merkmal eine 1, dann gefallen uns Dinge mit diesem Merkmal.

Steht bei dem Merkmal eine 0, dann gefallen uns Dinge mit diesem Merkmal nicht.

Steht bei dem Merkmal ein "ist egal", dann ist das Merkmal für unsere Entscheidung - ob uns Dinge gefallen oder nicht - egal.

Schritt 6: Negativ bewertete Datenreihen auswerten (General-to-Specific)

Während wir eben nur die Zeilen betrachtet haben, die wir als positiv (1) bewertet haben, werden jetzt die Datenreihen mit den Zeilen durchlaufen, die einem nicht gefallen (0).

Die Nullhypothese wird zu Beginn wieder für alle Merkmale auf "egal" gesetzt.

Bezeichnung der Merkmale:
Wann kommt meine Bestellung?
NH: egal
Ist meine Bestellung schon fertig?
NH: egal
Wann wird meine Bestellung fertig?
NH: egal
Wann kommt mein Paket?
NH: egal

Jetzt werden die Zeilen durchlaufen, die einem nicht gefallen.

Ergebnistabelle 2:

Wann kommt meine Bestellung?
egal
Ist meine Bestellung schon fertig?
egal
Wann wird meine Bestellung fertig?
egal
Wann kommt mein Paket?
egal

1111
1111
1111
1111

Schritt 7: Negative Ergebnistabelle 2 auswerten

Die letzte Zeile liefert uns das Ergebnis. Die letzte Zeile ist folgendermaßen zu interpretieren:

Steht bei dem Merkmal eine 1, dann gefallen uns Dinge mit diesem Merkmal.

Steht bei dem Merkmal eine 0, dann gefallen uns Dinge mit diesem Merkmal nicht.

Steht bei dem Merkmal ein "ist egal", dann ist das Merkmal für unsere Entscheidung - ob uns Dinge gefallen oder nicht - egal.

Schritt 8: Gemeinsame Betrachtung von Specific-to-General (positiv) und General-to-Specific (negativ)

Nun kann man die jeweils letzte Zeile der Ergebnistabelle 1 und 2 vergeichen.