›   Demo 5 Teil 2: Datenanalyse mit MATLAB

Teil 2 der Demo 5 veranschaulicht die Datenanalyse, ein Schritt des Predictive Maintenance-Prozesses, am Beispiel des Automobil­datensatzes, den wir auch für die vorigen Demos verwendet haben. Das interaktive Live Script wurde mit Hilfe der MATLAB Statistics and Machine Learning Toolbox und des LiveScript Editors erstellt. Die Funktionalität und die einzelnen Schritte sind in dem Lernvideo Demo5 - Predictive Maintenance mit MATLAB auf unserem YouTube-Kanal veröffentlicht.

Die Datenanalyse mit MATLAB

Die Datenanalyse wird mit Hilfe der Funktionen "readtable" (Daten aus Datei einlesen), "fitctree" (Klassifikationsmodell erstellen) und "predict" (Modell anwenden) zusammengebaut. Der vereinfachte MATLAB-Code der Datenanalyse ist in den Abschnitten Analyse-Code und Vorhersage-Code zu sehen und beinhaltet verschiedene Schritte: Einlesen und Speichern der Daten (Detailerklärungen in Abschnitt "Daten"), Bearbeitung der Daten (Details in Abschnitt "Daten"), die Analyse der Trainingsdaten (Details in Abschnitt "Analyse") und die Vorhersage mit Hilfe des erstellten Entscheidungsbaum-Modells (Details in Abschnitt "Vorhersage").

Bevor das Live Script verwendet werden kann, muss die Statistics and Machine Learning-Toolbox in MATLAB installiert sein und der Arbeitspfad auf den Ordner gesetzt werden, der alle unter dem Download vorhandenen Dateien und die demo5.mlx-Datei enthält.

1 Daten-Code

In den Zeilen 2-3 des Daten-Codes wird die Excel-Datei "demo2_training2.xlsx" mit der "readtable"-Funktion eingelesen und mit der Zuweisung ("="-Zeichen) unter dem Namen "data" gespeichert. Die Trainingsdaten werden verwendet um den Vektor, der die Ausfall-Variable enthält, und den Vektor mit ausgewählten Merkmalen zu erstellen und zu speichern (Zeilen 6-7).

Die Anzeige der Merkmale der ersten 5 Beobachtungen erfolgt interaktiv durch den Anwender mit Änderung des Vektors in Zeile 11. In den Zeilen 16 und 17 wird die "disp"-Funktion zur Erzeugung einer Text-Ausgabe in der Ausgabe-Spalte des Live Scriptes verwendet. In Zeile 20 wird die Anzeige-Auswahl erstellt und in der Ausgabe-Spalte direkt ausgegeben.

                          
 % Einlesen der Daten
 data = readtable('demo2_training2.xlsx',...
                  'ReadVariableNames',true); 
 
 % Ausfall-Variable auslesen und speichern
 ausfall = data(1:end,2); 
 % Merkmale erstellen 
 merkmale = data(1:end,[3:23 25]); 
 
 % Auswahl der Merkmale für die Anzeige
 
 bsp_merkmale = [1 14 22]; 
    % Auswahl der Bsp.Ausgabe/Merkmale
    % editierbar
    % die maximale Merkmal-Nr. ist 22   
 
 disp('Ein Ausschnitt der ersten 5 Trainingsdaten')
 disp('sieht wie folgt aus:')
 
 % Bsp.Ausgabe der Daten erstellen
 out = [ausfall(1:5,1), merkmale(1:5,bsp_merkmale)]

2 Analyse-Code

Hier wird die fitctree-Funktion zur Erstellung eines Klassifikationsmodells verwendet.

Der erstellte Entscheidungsbaum wird unter dem Namen "tree" gespeichert und kann mit der "view"-Funktion in Textform (Zeile 9) oder grafisch als Baum (mit Setzen des Parameters "'mode'" auf "'graph", Zeile 11 ) in der Ausgabe-Spalte angezeigt werden.

 % Parameterwahl und Erstellung des Modells
 
 n=20; m=10;
 
 tree = fitctree(merkmale, ausfall, ...
        'SplitCriterion', 'deviance',...
        'MinParentSize', n, 'MaxNumSplits', m); 
 
 view(tree) % Textausgabe des Baumes 
 
 view(tree,'mode','graph') % Grafikausgabe 

