Datenreduktion mit PCA und DBSCAN
Allgemeine Hinweise
Daten können als Elemente der this
Variable gespeichert und wieder geladen werden (wie z.B. bereits verarbeitete Daten, Modelle, usw.)
Wenn in einer Funktion (im Körper) auf das Notebook this
zugegriffen werden soll, muss außerhalb der Funktion eine Referenz zu einer lokalen Variable var self=this;
hergestellt werden. Z. B.
this.data=[];
var self=this;
function foo( ) {
self.push([1,2,3,4])
}
Daten
Numerische Daten
Energy efficiency Data Set
DATA: Variable State.dataIR01 Type: {
length : number,
width : number,
petal_length : number,
petal_width : number,
species : string
} [151]
- Standard Iris Datensatz
- Klassifizierung der Iris Pflanze anhand geometrischer Messwerte
- Mischung aus linear und nicht linear separierbaren Subräumen
X1 length
X2 width
X3 petal_length
X4 petal_width
Y1 species
X,Y=species
▸
|
|
✗
≡
|
Principle Component Analysis
Vorbereitung
Vorlesung Modul G nachlesen
Mit dem Testdatensatz "Irisklassifikation" vertraut machen
PCA und DBSCAN werden nur auf numerische Variablen und Daten angewendet
PCA im ML Modul
- Die PCA Analyse ist in drei Schritte unterteilt:
- Berechnung der Eigenvektoren aus der Datentabelle (nur x)
- Berechnung eienr reduzierten Datentabelle x' unter Verwendung mindestens eines Eigenvektors (Reihenfolge beachten: Absteigend nach Einfluss sortiert)
- Rekonstruktion der ursprünglichen Datentabelle aus der reduzierten und transformierten Tabelle
- Wichtig um einen Repräsentationsfehler bestimmen zu können (relative Abweichung von x und x'
Nachfolgend wird gezeigt wie numerischen Datentabellen analysiert und reduziert werden können.
- Das eingebaute Maschinenenlernmodul
ML
wird verwendet.
- Das ML Modul kapselt eine Vielzahl von Ml Algorithmen und Modellen sowie bietet Datenvorverarbeitung
- Es gibt für alle Algorithmen und Verfahren einen gemeinsamen Satz an Operationen:
ML.preprocess.
: Transformation von Datentabellen
ML.pca
: PCA Modul
Datenvorverarbeitung
- Die Eingabedaten (nur x aud D!) müssen als Matrixtabelle vorliegen und entsprechend formatiert werden (die Rohdaten liegen als Rekordtabelle vor)
Formattierung der Eingabedaten
▸
|
|
✗
≡
|
Eigenvektoren berechnen lassen
- Die Eigenvektoren werden aus den Eingabedaten mit der Funktion
ML.pca.getEigenVectors(data)
berechnet
Eigenvektoren mit PCA berechnen
▸
|
|
✗
≡
|
Frage. Wie viele Eigenvektoren werden bestimmt, welche Dimensionalität besitzen sie, und wovon hängen diese Parameter ab?
Reduzierte Datentabelle
Reduzierte Datentabelle berechnen
▸
|
|
✗
≡
|
Achtung: Die reduzierte Datentabelle steckt in dem Attribut adjustedData und ist transponiert!!!
Eine Array Matrix kann ganz einfach transponisert werden in dem aus der Array Matrix ein Math.Matrix Objekt erzeugt wird, welches die Matrixtransponierung mit einer Methode unterstützt (Attribut data enthält dann wieder die transponierte Array Matrix):
dataT=Math.Matrix(data).transpose().data;
Frage. Wie verändert sich die reduzierte Datentabelle unter Hinzunahme weiterer Eigenvektoreen? Ausprobieren .. (ML.pca.computeAdjustedData(this.data, this.eigen[0], this.eigen[1], ..)
)
Rekonstruktion der Datentabelle
- Die Datentabelle mit allen ursprünglichen Eingabevariablen kann aus der reduzierten auf folgende Weise approximiert rekonstruiert erfolgen:
Rekonstruktion der Datentabelle berechnen
▸
|
|
✗
≡
|
Frage. Kommt exakt die ursprüngliche Tabelle wieder zustande Wenn alle Eigenvektoren verwendet werden? Ausprobieren ..
Fehlerberechnung der reduzierten Datentabelle
Rekonstruktion der Datentabelle berechnen