Demo-MAT3: Predictive Maintenance mit MATLAB
Clusteranalyse "Automotive in 3D"
Diese Demo zeigt einen Anwendungsfall der Clusteranalyse im 3-dimensionalen Raum anhand des Automobildatensatzes,
der auch in Demo-MAT4: Predictive Maintenance mit MATLAB
verwendet wird. In diesem konkreten Anwendungsfall werden
die Cluster auf Basis von drei Merkmalen des Datensatzes erstellt und die Daten und deren Cluster-Zuordnung im
3 dimensionalen Raum visualisiert.
Die Cluster-Verfahren aus der Statistics and Machine Learning Toolbox werden
verwendet um die Modelle zu erzeugen. Zur Visualisierung im 3-dimensionalen Raum wird die
plot3-Funktion
aus der Graphics Bibliothek verwendet, diese stellt Methoden zur
Erstellung von 2D- und 3D-Grafiken bereit.
Motivation
In
Demo-MAT4: Predictive Maintenance mit MATLAB,
wurden mittels eines Entscheidungsbaums diejenigen Merkmale ermittelt, die am stärksten zu einem Ausfall des Motors beitragen.
Diese drei Merkmale werden nun herangezogen um eine
Clusteranalyse durchzuführen, dabei werden
durch die Verwendung eines bestimmten Ähnlichkeits- bzw.
Abstandsmaßes Gruppen/Cluster ähnlicher Merkmale gebildet.
Neue Daten können anhand ihrer Merkmale den in der Analyse gebildeten Clustern zugeordnet werden und somit
eine Kategorisierung dieser durchgeführt werden.
Die Zuordnung zu den Clustern anhand der drei Merkmale werden danach
im 3 dimensionalen Raum visualisiert und mittels der Merkmale bzw. deren entsprechenden
Bauteile und der Funktionalitäten und Wirkungs-Zusammenhänge im Motor
interpretiert.
Übersicht
Demo-MAT3: Clusteranalyse "Automotive" ist in drei Abschnitte gegliedert. Zunächst wird die Fragestellung im konkreten Anwendungsfall der Automobildaten erläutert. Danach werden Verfahren der Clusteranalyse aus der Statistics and Machine Learning Toolbox auf die Automobildaten angewandt und es wird mittels der plot3-Funktion aus der Graphics Bibliothek die Daten- und Clusterzugehörigkeit visualisiert. Die Interpretation der Cluster und Beschreibung der ausgewählten Merkmale inkl. Bauteile im Motor und Erfassung der Sensordaten werden im nächsten Abschnitt erläutert.
1 Die Fragestellung
Aus den Ergebnissen der in
Demo-MAT4: Predictive Maintenance mit MATLAB durchgeführten Analysen wurden drei Merkmale,
die am stärksten zum Ausfall des Motors beitragen, ausgewählt: der Ansaugkrümmerdruck, die Drosselklappenstellung und die Katalysatortemperatur.
Die Frage, die mit einer Clusteranalyse beantwortet werden soll, lautet: Welche Clusterzuordnung der
Motoren erfolgt bzgl. dieser drei Merkmale, die den stärksten Einfluss auf den Ausfall hatten?
2 Clusteranalyse im 3 dimensionalen Raum
Wir fangen direkt mit der Clusteranalyse an. Über Programme öffnen wir MATLAB und erstellen mit Hilfe des Menüpunkts "New" ein neues Live Script. In diesem Live Script werden Sektionen eingefügt, die den üblichen Schritten bei der Erstellung einer Clusteranalyse entsprechen.
- 2.1 Daten einlesen und verwalten
- 2.2 Clusteranalyse durchführen
- 2.3 Zuordnung der Daten zu den Clustern visualisieren
2.1 Daten einlesen und verwalten
In der zweiten Codezelle werden Daten, die in der csv-Datei automotive_test_140.csv gespeichert sind, mit Hilfe der Funktion readtable() der Statistics and Machine Learning Toolbox eingelesen.
% Einlesen der Daten
data = readtable('automotive_test_140.csv');
% Auswahl der drei Merkmale für die Analyse
merkmale = data(:,[7,8,24]);
disp('Ein Ausschnitt der ersten 5 Beobachtungen')
disp('sieht wie folgt aus:')
% Auswahl-Ausgabe der Daten erstellen
merkmale(1:5,:)
% Formatierung in Array
merkmale = table2array(merkmale);
Erläuterung des Codes:
- Zeile 2: Die Funktion readtable() wird mit zum Einlesen des Datensatzes aufgerufen.
- Zeile 5: Es erfolgt eine Auswahl und Speicherung der drei Merkmale/Variablen/Spalten unter dem Namen merkmale.
- Zeile 7-14: Die ersten 5 Beobachtungen der ausgewählten Merkmale werden in einem Array ausgegeben, danach erfolgt eine Formatierung einer Tabelle in ein Array mittels der table2array-Funktion (Zeile 14).
Die Ausgabe nach Ausführung dieses Codeblocks sieht ähnlich aus wie abgebildet.
2.2 Clusteranalyse durchführen
Wir starten in diesem Abschnitt direkt bei der Durchführung der Clusteranalyse und der Erstellung eines Dendrogramms mittels der Statistics and Machine Learning Toolbox.
Vorbereitung: Dendrogramm erstellen
Das Dendrogramm wird mittels der dendrogram-Funktion durchgeführt und stellt bei Ungewissheit zur Anzahl der Cluster/Zentren ein vorbereitendes Mittel zur Auswahl der Clusteranzahl dar.
% Merkmalsnummern als Skala auslesen
labels = data(1:end,1);
% Euklidische Distanzen berechnen
dist = pdist(merkmale,'euclidean');
% Clustering: Ward-Verfahren
cluster2 = linkage(dist,'ward');
% Dendrogramm erstellen
dendrogram(cluster2);
xlabel('Distanz');
ylabel('Beobachtungen');
title(['Hierarchisches Cluster-Dendrogramm ' ...
'mit 4 bis 5 Clustern']);
hold off
Erläuterung des Codes:
- Zeile 2: Die Merkmalsnummern (Spalte 1 im Datensatz) werden als Labels für die Achsenbeschriftung ausgelesen und gespeichert.
- Zeile 5: Die euklidischen Distanzen werden für die merkmals-Daten mittels der Funktion pdist() berechnet. pdist() bestimmt die paarweisen Distanzen der Beobachtungen.
- Zeile 8: Auf Basis der euklidischen Distanzen (dist-Variable) wird mittels des Ward-Verfahrens in der
linkage-Funktion der
agglomerative hierarchische Clusterbaum erstellt.
Der Linkage-Algorithmus als Vorbereitung für die Erstellung eines Dendogramms überprüft in jedem Schritt, welche Cluster den geringsten Abstand zueinander haben, und fusioniert diese zu einem neuen Cluster. Je nach Linkage-Methode wird die Distanz zwischen den Clustern unterschiedlich bestimmt. Mögliche Optionen für die Linkfunktion sind 'single', 'complete', 'average', 'weighted', 'median', 'centroid' oder 'ward'. Die Ward-Methode ist eine Varianz-basierte-Methode, bei welcher Cluster, die den kleinsten Zuwachs der totalen Varianz aufweisen, fusioniert werden. - Zeile 11: Der Clusterbaum (cluster2) als Rückgabewert der linkage-Funktion wird der dendrogram-Funktion übergeben, um ein Dendrogramm zu erstellen.
- Zeile 12-15: Grafikoptionen wie Achsenbeschriftung und Titel für das Dendrogramm.
Die Ausgabe nach Ausführung dieses Codeblocks sieht ähnlich aus wie abgebildet. Das Dendrogramm zeigt das Vorhandensein von 4 oder 5 Clustern an. Die Information über die Anzahl der Cluster verwenden wir bei der Durchführung der Clusteranalyse, die im nächsten Schritt erfolgt.
Detaillierte Clusteranalyse durchführen
Die detaillierte Clusteranalyse wird mittels der cluster-Funktion durchgeführt.
% Ausgabe der Clusterzuordnungen/-partitionen P
% Anzahl der Cluster: n
n = 4;
P = cluster(cluster2,"maxclust", n)
Erläuterung des Codes:
- Zeile 3: Die Anzahl der Cluster bzw. Zentren wird festgelegt, hier n = 4.
- Zeile 4: Aus dem Clusterbaum, der mittels des Ward-Verfahrens erstellt wurde, wird nun ein Clustering mit 4 Clustern erstellt und die Zuordnung der Beobachtungen zu den Clustern in der Variable P gespeichert. Der Vektor der Zuordnungen P ist folgendermaßen zu interpretieren: die erste Beobachtung ist im Cluster 4, die zweite im Cluster 1, usw.
Die Ausgabe nach Ausführung dieses Codeblocks sieht ähnlich aus wie abgebildet.
2.3 Zuordnung der Daten zu den Clustern visualisieren
Die Ergebnis, d.h. die Zuordnung der Beobachtungen zu den vier möglichen Zentren/Clustern, wird als 3D-Plot dargestellt. Dazu wird die plot3-Funktion aus der Graphics-Bibliothek verwendet.
% Symbole für die Clusterzuordnung festlegen
ptsymb = {'bs','r^','md','go'};
% Daten plotten und mit Clustersymbol kennzeichnen
for i = 1:n
clust = find(P==i);
plot3(merkmale(clust,1),merkmale(clust,2),merkmale(clust,3),ptsymb{i});
hold on
end
% Achsenbeschriftung
hold off
xlabel('Ansaugkrümmerdruck');
ylabel('Drosselklappenstellung');
zlabel('Katalysatortemperatur');
title('Hierarchische Clusterzuordnung der Motoren');
grid on
Erläuterung des Codes:
- Zeile 2: Die vier Marker-Symbole zur Kennzeichnung der Cluster werden festgelegt.
- Zeile 5-9: Die Beobachtungen je nach Zuordnung zu den Clustern (z=1,2,3 und 4) werden in einer for-Schleife abgerufen und je nach Cluster-Zuordnung wird der Datenpunkt mit unterschiedlichen Marker-Symbol in die Grafik eingefügt.
- Zeile 11-16: Der Titel und die Achsenbeschriftungen des Plots werden angepasst.
Die Ausgabe nach Ausführung dieses Codeblocks sieht ähnlich aus wie abgebildet.
3 Die Interpretation
Bei der Verwendung von Clusteranalysen ist, wie bei allen Datenanalysen, ein Verständnis der fachlichen Bedeutung der ausgewerteten Daten wichtig, um die Ergebnisse korrekt interpretieren zu können. Um die Interpretation der Cluster nachvollziehen zu können, werden die Zusammenhänge und Mechanismen im Viertaktmotor und insbesondere die Komponenten Drosselklappe, Ansaugkrümmer und Katalysator, sowie deren Ausstattung mit Sensoren, in den Abschnitten 4.2 und 4.3 von Demo-PY3: Clusteranalyse "Automotive in 3D" erläutert. Die über die Sensoren erfassten Werte, die als Merkmale in den Automotive-Datensatz eingehen, werden dort inkl. Skaleneinheit ebenfalls vorgestellt.
Bei der Bildung und Visualisierung der Cluster fällt auf, dass
- die Cluster unabhängig von der Katalysatortemperatur gebildet wurden
- ein Cluster bei der Merkmalskombination Ansaugkrümmerdruck niedrig und Drosselklappenstellung niedrig entsteht (Farbe: blau)
- ein weiteres Cluster bei der Merkmalskombination Ansaugkrümmerdruck hoch und Drosselklappenstellung niedrig entsteht (Farbe: rosa)
Die Visualisierung in 2-dimensionalen Grafiken Ansaugkrümmerdruck vs. Drosselklappenstellung, Ansaugkrümmerdruck vs. Katalysatortemperatur
und Drosselklappenstellung vs. Katalysatortemperatur, siehe ebenfalls
Demo-PY3: Clusteranalyse "Automotive in 3D",
zeigen auch, dass es keinen direkten Zusammenhang zwischen der
Katalysatortemperatur und den anderen beiden Variablen gibt. In der Grafik Ansaugkrümmerdruck vs. Drosselklappenstellung ist die
Bildung der Cluster, wie sie die obige Analyse ergeben hat, ebenfalls zu erkennen: es besteht ein grafischer Zusammenhang/Abhängigkeit
zwischen Ansaugkrümmerdruck niedrig und Drosselklappenstellung niedrig und Ansaugkrümmerdruck hoch und Drosselklappenstellung niedrig.
Die Interpretation - Kurzversion
Die Bildung der Cluster (blau und rosa) spiegeln den funktionalen Zusammenhang zwischen den Bauteilen Ansaugkrümmer und
Drosselklappe wieder. Bei der Interpretation der Cluster spielen die beiden Zustände Leerlauf und Volllast eine Rolle. Bei Leerlauf sind die
Drosselklappe und ein sogenannter Leerlaufschalter geschlossen.
Die beiden Cluster (blau und rosa) beinhalten damit Motoren, deren Drosselklappen sich in geschlossenen (Leerlauf) oder leicht
geöffneten Zustand (Anlassen eines Motors) befinden. Das Verhalten des Ansaugkrümmerdrucks während des Leerlaufs kann wie folgt beschrieben werden:
Die dicht geschlossene Drosselklappe drosselt den Luftdurchfluss aus der Umgebung, wenn der Motor Luftmasse von Ansaugkrümmer
weg pumpt. Der kumulative Effekt ist eine Verringerung der Ansaugkrümmerluftdichte, was zu einem reduzierten Gesamtdruck im Vergleich zum
Luftdruck führt (blaues Cluster).
Autoren, Tools und Quellen
Autoren
Prof. Dr. Eva Maria Kiss
M. Sc. Anke Welz
elab2go-Links
- [1] MATLAB-Tutorial: elab2go.de/demo-mat1/
- [2] Clusteranalyse mit scikit-learn: elab2go.de/demo-py3/
Quellen und weiterführende Links
- [1] MATLAB Statistics and Machine Learning Toolbox: de.mathworks.com/products/statistics.html
- [2] MATLAB Live Editor: de.mathworks.com/products/matlab/live-editor.html
- [3] MATLAB Graphics-Bibliothek de.mathworks.com/help/matlab/graphics.html