3 Vorhersage-Code

Der Vorhersage-Code ist die Fortsetzung des Analyse-Codes und beinhaltet das Einlesen der Testdaten mittels der "readtable"-Funktion und deren Speicherung unter dem Namen "data_test".
Die Vorhersage für die Testdaten erfolgt durch Aufruf der "predict"-Funktion (Zeile 14), an die das zuvor erstellte Entscheidungsbaum-Modell "tree" und die Testdaten "merkmale_neu" übergeben werden. Die Vorhersage wird unter dem Namen "vorhersage" gespeichert.
Die Auswahl von Merkmalen aus der Merkmalstabelle erfolgt durch Angabe der Zeilen und Spalten in der üblichen MATLAB-Syntax:
merkmale(1:5,[1 14 22]) wählt z.B. die Zeilen 1 bis 5 und die Spalten 1, 14 und 22 aus.

 % Testdaten einlesen 
 data_test = readtable('demo2_test.xlsx', 'ReadVariableNames',true);
 merkmale_neu = data_test(1:end,[3:23 25]); 
 
 % Testdaten anzeigen
 bsp_merkmale = [1 4 22]; 
 disp('Ein Ausschnitt der neuen Merkmalskombinationen')
 disp('sieht wie folgt aus:')
 out2 = merkmale_neu(1:4,bsp_merkmale)
 
 % Vorhersage mittels des Baums
 disp('Die Vorhersage für die neuen Merkmalskombinationen') 
 disp('bzgl. eines Ausfalls lautet:') 
 vorhersage = predict(tree, merkmale_neu) 

4 Verwendete MATLAB-Funktionen

Die readtable-Funktion liest Daten im Excel-Format ein.

Die readtable-Funktion ist eine Funktion, die Daten im Excel-Format einliest.
Die readtable-Funktion wird in unserem Prozess zweimal verwendet: einmal, um den Trainingsdatensatz einzubinden, und einmal, um den Testdatensatz einzubinden.

Die fitctree-Funktion erstellt den Entscheidungsbaum.

Die fitctree-Funktion ist eine Funktion aus der "Statistics and Machine Learning"-Toolbox, die für die Daten den passenden Algorithmus wählt und einen Entscheidungsbaum auf Basis eines unter den Parametern wählbaren Kriteriums erstellt, z.B. der Entropie bzw. des Informationgehalts.
Wir erstellen den Baum mittels des Entropie/Informationgehalt-Kriteriums (mit Setzen des Parameters "'SplitCriterion'" auf "'deviance'") basierend auf den Trainingsdatensatz der Motoren.

Die Variable "Ausfall" wird mit Übergabe als zweiter Parameter in der fitctree-Funktion als Vorhersagevariable definiert.

Die Ausgabe-Funktionen für das Modell: view.

Die view-Funktion ist eine Funktion, die das Modell/den Baum in Textform oder grafisch in der Ausgabe-Spalte anzeigt.

Standardmäßig wird die Textform angezeigt, die grafisch Ausgabe als Baum wird mit Setzen des Parameters "'mode'" auf "'graph" erzeugt. Die view-Funktion mit Grafik-Ausgabe ist eine Funktion, die die Äste, Knoten und Blätter des Baums im Grafikfenster ausgibt.

Die predict-Funktion führt die Vorhersage durch.

Die predict-Funktion ist eine Funktion, die das als Parameter übergebene Vorhersagemodell (hier "tree") auf einen Datensatz (hier "merkmale_neu") anwendet und somit die Vorhersage bzw. Klassifikation für eine neue Beobachtung durchführt.

Autoren, Tools und Quellen

Autoren
 M. Sc. Anke Welz
 Prof. Dr. Eva Maria Kiss


Tools:

Hier können Sie den Quellcode des Projektes herunterladen, die Datei demo5.m (als komprimierte zip-Datei).

elab2go-Links

Quellen und weiterführende Links