388 lines
27 KiB
Markdown
388 lines
27 KiB
Markdown
# Zusammenfassung für CDS-1011 Einführung in Data Science
|
|
## Grundbegriffe
|
|
| Begriff | Beschreibung |
|
|
|---|---|
|
|
| Daten | Beispiele: Transaktionsdaten, Log-Daten, Maschinendaten, Dokumente / Texte, Social Media, Videos, Bilder |
|
|
| Data Science | Fachgebiet, welches sich mit der Gewinnung von Wissen aus Daten beschäftigt |
|
|
| Artificial Intelligence | Systeme, die intelligentes Verhalten aufweisen. Indem sie ihre Umgebung analysieren und Massnahmen ergreiffen, mit einen gewissen Grad an Selbstbestimmung. Um dann bestimmte Ziele zu erreichen |
|
|
| Machine Learning | Machine Learning beschäftigt sich mit der Frage, wie man Computer Programme so entwerfen kann, dass sie sich, mit Erfahrung, automatisch verbessern |
|
|
| Deep Learning | Deep Learning ist eine unterkategorie von AI, die ihren Fokus auf die Erstellung von künstlichen neuronalen Netzen (KNN) setzt. KNN sind in der Lage, genaue datengestützte Entscheidungen zu treffen |
|
|
|Features|Features sind die verschiedenen Attribute, die einen informationsreichen Datensatz bilden, der zum Trainieren von Modellen für maschinelles Lernen verwendet wird. Diese Merkmale werden als Eingabe für das Modell verwendet, um genaue Vorhersagen für die Labels zu treffen.|
|
|
|Labels (Zielvariablen)|Ein Label, auch als Zielvariable oder abhängige Variable bezeichnet, ist die Ausgabe, für deren Vorhersage das Modell trainiert wird. Beim überwachten Lernen sind Labels die bekannten Ergebnisse, die das Modell während des Trainings mit den Eingabemerkmalen zu verknüpfen lernt.|
|
|
|Parameter|Ein Parameter ist eine Variable, die während des Trainingsprozesses aus den Daten gelernt wird. Er wird verwendet, um die zugrunde liegenden Beziehungen in den Daten darzustellen und um Vorhersagen über neue Daten zu treffen.|
|
|
|Hyperparameter|A hyperparameter, on the other hand, is a variable that is set before the training process begins. It controls the behaviour of the learning algorithm, such as the learning rate, the regularization strength, and the number of hidden layers in a neural network. Z.B. Anzahl Clusters bei einer Clustering Aufgabe|
|
|
## Machine Larning
|
|
| Begriff | Beschreibung |
|
|
|---|---|
|
|
|Überwachtes Lernen|<ul><li>Überwchtes Lernen nutzt Beispieldaten mit einer Zielvariable, um aus diesen Daten Muster zu erlernen und diese auf unbekannte Daten anzuwenden </li><li>Wird für Klassifikationen und Regressionen genutzt, also für die Vorhersage von Wahrscheinlichkeiten oder numerischen Werten</li><li>Überwachtes Lernen setzt eine aufwendige Datenvorverarbeitung voraus</li></ul>|
|
|
|Klassifizierung|Methode des überwachten Lernens, bei der ein Modell anhand von gelabelten Beispieldaten lernt, neue Datenpunkte vordefinierten Kategorien (Klassen) zuzuordnen, z.B. Bilder als "Hund" oder "Katze" zu erkennen, Spam-Mails zu filtern oder Kunden abzuwandern|
|
|
|Klassifizierung Algorithmen|<ul><li>K-Nearest-Neighbors</li><li>Naïve Bayes</li><li>Support Vector Machines</li><li>Decision Trees</li></ul>|
|
|
|Lineare Regression|<ul><li>Ziel: Vorhersage des Werts einer stetigen Variable</li><li>Output: Reele Zahl</li><li>Beispiel: Wie hoch ist der Schlusskurs einer Aktie morgen?</li></ul>|
|
|
|Logistische Regression|<ul><li>Ziel: Vorhersage, ob ein bestimmtes kategoriales Ergebnis eintritt (binär, multinomial, ordinal)</li><li>Output: Wahrscheinlichkeit, die dann in eine Klasse übersetzt wird</li><li>Beispiel: Wird die Aktie morgen mindestens den Kurs n erreichen? (Ja = 1, Nein = 0)</li></ul>|
|
|
|Modell|Ein Machine-Learning-Modell ist ein Programm, das Muster findet oder auf Basis eines zuvor ungesehenen Datasets Entscheidungen trifft.|
|
|
|Unüberwachtes Lernen|Unüberwachtes Lernen (Unsupervised Learning) ist ein Bereich des maschinellen Lernens, bei dem Algorithmen Muster und Strukturen in ungelabelten Daten selbstständig entdecken, ohne vorherige menschliche Anleitungen oder vordefinierte Zielwerte.|
|
|
|Halbüberwachtes Lernen|Beim Semi-Supervised Learning wird ein Modell sowohl mit beschrifteten als auch mit unbeschrifteten Daten trainiert. Dabei lernt der Algorithmus mithilfe weniger gelabelter Datenpunkte, Muster in den Dateninstanzen ohne bekannte Zielvariable zu erkennen, was zu einer präziseren und effizienteren Modellbildung führt.|
|
|
|Reinforcement Learning|Reinforcement Learning ist ein Teilgebiet des maschinellen Lernens, das sich darauf konzentriert, wie Agenten durch Trial and Error lernen können, Entscheidungen zu treffen, um die kumulativen Belohnungen zu maximieren. RL ermöglicht es Maschinen, durch Interaktion mit einer Umgebung und durch Feedback zu ihren Handlungen zu lernen. Dieses Feedback erfolgt in Form von Belohnungen oder Strafen.|
|
|
|Batch Learning|Beim Batch-Lernen, auch Offline-Lernen genannt, wird ein maschinelles Lernmodell auf den gesamten Datensatz gleichzeitig trainiert, was zu einem statischen Modell führt, das nicht aus neuen Daten in der Produktion lernt und regelmässig mit aktualisierten Daten neu trainiert werden muss, um effektiv zu bleiben. |
|
|
|Online Learning|In der Informatik ist Online-Maschinelles Lernen eine Methode des maschinellen Lernens, bei der Daten in sequenzieller Reihenfolge verfügbar werden und dazu verwendet werden, bei jedem Schritt den besten Prädiktor für zukünftige Daten zu aktualisieren. Dies steht im Gegensatz zu Batch-Lernverfahren, bei denen der beste Prädiktor durch das gleichzeitige Lernen anhand des gesamten Trainingsdatensatzes generiert wird.|
|
|
|Instanzbasiertes Lernen|Eine einfache Methode besteht darin, dass das System direkt die Merkmale von neuen Datenpunkten mit denen der gelernten Datenpunkte vergleicht und ihre Ähnlichkeit vergleicht. Das bezeichnet man als instanzbasiertes Lernen. In der Trainingsphase lernt das System nur die Trainingsdaten.|
|
|
|
|
|Matrizen Operationen|Beispiel|
|
|
|---|---|
|
|
|Addition||
|
|
|Multiplikation mit Vektor| |
|
|
|Multiplikation|   |
|
|
|Transponierte Matrizen| |
|
|
## Herausforderungen
|
|
|Begriff|Beschreibung|
|
|
|---|---|
|
|
|Bias|Fehler, der entsteht, weil das Modell das Konzept nicht abbilden kann|
|
|
|Sampling Bias|Bestimmte Gruppen unterreoräsentiert|
|
|
|Measurement Bias|Fehelr in der Erhebung (z.B. Sensoren)|
|
|
|Survivor Bias|Nur erfolgreiche Fälle in den Daten|
|
|
|Confirmation Bias|Bewusste/unterbewusste Selektion von Daten|
|
|
|Data Cleaning & Wrangling|<ul><li>Ausreisser entfernen</li><li>Fehler beheben</li><li>Lückenhafte Merkmale (ignorieren, entfernen, ergänzen)</li></ul>|
|
|
|Varianz|Fehler, der entsteht, weil der Lernalgorithmus überempfindlich auf kleine Änderungen in den Trainingsdaten reagiert. Gesamtfehler eines Modells wird durch die Summe von Bias-Quadrat, Varianz und Rauschen ausgedrückt: |
|
|
|Underfitting|Modell ist zu einfach, um die in den Daten enthaltene Struktur zu erlernen. Möglichkeiten um Underfitting zu beheben: Mächtigeres Modell, Feature Selection, Hyperparameter|
|
|
|Overfitting|Modell passt sich gut auf die Trainingsdaten an, kann aber nicht Verallgemeinern. Möglichkeiten um Overfitting zu beheben: Modell vereinfachen, Anzahl Features reduzieren, Umfang der Traingsdaten erhöhen, Rauschen reduzieren, Regularisierung (Restriktionen Hyperparameter)|
|
|
|Irrelevante Features|Welche Merkmale sind relevant fürs Modell|
|
|
|Data Snooping|Data Snooping ist eine Form der statistischen Verzerrung, bei der Daten oder Analysen manipuliert werden, um künstlich statistisch signifikante Ergebnisse zu erzielen.|
|
|
|Cross Validation|Cross Validation ist eine Technik, mit der überprüft wird, wie gut ein maschinelles Lernmodell bei unbekannten Daten funktioniert, während gleichzeitig Overfitting verhindert wird. Dabei wird wie folgt vorgegangen: Der Datensatz wird in mehrere Teile aufgeteilt. Das Modell wird an einigen Teilen trainiert und an den übrigen Teilen getestet. Dieser Resampling-Prozess wird mehrfach wiederholt, wobei jeweils unterschiedliche Teile des Datensatzes ausgewählt werden. Die Ergebnisse jedes Validierungsschritts werden gemittelt, um die endgültige Leistung zu ermitteln. |
|
|
## Explorative Datenanalyse
|
|
|Begriff|Beschreibung|
|
|
|---|---|
|
|
|Explorative Datenanalyse|Explorative Datenanalyse (EDA) bezeichnet den Prozess, bei dem Daten untersucht, visualisiert und beschrieben werden, um erste Einsichten zu gewinnen, Zusammenhänge zu erkennen und Hypothesen zu formulieren — noch bevor Modellierung oder Hypothesentestsstattfinden.|
|
|
|Mittlere quadratische Abweichung (RMSE)|<ul><li>*m* ist die Anzahl Datenpunkte im Datensatz</li><li>*h* ist die Vorhersagefunktion des Systems</li><li>*X* ist die Matrix mit den Werten sämtlicher Merkmale</li><li>*x<sup>(i)</sup>* Vektor der Werte aller Merkmale</li><li>*y<sup>(i)<sup>* Label (gewünschter Ausgabewert)</li></ul> Die mittlere quadratische Abweichung misst den durchschnittlichen quadratischen Unterschied zwischen vorhergesagten und tatsächlichen Werten und bestraft grössere Abweichungen stärker.|
|
|
|Mittlerer absoluter Fehler (MAE)|<ul><li>*m* ist die Anzahl Datenpunkte im Datensatz</li><li>*h* ist die Vorhersagefunktion des Systems</li><li>*X* ist die Matrix mit den Werten sämtlicher Merkmale</li><li>*x<sup>(i)</sup>* Vektor der Werte aller Merkmale</li><li>*y<sup>(i)<sup>* Label (gewünschter Ausgabewert)</li></ul> Der mittlere absolute Fehler gibt an, wie gross die durchschnittliche absolute Differenz zwischen Vorhersagen und tatsächlichen Werten ist, ohne grössere Abweichungen zusätzlich zu gewichten.|
|
|
|Stetige Merkmale|<ul><li>Belibigen Wert innerhalb eines Intervalls</li><li>Unendlich viele Ausprägungen</li><li>Beispiele<ul><li>Strekenlänge</li><li>Zeitintervalle</li><li>Gewicht</li></ul></li></ul>|
|
|
|Diskrete Merkmale|<ul><li>Endliche Anzahl Ausprägungen</li><li>Menge ist zählbar</li><li>Beispiele <ul><li>Schulnoten</li><li>Haarfarben</li><li>Geschlechter</li><li>Anzahl Teilnehmer eines Sportanlasses</li></ul></li></ul>|
|
|
|Skalenniveaus||
|
|
|Mittelwert|Summe aller Werte dividiert durch die Anzahl von Werten. $$\huge \bar{x} = \frac{\sum_{i=1}^{n} x_i}{n}$$|
|
|
|Median|Mittlerer Wert der sortierten Liste. $$\\ \huge \text{Median} = \tilde{x} = \begin{cases}x_{\left(\frac{n+1}{2}\right)}, & \text{wenn } n \text{ ungerade ist} \\ \\ \frac{x_{\left(\frac{n}{2}\right)} + x_{\left(\frac{n}{2}+1\right)}}{2}, & \text{wenn } n \text{ gerade ist}\end{cases}$$|
|
|
|Varianz|$$\huge Varianz = s^2 = \frac{\sum_{i=1}^{n} (x_i - \bar{x})^2 }{n - 1}$$|
|
|
|Standardabweichung|$$\huge Standardabbwichung = s = \sqrt{Varianz}$$|
|
|
| Mittlere Absolute Abweichung | $$\huge \text{Mittlere Absolute Abweichung} = \frac{\sum_{i=1}^{n} \lvert x_i - \bar{x} \rvert}{n - 1}$$|
|
|
|Pearson Korrelationskoeffizient|Zusammenhang zwischen zwei numerischen Variablen. $$\huge r = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{(n - 1)\, s_x s_y}$$ <ul><li>$r \in [-1;1]$ </li><ul><li>1 stark positive Korrelation</li><li>0 keine Korrelation</li><li>-1 stark negative Korrelation</li></ul>|
|
|
## Lineare Regression
|
|
|Begriff|Beschreibung|
|
|
|---|---|
|
|
|Lineare Regression|Das Ziel der linearen Regression ist es, die "residual Sum of Squares (RRS)" zu minimieren. Also die Summe der quadrierten Abweichungen zwischen den vorhergesagten und den tatsächlichen Werten. Das Hauptziel ist es, eine lineare Beziehung zwischen den Variablen zu moddelieren, um Vorhersagen oder Interpreatationen zu ermöglichen|
|
|
|Feature Engineering|<ul><li>Struktur des Konzept des ML Modell visualisieren</li><li>Auswahl der Features für das ML Modell</li><li>Trifft nicht auf Deep Learning zu</li></ul>|
|
|
|Regressionsgerade|Summe der quadrierten Abstände der einzelnen Messpunkte zur Geraden minimal. |
|
|
|
|
### Regressionsgerade berechnen
|
|
Beispiel:
|
|
$$
|
|
x = [1, 2, 3, 4, 5], y = [2, 3, 5, 4, 6] \\
|
|
$$
|
|
1. x, y Tabelle erstellen
|
|
<div align="center">
|
|
|
|
||x|y|x*y|x<sup>2<sup>|
|
|
|---|---|---|---|---|
|
|
||1|2|2|1|
|
|
||2|3|6|4|
|
|
||3|5|15|9|
|
|
||4|4|16|16|
|
|
||5|6|30|25|
|
|
|$$\sum$$|**15**|**20**|**69**|**55**|
|
|
|
|
</div>
|
|
|
|
2. *c* Wert berechnen
|
|
$$
|
|
c = \frac{\sum_y * \sum_x - \sum_x * \sum_{xy}}{n(\sum_{x^2}) - (\sum_x)^2} \\[1em]
|
|
|
|
c = \frac{20 * 55 - 15 * 69}{5*55 - 15^2} = 1.3
|
|
$$
|
|
|
|
3. *m* Wert berechnen
|
|
$$
|
|
m = \frac{n(\sum_{xy}) - \sum_x * \sum_y}{n(\sum_{x^2} - (\sum_x)^2)} \\[1em]
|
|
|
|
m = \frac{5 * 69 - 15 * 20}{5 * 55 - 15^2} = 0.9
|
|
$$
|
|
|
|
4. Werte in Formel einsetzen
|
|
$$
|
|
\hat{y} = mx+c \\
|
|
\hat{y} = 0.9x+1.3
|
|
$$
|
|
|
|
5. Funktionsgraphen mit Regressionsgerade Zeichnen
|
|
|
|
<div align="center">
|
|
<img src="bilder/regessionsgerade.png" alt="Regressionsgerade" width="600"/>
|
|
</div>
|
|
|
|
### Kennzahlen der Regressionsanalyse R<sup>2<sup>
|
|
|Begriff|Beschreibung|
|
|
|---|---|
|
|
|R<sup>2<sup>|Wie gut kann die abhängige Variable durch die unabhängige Variable vorhergesagt werden?|
|
|
|SSR|Sum of squares regression. Welcher Varianzanteil des Kriteriums kann mithilfe der Prädikatoren erklärt werden?|
|
|
|SST|Sum of squares total. Werte zwischen 0 und 1. Je höher der Wert, desto genauer die Vorhersage|
|
|
|y<sub>i<sub>|Abhängige Variable|
|
|
|$\tilde{y}$|Median der abhängigen Variable|
|
|
|$\hat{y}$|Vorhergesagte abhängige Varbiable|
|
|
|
|
Beispiel:
|
|
$$
|
|
x = [1, 2, 3, 4, 5], y = [2, 3, 5, 4, 6]
|
|
$$
|
|
$$
|
|
\hat{y} = 0.9x+1.3
|
|
$$
|
|
$$
|
|
\hat{y} = [2.2, 3.1, 4, 4.9, 5.8]
|
|
$$
|
|
|
|
1. Median von y finden
|
|
$$
|
|
y = [2, 3, 5, 4, 6] sortieren \rightarrow y = [2, 3, 4, 5, 6]
|
|
$$
|
|
$$
|
|
i_{\tilde{y}} = \frac{5+1}{2} = 3
|
|
$$
|
|
$$
|
|
\tilde{y} = y[i_{\tilde{y}}] = 4
|
|
$$
|
|
|
|
2. SST berechnen
|
|
$$
|
|
SST = \sum_{i=1}^{n} (y_i-\tilde{y})^2
|
|
$$
|
|
$$
|
|
SST = (2-4)^2+(3-4)^2+(5-4)^2+(4-4)^2+(6-4)^2 = 10
|
|
$$
|
|
|
|
3. SSR berechnen
|
|
$$
|
|
SSR = \sum_{i=1}^{n} \hat{y}_i-\tilde{y})^2
|
|
$$
|
|
$$
|
|
SSR = (2.2-4)^2+(3.1-4)^2+(4-4)^2+(4.9-4)^2+(5.8-4)^2 = 8.1
|
|
$$
|
|
|
|
4. R<sup>2</sup> berechnen
|
|
$$
|
|
R^2 = \frac{SSR}{SST}
|
|
$$
|
|
$$
|
|
R^2 = \frac{8.1}{10} = 0.81
|
|
$$
|
|
|
|
5. Interpretieren
|
|
|
|
<div align="center">
|
|
0.81 bedeutet, dass viele der Datenpunkte in der Nähe der Regressionsgerade sind.
|
|
</div>
|
|
|
|
## Klassifikation
|
|
|Begriff|Beschreibung|
|
|
|---|---|
|
|
|Binäre Klassifikatoren|Ein binärer Klassifikator unterscheidet zwischen zwei Klassen. Z.B. "Ziffer ist 0" vs. "Ziffer ist nicht 0"|
|
|
|Logistische Regression|Die logistische Regression ist eine Form der Regressionsanalyse , die man verwendet, um ein nominalskaliertes, kategoriales Kriterium vorherzusagen. Das bedeutet, man verwendet die logistische Regression immer dann, wenn die abhängige Variable nur ein paar wenige, gleichrangige Ausprägungen hat. Ein Beispiel für ein kategoriales Kriterium wäre etwa der Ausgang einer Aufnahmeprüfung, bei der man nur entweder „angenommen“ oder „abgelehnt“ werden kann.|
|
|
|Logistische Regression vs. lineare Regression|Im Gegensatz zur linearen Regression sagt man bei der logistischen Regression nicht die konkreten Werte des Kriteriums vorher. Stattdessen schätzt man, wie wahrscheinlich es ist, dass eine Person in die eine oder die andere Kategorie des Kriteriums fällt. So könntest man etwa vorhersagen, wie wahrscheinlich es ist, dass eine Person mit einem IQ von 112 die Aufnahmeprüfung bestehen wird. Für die Vorhersage verwendet man auch bei der logistischen Regression eine Regressionsgleichung. Überträgt man diese Regressionsgleichung in ein Koordinatensystem, so erhält man die charakteristische Kurve der logistischen Regression. An ihr kann man abschätzen, wie wahrscheinlich eine Merkmalsausprägung des Kriteriums für eine Person mit einem bestimmten Prädiktorwert ist und wie gut das Modell zu deinen Daten passt. Die Funktion der logistischen Regression sieht so aus: |
|
|
|Stochastisches Gradientverfahren (SGD)|<ul><li>Iteratives Optimierungsverfahren</li><ul><li>Parameter verändern</li><li>Minimum der Verlustfunktion finden</li></ul><li>SGDClassifier in Scikit-Learn</li><ul><li>Lineare Support Vector Machine (SVM)</li><li>Logistic Regression</li></ul><li>Eingesetzt in…</li><ul><li>Machine Learning</li><li>Deep Learning</li><li>Reinforcement Learning</li></ul></ul>|
|
|
|Konfusionsmatrix|Die Konfusionsmatrix zeigt die Verteilung korrekter und falscher Vorhersagen, enthält jedoch keine Trainingsparameter wie die Lernrate. <img src="bilder/konfusionsmatrix.png" alt="Konfusionsmatrix" width="600"/>|
|
|
|Precision (Relevanz)|Gibt den Anteil der korrekt als positiv klassifizierten Ergebnisse an der Gesamtheit der als positiv klassifizierten Ergebnisse an $\large precision = \frac{tp}{tp+fp} $|
|
|
|Recall (Sensivität)|Gibt die Wahrscheinlichkeit an, mit der ein positives Objekt korrekt als positiv klassifiziert wird. $\large recall = \frac{tp}{tp+fn} $|
|
|
|F1|Der F1-Wert ist der harmonische Mittelwert (eine Art Durchschnitt) von Precision und Recall. Dieser Messwert gleicht die Bedeutung von Precision und Recall aus und ist für Datasets mit unausgeglichenen Klassen besser geeignet als die Genauigkeit. $\large \\ f1=2*\frac{precision * recall}{precision + recall} $|
|
|
|ROC-Kurve|Bewertung der Trennschärfe eines binären Klassifikators über verschiedene Schwellenwerte. <img src="bilder/roc_kurve.png" alt="ROC-Kurve" width="600"/>|
|
|
|TPR (True Positive Rate)|Beschreibt, wie viele der tatsächlich positiven Beispiele korrekt erkannt wurden. Sie entspricht dem Recall. Eine TPR von 1.0 bedeutet: alle positiven Beispiele wurden richtig erkannt. $\large TPR = \frac{TP}{TP+FN} $|
|
|
|FPR (False Positive Rate)|Die FPR (False Positive Rate) misst, wie viele der negativen Beispiele fälschlich als positiv klassifiziert wurden. Eine FPR von 0.2 bedeutet: 20 % der negativen Beispiele wurden falsch als positiv erkannt. $\large FPR = \frac{FP}{FP+TN} $|
|
|
|Multiclass Classification|Multiclass Classification umfasst Datensätze mit mehreren Klassenbezeichnungen. <div><img src="bilder/binary_vs_multiclass_classification.webp" alt="Binäre vs Multiclass Classification" width="300"/> <img src="bilder/multiclass_classification.webp" alt="Multiclass Classification" width="300"/><div>|
|
|
|One vs. The Rest|Beim One vs. Rest Klassifizierungsansatz, der auf einen Datensatz mit N unterschiedlichen Klassen zugeschnitten ist, werden N binäre Klassifikatoren generiert, die jeweils einer bestimmten Klasse entsprechen. Die Anzahl der Klassifikatoren entspricht der Anzahl der eindeutigen Klassenbezeichnungen, die im Datensatz vorhanden sind. <img src="bilder/one_vs_the_rest.webp" alt="One vs. the Rest" width="700"/>|
|
|
|One vs. One|Bei der One vs. One Klassifizierungsstrategie, die auf einen Datensatz mit N unterschiedlichen Klassen zugeschnitten ist, werden insgesamt N * (N-1) / 2 binäre Klassifikatoren generiert. Bei diesem Ansatz wird für jedes mögliche Klassenpaar ein binärer Klassifikator erstellt.<br /> <img src="bilder/one_vs_one.webp" alt="One vs. the Rest" width="700"/>|
|
|
## Unsupervised Learning Clustering
|
|
|Begriff|Beschreibung|
|
|
|---|---|
|
|
|Clustering|Clustering kann als das wichtigste Problem des unüberwachten Lernens angesehen werden. Es befasst sich mit der Suche nach einer Struktur in einer Sammlung unbeschrifteter Daten. Eine grobe Definition von Clustering könnte der Prozess der Organisation von Objekten in Gruppen sein, deren Mitglieder sich in irgendeiner Weise ähneln. Ein Cluster ist daher eine Sammlung von Objekten, die sich untereinander ähneln und sich von den Objekten anderer Cluster unterscheiden.|
|
|
|Distanzmasse|Festzustellen, welche Datenpunkte innerhalb eines Clusters sich ähnlicher sind als andere. Distanzmasse werden tendenziell kleiner, je ähnlicher zwei Punkte sich sind. <br />Beispiele:<ul><li>Euklidische Distanz</li><li>Minkowski Distanz</li><li>Canberra Distanz</li></ul>|
|
|
|Ähnlichkeitsmasse|Bei Ähnlichkeitsmassen ist es andersherum: Bei größerer Ähnlichkeit zwischen zwei Punkten steigt ihr Wert. <br />Beispiele:<ul><li>Cosinus Similarity</li><li>Pearson Korrelationskoeffiziet</li><li>Jaccard Koeffizient</li></ul>|
|
|
|Euklidische Distanz|Abstand zwischen zwei Vektoren im mehrdimensionalen Raum. Bei der quadrierten euklidischen Distanz werden grosse Abstände zwishen den Vektoren stärker gewichtet als kleine Abstände. $\large d(x,y)=\sqrt{\sum_{i=1}^{n} (x_i-y_i)^2}$|
|
|
|
|
### K-Means
|
|
K-Means ist einer der einfachsten Algorithmen für unüberwachtes Lernen, der das bekannte Clustering-Problem löst. Das Verfahren folgt einer einfachen und unkomplizierten Methode zur Klassifizierung eines gegebenen Datensatzes durch eine bestimmte Anzahl von Clustern, angenommen k Cluster, die a priori festgelegt sind. Die Grundidee besteht darin, k Zentren zu definieren, eines für jeden Cluster. Diese Zentren sollten auf intelligente Weise platziert werden, da unterschiedliche Positionen zu unterschiedlichen Ergebnissen führen. Daher ist es am besten, sie so weit wie möglich voneinander entfernt zu platzieren.
|
|
|
|
Beispiel fünf Elemente und zwei platzierte Cluster im mehrdimensionalen Raum:
|
|
|
|
<div align="center">
|
|
<img src="bilder/k_means_graph.png" alt="K-Means Graph" width="500" />
|
|
</div>
|
|
|
|
1. Quadrierte euklidische Distanz zwischen Punkte und Clusterzentren berechnen
|
|
$$
|
|
d(x,y)=\sqrt{\sum_{i=1}^{n} (x_i-y_i)^2}^2 = \sum_{i=1}^{n} (x_i-y_i)^2
|
|
$$
|
|
$$
|
|
d(p1,q1)=(1-2)^2+(3-3)^2=1
|
|
$$
|
|
$$
|
|
d(p2,q1)=(2-2)^2+(4-3)^2=1
|
|
$$
|
|
$$
|
|
d(p3,q1)=(1-2)^2+(4-3)^2=2
|
|
$$
|
|
$$
|
|
d(p4,q1)=(4-2)^2+(1-3)^2=8
|
|
$$
|
|
$$
|
|
d(p5,q1)=(3-2)^2+(1-3)^2=5
|
|
$$
|
|
$$
|
|
d(p1,q2)=(1-4)^2+(3-2)^2=10
|
|
$$
|
|
$$
|
|
d(p2,q2)=(2-4)^2+(4-2)^2=8
|
|
$$
|
|
$$
|
|
d(p3,q2)=(1-4)^2+(4-2)^2=13
|
|
$$
|
|
$$
|
|
d(p4,q2)=(4-4)^2+(1-2)^2=1
|
|
$$
|
|
$$
|
|
d(p5,q2)=(3-4)^2+(1-2)^2=2
|
|
$$
|
|
|
|
<div align="center">
|
|
|
|
||p1|p2|p3|p4|p5|
|
|
|---|---|---|---|---|---|
|
|
|**q1**|1|1|2|8|5|
|
|
|**q2**|10|8|13|1|2|
|
|
|
|
</div>
|
|
|
|
2. Punkte mittels Distanzfunktion zu Clusterzentren zuordnen
|
|
$$
|
|
q1=\{p1(1,3), p2(2,4), p3(1,4)\}
|
|
$$
|
|
$$
|
|
q2=\{p4(4,1), p5(3,1)\}
|
|
$$
|
|
|
|
3. Neues Clusterzentrum berechnen
|
|
$$
|
|
\frac{\sum_{i=1}^n \vec{x_i}}{n}
|
|
$$
|
|
$$
|
|
\frac{
|
|
\begin{pmatrix}
|
|
1 \\
|
|
3
|
|
\end{pmatrix}
|
|
+
|
|
\begin{pmatrix}
|
|
2 \\
|
|
4
|
|
\end{pmatrix}
|
|
+
|
|
\begin{pmatrix}
|
|
1 \\
|
|
4
|
|
\end{pmatrix}
|
|
}{3}=\begin{pmatrix}1.3 \\3.7\end{pmatrix}
|
|
$$
|
|
$$
|
|
\frac{
|
|
\begin{pmatrix}
|
|
4 \\
|
|
1
|
|
\end{pmatrix}
|
|
+
|
|
\begin{pmatrix}
|
|
3 \\
|
|
1
|
|
\end{pmatrix}
|
|
}{2}=\begin{pmatrix}3.5 \\1\end{pmatrix}
|
|
$$
|
|
|
|
4. Clusterzentren neu plotten
|
|
|
|
<div align="center">
|
|
<img src="bilder/k_means_graph_2.png" alt="K-Means Graph 2" width="500" />
|
|
</div>
|
|
|
|
|Begriff|Beschreibung|
|
|
|---|---|
|
|
|Elbow-Method|Beim K-Means Clustering unterteilt der Algorithmus Daten in k Cluster, indem er die Abstände zwischen Punkten und ihren Clusterzentren minimiert. Die Entscheidung für das ideale k ist jedoch nicht einfach. Die Elbow-Methode hilft dabei, indem sie die Summenquadrate innerhalb der Cluster (WCSS) gegen steigende k-Werte aufträgt und nach einem Punkt sucht, an dem sich die Verbesserung verlangsamt. Dieser Punkt wird als „Elbow“ bezeichnet. <img src="bilder/elbow_method.webp" alt="Elbow Method" width="600"|
|
|
|Dimensionsreduktion|Im Bereich des maschinellen Lernens ist es sinnvoll, hochdimensionale Daten einem Prozess namens Dimensionsreduktion zu unterziehen. Der Zweck dieses Prozesses besteht darin, die Anzahl der betrachteten Merkmale zu reduzieren, wobei jedes Merkmal eine Dimension ist, die die Objekte teilweise repräsentiert.|
|
|
|PCA|Principal Component Analysis ist eine Technik, mit der hochdimensionale Daten in niedrigdimensionale Daten umgewandelt werden, wobei so viele Informationen wie möglich erhalten bleiben. Sie wird zur Interpretation und Visualisierung von Daten verwendet. Die Anzahl der Variablen nimmt ab, was die weitere Analyse vereinfacht.|
|
|
|Teilüberwachtes Lernen (Semi-Supervised Learning)|Teilüberwachtes Lernen ist ein hybrider Ansatz des maschinellen Lernens, der sowohl überwachtes als auch unüberwachtes Lernen nutzt. Dabei wird eine kleine Menge gekennzeichneter Daten in Kombination mit einer grossen Menge ungekennzeichneter Daten zum Trainieren von Modellen verwendet. Das Ziel besteht darin, eine Funktion zu erlernen, die ähnlich wie beim überwachten Lernen anhand von Eingaben präzise Vorhersagen zu den Ausgaben trifft, jedoch mit deutlich weniger gekennzeichneten Daten.|
|
|
|DBSCAN|DBSCAN ist ein dichtebasierter Clustering-Algorithmus, der dicht beieinander liegende Datenpunkte gruppiert und Ausreisser anhand ihrer Dichte im Merkmalsraum als Rauschen markiert. Er identifiziert Cluster als dichte Bereiche im Datenraum, die durch Bereiche mit geringerer Dichte voneinander getrennt sind. Im Gegensatz zu K-Means oder hierarchischem Clustering, bei denen davon ausgegangen wird, dass Cluster kompakt und kugelförmig sind, eignet sich DBSCAN gut für die Verarbeitung von Unregelmäßigkeiten in realen Daten, wie z. B.:<ul><li>Beliebig geformte Cluster: Cluster können jede beliebige Form annehmen, nicht nur kreisförmig oder konvex.</li><li>Rauschen und Ausreißer: Es identifiziert und behandelt Rauschpunkte effektiv, ohne sie einem Cluster zuzuordnen.</li></ul>|
|
|
|K-Means vs. Hierarchical handling compact vs. DBSCAN|Die Abbildung zeigt einen Datensatz mit Clustering-Algorithmen: K-Means und Hierarchical handling compact, sphärische Cluster mit unterschiedlicher Rauschtoleranz, während DBSCAN Cluster mit beliebiger Form und Rauschbehandlung verarbeitet. <img src="bilder/dbscan.webp" alt="DBSCAN" width="600" />|
|
|
|
|
### Silhouette Koeffizient
|
|
Der Silhouette koeffizient ist eine Kennzahl, die misst, wie gut jeder Datenpunkt in den ihm zugewiesenen Cluster passt. Er kombiniert Informationen sowohl über die "Cohesion" (wie nah ein Datenpunkt an anderen Punkten in seinem eigenen Cluster liegt) als auch über die "Separation" (wie weit ein Datenpunkt von Punkten in anderen Clustern entfernt ist) des Datenpunkts.
|
|
|
|
* Der Koeffizient reicht von -1 bis 1
|
|
* Ein Wert nahe 1 weist auf einen gut gruppierten Datenpunkt hin
|
|
* Ein Wert nahe 0 deutet auf überlappende Cluster hin
|
|
* Ein Wert nahe -1 weist auf einen falsch klassifizierten Datenpunkt hin
|
|
|
|
Beispiel Silhouette Koeffizient für Punkt A1 berechnen:
|
|
|
|
<div align="center">
|
|
<img src="bilder/silhouette.png" alt="Ausganslage Silhouette Graph" width="500">
|
|
</div>
|
|
|
|
1. Cohesion für Punk A1 berechnen
|
|
* cohesion a(x): durchschnittlicher Abstand von x zu allen anderen Vektoren im selben Cluster
|
|
$$
|
|
cohesion=a(x)=\frac{\sum_{i=1}^k\sqrt{\sum_{i=1}^{n} (x_i-y_i)^2}}{k}
|
|
$$
|
|
$$
|
|
d(A1,A2)=\sqrt{(2-3)^2+(5-4)^2}=\sqrt{2}
|
|
$$
|
|
$$
|
|
d(A1,A2)=\sqrt{(2-4)^2+(5-6)^2}=\sqrt{5}
|
|
$$
|
|
$$
|
|
cohesion(A1)=a(A1)=\frac{\sqrt{2}+\sqrt{5}}{2}=1.825
|
|
$$
|
|
|
|
2. Separation für Punk A1 berechnen
|
|
* separation b(x): durchschnittlicher Abstand von x zu Vektoren in den anderen Clustern. Finde das Minimum unter den Clustern
|
|
$$
|
|
separation=b(x)=\frac{\sum_{i=1}^k\sqrt{\sum_{i=1}^{n} (x_i-y_i)^2}}{k}
|
|
$$
|
|
$$
|
|
d(A1,B1)=\sqrt{(2-8)^2+(5-3)^2}=\sqrt{20}
|
|
$$
|
|
$$
|
|
d(A1,B2)=\sqrt{(2-9)^2+(5-2)^2}=\sqrt{58}
|
|
$$
|
|
$$
|
|
d(A1,B3)=\sqrt{(2-10)^2+(5-5)^2}=8
|
|
$$
|
|
$$
|
|
separation(A1)_B=b(A1)_B=\frac{\sqrt{20}+\sqrt{58}+8}{3}=6.696
|
|
$$
|
|
$$
|
|
d(A1,C1)=\sqrt{(2-6)^2+(5-10)^2}=\sqrt{26}
|
|
$$
|
|
$$
|
|
d(A1,C2)=\sqrt{(2-7)^2+(5-8)^2}=\sqrt{18}
|
|
$$
|
|
$$
|
|
d(A1,C3)=\sqrt{(2-8)^2+(5-9)^2}=\sqrt{32}
|
|
$$
|
|
$$
|
|
separation(A1)_C=b(A1)_C=\frac{\sqrt{26}+\sqrt{18}+\sqrt{32}}{3}=5.333
|
|
$$
|
|
$$
|
|
separation(A1)=b(A1)=min(b(A1)_B,b(A1)_C) = 5.333
|
|
$$
|
|
|
|
3. Silhouette Koeffizient für Punkt A1 berechnen
|
|
$$
|
|
silhouette coefficient=\frac{(separation — cohesion)}{max(separation, cohesion)}
|
|
$$
|
|
$$
|
|
silhouette coefficient A1=s(A1)=\frac{(5.333 — 1.825)}{5.333 = 0.658}
|
|
$$
|
|
|
|
4. Durchschnittlicher Silhouette Koeffizient
|
|
Berechne den durchschnittlichen Silhouettenkoeffizienten über alle Datenpunkte hinweg, um den Gesamtsilhouettenwert für das Clustering-Ergebnis zu erhalten... |