407 lines
102 KiB
Plaintext
407 lines
102 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Maschinelles Lernen (ML) - Übung 4\n",
|
|
"# Support Vector Machines\n",
|
|
"#### Institute Industrial IT\n",
|
|
"#### AG Diskrete Systeme\n",
|
|
"#### Anton Pfeifer, Christoph-Alexander Holst"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import sklearn\n",
|
|
"from sklearn.svm import SVC\n",
|
|
"from sklearn.datasets import make_blobs\n",
|
|
"from sklearn.datasets import make_moons\n",
|
|
"from sklearn.model_selection import train_test_split\n",
|
|
"import numpy as np\n",
|
|
"\n",
|
|
"# To plot pretty figures\n",
|
|
"%matplotlib inline\n",
|
|
"import matplotlib as mpl\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"mpl.rc('axes', labelsize=14)\n",
|
|
"mpl.rc('xtick', labelsize=12)\n",
|
|
"mpl.rc('ytick', labelsize=12)\n",
|
|
"\n",
|
|
"# Hilfs-Funktionen\n",
|
|
"from utils import *\n",
|
|
"\n",
|
|
"# To make this notebook's output stable across runs\n",
|
|
"np.random.seed(42)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Das Beispiel aus dem Arbeitsblatt\n",
|
|
"In dieser Übung wird die *Support Vector Machine* (SVM) eingeführt. Das zugrunde liegende Prinzip lässt sich sehr gut anhand der folgenden Codezelle darstellen. Diese generiert zwei Cluster, die sich sehr leicht mit einer Geraden voneinander trennen lassen (*linear separierbar*).\n",
|
|
"\n",
|
|
"Die Abbildung auf der linken Seite zeigt verschiedene Entscheidungsgrenzen von drei linearen Klassifikatoren. Die grün gestrichelte Linie trennt die beiden Cluster in zwei Klassen. Die rote und die blaue Linie befinden sich sehr nah an den Datenpunkten. Diese Modelle werden auf Testdaten vermutlich schlechter abschneiden.\n",
|
|
"\n",
|
|
"Die Abbildung auf der rechten Seite zeigt die Entscheidungsgrenze eines SVM-Klassifikators. Hierbei trennt die Linie die beiden Klassen mit dem größtmöglichen Abstand zu den nächstgelegenen Trainingsdatenpunkten (gestrichelte Linie). Der Abstand zu den nächstgelegenen Punkten wird auch als *margin* bezeichnet. \n",
|
|
"\n",
|
|
"Die SVM gehört im maschinellen Lernen zu den beliebtesten Modellen und wird im Rahmen dieser Übung als Werkzeug eingeführt. Die SVM eignet sich sowohl als linearer Klassifikator als auch nichtlinearer Klassifikator sowie für unterschiedliche Regressionsaufgaben."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 1008x288 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Make two cluster\n",
|
|
"blob_centers = np.array(\n",
|
|
" [[ 0.0, 0.0],\n",
|
|
" [ 2.0 , 2.0]\n",
|
|
" ])\n",
|
|
"blob_std = np.array([0.3, 0.5])\n",
|
|
"\n",
|
|
"X, y = make_blobs(n_samples=1000, centers=blob_centers,\n",
|
|
" cluster_std=blob_std, random_state=42)\n",
|
|
"\n",
|
|
"cluster_x1 = (y == 0)\n",
|
|
"cluster_x2 = (y == 1)\n",
|
|
"\n",
|
|
"X1 = X[cluster_x1]\n",
|
|
"X2 = X[cluster_x2]\n",
|
|
"\n",
|
|
"# Plot two cluster\n",
|
|
"def plot_clusters(X1, X2, y=None):\n",
|
|
" plt.scatter(X1[:, 0], X1[:, 1], s=15)\n",
|
|
" plt.scatter(X2[:, 0], X2[:, 1], s=15)\n",
|
|
" plt.xlabel(\"$x_1$\", fontsize=14)\n",
|
|
" plt.ylabel(\"$x_2$\", fontsize=14, rotation=0)\n",
|
|
"\n",
|
|
"# Bad linear models\n",
|
|
"x0 = np.linspace(0.0, 1.6, 200)\n",
|
|
"pred_1 = -2.2 * x0 + 2.8\n",
|
|
"x1 = np.linspace(-.2, 1.8, 200)\n",
|
|
"pred_2 = -.8 * x1 + 1.4\n",
|
|
"x2 = np.linspace(0.2, 1.2, 200)\n",
|
|
"pred_3 = -4 * x2 + 4.2\n",
|
|
" \n",
|
|
"# Linear SVM Classifier model\n",
|
|
"svm_clf = SVC(kernel=\"linear\", C=float(\"inf\"))\n",
|
|
"svm_clf.fit(X, y)\n",
|
|
" \n",
|
|
"fig, axes = plt.subplots(ncols=2, figsize=(14,4))\n",
|
|
"\n",
|
|
"plt.sca(axes[0])\n",
|
|
"plot_clusters(X1, X2)\n",
|
|
"plt.plot(x0, pred_1, \"g--\", linewidth=2)\n",
|
|
"plt.plot(x1, pred_2, \"m-\", linewidth=2)\n",
|
|
"plt.plot(x2, pred_3, \"r-\", linewidth=2)\n",
|
|
"\n",
|
|
"plt.sca(axes[1])\n",
|
|
"plot_clusters(X1, X2)\n",
|
|
"plot_svc_decision_boundary(svm_clf, 0, 1.7)\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"**Aufgabe 4.1:**\n",
|
|
"In dieser Übung experimentieren wir mit realen und künstlich generierten Datensätzen. Hierfür stehen einige frei verfügbare Datensätze aus unterschiedlichen Fachgebieten zur Verfügung. Passende Datensätze lassen sich unter den folgenden Quellen finden: \n",
|
|
"- [UC Irvine Machine Learning Repository](http://archive.ics.uci.edu/ml/)\n",
|
|
"- [Kaggle](https://www.kaggle.com/datasets)\n",
|
|
"- [Amazon AWS](http://aws.amazon.com/fr/datasets/)\n",
|
|
"\n",
|
|
"Laden Sie die im Notebook bereitgestellten Datensätze und bereiten Sie jeweils einen Trainings- und einen Testdatensatz vor. Verwenden Sie hierfür die Scikit-Learn Methode `train_test_split` und wählen Sie einen geeignete Aufteilung der Datenpunkte. \n",
|
|
"\n",
|
|
"Für dieses Lab verwenden wir die folgenden Datensätze: "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Iris:** Bei dem Iris-Datensatz handelt es sich um einen bekannten Datensatz, der die Länge und Breite der Kelchblätter (engl. sepal) und Kronblätter (petal) von 150 Iris-Blüten enthält und sich aus drei Unterarten zusammensetzt: Iris-Setosa, Iris-Versicolor und Iris-Virginica. Der Datensatz kann über das `sklearn`-Modul geladen werden."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.datasets import load_iris\n",
|
|
"\n",
|
|
"iris_dataset = load_iris()\n",
|
|
"X_iris = iris_dataset[\"data\"][:, (2, 3)] # petal length, petal width\n",
|
|
"y_iris = iris_dataset[\"target\"]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **MNIST:** Der MNIST-Datensatz ist eine Sammlung von 70000 handschriftlichen Ziffern. Jedes Bild ist mit der dargestellten Ziffer gelabelt."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.datasets import fetch_openml\n",
|
|
"mnist = fetch_openml('mnist_784', version=1, cache=True)\n",
|
|
"\n",
|
|
"X_mnist = mnist[\"data\"]\n",
|
|
"y_mnist = mnist[\"target\"].astype(np.uint8)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Künstlich generierten Datensätze:** Die Datensätze werden mit Hilfe der Methoden `make_blobs` und `make_moon` generiert. "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn.datasets import make_blobs\n",
|
|
"\n",
|
|
"# XOR Blobs\n",
|
|
"blob_centers = np.array(\n",
|
|
" [[ 0.0, 0.0],\n",
|
|
" [ 1.0 , 0.0],\n",
|
|
" [ 0.0, 1.0],\n",
|
|
" [ 1.0, 1.0]\n",
|
|
" ])\n",
|
|
"blob_std = np.array([0.1, 0.1, 0.1, 0.1])\n",
|
|
"\n",
|
|
"X, y = make_blobs(n_samples=4000, centers=blob_centers,\n",
|
|
" cluster_std=blob_std, random_state=42)\n",
|
|
"\n",
|
|
"\n",
|
|
"cluster_x0 = (y == 0)\n",
|
|
"cluster_x1 = (y == 1)\n",
|
|
"cluster_x2 = (y == 2)\n",
|
|
"cluster_x3 = (y == 3)\n",
|
|
"\n",
|
|
"X1 = X[cluster_x0 | cluster_x3]\n",
|
|
"X2 = X[cluster_x1 | cluster_x2]\n",
|
|
"\n",
|
|
"# Plot two cluster\n",
|
|
"def plot_clusters(X1, X2, y=None):\n",
|
|
" plt.scatter(X1[:, 0], X1[:, 1], s=10)\n",
|
|
" plt.scatter(X2[:, 0], X2[:, 1], s=10)\n",
|
|
" plt.xlabel(\"$x_1$\", fontsize=14)\n",
|
|
" plt.ylabel(\"$x_2$\", fontsize=14, rotation=0)\n",
|
|
" \n",
|
|
"plot_clusters(X1, X2)\n",
|
|
"plt.show()\n",
|
|
"\n",
|
|
"y[(y == 0)] = 0\n",
|
|
"y[(y == 3)] = 0\n",
|
|
"y[(y == 1)] = 1\n",
|
|
"y[(y == 2)] = 1\n",
|
|
"\n",
|
|
"X_xor, y_xor = X, y"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"**Aufgabe 4.4:** In dieser Übung wird eine einfache lineare SVM trainiert und als linearer Klassifikator eingesetzt. Laden Sie hierfür einen geeigneten Datensatz und beantworten Sie anschließend mit Hilfe des Notebooks die folgenden Fragen. \n",
|
|
"\n",
|
|
"Für die SVM wird die von scikit-learn bereitgestellte Klasse SVC verwendet."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Aufgabe 4.4.1:** Setzen Sie die Klasse SVC auf verschiedene zweidimensionale, linear separierbare Datensätze Ihrer Wahl ein.\n",
|
|
"\n",
|
|
"Schauen Sie in das Beispiel am Anfang des Notebooks, wie die Klasse SVC einzusetzen ist, oder schauen Sie in die offizielle Dokumentation der Klasse."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Aufgabe 4.4.2:** Wie wirkt sich das Hinzufügen neuer Trainingsdaten abseits der Margin auf die Entscheidungsgrenze aus?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Code"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Aufgabe 4.4.3:** In der scikit-learn SVM-Klasse können Sie das Verhalten über einen Hyperparameter $C$ steuern, der eine $l2$-Regularisierung hinzufügt.\n",
|
|
"Trainieren Sie den Datensatz Blob mit den Trainingsdaten, variieren Sie die $l2$-Regularisierung ($C$) und evaluieren Sie den Klassifikator anschließend. \n",
|
|
"Verwenden Sie zur Bewertung in Übung $2$ besprochene Metriken. "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Code"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"**Aufgabe 4.5:** Neben dem linearen SVM-Klassifikator, kann eine SVM auch auf nicht-linear separierbaren Datensätzen angewendet werden. \n",
|
|
"Dafür werden die vorhandenen Merkmale bzw. Daten in einen höherdimensionalen Merkmalsraum transformiert. Dies geschieht z.B. durch eine polynomielle Transformation."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Aufgabe 4.5.1:** Wählen Sie einen zweidimensionalen Datensatz, der nur nichtlinear separierbar ist (wie z.B. das XOR-Problem). Schreiben Sie eine Funktion für eine polynomielle Transformation 2. Ordnung.\tTransformieren Sie Ihre Daten mit dieser Funktion und trainieren Sie anschließend einen linearen SVM-Klassifikator (kernel=linear) auf den transformierten Daten. \n",
|
|
"Die folgende Gleichung zeigt die umzusetzende polynomielle Zuordnungsfunktion:\n",
|
|
"\\begin{equation*} \n",
|
|
" \\phi(\\mathbf{x}) = \n",
|
|
" \\phi\n",
|
|
"\t\\left(\n",
|
|
"\t\t\\begin{pmatrix}\n",
|
|
"\t\t\tx_1 \\\\\n",
|
|
"\t\t\tx_2 \n",
|
|
"\t\t\\end{pmatrix} \n",
|
|
"\t\\right)\n",
|
|
"\t =\n",
|
|
" \\begin{pmatrix}\n",
|
|
"\t\t x_1^2 \\\\\n",
|
|
"\t\t \\sqrt{2} \\cdot x_1 x_2 \\\\\n",
|
|
"\t\t x_2^2\n",
|
|
"\t \\end{pmatrix} \n",
|
|
"\\end{equation*}"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Code"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Aufgabe 4.5.2:** Die Klasse SVC bietet natürlich die Transformationen intern an. Dazu muss der Klasse der entsprechende Kernel (z.B. kernel=poly) auf das Moons Problem an und vergleichen Sie die Ergebnisse hinsichtlich der verwendeten Kernel (Polynomieller Kernel, Gaußsche RBF-Kernel). Versuchen Sie das Ergebnis durch Verändern von Hyperparametern zu optimieren. "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Code"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"- **Aufgabe 4.5.3:** Trainieren Sie einen SVM-Klassifikator auf dem MNIST-Datensatz. \n",
|
|
"Der MNIST-Datensatz beinhaltet multiple Klassen (verschiedene Ziffern). Prinzipiell eignet sich eine SVM nur als binärer Klassifikator. Um nun einen Mehrklassenklassifikator (multiclass) zu realisieren, gibt es verschiedene Strategien. \n",
|
|
"Zwei populäre Verfahren sind die *one-vs-all* und die *one-vs-one* Strategie, in der mehrere SVMs gleichzeitig trainiert werden. \n",
|
|
"\n",
|
|
"- Recherchieren Sie die Vorgehensweisen dieser beiden Strategien. Wie funktionieren diese? Gibt es Vor- und Nachteile?\n",
|
|
"- Implementieren Sie eine SVM mit der *one-vs-all* Strategie auf dem MNIST-Datensatz. \n",
|
|
"Was für eine Genauigkeit erreichen Sie?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Code"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.7.4"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|