From 092207cb2cb209ccdd7fa98583669674cbba44ed Mon Sep 17 00:00:00 2001
From: Christof Kaufmann <christof.kaufmann@hs-bochum.de>
Date: Sun, 28 Apr 2024 11:20:43 +0000
Subject: [PATCH] Notebooks from applied-cs/data-science@baa55593

---
 .../01-autoklassen-sklearn-sol.ipynb          | 364 +++++++++++
 .../01-autoklassen-sklearn.ipynb              | 184 ++++++
 05-skalierung-und-optimierung/autos.csv       | 616 ++++++++++++++++++
 3 files changed, 1164 insertions(+)
 create mode 100644 05-skalierung-und-optimierung/01-autoklassen-sklearn-sol.ipynb
 create mode 100644 05-skalierung-und-optimierung/01-autoklassen-sklearn.ipynb
 create mode 100644 05-skalierung-und-optimierung/autos.csv

diff --git a/05-skalierung-und-optimierung/01-autoklassen-sklearn-sol.ipynb b/05-skalierung-und-optimierung/01-autoklassen-sklearn-sol.ipynb
new file mode 100644
index 0000000..39bdbb7
--- /dev/null
+++ b/05-skalierung-und-optimierung/01-autoklassen-sklearn-sol.ipynb
@@ -0,0 +1,364 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Auto-Klassen mit Scikit-Learn\n",
+    "\n",
+    "Anbei liegt wieder die Datei `autos.csv` mit Merkmalen von Autos und der\n",
+    "zugehörigen Klasse (im Sinne von Kleinstwagen etc.). Stellen Sie ihr\n",
+    "Arbeitsverzeichnis auf das Verzeichnis des Scripts ein. Sie können das\n",
+    "aktuelle Arbeitsverzeichnis in einer IPython-Konsole einfach mit `pwd`\n",
+    "(print working directory) ausgeben. Mit `cd PFAD` (z. B. `cd ..`) können\n",
+    "Sie das Verzeichnis wechseln.\n",
+    "\n",
+    "## a) k Nearest Neighbors mit Scikit-Learn\n",
+    "\n",
+    "-   Lesen Sie die Daten mit Pandas ein.\n",
+    "-   Teilen Sie den DataFrame in `X` und `y` auf, wobei `X` nur\n",
+    "    numerische Features enthalten soll und `y` die Fahrzeugklasse. `X`\n",
+    "    und `y` werden wir auch im nächsten Aufgabenteil brauchen.\n",
+    "-   Splitten Sie Ihre Daten in Trainings- und Testmenge auf.\n",
+    "-   Erstellen Sie ein `KNeighborsClassifier`-Objekt mit den\n",
+    "    Standardwerten.\n",
+    "-   Trainieren Sie das Modell indem Sie die `fit`-Methode mit der\n",
+    "    Trainingsmenge aufrufen.\n",
+    "-   Machen Sie eine Vorhersage (auch: Inferenz) für die Testmenge.\n",
+    "-   Geben Sie die Genauigkeit aus, indem Sie die Test-Labels und die\n",
+    "    vorhergesagten Labels in die Funktion `accuracy_score` übergeben.\n",
+    "    Alternativ können Sie einfach `(y_test == y_pred).mean()` verwenden.\n",
+    "-   *Bonus: Wie hoch ist die Genauigkeit, wenn die vorhergesagte\n",
+    "    Fahrzeugklasse um eine Klasse daneben liegen darf?*\n",
+    "\n",
+    "### Lösung zu a)\n",
+    "\n",
+    "Wir laden zunächst die Daten und teilen sie in `X_train`, `X_test`,\n",
+    "`y_train`, `y_test` auf:"
+   ],
+   "id": "0005-d5cffa8f0704cf548e53737237da4d3ed2a6e83201311bc15ef4335e995"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "import optuna\n",
+    "import pandas as pd\n",
+    "from sklearn.metrics import accuracy_score\n",
+    "from sklearn.model_selection import cross_val_score, RepeatedStratifiedKFold, StratifiedKFold, train_test_split\n",
+    "from sklearn.neighbors import KNeighborsClassifier\n",
+    "from sklearn.preprocessing import RobustScaler\n",
+    "\n",
+    "df = pd.read_csv('autos.csv')\n",
+    "X = df.drop(columns=['Marke', 'Modell', 'Fahrzeugklasse'])\n",
+    "y = df['Fahrzeugklasse']\n",
+    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, stratify=y)"
+   ],
+   "id": "0006-c1652ecfe289903fe272ddb057b2b8ee0182c2f23c2e173384b6f1b9fde"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Als nächstes erstellen wir ein Modell für $k$ Nearest Neighbors mit\n",
+    "Standardwerten ($k = 5$, $p = 2$ und alle Nachbarn zählen gleich viel),\n",
+    "trainieren es und werten es auf der Testmenge aus:"
+   ],
+   "id": "0007-7355d79e0338534377a20e748034d9dbe360c14acf738d309a076505c1c"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "model = KNeighborsClassifier()\n",
+    "model.fit(X_train, y_train)\n",
+    "y_pred = model.predict(X_test)\n",
+    "score = accuracy_score(y_test, y_pred)"
+   ],
+   "id": "0008-6bd58ca167e0053fe33b658469a10f17e6b43f6896dadf06a0cf8dc6fd6"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Die Genauigkeit beträgt ungefähr – je nach zufälliger Aufteilung der\n",
+    "Trainings- und Testmengen – zwischen 41% und 70% und im Mittel ungefähr:"
+   ],
+   "id": "0009-19f963d04e0849544556edd745a9be471ceb58af797b4db2b38d22fa480"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [
+    {
+     "output_type": "stream",
+     "name": "stdout",
+     "text": [
+      "56.91%"
+     ]
+    }
+   ],
+   "source": [
+    "print(f'{score:.2%}')"
+   ],
+   "id": "0010-851f37ceb0a7044dfa1fd10aaaa6c95b36520a0daa77af6d92a2ffc565c"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Wenn wir eine Toleranz von 1 Fahrzeugklasse verwenden, liegt die\n",
+    "Genauigkeit ungefähr zwischen und 83% und 100% und im Mittel ungefähr:"
+   ],
+   "id": "0011-c808456d33568ef391dd7f3b317070d77e2bf593a17ab55b3c39720291d"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [
+    {
+     "output_type": "stream",
+     "name": "stdout",
+     "text": [
+      "93.50%"
+     ]
+    }
+   ],
+   "source": [
+    "near_miss_score = ((y_test - y_pred).abs() <= 1).mean()\n",
+    "print(f'{near_miss_score:.2%}')"
+   ],
+   "id": "0012-1a056c770eab1c5dbdead803360ee3d448c0fd07feafcd3cca3af571230"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Das bedeutet vermutlich, dass die Vorhersage nicht komplett daneben\n",
+    "liegt.\n",
+    "\n",
+    "## b) Skalierung\n",
+    "\n",
+    "Skalieren Sie die Daten und ermitteln die Genauigkeit erneut.\n",
+    "\n",
+    "### Lösung zu b)\n",
+    "\n",
+    "Wir skalieren die Daten mit dem hier am besten geeigneten `RobustScaler`\n",
+    "und machen dasselbe wie zuvor. Beim Skalieren muss man darauf achten,\n",
+    "dass man nur einmal `fit` mit den Trainingsdaten aufruft, weil das die\n",
+    "Perzentile (25%, 50%, 75%) berechnet. Man skaliert dann die\n",
+    "Trainingsdaten und die Testdaten mit denselben werten."
+   ],
+   "id": "0017-4dd0afa75578cad75b210fc616896d2ec10d95932f06e3996c0b5274d10"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "scaler = RobustScaler()\n",
+    "scaler.fit(X_train)\n",
+    "X_train_scaled = scaler.transform(X_train)\n",
+    "X_test_scaled = scaler.transform(X_test)\n",
+    "\n",
+    "model = KNeighborsClassifier()\n",
+    "model.fit(X_train_scaled, y_train)\n",
+    "y_pred_s = model.predict(X_test_scaled)\n",
+    "score_scaled = accuracy_score(y_test, y_pred_s)"
+   ],
+   "id": "0018-5e1919c285c5f9db87f5ade5c8a7f39c26f8bdd4958c4c6c021886296c4"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Nun beträgt die Genauigkeit ungefähr zwischen 53% und 80% (anstatt 41%\n",
+    "und 70% ohne Skalierung) und im Mittel ungefähr:"
+   ],
+   "id": "0019-0bf204d53815dfc0965e543aae77b558e780a212333b5db15702b0d78ae"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [
+    {
+     "output_type": "stream",
+     "name": "stdout",
+     "text": [
+      "67.48%"
+     ]
+    }
+   ],
+   "source": [
+    "print(f'{score_scaled:.2%}')"
+   ],
+   "id": "0020-7371b9a07c7f1fe25d35f203d86a7e69a1192272662e6ac06a14fe78ab2"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## c) Kreuzvalidierung\n",
+    "\n",
+    "Ermitteln Sie die Genauigkeit über eine Kreuzvalidierung (aber mit der\n",
+    "Testmenge, also quasi eine Kreuzevaluation).\n",
+    "\n",
+    "1.  Dazu verwenden wir zunächst die gesamte Menge *ohne* eine Aufteilung\n",
+    "    in Trainings- und Testmengen. Skalieren Sie also das gesamte `X`.\n",
+    "    *Hinweis: Anstatt `fit` und `transform` separat aufzurufen, können\n",
+    "    Sie auch `fit_transform` aufrufen.*\n",
+    "2.  Erstellen Sie ein `StratifiedKFold`-Objekt (bereits importiert).\n",
+    "    *Bonus: Erstellen Sie stattdessen ein\n",
+    "    `RepeatedStratifiedKFold`-Objekt\n",
+    "    ([doc](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RepeatedStratifiedKFold.html)).*\n",
+    "3.  Verwenden Sie `cross_val_score` wie in den Folien, aber mit\n",
+    "    `X_scaled`.\n",
+    "4.  Geben Sie den Mittelwert der Ergebnisse aus.\n",
+    "\n",
+    "### Lösung zu c)\n",
+    "\n",
+    "Wir skalieren nun die gesamten Daten wieder mit dem `RobustScaler` und\n",
+    "rufen `cross_val_score` mit `X_scaled` auf. Dabei gibt es kein\n",
+    "Data-Leakage, weil in jedem Training die Testmenge außen vor bleibt und\n",
+    "– ganz wichtig – wir das Ergebnis nicht nutzen um uns auf einem Teil der\n",
+    "Menge zu verbessern."
+   ],
+   "id": "0025-3ba483c9689e0d7ba3eb16e1838979f16c9bee44ce69a979eb97d285ca5"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "scaler = RobustScaler()\n",
+    "X_scaled = scaler.fit_transform(X)\n",
+    "folds = StratifiedKFold(5, shuffle=True)\n",
+    "scores_scaled_cv = cross_val_score(model, X_scaled, y, cv=folds, scoring='accuracy')\n",
+    "score_scaled_cv = scores_scaled_cv.mean()"
+   ],
+   "id": "0026-a91779d7fcfbedb201cbceb62273acc7d645c72b54c7dec33f4a53e48a8"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Nun beträgt die Genauigkeit ungefähr zwischen 63.5% und 70.5% (anstatt\n",
+    "53% und 80% ohne Kreuzvalidierung) und im Mittel unverändert ungefähr:"
+   ],
+   "id": "0027-3bfb561f3875f077095b32a0c7d0377f93fe688d38d4bb75de6898ef257"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [
+    {
+     "output_type": "stream",
+     "name": "stdout",
+     "text": [
+      "67.15%"
+     ]
+    }
+   ],
+   "source": [
+    "print(f'{score_scaled_cv:.2%}')"
+   ],
+   "id": "0028-98a7f9a2738231b6905840f64f990616c7cacfb64bc2570d40af1bfa18d"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Mit `RepeatedStratifiedKFold` mit Default-Werten (also `n_splits=5` und\n",
+    "`n_repeats=10`) liegt die Genauigkeit zwischen 66.4% und 68.6%. Das ist\n",
+    "eine sehr geringe Spanne, die besser für eine Hyperparameteroptimierung\n",
+    "geeignet ist.\n",
+    "\n",
+    "## d) Optuna\n",
+    "\n",
+    "In diesem Teil geht es darum zusätzliche Skalierungsfaktoren zu\n",
+    "optimieren.\n",
+    "\n",
+    "1.  Der Startcode implementiert bereits die Optimierung von $k$ und $p$\n",
+    "    mit Optuna. Schauen Sie sich den Startcode an und probieren ihn aus.\n",
+    "2.  Fügen Sie in die `objective`-Funktion für jedes Feature jeweils\n",
+    "    einen Skalierungsfaktor als Hyperparameter hinzu, der das Feature\n",
+    "    nach der Skalierung umskaliert. Vielleicht ist es von Vorteil, wenn\n",
+    "    einige Features den Abstand stärker beeinflussen als andere.\n",
+    "3.  Führen Sie die Optimierung durch.\n",
+    "4.  Betrachten Sie die Ergebnisse im Parallele-Koordinaten-Plot und\n",
+    "    wählen Sie gute Parameter.\n",
+    "\n",
+    "### Lösung zu d)\n",
+    "\n",
+    "Wir skalieren die Features jeweils zwischen $[10^{-2}, 10^2]$ mit\n",
+    "logarithmischwer Verteilung, weil wir wollen, dass der Bereich\n",
+    "$[10^{-2}, 10^0] = [0.01, 1]$ genauso wahrscheinlich ist, wie der\n",
+    "Bereich $[10^0, 10^2] = [1, 100]$."
+   ],
+   "id": "0034-ae5d5a5918f209ffcbd24188436259e7ef46c1b452327ef493c1324aeef"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "folds = RepeatedStratifiedKFold()\n",
+    "\n",
+    "def objective(trial):\n",
+    "    k = trial.suggest_int('k', 1, 9)\n",
+    "    p = trial.suggest_categorical('p', [1, 2, 4, np.inf])\n",
+    "    scale_factores = [trial.suggest_float('scale_' + col, 1e-2, 1e2, log=True) for col in X.columns]\n",
+    "    model = KNeighborsClassifier(n_neighbors=k, p=p, weights='distance')\n",
+    "    scores_cv = cross_val_score(model, X_train_scaled * scale_factores, y_train, cv=folds, scoring='accuracy')\n",
+    "    return scores_cv.mean()"
+   ],
+   "id": "0035-a2dc6bde9454a074f712141df254855d6bc6d43503890bc2db31962e1a8"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Tests zu d)"
+   ],
+   "id": "0036-8f570a8c845c9b7351be9dc2ff5943af11f8ea2daf43c6e6946cae8935d"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "study = optuna.create_study(direction='maximize', sampler=optuna.samplers.GPSampler(deterministic_objective=True))  # less duplicate trials\n",
+    "study.optimize(objective, n_trials=100, n_jobs=4)\n",
+    "optuna.visualization.plot_parallel_coordinate(study)"
+   ],
+   "id": "0037-8565d9b2658fda0d997f9c5e7b432ba8c45ae399d1222bad654c1e3608d"
+  }
+ ],
+ "nbformat": 4,
+ "nbformat_minor": 5,
+ "metadata": {}
+}
diff --git a/05-skalierung-und-optimierung/01-autoklassen-sklearn.ipynb b/05-skalierung-und-optimierung/01-autoklassen-sklearn.ipynb
new file mode 100644
index 0000000..2319890
--- /dev/null
+++ b/05-skalierung-und-optimierung/01-autoklassen-sklearn.ipynb
@@ -0,0 +1,184 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Auto-Klassen mit Scikit-Learn\n",
+    "\n",
+    "Anbei liegt wieder die Datei `autos.csv` mit Merkmalen von Autos und der\n",
+    "zugehörigen Klasse (im Sinne von Kleinstwagen etc.). Stellen Sie ihr\n",
+    "Arbeitsverzeichnis auf das Verzeichnis des Scripts ein. Sie können das\n",
+    "aktuelle Arbeitsverzeichnis in einer IPython-Konsole einfach mit `pwd`\n",
+    "(print working directory) ausgeben. Mit `cd PFAD` (z. B. `cd ..`) können\n",
+    "Sie das Verzeichnis wechseln.\n",
+    "\n",
+    "## a) k Nearest Neighbors mit Scikit-Learn\n",
+    "\n",
+    "-   Lesen Sie die Daten mit Pandas ein.\n",
+    "-   Teilen Sie den DataFrame in `X` und `y` auf, wobei `X` nur\n",
+    "    numerische Features enthalten soll und `y` die Fahrzeugklasse. `X`\n",
+    "    und `y` werden wir auch im nächsten Aufgabenteil brauchen.\n",
+    "-   Splitten Sie Ihre Daten in Trainings- und Testmenge auf.\n",
+    "-   Erstellen Sie ein `KNeighborsClassifier`-Objekt mit den\n",
+    "    Standardwerten.\n",
+    "-   Trainieren Sie das Modell indem Sie die `fit`-Methode mit der\n",
+    "    Trainingsmenge aufrufen.\n",
+    "-   Machen Sie eine Vorhersage (auch: Inferenz) für die Testmenge.\n",
+    "-   Geben Sie die Genauigkeit aus, indem Sie die Test-Labels und die\n",
+    "    vorhergesagten Labels in die Funktion `accuracy_score` übergeben.\n",
+    "    Alternativ können Sie einfach `(y_test == y_pred).mean()` verwenden.\n",
+    "-   *Bonus: Wie hoch ist die Genauigkeit, wenn die vorhergesagte\n",
+    "    Fahrzeugklasse um eine Klasse daneben liegen darf?*\n",
+    "\n",
+    "Hier Ihr Start-Code:"
+   ],
+   "id": "0004-8aed67bf1a5065a62440343a778365e49e5143ddca600561cbb5ec2e72f"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import optuna\n",
+    "from sklearn.metrics import accuracy_score\n",
+    "from sklearn.model_selection import cross_val_score, StratifiedKFold, train_test_split\n",
+    "from sklearn.neighbors import KNeighborsClassifier\n",
+    "from sklearn.preprocessing import RobustScaler\n",
+    "\n",
+    "# TODO: Daten laden\n",
+    "\n",
+    "# TODO: In X, y aufteilen\n",
+    "\n",
+    "# TODO: In Training- und Testmengen splitten\n",
+    "\n",
+    "# TODO: k-NN erstellen, trainieren, vorhersagen\n",
+    "\n",
+    "# TODO: Genauigkeit ausgeben"
+   ],
+   "id": "0005-682ba86e4b2ef1a270871f098102d4349b3f2b0977c41614e4b442895f7"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## b) Skalierung\n",
+    "\n",
+    "Skalieren Sie die Daten und ermitteln die Genauigkeit erneut."
+   ],
+   "id": "0007-d9e25205ef98d910bef301fd97bad7094675f32062447639cceb4728289"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [],
+   "id": "0008-44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## c) Kreuzvalidierung\n",
+    "\n",
+    "Ermitteln Sie die Genauigkeit über eine Kreuzvalidierung (aber mit der\n",
+    "Testmenge, also quasi eine Kreuzevaluation).\n",
+    "\n",
+    "1.  Dazu verwenden wir zunächst die gesamte Menge *ohne* eine Aufteilung\n",
+    "    in Trainings- und Testmengen. Skalieren Sie also das gesamte `X`.\n",
+    "    *Hinweis: Anstatt `fit` und `transform` separat aufzurufen, können\n",
+    "    Sie auch `fit_transform` aufrufen.*\n",
+    "2.  Erstellen Sie ein `StratifiedKFold`-Objekt (bereits importiert).\n",
+    "    *Bonus: Erstellen Sie stattdessen ein\n",
+    "    `RepeatedStratifiedKFold`-Objekt\n",
+    "    ([doc](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RepeatedStratifiedKFold.html)).*\n",
+    "3.  Verwenden Sie `cross_val_score` wie in den Folien, aber mit\n",
+    "    `X_scaled`.\n",
+    "4.  Geben Sie den Mittelwert der Ergebnisse aus."
+   ],
+   "id": "0011-7e58ce651003652ff193df6731b83f9d835ed244d0ef5387f3325e8cb42"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [],
+   "id": "0012-44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## d) Optuna\n",
+    "\n",
+    "In diesem Teil geht es darum zusätzliche Skalierungsfaktoren zu\n",
+    "optimieren.\n",
+    "\n",
+    "1.  Der Startcode implementiert bereits die Optimierung von $k$ und $p$\n",
+    "    mit Optuna. Schauen Sie sich den Startcode an und probieren ihn aus.\n",
+    "2.  Fügen Sie in die `objective`-Funktion für jedes Feature jeweils\n",
+    "    einen Skalierungsfaktor als Hyperparameter hinzu, der das Feature\n",
+    "    nach der Skalierung umskaliert. Vielleicht ist es von Vorteil, wenn\n",
+    "    einige Features den Abstand stärker beeinflussen als andere.\n",
+    "3.  Führen Sie die Optimierung durch.\n",
+    "4.  Betrachten Sie die Ergebnisse im Parallele-Koordinaten-Plot und\n",
+    "    wählen Sie gute Parameter."
+   ],
+   "id": "0015-1a2cb5f0269a7d88b4861ef37715bd33303afa2fbaa8fa3b50c9bcc2ab2"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "folds = RepeatedStratifiedKFold()\n",
+    "\n",
+    "def objective(trial):\n",
+    "    k = trial.suggest_int('k', 1, 9)\n",
+    "    p = trial.suggest_categorical('p', [1, 2, 4, np.inf])\n",
+    "    model = KNeighborsClassifier(n_neighbors=k, p=p, weights='distance')\n",
+    "    scores_cv = cross_val_score(model, X_train_scaled, y_train, cv=folds, scoring='accuracy')\n",
+    "    return scores_cv.mean()"
+   ],
+   "id": "0016-5b5d432c8107554b190e9b5f88594153f66d68e9ed8cb2d394aa224898d"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Tests zu d)"
+   ],
+   "id": "0017-8f570a8c845c9b7351be9dc2ff5943af11f8ea2daf43c6e6946cae8935d"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "style": "python"
+   },
+   "outputs": [],
+   "source": [
+    "study = optuna.create_study(direction='maximize', sampler=optuna.samplers.GPSampler(deterministic_objective=True))  # less duplicate trials\n",
+    "study.optimize(objective, n_trials=100, n_jobs=4)\n",
+    "optuna.visualization.plot_parallel_coordinate(study)"
+   ],
+   "id": "0018-8565d9b2658fda0d997f9c5e7b432ba8c45ae399d1222bad654c1e3608d"
+  }
+ ],
+ "nbformat": 4,
+ "nbformat_minor": 5,
+ "metadata": {}
+}
diff --git a/05-skalierung-und-optimierung/autos.csv b/05-skalierung-und-optimierung/autos.csv
new file mode 100644
index 0000000..6ffed5d
--- /dev/null
+++ b/05-skalierung-und-optimierung/autos.csv
@@ -0,0 +1,616 @@
+Marke,Modell,Grundpreis,Leistung_kW,Hubraum,Leergewicht,Verbrauch_kombi,Tueranzahl,Fahrzeugklasse
+Bugatti,Chiron,2856000,1103,7993,2070,22.5,2,6
+Koenigsegg,Agera RS,2112275,865,5032,1395,14.7,2,6
+Lamborghini,Centenario LP770-4,2082500,566,6498,1520,16,2,6
+Lamborghini,Centenario Roadster LP770-4,2082500,566,6498,1570,16,2,6
+smart,forfour BRABUS,21225,80,898,1095,4.6,5,1
+Abarth,595C,21090,107,1368,1150,6.5,2,1
+Abarth,595,18490,107,1368,1110,6,3,1
+VW,up! GTI,16975,85,999,1070,4.8,3,1
+Opel,ADAM ROCKS 1.2,15780,51,1229,1086,5.3,3,1
+Fiat,500C 1.2 8V,15190,51,1242,980,4.9,2,1
+VW,cross up! 1.0 BMT,14500,55,999,1009,4.3,5,1
+Fiat,Panda Cross 1.2 8V,13490,51,1242,1015,5.1,5,1
+Opel,KARL ROCKS 1.0,12800,55,999,939,4.7,5,1
+Peugeot,108 Top! 1.0 VTi 68,12600,51,998,915,4.1,3,1
+Fiat,500 1.2 8V,12590,51,1242,940,4.9,3,1
+Suzuki,Ignis 1.2,12540,66,1242,885,4.6,5,1
+Citroen,C1 Airscape VTi 68,12400,51,998,915,4.1,3,1
+Opel,ADAM 1.2,12135,51,1229,1086,5.3,3,1
+smart,forfour 1.0,11765,52,999,975,4.2,5,1
+Hyundai,i10 1.0,9990,49,998,1008,4.7,5,1
+KIA,Picanto 1.0,9990,49,998,935,4.4,5,1
+Peugeot,108 1.0 VT 68,9990,51,998,915,4.1,3,1
+VW,up! 1.0,9975,44,999,926,4.4,3,1
+Toyota,Aygo 1.0,9950,51,998,915,4.1,3,1
+Fiat,Panda 1.2 8V,9850,51,1242,1015,5.1,5,1
+Skoda,Citigo 1.0,9770,44,999,929,4.4,3,1
+Renault,Twingo SCe 70,9750,51,999,939,5,5,1
+Suzuki,Celerio 1.0,9690,50,998,880,4.3,5,1
+Opel,KARL 1.0,9560,55,999,939,4.5,5,1
+Citroen,C1 VTi 68,9090,51,998,915,4.1,3,1
+SEAT,Mii 1.0,8990,44,999,929,4.4,3,1
+MINI,John Cooper Works Cabrio,34300,170,1998,1385,6.5,2,2
+Nissan,Juke Nismo RS,31915,157,1618,1469,7.3,5,2
+Audi,S1 Sportback,31300,170,1984,1415,7.1,5,2
+Toyota,Yaris GRMN,30800,156,1798,1135,7.5,5,2
+MINI,John Cooper Works,30700,170,1998,1280,6.3,3,2
+Audi,S1,30450,170,1984,1390,7,3,2
+DS Automobiles,DS 3 Performance,26990,153,1598,1250,5.4,3,2
+Opel,Corsa OPC,24930,152,1598,1293,7.5,3,2
+Peugeot,208.,23990,153,1598,1235,5.4,3,2
+VW,Polo GTI,23950,147,1984,1355,5.9,5,2
+Renault,Clio R.S.,23390,147,1618,1279,5.9,5,2
+MINI,One Cabrio,22500,75,1198,1280,5,2,2
+Honda,HR-V 1.5 i-VTEC,20690,96,1498,1312,5.6,5,2
+DS Automobiles,DS 3 Cabrio PureTech 82,19940,60,1199,1110,4.9,2,2
+Jeep,Renegade 1.6 E-torQ,19900,81,1598,1395,6,5,2
+Opel,Mokka X 1.6 Start&Stop,18990,85,1598,1355,6.7,5,2
+Ford,EcoSport 1.0 EcoBoost,18590,92,998,1337,5.2,5,2
+Citroen,C3 Picasso VTi 95,18190,70,1397,1276,5.9,5,2
+Hyundai,i20 Coupee 1.0 T-GDI,18100,88,998,1145,4.8,3,2
+Ford,EcoSport 1.5 Ti-VCT,17990,82,1498,1314,6.3,5,2
+Mazda,CX-3 SKYACTIV-G 120,17990,88,1998,1230,5.9,5,2
+Suzuki,Vitara 1.6,17990,88,1586,1150,5.3,5,2
+Peugeot,2008 PureTech 82,17550,60,1199,1120,4.9,5,2
+Hyundai,Kona 1.0 T-GDI,17500,88,998,1233,5.2,5,2
+MINI,One First,17350,55,1198,1225,5.2,5,2
+Hyundai,i20 Active 1.0 T-GDI blue,17300,74,998,1160,4.5,5,2
+KIA,Soul 1.6 GDI,17240,97,1591,1275,6.5,5,2
+Audi,A1 Sportback 1.0 TFSI ultra,17100,60,999,1135,4.2,5,2
+Fiat,500L 1.4 16V,16990,70,1368,1330,6.2,5,2
+Fiat,500L Wagon 1.4 16V,16990,70,1368,1350,6.1,5,2
+Opel,Crossland X 1.2,16990,60,1199,1136,5.2,5,2
+Ford,B-MAX 1.4,16800,66,1388,1275,6,5,2
+Honda,Jazz 1.3 i-VTEC,16640,75,1318,1138,5,5,2
+Fiat,500L Urban 1.4 16V,16490,70,1368,1320,6.1,5,2
+MINI,One First,16400,55,1198,1165,5.1,3,2
+Fiat,500X 1.6 E-torQ,16290,81,1598,1350,6.4,5,2
+Audi,A1 1.0 TFSI ultra,16250,60,999,1110,4.2,3,2
+DS Automobiles,DS 3 PureTech 82,15990,60,1199,1049,4.6,3,2
+Nissan,Juke 1.6,15990,69,1598,1163,6,5,2
+SEAT,Arona 1.0 EcoTSI,15990,70,999,1165,4.9,5,2
+SsangYong,Tivoli 1.6 e-XGi 160,15990,94,1597,1270,6.6,5,2
+Renault,Captur ENERGY TCe 90,15890,66,898,1259,5.1,5,2
+Hyundai,ix20 1.4 blue,15790,66,1396,1253,5.6,5,2
+KIA,Stonic 1.2,15790,62,1248,1145,5.2,5,2
+Alfa Romeo,MiTo 1.4 8V,15700,57,1368,1155,5.6,3,2
+Suzuki,Jimny 1.3,15590,62,1328,1135,7.1,3,2
+Citroen,C3 Aircross PureTech 82,15290,60,1199,1163,5.1,5,2
+Ford,Tourneo Courier 1.0 EcoBoost,15260,74,998,1260,5.3,5,2
+Ford,Transit Courier Kombi 1.0 EcoBoost,15220,74,998,1260,5.3,4,2
+Fiat,Fiorino Kombi 1.4 8V,15161,57,1368,1255,6.9,4,2
+KIA,Venga 1.4,14890,66,1396,1253,6,5,2
+Citroen,C4 Cactus PureTech 75,13990,55,1199,1040,4.6,5,2
+Suzuki,Swift 1.2 Dualjet,13790,66,1242,915,4.3,5,2
+Suzuki,Baleno 1.2 Dualjet,13790,66,1242,940,4.2,5,2
+Skoda,Fabia Combi 1.0 MPI,13450,55,999,1104,4.8,5,2
+Nissan,Micra 1.0,12990,52,998,977,4.6,5,2
+Renault,Clio Grandtour 1.2 16V 75,12990,54,1149,1141,5.6,5,2
+VW,Polo 1.0 MPI,12975,48,999,1105,4.7,5,2
+Ford,Fiesta 1.1,12950,51,1084,1108,4.7,3,2
+Mazda,2 SKYACTIV-G 75,12890,55,1496,1045,4.7,5,2
+Fiat,Punto 1.2 8V,12790,51,1242,1105,5.4,5,2
+Peugeot,208 1.2 PureTech 68,12750,50,1199,1035,4.7,3,2
+Toyota,Yaris 1.0,12540,51,998,1055,4.3,3,2
+Fiat,Qubo 1.4 8V,12490,57,1368,1255,6.9,5,2
+SEAT,Ibiza 1.0 MPI,12490,48,999,1091,4.9,5,2
+Skoda,Fabia 1.0 MPI,12150,44,999,1080,4.8,5,2
+Opel,Corsa 1.2,12135,51,1229,1120,5.4,3,2
+Hyundai,i20 1.2,12015,55,1248,1055,5.1,5,2
+Citroen,C3 PureTech 68,11990,50,1199,1051,4.7,5,2
+Renault,Clio 1.2 16V 75,11990,54,1149,1134,5.6,5,2
+KIA,Rio 1.2,11690,62,1248,1110,4.8,5,2
+Lada,Kalina Cross 1.6 8V,10200,64,1596,1110,6.6,5,2
+Dacia,Sandero Stepway TCe 90 Start&Stop,9990,66,898,1115,5.1,5,2
+Ford,Ka+ 1.2 Ti-VCT,9990,51,1198,1055,5,5,2
+Mitsubishi,Space Star 1.0,9290,52,999,920,4.2,5,2
+Lada,Kalina Kombi 1.6 8V,8260,64,1596,1110,6.6,5,2
+Lada,Kalina 1.6 8V,7460,64,1596,1080,6.6,5,2
+Dacia,Sandero SCe 75,6990,54,998,1044,5.2,5,2
+smart,fortwo cabrio BRABUS,23675,80,898,1040,4.6,2,1
+smart,fortwo Coupee BRABUS,20415,80,898,995,4.5,3,1
+smart,fortwo cabrio 1.0,14365,52,999,940,4.3,2,1
+smart,fortwo Coupee 1.0,11105,52,999,890,4.1,3,1
+Morgan,Aero Supersports 4.8 V8,168000,270,4799,1220,11.2,2,4
+BMW,M3 CS,117600,338,2979,1660,8.3,4,4
+BMW,M4 CS Coupee,116900,338,2979,1655,8.4,2,4
+Lotus,Evora 400,96000,298,3456,1415,9.7,2,4
+Alfa Romeo,Stelvio Quadrifoglio,89000,375,2891,1905,9,5,4
+Porsche,Macan Turbo,84586,294,3604,2000,9,5,4
+BMW,M4 Cabrio,84500,317,2979,1825,9.1,2,4
+BMW Alpina,B4 S Bi-Turbo Cabrio,81400,324,2979,1915,8.3,2,4
+Audi,RS5 Coupee,80900,331,2894,1730,8.7,2,4
+Audi,RS4 Avant,79800,331,2894,1790,8.8,5,4
+BMW,M4 Coupee,78200,317,2979,1572,8.8,2,4
+BMW,M3,77500,317,2979,1595,8.8,4,4
+Lexus,RC F,75900,351,4969,1840,10.8,3,4
+BMW Alpina,B4 S Bi-Turbo Coupee,75300,324,2979,1690,7.9,2,4
+Lotus,Exige Coupee,75200,258,3456,1110,10.1,2,4
+Lotus,Exige Roadster,75200,258,3456,1110,10.1,2,4
+Porsche,Macan GTS,74828,265,2997,1970,8.9,5,4
+BMW Alpina,B3 S Bi-Turbo Touring,74700,324,2979,1780,8.1,5,4
+BMW Alpina,B3 S Bi-Turbo,72900,324,2979,1705,7.9,4,4
+Alfa Romeo,Giulia Quadrifoglio,72800,375,2891,1670,8.5,4,4
+Cadillac,ATS-V Coupee,72500,346,3564,1775,11.4,3,4
+Alfa Romeo,4C Spider,72000,177,1742,1015,6.9,2,4
+Cadillac,ATS-V,69900,346,3564,1775,11.6,4,4
+Audi,TT RS Roadster,69200,294,2480,1605,8.3,2,4
+Mercedes,C 43 AMG Cabriolet,68455,270,2996,1870,8.3,2,4
+Audi,S5 Cabriolet,68050,260,2995,1915,7.9,2,4
+Morgan,Roadster 3.7 V6,68000,209,3721,950,9.8,2,4
+Audi,TT RS Coupee,66400,294,2480,1515,8.2,3,4
+Mercedes,GLC Coupee 43 AMG,65807,270,2996,1855,8.4,5,4
+Audi,SQ5 TFSI,65400,260,2995,1945,8.3,5,4
+Alfa Romeo,4C,63500,177,1742,970,6.8,2,4
+Audi,S5 Sportback,62750,260,2995,1735,7.5,5,4
+Audi,S5 Coupee,62750,260,2995,1690,7.5,2,4
+Mercedes,GLC 43 AMG,62178,270,2996,1845,8.3,5,4
+Audi,S4 Avant,61900,260,2995,1750,7.7,5,4
+Mercedes,C 43 AMG T-Modell,61850,270,2996,1735,7.9,5,4
+Mercedes,C 43 AMG Coupee,61761,270,2996,1735,7.8,2,4
+Mercedes,C 43 AMG,60184,270,2996,1690,7.8,4,4
+Audi,S4,60050,260,2995,1705,7.5,4,4
+Mercedes,SLC 43 AMG,60036,270,2996,1595,7.8,2,4
+Alpine,A110,58000,185,1798,1178,6.1,2,4
+Land Rover,Range Rover Velar P250,56400,184,1998,1804,7.6,5,4
+Porsche,Macan,56264,185,1984,1845,7.2,5,4
+Audi,TTS Roadster,53350,228,1984,1525,7.3,2,4
+Jaguar,F-Pace 25t,51160,184,1997,1760,7.4,5,4
+Audi,TTS Coupee,50550,228,1984,1440,7.1,3,4
+Audi,Q5 2.0 TFSI,50500,185,1984,1795,6.8,5,4
+BMW,X4 xDrive20i,49850,135,1997,1810,7.2,5,4
+Mercedes,GLC Coupee 250,49837,155,1991,1785,6.9,5,4
+Opel,Insignia Sports Tourer GSi 2.0 DI Turbo Start&Stop,48800,191,1998,1716,8.7,5,4
+Audi,A4 Allroad 2.0 TFSI,48750,185,1984,1655,6.4,5,4
+Volvo,XC60 T5,48650,184,1969,1915,7.4,5,4
+Jeep,Cherokee 3.2 V6 Pentastar,48000,200,3239,2036,9.6,5,4
+Opel,Insignia Grand Sport GSi 2.0 DI Turbo Start&Stop,47800,191,1998,1683,8.6,5,4
+BMW,420i Cabrio,47700,135,1998,1775,6.2,2,4
+Volvo,S60 Cross Country T5,47050,180,1969,1722,7.4,4,4
+Nissan,370Z Nismo,46880,253,3696,1496,10.6,3,4
+Volvo,V60 Cross Country T5,45950,180,1969,1776,7.4,5,4
+Land Rover,Discovery Sport Si4,45750,177,1998,1796,8,5,4
+Mercedes,GLC 250,45315,155,1991,1735,6.5,5,4
+Infiniti,Q50 2.0t,44900,155,1991,1587,6.3,4,4
+Jeep,Wrangler Unlimited 3.6 V6,44900,209,3604,1995,11.4,5,4
+Infiniti,Q60 2.0t,44500,155,1991,1722,6.8,2,4
+BMW,X3 xDrive20i,44400,135,1998,1790,7.1,5,4
+Audi,A5 Cabriolet 2.0 TFSI,44000,140,1984,1675,5.9,2,4
+KIA,Stinger 2.0 T-GDI,43990,188,1998,1717,7.9,5,4
+VW,Passat Alltrack 2.0 TSI BMT,43925,162,1984,1677,6.9,5,4
+Morgan,4/4 1.8 16V,43009,82,1595,800,8.2,2,4
+Mercedes,C 180 Cabriolet,42727,115,1595,1600,6,2,4
+Infiniti,Q50 2.0t,42500,155,1991,1585,6.3,4,4
+Alfa Romeo,Stelvio 2.0 Turbo 16V,42200,147,1995,1735,7,5,4
+Jeep,Wrangler 3.6 V6,41900,209,3604,1828,11,3,4
+Renault,Espace ENERGY TCe 225,40900,165,1798,1685,6.8,5,4
+BMW,420i Coupee,40400,135,1998,1550,5.8,2,4
+BMW,420i Gran Coupee,40400,135,1998,1595,5.8,5,4
+Cadillac,ATS Coupee 2.0 Turbo,40400,203,1998,1591,7.7,3,4
+BMW,320i Gran Turismo,40200,135,1998,1655,6.1,5,4
+Nissan,370Z Roadster,40130,241,3696,1496,11.2,2,4
+DS Automobiles,DS 7 Crossback PureTech 225,38990,165,1598,1500,5.9,5,4
+Alfa Romeo,Giulia 2.0 Turbo 16V,38500,147,1995,1504,6,4,4
+Audi,A5 Sportback 2.0 TFSI,38050,140,1984,1505,5.8,5,4
+Audi,A5 Coupee 2.0 TFSI,38050,140,1984,1465,5.6,2,4
+Cadillac,ATS 2.0 Turbo,37400,203,1998,1593,7.6,4,4
+Jaguar,XE 20t,36960,147,1997,1540,6.3,4,4
+Subaru,Outback 2.5i,36900,129,2498,1582,7,5,4
+Mercedes,C 180 Coupee,36033,115,1595,1475,5.3,2,4
+Audi,TT Roadster 1.8 TFSI,35550,132,1798,1375,5.9,2,4
+Mercedes,SLC 180,35349,115,1595,1435,5.6,2,4
+Skoda,Kodiaq Scout 1.4 TSI ACT,35050,110,1395,1610,6.8,5,4
+Opel,Insignia Country Tourer 1.5 DI Turbo Start&Stop,34885,121,1490,1522,6.4,5,4
+BMW,318i Touring,34550,100,1499,1545,5.4,5,4
+DS Automobiles,DS 5 THP 165 Stop&Start,34390,121,1598,1504,5.9,5,4
+Nissan,370Z Coupee,34130,241,3696,1496,10.6,3,4
+Audi,A4 Avant 1.4 TFSI,33700,110,1395,1445,5.4,5,4
+Mercedes,C 160 T-Modell,33534,95,1595,1470,5.4,5,4
+VW,Sharan 1.4 TSI BMT,33325,110,1395,1703,6.4,5,4
+Ford,Galaxy 1.5 EcoBoost Start/Stopp,33310,118,1498,1708,6.5,5,4
+Audi,TT Coupee 1.8 TFSI,33150,132,1798,1285,5.8,3,4
+BMW,318i,32850,100,1499,1475,5.1,4,4
+Subaru,BRZ 2.0i,32400,147,1998,1243,7.8,2,4
+Skoda,Octavia Scout 1.8 TSI,32110,132,1798,1522,6.8,5,4
+Volvo,V60 T2,32100,90,1498,1680,5.9,5,4
+Mercedes,C 160,31868,95,1595,1395,5.2,4,4
+Audi,A4 1.4 TFSI,31850,110,1395,1395,5.2,4,4
+Skoda,Octavia Combi RS,31590,169,1984,1442,6.5,5,4
+Hyundai,Santa Fe 2.4 GDI,31190,138,2359,1708,9.4,5,4
+Skoda,Octavia RS,30890,169,1984,1420,6.5,5,4
+Peugeot,508 SW THP 165 STOP&START,30850,121,1598,1495,5.8,5,4
+Renault,Talisman Grandtour Energy TCe 150,30800,110,1618,1565,5.8,5,4
+Volvo,S60 T2,30500,90,1498,1632,5.8,4,4
+SEAT,Alhambra 1.4 TSI Start&Stop,30435,110,1395,1703,6.4,5,4
+Ford,S-MAX 1.5 EcoBoost Start/Stopp,30400,118,1498,1645,6.5,5,4
+Subaru,Levorg 1.6 Turbo,29990,125,1600,1537,6.9,5,4
+Toyota,GT86 2.0,29990,147,1998,1305,7.8,2,4
+VW,Tiguan Allspace 1.4 TSI ACT,29975,110,1395,1570,6.1,5,4
+Peugeot,508 THP 165 STOP&START,29800,121,1598,1475,5.8,4,4
+Renault,Talisman Energy TCe 150,29800,110,1618,1505,5.6,4,4
+Toyota,RAV4 2.0,27990,112,1987,1565,6.7,5,4
+VW,Passat Variant 1.4 TSI BMT,27875,92,1395,1394,5.3,5,4
+Opel,Cascada 1.4 Turbo,27545,88,1364,1701,6.7,2,4
+Ford,Mondeo Turnier 1.0 EcoBoost,26990,92,998,1476,5.3,5,4
+VW,Passat 1.4 TSI BMT,26800,92,1395,1367,5.3,4,4
+Opel,Insignia Sports Tourer 1.5 DI Turbo Start&Stop,26730,103,1490,1487,6,5,4
+Skoda,Kodiaq 1.4 TSI,26150,92,1395,1502,6,5,4
+Ford,Mondeo 1.0 EcoBoost,25990,92,998,1455,5.2,5,4
+KIA,Optima Sportswagon 2.0,25990,120,1999,1550,7.6,5,4
+Subaru,Forester 2.0X,25900,110,1995,1478,6.9,5,4
+Mazda,6 SKYACTIV-G 145 i-ELOOP,25890,107,1998,1375,5.5,4,4
+Mazda,6 Kombi SKYACTIV-G 145 i-ELOOP,25890,107,1998,1380,5.6,5,4
+Toyota,Avensis Touring Sports 1.6,25740,97,1598,1460,6.2,5,4
+Opel,Insignia Grand Sport 1.5 DI Turbo Start&Stop,25630,103,1490,1441,5.9,5,4
+Hyundai,i40 Kombi 1.6 GDI blue,25490,99,1591,1503,6.1,5,4
+Nissan,X-Trail 1.6 DIG-T,25440,120,1618,1505,6.2,5,4
+KIA,Optima 2.0,25090,120,1999,1530,7.4,4,4
+Nissan,X-Trail 1.6 DIG-T,24990,120,1618,1505,6.2,5,4
+Peugeot,5008 1.2 PureTech 130,24900,96,1199,1385,5.1,5,4
+Toyota,Avensis 1.6,24740,97,1598,1430,6.1,4,4
+Honda,CR-V 2.0,23990,114,1997,1531,7.2,5,4
+Mitsubishi,Outlander 2.0 ClearTec,21990,110,1998,1497,6.7,5,4
+Nissan,Evalia 16V 110,20690,81,1598,1386,7.3,5,4
+Nissan,NV200 Kombi 16V 110,19921,81,1598,1351,7.3,5,4
+Skoda,Octavia Combi 1.2 TSI,18150,63,1197,1247,4.8,5,4
+Skoda,Octavia 1.2 TSI,17450,63,1197,1225,4.8,5,4
+Nissan,GT-R Nismo,184950,441,3799,1800,11.8,3,5
+Jaguar,F-Type SVR Cabriolet 5.0 V8 Kompressor,146400,423,5000,1720,11.3,2,5
+Jaguar,F-Type SVR Coupee 5.0 V8 Kompressor,139400,423,5000,1705,11.3,3,5
+Porsche,Cayenne Turbo,138850,404,3996,2250,11.9,5,5
+Porsche,Cayenne Turbo,132781,382,4806,2260,11.2,5,5
+BMW,X6 M,124200,423,4395,2265,11.1,5,5
+Mercedes,CLS 63 AMG Shooting Brake,122630,410,5461,2025,10.6,5,5
+Audi,RS7 performance cod Sportback,122200,445,3993,2005,9.5,5,5
+BMW,X5 M,120700,423,4395,2350,11.1,5,5
+BMW,M5,117900,441,4395,1930,10.5,4,5
+Mercedes,CLS 63 AMG Coupee,116918,410,5461,1870,9.9,4,5
+BMW Alpina,B5 Bi-Turbo Touring,115300,447,4395,2120,10.4,5,5
+Audi,RS6 cod Avant,112000,412,3993,2025,9.8,5,5
+BMW Alpina,B5 Bi-Turbo,112000,447,4395,2015,10.3,4,5
+Porsche,Cayenne GTS,102555,324,3604,2185,9.8,5,5
+Lexus,GS F,100500,351,4969,1865,11.2,4,5
+Nissan,GT-R,99900,419,3799,1827,11.8,3,5
+Cadillac,CTS-V,98900,477,6162,1925,13,4,5
+Dodge,Charger SRT 392,85900,362,6417,2000,15.5,4,5
+Audi,S7 cod Sportback,84600,331,3993,2030,9.3,5,5
+Dodge,Challenger SRT 392,82900,362,6417,2000,15.5,2,5
+Audi,S6 cod Avant,80150,331,3993,2035,9.4,5,5
+Mercedes,E 43 AMG T-Modell,78177,295,2996,1930,8.6,5,5
+Porsche,718 Boxster GTS,78160,269,2497,1450,9,2,5
+Audi,S6 cod,77650,331,3993,1970,9.2,4,5
+Mercedes,GLE Coupee 43 AMG,77469,270,2996,2240,8.9,5,5
+Porsche,718 Cayman GTS,76137,269,2497,1450,9,2,5
+Maserati,Levante,76000,257,2979,2109,10.7,4,5
+Mercedes,E 43 AMG,75387,295,2996,1840,8.2,4,5
+Porsche,Cayenne,74828,250,2995,1985,9,5,5
+BMW,X6 xDrive35i,72000,225,2979,2100,8.5,5,5
+Mercedes,GLE 43 AMG,70746,270,2996,2180,8.6,5,5
+Maserati,Ghibli,70250,257,2979,1810,8.9,4,5
+Maserati,Ghibli,69200,243,2979,1810,8.9,4,5
+Mercedes,GLE Coupee 400,68306,245,2996,2180,8.7,5,5
+BMW,X5 xDrive35i,66400,225,2979,2105,8.5,5,5
+Jaguar,F-Type Cabriolet P300,66200,221,1997,1545,7.2,2,5
+Mercedes,CLS 400 Shooting Brake,65212,245,3498,1845,7.3,5,5
+Mercedes,CLS 400 Coupee,63427,245,3498,1775,7.4,4,5
+BMW,630i Gran Turismo,62300,190,1998,1720,6.2,5,5
+Dodge,RAM 1500 Quad Cab 5.7 V8,61900,295,5700,2556,12.8,4,5
+Mercedes,GLE 400,61583,245,2996,2130,8.5,5,5
+Infiniti,Q70 3.7,60750,235,3696,1826,10.8,4,5
+Volvo,XC90 T5,59850,184,1969,2112,7.8,5,5
+Jaguar,F-Type Coupee P300,59200,221,1997,1525,7.2,3,5
+Volvo,V90 Cross Country T5,57800,184,1969,1937,7.3,5,5
+Porsche,718.,54717,220,1988,1410,7.4,2,5
+Land Rover,Discovery Si4,54700,221,1997,2093,9.4,5,5
+Mercedes,E 200 Cabriolet,54228,135,1991,1755,6.2,3,5
+Infiniti,QX70 3.7,53800,235,3696,2012,12.1,5,5
+Porsche,718.,52694,220,1988,1410,7.4,2,5
+Jeep,Grand Cherokee 3.6 V6,51900,213,3604,2266,10,5,5
+Jaguar,XF Sportbrake 25t,51060,184,1997,1760,6.8,5,5
+Lexus,RX 200t,49900,175,1998,1885,7.8,5,5
+Cadillac,XT5 3.6 V6,49300,231,3649,1954,10,5,5
+BMW,520i Touring,49100,135,1998,1705,5.8,5,5
+Mercedes,E 200 T-Modell,48903,135,1991,1705,6.2,5,5
+Chevrolet,Camaro Cabriolet 2.0 Turbo,48000,202,1998,1659,8.1,2,5
+BMW,520i,46600,135,1998,1605,5.4,4,5
+Mercedes,E 200 Coupee,46494,135,1991,1645,6.5,3,5
+Cadillac,CTS 2.0 Turbo,45350,203,1998,1659,7.8,4,5
+Audi,A6 Avant 1.8 TFSI ultra,45200,140,1798,1710,5.9,5,5
+Jaguar,XF 20t,45060,147,1997,1635,6.8,4,5
+Volvo,V90 T4,44900,140,1969,1851,6.9,5,5
+VW,T6 California 2.0 TSI BMT,44833,110,1984,2264,9.5,4,5
+Ford,Mustang Convertible 2.3 EcoBoost,43500,213,2261,1715,9.1,2,5
+Volvo,S90 T4,43450,140,1969,1800,6.7,4,5
+Mercedes,E 200,43019,135,1991,1575,6.1,4,5
+Audi,A6 1.8 TFSI ultra,42700,140,1798,1645,5.7,4,5
+Ford,Mustang Convertible 2.3 EcoBoost,42500,233,2261,1715,8.2,2,5
+Chevrolet,Camaro Coupee 2.0 Turbo,40400,202,1998,1539,8,2,5
+Ford,Mustang Fastback 2.3 EcoBoost,39000,213,2261,1655,9,2,5
+VW,T6 Caravelle 2.0 TSI BMT,38645,110,1984,1862,9.1,4,5
+Ford,Mustang Fastback 2.3 EcoBoost,38000,233,2261,1655,8,2,5
+VW,T6 Multivan 2.0 TSI BMT,36902,110,1984,2007,9.2,4,5
+VW,Arteon 1.5 TSI ACT,35325,110,1498,1504,5.1,5,5
+VW,T6 Transporter Kombi 2.0 TSI BMT Normaldach,33832,110,1984,1862,9.1,4,5
+Skoda,Superb Combi 1.4 TSI,26750,92,1395,1395,5.6,5,5
+Skoda,Superb 1.4 TSI,25750,92,1395,1375,5.6,5,5
+Mercedes,Maybach G 650,749700,463,5980,2580,17,5,6
+Ford,GT,500000,475,3497,1385,14.9,2,6
+Rolls-Royce,Phantom 6.8 V12,446250,420,6749,2560,13.9,4,6
+Lamborghini,Aventador S Roadster LP740-4,373262,544,6498,1625,16.9,2,6
+Mercedes,Maybach S 650 Cabriolet,357000,463,5980,2115,12,2,6
+Lamborghini,Aventador S LP740-4,335055,544,6498,1575,16.9,2,6
+Rolls-Royce,Dawn 6.6 V12,329630,420,6592,2560,14.2,2,6
+Bentley,Mulsanne,297191,377,6752,2685,15,4,6
+Bentley,Continental Supersports Convertible,291253,522,5998,2455,15.9,2,6
+Rolls-Royce,Wraith 6.6 V12,285898,465,6592,2435,14.3,2,6
+Porsche,911 GT2 RS,285220,515,3800,1545,11.8,2,6
+Ferrari,812.,282934,588,6496,1630,14.9,2,6
+Rolls-Royce,Ghost 6.6 V12,277657,420,6592,2435,14.3,4,6
+Aston Martin,Vanquish Volante,268995,424,5935,1919,12.8,3,6
+Bentley,Continental Supersports,264775,522,5998,2280,15.7,2,6
+Mercedes,S 65 AMG Cabriolet,257457,463,5980,2255,12,2,6
+Aston Martin,Vanquish,253995,424,5935,1814,12.8,3,6
+McLaren,720S,247350,527,3994,1322,10.7,2,6
+Ferrari,F488 Spider,236750,493,3902,1525,11.4,2,6
+Mercedes,G 500 4x4,231693,310,3982,3021,13.8,5,6
+Ferrari,GTC4Lusso T,226246,449,3855,1870,11.6,2,6
+Ferrari,F488 GTB,212653,493,3902,1475,11.4,2,6
+McLaren,570S Spider,208975,419,3799,1573,10.7,2,6
+Bentley,Bentayga W12,208488,447,5950,2440,12.8,5,6
+Lamborghini,Urus,204000,478,3996,2200,12.7,5,6
+Aston Martin,DB11 Volante V8,199000,375,3982,1870,9.9,3,6
+Bentley,Continental GT W12,198492,467,5950,2244,12.2,2,6
+Lamborghini,Huracn Spyder LP580-2,196350,426,5204,1509,12.1,2,6
+McLaren,570GT,195350,419,3799,1515,10.7,2,6
+Aston Martin,Rapide S,193995,411,5935,2065,12.9,5,6
+Aston Martin,V12 Vantage S Roadster,192741,421,5935,1745,14.7,3,6
+Bentley,Continental GT Convertible V8,192066,373,3993,2470,10.9,2,6
+Porsche,911 Turbo Cabriolet,190020,397,3800,1740,9.3,2,6
+Mercedes,S 63 AMG Cabriolet,190013,430,5461,2185,10.4,2,6
+Porsche,911.,189544,368,3996,1445,13.3,2,6
+McLaren,570S,185400,419,3799,1515,10.7,2,6
+Ferrari,California T,184689,412,3855,1730,10.7,2,6
+Aston Martin,DB11 V8,184000,375,3982,1760,9.9,3,6
+Bentley,Flying Spur V8,183855,373,3993,2417,10.9,4,6
+Donkervoort,D8 GTO-RS,182070,284,2480,695,8,2,6
+Aston Martin,V12 Vantage S,179950,421,5935,1680,17,3,6
+Lamborghini,Huracn LP580-2,178500,426,5204,1389,11.9,2,6
+Mercedes,S 63 AMG Coupee,177310,450,3982,2080,9.3,2,6
+Porsche,911 Turbo Coupee,176930,397,3800,1670,9.1,2,6
+Mercedes,S 63 AMG Coupee,175436,430,5461,2070,10.1,2,6
+Bentley,Continental GT V8,174573,373,3993,2370,10.6,2,6
+McLaren,540C,163200,397,3799,1446,10.7,2,6
+Mercedes,SL 63 AMG,161959,430,5461,1845,9.8,2,6
+Mercedes,S 63 AMG,160293,450,3982,2070,8.9,4,6
+Porsche,Panamera Sport Turismo Turbo,158604,404,3996,2110,9.4,5,6
+Porsche,Panamera Turbo,155748,404,3996,2070,9.3,5,6
+Audi,R8 Spyder 5.2 FSI V10,153000,397,5204,1755,12.6,2,6
+Porsche,911.,152416,368,3996,1488,12.9,2,6
+BMW Alpina,B7 Bi-Turbo,149400,447,4395,2110,10.4,4,6
+Porsche,911.,146228,331,2981,1660,9.7,2,6
+Mercedes,G 63 AMG,145359,420,5461,2550,13.8,5,6
+Maserati,GranCabrio Sport,144320,338,4691,1980,14.5,2,6
+Jaguar,XJR575,143900,423,5000,1875,11.1,4,6
+Mercedes,S 500 Cabriolet,140545,335,4663,2115,8.5,2,6
+Audi,R8 Coupee 5.2 FSI V10,140000,397,5204,1665,12.4,2,6
+Mercedes,Maybach S 560,139700,345,3982,2240,8.8,4,6
+Porsche,911 Carrera Cabriolet,138850,331,2981,1595,9.4,2,6
+Donkervoort,D8 GTO-S,138040,254,2480,740,8,2,6
+BMW,M6 Cabrio,137200,412,4395,2055,10.3,2,6
+BMW Alpina,B6 Bi-Turbo Cabriolet,137200,441,4395,2095,9.6,2,6
+BMW Alpina,B6 Bi-Turbo Gran Coupee,135800,441,4395,2030,10.4,4,6
+Aston Martin,V8 Vantage S Roadster,135520,321,4735,1710,13.8,2,6
+Mercedes,GLS 63 AMG,135482,430,5461,2580,12.3,5,6
+BMW,M6 Gran Coupee,134500,412,4395,1950,9.9,4,6
+Land Rover,Range Rover Sport SVR,132200,423,5000,2310,12.8,5,6
+BMW,M6 Coupee,129600,412,4395,1925,9.9,2,6
+Land Rover,Range Rover Sport SVR,129600,405,5000,2330,12.8,5,6
+BMW Alpina,B6 Bi-Turbo Coupee,129200,441,4395,1940,9.4,2,6
+Mercedes,AMG GT Roadster,129180,350,3982,1670,9.4,2,6
+Maserati,GranTurismo Sport,129020,338,4691,1880,14.3,2,6
+Aston Martin,V8 Vantage AMR,126995,320,4735,1610,13.8,3,6
+Porsche,911 Carrera Coupee,125760,331,2981,1525,9.4,2,6
+Chevrolet,Corvette Z06 Cabriolet,124700,485,6162,1734,12.7,2,6
+Land Rover,Range Rover 5.0 V8 SC,121800,375,5000,2336,12.8,5,6
+Chevrolet,Corvette Z06 Coupee,119700,485,6162,1734,12.7,3,6
+Audi,S8 cod,118500,382,3993,2050,9.4,4,6
+Porsche,911.,118382,272,2981,1645,8.9,2,6
+Mercedes,AMG GT Coupee,117280,350,3982,1615,9.3,2,6
+Porsche,911 Carrera Cabriolet,111004,272,2981,1575,8.5,2,6
+Porsche,911 Carrera T Coupee,107553,272,2981,1500,9.5,2,6
+Mercedes,G 500,106701,310,3982,2595,12.3,5,6
+Audi,A8 4.0 TFSI cod,104400,320,3993,1955,8.9,4,6
+Mercedes,S 450 Coupee,101656,270,2996,2050,8.9,2,6
+Chevrolet,Corvette Grand Sport Cabriolet 6.2 V8,100900,343,6162,1614,12.3,2,6
+Mercedes,S 400 Coupee,100561,270,2996,2035,8.3,2,6
+Cadillac,Escalade 6.2 V8,99900,313,6162,2710,12.6,5,6
+Mercedes,SL 400,99341,270,2996,1735,7.7,2,6
+Porsche,911 Carrera Coupee,97914,272,2981,1505,8.3,2,6
+Porsche,Panamera Sport Turismo 4,97557,243,2995,1955,7.8,5,6
+Maserati,Quattroporte,97430,257,2979,1860,9.1,4,6
+Chevrolet,Corvette Grand Sport Coupe 6.2 V8,95900,343,6162,1588,12.3,3,6
+Land Rover,Range Rover Sport 5.0 V8 SC,94900,375,5000,2306,12.8,5,6
+Jaguar,XJ 3.0 V6 Kompressor,93800,250,2995,1865,9.8,4,6
+BMW,740i,93000,240,2998,1800,6.8,4,6
+Mercedes,S 450,92255,270,2987,1995,6.6,4,6
+Porsche,Panamera,90655,243,2995,1890,7.5,5,6
+BMW,640i Cabrio,90600,235,2979,1895,7.7,2,6
+Chevrolet,Corvette Stingray Cabriolet 6.2 V8,85400,343,6162,1664,12.3,2,6
+BMW,640i Gran Coupe,83900,235,2979,1825,7.6,4,6
+BMW,640i Coupe,81900,235,2979,1760,7.6,2,6
+Chevrolet,Corvette Stingray Coupe 6.2 V8,80400,343,6162,1614,12.3,3,6
+Mercedes,GLS 400,77029,245,2996,2435,8.9,5,6
+Cadillac,CT6 3.0 V6,73500,307,2997,1879,9.6,4,6
+Land Rover,Range Rover Sport 2.0 Si4,65600,221,1997,2083,9.2,5,6
+Land Rover,Range Rover Evoque Coupe Si4,62200,213,1998,1833,7.6,3,3
+BMW,M2 Coupe,59500,272,2979,1570,8.5,2,3
+Mercedes,CLA 45 AMG Shooting Brake,57804,280,1991,1615,6.9,5,3
+Mercedes,CLA 45 AMG,57209,280,1991,1585,6.9,4,3
+Mercedes,GLA 45 AMG,56852,280,1991,1585,7.4,5,3
+Audi,RS3 Limousine,55900,294,2480,1590,8.3,4,3
+Land Rover,Range Rover Evoque Cabriolet Si4,55300,177,1998,2013,8.2,2,3
+Audi,RS3 Sportback,54600,294,2480,1585,8.3,5,3
+Mercedes,A 45 AMG,51527,280,1991,1555,6.9,5,3
+Audi,S3 Cabriolet,51150,228,1984,1710,6.7,2,3
+VW,Golf R Variant,45350,228,1984,1593,7.1,5,3
+Subaru,Impreza WRX STi 2.5,44500,221,2457,1527,10.9,4,3
+Land Rover,Range Rover Evoque Si4,43850,177,1998,1752,8.2,5,3
+Audi,S3 Limousine,43250,228,1984,1505,7,4,3
+Audi,S3 Sportback,42350,228,1984,1505,7,5,3
+Jaguar,E-Pace P250,42350,183,1998,1832,7.7,5,3
+Subaru,Impreza WRX STi 2.5,41550,221,2457,1575,10.4,4,3
+Audi,S3,41450,228,1984,1480,7,3,3
+VW,Golf R,41175,228,1984,1483,7.8,3,3
+Ford,Focus RS,40675,257,2261,1560,7.7,5,3
+Infiniti,QX30 2.0t,40150,155,1991,1542,6.7,5,3
+Lotus,Elise,39900,100,1598,876,6.3,2,3
+MINI,John Cooper Works Countryman,39500,170,1998,1615,7.4,5,3
+BMW,X2 sDrive20i,39200,141,1998,1535,5.5,5,3
+MINI,John Cooper Works Clubman,36800,170,1998,1550,7.4,5,3
+Opel,Astra OPC,36360,206,1998,1550,7.8,3,3
+Honda,Civic Type R,36050,235,1996,1380,7.7,5,3
+SEAT,Leon ST Cupra 300,35930,221,1984,1440,7,5,3
+Peugeot,308.,35350,200,1598,1280,6,5,3
+SEAT,Leon Cupra 300,34730,221,1984,1395,6.9,5,3
+SEAT,Leon SC Cupra 300,34340,221,1984,1375,6.9,3,3
+VW,Touran 1.2 TSI BMT,34300,81,1197,1436,5.5,5,3
+BMW,218i Cabrio,34200,100,1499,1575,5.5,2,3
+VW,Golf Alltrack 1.8 TSI BMT,34125,132,1798,1537,6.7,5,3
+Mazda,CX-5 SKYACTIV-G 160,32190,118,1998,1495,6.8,5,3
+BMW,X1 sDrive18i,31700,103,1499,1475,5.5,5,3
+Audi,A3 Cabriolet 1.4 TFSI,31450,85,1395,1430,5.3,2,3
+Volvo,XC40 T3,31350,114,1498,1725,6.8,5,3
+Ford,Focus Turnier ST 2.0 EcoBoost Start/Stopp,30550,184,1999,1461,6.8,5,3
+VW,Golf GTI,30425,169,1984,1364,6.4,3,3
+Mercedes,CLA 180 Shooting Brake,30274,90,1595,1430,5.5,5,3
+Mazda,MX-5 RF SKYACTIV-G 160,29890,118,1998,1120,6.9,2,3
+BMW,218i Coupe,29750,100,1499,1420,5.1,2,3
+Hyundai,i30 N,29700,184,1998,1475,7,5,3
+Mercedes,CLA 180,29679,90,1595,1395,5.4,4,3
+Ford,Focus ST 2.0 EcoBoost Start/Stopp,29600,184,1999,1437,6.8,5,3
+Mercedes,GLA 180,28941,90,1595,1395,5.7,5,3
+Audi,Q3 1.4 TFSI,28700,92,1395,1460,5.8,5,3
+BMW,216i Gran Tourer,28600,75,1499,1475,5.3,5,3
+Volvo,V40 Cross Country T3,28280,112,1969,1569,5.6,5,3
+BMW,216i Active Tourer,27350,75,1499,1415,5.4,5,3
+VW,Tiguan 1.4 TSI,26975,92,1395,1490,6.1,5,3
+Mercedes,B 160,26638,75,1595,1395,5.5,5,3
+Audi,A3 Limousine 1.0 TFSI,25550,85,999,1260,4.4,4,3
+Honda,Civic Limousine 1.5 Turbo,25520,134,1498,1321,5.7,4,3
+DS Automobiles,DS 4 Crossback PureTech 130 Stop&Start,25490,96,1199,1330,4.9,5,3
+KIA,pro_ceed GT,25390,150,1591,1395,7.4,3,3
+KIA,ceed GT,25390,150,1591,1382,7.4,5,3
+Fiat,124 Spider 1.4 Multiair Turbo,24990,103,1368,1125,6.4,2,3
+Fiat,124 Spider 1.4 Multiair Turbo,24990,103,1368,1125,6.4,2,3
+Hyundai,Veloster 1.6 Turbo,24990,137,1591,1333,6.9,4,3
+SEAT,Leon X-PERIENCE 1.4 TSI Start&Stop,24950,92,1395,1263,5.3,5,3
+VW,Scirocco 1.4 TSI BMT,24950,92,1395,1280,5.4,3,3
+Jeep,Compass 1.4 Multiair 140,24900,103,1368,1505,6.2,5,3
+Volvo,V40 T2,24850,90,1969,1546,5.6,5,3
+VW,Caddy Alltrack 1.2 TSI BMT,24782,62,1197,1350,6.1,5,3
+BMW,116i,24700,80,1499,1375,5.3,3,3
+Mercedes,A 160,24681,75,1595,1370,5.4,5,3
+Audi,A3 Sportback 1.0 TFSI,24650,85,999,1255,4.5,5,3
+Honda,Civic Tourer 1.8,24590,104,1798,1355,6.2,5,3
+Skoda,Karoq 1.0 TSI,24290,85,999,1340,5.1,5,3
+Infiniti,Q30 1.6t,24200,90,1595,1407,5.7,5,3
+MINI,One Countryman,24000,75,1499,1440,5.5,5,3
+DS Automobiles,DS 4 PureTech 130 Stop&Start,23990,96,1199,1330,4.9,5,3
+KIA,pro_ceed 1.0 T-GDI 120 ISG,23990,88,998,1271,4.9,3,3
+Opel,Zafira 1.4 Turbo,23950,88,1364,1628,6.8,5,3
+Audi,A3 1.0 TFSI,23750,85,999,1225,4.5,3,3
+Opel,Grandland X 1.2 DI Turbo Start&Stop,23700,96,1199,1350,5.4,5,3
+Renault,Grand Sconic ENERGY TCe 115,23690,85,1197,1505,6.1,5,3
+VW,Beetle Cabriolet 1.2 TSI BMT,23450,77,1197,1395,5.4,2,3
+Audi,Q2 1.0 TFSI ultra,23400,85,999,1280,5.1,5,3
+Ford,Kuga 1.5 EcoBoost Start/Stopp,23300,88,1498,1579,6.3,5,3
+Peugeot,3008 1.2 PureTech 130,23250,96,1199,1325,5.1,5,3
+Mazda,MX-5 SKYACTIV-G 131,22990,96,1496,1050,6,2,3
+Subaru,XV 1.6i,22980,84,1600,1408,6.4,5,3
+VW,Caddy Beach 1.2 TSI BMT,22943,62,1197,1350,6.1,5,3
+MINI,One Clubman,22850,75,1499,1375,5.1,5,3
+Hyundai,Tucson 1.6 GDI blue    ,22740,97,1591,1454,6.3,5,3
+Hyundai,i30 Fastback 1.0 T-GDI,22200,88,  998,1460,5.2,5,3
+Toyota,C-HR 1.2 T,21990,85,1197,1320,5.9,5,3
+Subaru,Impreza 1.6i,21980,84,1600,1359,6.2,5,3
+VW,Golf Variant 1.0 TSI BMT,21850,81,999,1295,4.9,5,3
+Mazda,3 SKYACTIV-G 120,21790,88,1998,1280,5.1,4,3
+Toyota,Verso 1.6,21765,97,1598,1505,6.8,5,3
+Alfa Romeo,Giulietta 1.4 TB 16V,21500,88,1368,1355,6.2,5,3
+Opel,Astra GTC 1.4 Turbo,21360,88,1364,1437,6.3,3,3
+Toyota,Corolla 1.6,21220,97,1598,1270,6,4,3
+Citroen,Grand C4 Picasso PureTech 130 Stop&Start,20990,96,1199,1370,5,5,3
+Ford,Grand C-MAX 1.0 EcoBoost Start/Stopp,20850,74,998,1493,5.2,5,3
+Nissan,Qashqai 1.2 DIG-T,20490,85,1197,1350,5.6,5,3
+VW,Golf Sportsvan 1.0 TSI,20475,63,999,1335,4.9,5,3
+VW,Golf Sportsvan 1.2 TSI BMT,20475,63,1197,1320,5,5,3
+VW,T-Roc 1.0 TSI,20390,85,999,1270,5.1,5,3
+Ford,Tourneo Connect 1.0 EcoBoost Start/Stopp,20249,74,998,1474,5.6,5,3
+Opel,Astra 1.6,20220,85,1598,1405,6.8,4,3
+Honda,Civic 1.0 Turbo,19990,95,988,1229,4.8,5,3
+KIA,Carens 1.6 GDI,19990,99,1591,1458,6.5,5,3
+KIA,Sportage 1.6 GDI,19990,97,1591,1397,6.7,5,3
+Mercedes,Citan Tourer lang 112,19990,84,1192,1440,6.2,5,3
+Renault,Sconic ENERGY TCe 115,19990,85,1197,1503,5.8,5,3
+Renault,Kadjar ENERGY TCe 130,19990,96,1197,1381,5.7,5,3
+SEAT,Ateca 1.0 TSI Ecomotive,19990,85,999,1280,5.2,5,3
+SsangYong,Korando 2.0 e-XGi 200,19990,110,1998,1612,7.5,5,3
+Subaru,XV 1.6i,19990,84,1600,1370,6.5,5,3
+Peugeot,308 SW 1.2 PureTech 110,19800,81,1199,1265,4.7,5,3
+Suzuki,SX4 S-Cross 1.0 Boosterjet,19790,82,998,1165,5,5,3
+Citroen,C4 Picasso PureTech 110 Stop&Start,18990,81,1199,1355,5.1,5,3
+Mitsubishi,ASX 1.6 ClearTec,18990,86,1590,1335,5.7,5,3
+Ford,Focus 1.0 EcoBoost Start/Stopp,18700,74,998,1303,4.8,4,3
+Peugeot,308 1.2 PureTech 110,18700,81,1199,1155,4.6,5,3
+Subaru,Impreza 1.6i,18600,84,1600,1380,6.2,5,3
+Opel,Astra Sports Tourer 1.4,18550,74,1399,1273,5.7,5,3
+VW,Caddy 1.2 TSI BMT,18528,62,1197,1350,6.1,4,3
+Mitsubishi,Lancer 1.6 ClearTec,18490,86,1590,1305,5.5,4,3
+Mitsubishi,Lancer Sportback 1.6 ClearTec,18490,86,1590,1345,5.5,5,3
+Renault,Megane Grandtour ENERGY TCe 100,18490,74,1197,1366,5.4,5,3
+Hyundai,i30 Kombi 1.4,18450,74,1368,1285,5.6,5,3
+VW,Caddy Kombi 1.2 TSI BMT,18445,62,1197,1350,6.1,4,3
+Nissan,Pulsar 1.2 DIG-T,18270,85,1197,1265,5,5,3
+Ford,C-MAX 1.6 Ti-VCT,18250,63,1596,1374,6.4,5,3
+Mazda,3 SKYACTIV-G 100,18190,74,1496,1260,5.1,5,3
+VW,Golf 1.0 TSI BMT,18075,63,999,1206,4.8,3,3
+Fiat,DoblKombi 1.4 16V,17990,70,1368,1370,7.4,5,3
+SEAT,Toledo 1.2 TSI,17990,66,1197,1156,4.7,5,3
+Citroen,Berlingo Kombi VTi 95,17850,72,1598,1395,6.4,4,3
+Peugeot,Partner Tepee VTi 98,17850,72,1598,1550,6.4,4,3
+Ford,Focus Turnier 1.6 Ti-VCT,17700,63,1596,1300,6,5,3
+Toyota,Auris Touring Sports 1.33,17690,73,1329,1250,5.6,5,3
+Opel,Astra 1.4,17550,74,1399,1244,5.5,5,3
+Renault,Megane ENERGY TCe 100,17490,74,1197,1280,5.4,5,3
+SsangYong,XLV 1.6 e-XGi 160,17490,94,1597,1390,7.1,5,3
+Hyundai,i30 1.4,17450,74,1368,1244,5.4,5,3
+Citroen,C4 PureTech 110,17240,81,1199,1275,4.8,5,3
+Renault,Kangoo ENERGY TCe 115,17150,84,1197,1395,6.2,4,3
+SEAT,Leon ST 1.2 TSI,16640,63,1197,1233,5.1,5,3
+Toyota,Auris 1.33,16490,73,1329,1225,5.5,5,3
+Fiat,Tipo Kombi 1.4 16V,16450,70,1368,1280,5.7,5,3
+Ford,Focus 1.6 Ti-VCT,16450,63,1596,1264,5.9,5,3
+KIA,ceed Sportswagon 1.4,16190,73,1368,1279,6,5,3
+Skoda,Rapid 1.0 TSI,15890,70,999,1170,4.4,5,3
+Skoda,Rapid Spaceback 1.0 TSI,15790,70,999,1165,4.4,5,3
+SEAT,Leon 1.2 TSI,15490,63,1197,1188,5.1,5,3
+Fiat,Tipo 1.4 16V,15450,70,1368,1270,5.7,5,3
+Opel,Combo Combi 1.4,15110,70,1364,1445,7.4,5,3
+SEAT,Leon SC 1.2 TSI,14990,63,1197,1168,5.1,3,3
+KIA,ceed 1.4,14490,73,1368,1254,6,5,3
+Fiat,Tipo 1.4 16V,14450,70,1368,1225,5.7,4,3
+Dacia,Lodgy Stepway TCe 115 Start&Stop,14200,85,1197,1278,5.6,5,3
+Dacia,Dokker Stepway TCe 115 Start&Stop,13600,85,1197,1280,5.7,5,3
+Citroen,C-Elysee PureTech 82,12990,60,1199,1055,4.8,4,3
+Lada,Vesta 1.6 16V,12740,78,1596,1250,6.1,4,3
+Dacia,Logan MCV Stepway TCe 90 Start&Stop,12200,66,898,1165,5.1,5,3
+Lada,Urban 1.7,11990,61,1690,1285,9.5,3,3
+Dacia,Duster SCe 115,11290,84,1598,1262,6.6,5,3
+Lada,Taiga 1.7,10790,61,1690,1285,9.5,3,3
+Dacia,Duster SCe 115 Start&Stop,10690,84,1598,1165,6.4,5,3
+Dacia,Lodgy SCe 100 Start&Stop,9990,75,1598,1211,6.1,5,3
+Dacia,Dokker SCe 100 Start&Stop,8990,75,1598,1239,6.2,4,3
+Lada,Granta 1.6 8V,8500,64,1596,1080,6.6,5,3
+Dacia,Logan MCV SCe 75,7990,54,998,1091,5.4,5,3
+Lada,Granta 1.6 8V,7260,64,1596,1080,6.6,4,3
\ No newline at end of file
-- 
GitLab