Files
DSAI/05_ML/code/supervised_2_knn.ipynb
2025-05-01 19:31:40 +02:00

1476 lines
185 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div style=\"\n",
" border: 2px solid #4CAF50; \n",
" padding: 15px; \n",
" background-color: #f4f4f4; \n",
" border-radius: 10px; \n",
" align-items: center;\">\n",
"\n",
"<h1 style=\"margin: 0; color: #4CAF50;\">Supervised ML Modelle: K-Nearest-Neighbour</h1>\n",
"<h2 style=\"margin: 5px 0; color: #555;\">DSAI</h2>\n",
"<h3 style=\"margin: 5px 0; color: #555;\">Jakob Eggl</h3>\n",
"\n",
"<div style=\"flex-shrink: 0;\">\n",
" <img src=\"https://www.htl-grieskirchen.at/wp/wp-content/uploads/2022/11/logo_bildschirm-1024x503.png\" alt=\"Logo\" style=\"width: 250px; height: auto;\"/>\n",
"</div>\n",
"<p1> © 2024/25 Jakob Eggl. Nutzung oder Verbreitung nur mit ausdrücklicher Genehmigung des Autors.</p1>\n",
"</div>\n",
"<div style=\"flex: 1;\">\n",
"</div> "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Teile (adaptiert) von *AI Inside Seminar KI Mag. Otto Reichel*!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# k-Nearest Neighbour Klassifizierer"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Wir sehen uns nun den $k$-Nearest Neighbor *Klassifizierer* an! Dieser ist ein sehr einfacher und leicht verständlicher Machine Learning Algorithmus, welcher aber dennoch in vielen Fällen eine erstaunlich gute Performance liefert."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Der *kNN*-Klassifizierer $\\ldots$\n",
"* $\\ldots$ wird bei uns verwendet zur *Klassifizierung*\n",
"* $\\ldots$ wird durch sehr wenige **Hyperparameter** parametrisiert ($k$: Die Anazahl der Nachbarn; $d(x,y)$ Funktion zur Distanzmessung zwischen Datenpunkten $x$ und $y$.)\n",
"* $\\ldots$ zieht zur Klassifizierung die Labels der nächsten Nachbarn in Betracht "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Info:** Ein **Hyperparameter** ist ein Parameter, welcher am Anfang vom Benutzer (von uns) eingestellt wird und das Model bzw. ggf. den Lernvorgang parametrisiert."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Beschreibung des Algorithmus"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![KNN-Classifier_for_k=3](../resources/knn_classifier.png)\n",
"\n",
"(von https://mlarchive.com/machine-learning/k-nearest-neighbor-knn-explained/)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Die Beschreibung dieses Models wird nun anhand von einem Beispiel erklärt."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Ein Beispiel als Erklärung"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Wir gehen davon aus, dass ein Datensatz über **Hunde** und **Pferde** vorliegen, von denen jeweils **Größe** und **Gewicht** bekannt ist. An Hand dieser beiden Eingangsfeatures soll klassifiziert werden, ob es sich um einen Hund oder ein Pferd handelt. Trägt man die Features in ein Diagramm ein so könnte sich das folgende Bild ergeben."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![KNN_Hund_vs_Katze](../resources/knn_hund_vs_katze.png)\n",
"\n",
"(von AI Inside Seminar KI Mag. Otto Reichel)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Möchte man nun für einen neuen Datenpunkt $x=(a\\textrm{ [lbs]}, b\\textrm{ [ft]})$ feststellen, ob es sich um einen Hund oder ein Pferd handelt, kann man die $k$ nächsten Nachbarn betrachten. Gibt es unter diesen Nachbarn mehr Hunde, so wird der neue Datenpunkt als Hund klassifiziert, andernfalls als Pferd."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dabei wird folgendermaßen vorgegangen:\n",
"1) Man berechnet die Distanz von $x$ zu allen anderen gegebenen Datenpunkten\n",
"2) Man sortiert die Punkte nach zunehmender Distanz zu $x$\n",
"3) Man bestimmt unter den ersten $k$ der sortierten Punkte das am häufigsten auftretende Label. Dies ist nun auch das Label für den neuen Datenpunkt $x$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zusammenfassend kann man also für den **Lernvorgang** und die **Vorhersage** folgendes sagen:\n",
"\n",
"Der Lernprozess (Trainingsphase) für den kNN-Klassifizierer ist sehr einfach und beinhaltet nur indirekt \"Lernen\".\n",
"\n",
"Die Trainingsdaten $X$ (samt Label $y$) werden im Model effizient gespeichert. Bei der Prediction von einem neuen Datenpunkt können so die nächsten Nachbarn schnell gefunden werden. Dies wird auch *Lazy Learning* genannt.\n",
"\n",
"Wie wird eine Vorhersage (Prediction) gemacht?\n",
"\n",
"* Je nach gewählter Abstandfunktion wird *der Abstand* zu den Datenpunkten *berechnet*.\n",
"* Nun werden die Datenpunkte sortiert, sodass die Datenpunkte mit einem geringen Abstand am Anfang gereiht sind."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Die Wahl von $k$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![kNN_Choice_of_k_matters](../resources/knn_3_vs_7.png)\n",
"\n",
"(von https://ai.plainenglish.io/introduction-to-k-nearest-neighbors-knn-algorithm-e8617a448fa8)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Insgesamt ist die Wahl von $k$ frei wählbar. Es gibt aber trotzdem ein paar Dinge, die es zu beachten gibt!\n",
"\n",
"* Ein gerader Wert von $k$ könnte zu einem Gleichstand führen, in solchen Fällen wird entweder ein zufälliger Wert verwendet, oder nähere Nachbarn werden stärker gewichtet.\n",
"* Es kann aber auch bei ungeradem $k$ ein Gleichstand entstehen. Beispiel: Labels 0, 1, 2 für Katze, Hund, Pferd. Nun verwenden wir $k=3$ und erhalten möglicherweise jedes Label einmal.\n",
"* *Faustregel:* Beim ersten Durchlauf kann $k\\approx\\sqrt{\\vert X_{\\text{train}}\\vert}$ verwendet werden, wobei $\\vert X_{\\text{train}}\\vert$ die Anzahl der Datenpunkte im Trainingsset ist.\n",
"* Falls *viele Ausreißer* und möglicherweise *Fehler* in den Daten vorhanden sind, ist ein *größerer Wert* für $k$ vorteilhaft, da dies dann diese Punkte etwas ausgleicht, indem mehr \"normale\" Punkte in Betracht gezogen werden."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![kNN_Choice_k_underfitting_overfitting](../resources/knn_overfitting_underfitting.png)\n",
"\n",
"(von https://medium.com/@jwbtmf/classifying-customer-churn-using-k-nearest-neighbour-supervised-machine-learning-algorithm-3254441ec7be)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Welcher dieser Fälle beschreibt **overfitting** und welcher dieser Fälle beschreibt **underfitting**?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Die Wahl der Distanz Funktion"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Neben dem Wert $k$ als Anzahl der Nachbarn kann man auch entscheiden, welche Funktion als Distanzfunktion verwendet werden soll.\n",
"\n",
"Für numerische Features wird standardmäßig die **euklidische Distanz** $d(x,y)$ verwendet. Sie berechnet sich genauso wie der Betrag von einem Vektor. Für Daten mit $n$ Features, haben wir also\n",
"\\begin{equation*}\n",
" d(x,y) = \\sqrt{(x_1-y_1)^2 + (x_2-y_2)^2 + \\ldots + (x_n-y_n)^2}.\n",
"\\end{equation*}\n",
"Hier ist $y$ der neue Datenpunkt und $x$ steht für einen Datenpunkt in den (Trainings)daten!\n",
"\n",
"Je nach Anwendungsfall kann aber auch eine andere Distanzfunktion verwendet werden. So gibt es auch zum Beispiel noch die **Manhattan**-Distanz.\n",
"\n",
"Die Manhattan Distanz ist folgendermaßen definiert\n",
"\\begin{equation*}\n",
" d(x,y) = \\vert x_1-y_1 \\vert + \\vert x_2 - y_2 \\vert + \\ldots + \\vert x_n - y_n \\vert.\n",
"\\end{equation*}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Befinden sich in den Daten **kateogrische** (categorical) Features oder **ordinale** **Features**, so muss eine andere Distanzfunktion (zum Beispiel *Hamming* (Referat?)) verwendet werden, *oder* es werden die Daten zuvor mit einem Ordinalencoder oder einem OneHot-Encoder encodiert."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Normalisieren der Daten"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Da beim Berechnen der Distanz die Größenordnung einen riesen Einfluss hat, müssen wir vor der Verwendung eines kNN-Klassifizierers sicherstellen, dass die Daten einen vernünftigen Bereich haben (alle in etwa den selben Bereich).\n",
"\n",
"Warum ist das so?\n",
"\n",
"Wir können die Daten alle auf einen gleichen Bereich bringen, indem wir eine $z$-score Normalisierung machen.\n",
"\n",
"Zur Wiederholung, die $z$-score Normalisierung eines Features $X$ sieht folgendermaßen aus\n",
"\\begin{equation*}\n",
" z_i = \\frac{x_i-\\mu}{\\sigma},\n",
"\\end{equation*}\n",
"wobei $\\mu$ und $\\sigma$ der Mittelwert bzw. die Standardabweichung des Features $X$ sind. $z_i$ ist der standardisierte Wert vom ursprünglichen Wert $x_i$ und $i$ steht für den Index des Datenpunktes."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Wäre eine Min-Max Normalisierung auch möglich?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Vorteile und Nachteile von kNN"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Vorteile**:\n",
"* Sehr einfach\n",
"* Extrem gut nachvollziehbar\n",
"* Funktioniert in vielen Fällen sehr gut\n",
"* Nur wenige Parameter ($k$ und Distanzfunktion)\n",
"\n",
"**Nachteile**:\n",
"* Performance nimmt mit der Anzahl der Features ab (In hohen Dimensionen sind alle Punkte etwa gleich weit voneinander entfernt. Dieses Phänomen nennt man **Curse of Dimensionality**)\n",
"* Stark abhängig von gewählter Distanzfunktion und gewähltem $k$\n",
"* Ohne Normalisieren ($z$-Score Normalisierung) würden die einzelnen Features falsch (sprich stark unterschiedlich) gewichtet werden\n",
"* Wird bei großen Datasets sehr rechenintensiv und somit langsam"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Info:** Als Beispiel für den **Curse of Dimensionality** kann man sich folgendes vorstellen: \n",
"\n",
"Annahme du vergleichst die Attribute: Wohnadresse, Name des Vaters, Name der Mutter und Telefonnummer mit deinem Bruder/deiner Schwester. In diesem Fall seit du und dein/deine Bruder/Schwester sehr ähnlich. Bis auf Telefonnummer sind alle Attribute gleich und im Vergleich zu anderen Personen (zum Beispiel in der Klasse) seit ihr beide euch am nächsten. Nun erweitern wir die gegebenen Features pro Person mit den Features: \"Lieblingsfarbe, Alter, Schuhgröße, Ausbildung, Name, Einkommen, $\\ldots$ etc.\". Mit diesen Features sind plötzlich du und deine Schwester/dein Bruder nicht mehr wirklich ähnlich. Genauer gesagt gibt es jetzt genügend weitere Personen die gleich viele Attribute gleich/ähnlich haben."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tipps und Tricks"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Wir können bei nicht allzu großen Datasets auch mehrere $k$-Werte nacheinander probieren und dann den besten Wert verwenden\n",
"* Features müssen normalisiert werden ($z$-score normalisiert (=standardisiert))\n",
"* Dimension verringern bei schlechter Performance (eventuell mit Korrelationsmatrix bzw. offensichtlich unbrauchbare Features zur Klassifikation)\n",
"* Falls ein Label viel öfter vorkommt als ein anderes (unbalanciert), dann könnte man diese Nachbarn höher gewichten (kann in Python/Scikit-Learn einfach gemacht werden, indem ein zusätzlicher Wert übergeben wird.)\n",
"* Die $k$ nächsten Nachbarn können auch verwendet werden, um die fehlenden Werte zu ersetzen. Sprich wenn zum Beispiel das Feature \"Alter\" fehlt, dann können wir die $k$ nächsten Datenpunkte ansehen und schauen, wie das Alter bei diesen Punkte ist. Anschließend können wir zum Beispiel den Durschnitt bilden."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## kNN in Python"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.datasets import fetch_openml\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import StandardScaler, LabelEncoder\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.metrics import accuracy_score"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" id gender age hypertension heart_disease ever_married \\\n",
"0 9046 Male 67.0 0 1 Yes \n",
"1 51676 Female 61.0 0 0 Yes \n",
"2 31112 Male 80.0 0 1 Yes \n",
"3 60182 Female 49.0 0 0 Yes \n",
"4 1665 Female 79.0 1 0 Yes \n",
"... ... ... ... ... ... ... \n",
"5105 18234 Female 80.0 1 0 Yes \n",
"5106 44873 Female 81.0 0 0 Yes \n",
"5107 19723 Female 35.0 0 0 Yes \n",
"5108 37544 Male 51.0 0 0 Yes \n",
"5109 44679 Female 44.0 0 0 Yes \n",
"\n",
" work_type Residence_type avg_glucose_level bmi smoking_status \\\n",
"0 Private Urban 228.69 36.6 formerly smoked \n",
"1 Self-employed Rural 202.21 NaN never smoked \n",
"2 Private Rural 105.92 32.5 never smoked \n",
"3 Private Urban 171.23 34.4 smokes \n",
"4 Self-employed Rural 174.12 24.0 never smoked \n",
"... ... ... ... ... ... \n",
"5105 Private Urban 83.75 NaN never smoked \n",
"5106 Self-employed Urban 125.20 40.0 never smoked \n",
"5107 Self-employed Rural 82.99 30.6 never smoked \n",
"5108 Private Rural 166.29 25.6 formerly smoked \n",
"5109 Govt_job Urban 85.28 26.2 Unknown \n",
"\n",
" stroke \n",
"0 1 \n",
"1 1 \n",
"2 1 \n",
"3 1 \n",
"4 1 \n",
"... ... \n",
"5105 0 \n",
"5106 0 \n",
"5107 0 \n",
"5108 0 \n",
"5109 0 \n",
"\n",
"[5110 rows x 12 columns]\n"
]
}
],
"source": [
"# Load dataset (Vehicle Silhouettes dataset)\n",
"ds = pd.read_csv(\"../../_data/stroke.csv\") # ggf. etwas anders als unser bisheriges Dataset\n",
"print(ds)\n",
"ds = ds.dropna()\n",
"y = ds.stroke\n",
"X = ds.drop('stroke', axis=1)\n",
"X = X.select_dtypes(include=[np.number])"
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.microsoft.datawrangler.viewer.v0+json": {
"columns": [
{
"name": "index",
"rawType": "int64",
"type": "integer"
},
{
"name": "id",
"rawType": "int64",
"type": "integer"
},
{
"name": "age",
"rawType": "float64",
"type": "float"
},
{
"name": "hypertension",
"rawType": "int64",
"type": "integer"
},
{
"name": "heart_disease",
"rawType": "int64",
"type": "integer"
},
{
"name": "avg_glucose_level",
"rawType": "float64",
"type": "float"
},
{
"name": "bmi",
"rawType": "float64",
"type": "float"
}
],
"conversionMethod": "pd.DataFrame",
"ref": "3d6f1960-f763-439e-9ee0-e2fecb7e02db",
"rows": [
[
"0",
"9046",
"67.0",
"0",
"1",
"228.69",
"36.6"
],
[
"2",
"31112",
"80.0",
"0",
"1",
"105.92",
"32.5"
],
[
"3",
"60182",
"49.0",
"0",
"0",
"171.23",
"34.4"
],
[
"4",
"1665",
"79.0",
"1",
"0",
"174.12",
"24.0"
],
[
"5",
"56669",
"81.0",
"0",
"0",
"186.21",
"29.0"
],
[
"6",
"53882",
"74.0",
"1",
"1",
"70.09",
"27.4"
],
[
"7",
"10434",
"69.0",
"0",
"0",
"94.39",
"22.8"
],
[
"9",
"60491",
"78.0",
"0",
"0",
"58.57",
"24.2"
],
[
"10",
"12109",
"81.0",
"1",
"0",
"80.43",
"29.7"
],
[
"11",
"12095",
"61.0",
"0",
"1",
"120.46",
"36.8"
],
[
"12",
"12175",
"54.0",
"0",
"0",
"104.51",
"27.3"
],
[
"14",
"5317",
"79.0",
"0",
"1",
"214.09",
"28.2"
],
[
"15",
"58202",
"50.0",
"1",
"0",
"167.41",
"30.9"
],
[
"16",
"56112",
"64.0",
"0",
"1",
"191.61",
"37.5"
],
[
"17",
"34120",
"75.0",
"1",
"0",
"221.29",
"25.8"
],
[
"18",
"27458",
"60.0",
"0",
"0",
"89.22",
"37.8"
],
[
"20",
"70630",
"71.0",
"0",
"0",
"193.94",
"22.4"
],
[
"21",
"13861",
"52.0",
"1",
"0",
"233.29",
"48.9"
],
[
"22",
"68794",
"79.0",
"0",
"0",
"228.7",
"26.6"
],
[
"23",
"64778",
"82.0",
"0",
"1",
"208.3",
"32.5"
],
[
"24",
"4219",
"71.0",
"0",
"0",
"102.87",
"27.2"
],
[
"25",
"70822",
"80.0",
"0",
"0",
"104.12",
"23.5"
],
[
"26",
"38047",
"65.0",
"0",
"0",
"100.98",
"28.2"
],
[
"28",
"54827",
"69.0",
"0",
"1",
"195.23",
"28.3"
],
[
"30",
"43717",
"57.0",
"1",
"0",
"212.08",
"44.2"
],
[
"31",
"33879",
"42.0",
"0",
"0",
"83.41",
"25.4"
],
[
"32",
"39373",
"82.0",
"1",
"0",
"196.92",
"22.2"
],
[
"33",
"54401",
"80.0",
"0",
"1",
"252.72",
"30.5"
],
[
"34",
"14248",
"48.0",
"0",
"0",
"84.2",
"29.7"
],
[
"35",
"712",
"82.0",
"1",
"1",
"84.03",
"26.5"
],
[
"36",
"47269",
"74.0",
"0",
"0",
"219.72",
"33.7"
],
[
"37",
"24977",
"72.0",
"1",
"0",
"74.63",
"23.1"
],
[
"38",
"47306",
"58.0",
"0",
"0",
"92.62",
"32.0"
],
[
"39",
"62602",
"49.0",
"0",
"0",
"60.91",
"29.9"
],
[
"40",
"4651",
"78.0",
"0",
"0",
"78.03",
"23.9"
],
[
"41",
"1261",
"54.0",
"0",
"0",
"71.22",
"28.5"
],
[
"42",
"61960",
"82.0",
"0",
"1",
"144.9",
"26.4"
],
[
"44",
"7937",
"60.0",
"1",
"0",
"213.03",
"20.2"
],
[
"45",
"19824",
"76.0",
"1",
"0",
"243.58",
"33.6"
],
[
"47",
"47472",
"58.0",
"0",
"0",
"107.26",
"38.6"
],
[
"48",
"35626",
"81.0",
"0",
"0",
"99.33",
"33.7"
],
[
"49",
"36338",
"39.0",
"1",
"0",
"58.09",
"39.2"
],
[
"52",
"59190",
"79.0",
"0",
"1",
"127.29",
"27.7"
],
[
"53",
"47167",
"77.0",
"1",
"0",
"124.13",
"31.4"
],
[
"55",
"25831",
"63.0",
"0",
"1",
"196.71",
"36.5"
],
[
"56",
"38829",
"82.0",
"0",
"0",
"59.32",
"33.2"
],
[
"58",
"58631",
"73.0",
"1",
"0",
"194.99",
"32.8"
],
[
"59",
"5111",
"54.0",
"1",
"0",
"180.93",
"27.7"
],
[
"60",
"10710",
"56.0",
"0",
"0",
"185.17",
"40.4"
],
[
"61",
"55927",
"80.0",
"1",
"0",
"74.9",
"22.2"
]
],
"shape": {
"columns": 6,
"rows": 4909
}
},
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>age</th>\n",
" <th>hypertension</th>\n",
" <th>heart_disease</th>\n",
" <th>avg_glucose_level</th>\n",
" <th>bmi</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>9046</td>\n",
" <td>67.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>228.69</td>\n",
" <td>36.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>31112</td>\n",
" <td>80.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>105.92</td>\n",
" <td>32.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>60182</td>\n",
" <td>49.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>171.23</td>\n",
" <td>34.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1665</td>\n",
" <td>79.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>174.12</td>\n",
" <td>24.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>56669</td>\n",
" <td>81.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>186.21</td>\n",
" <td>29.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5104</th>\n",
" <td>14180</td>\n",
" <td>13.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>103.08</td>\n",
" <td>18.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5106</th>\n",
" <td>44873</td>\n",
" <td>81.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>125.20</td>\n",
" <td>40.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5107</th>\n",
" <td>19723</td>\n",
" <td>35.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>82.99</td>\n",
" <td>30.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5108</th>\n",
" <td>37544</td>\n",
" <td>51.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>166.29</td>\n",
" <td>25.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5109</th>\n",
" <td>44679</td>\n",
" <td>44.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>85.28</td>\n",
" <td>26.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>4909 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" id age hypertension heart_disease avg_glucose_level bmi\n",
"0 9046 67.0 0 1 228.69 36.6\n",
"2 31112 80.0 0 1 105.92 32.5\n",
"3 60182 49.0 0 0 171.23 34.4\n",
"4 1665 79.0 1 0 174.12 24.0\n",
"5 56669 81.0 0 0 186.21 29.0\n",
"... ... ... ... ... ... ...\n",
"5104 14180 13.0 0 0 103.08 18.6\n",
"5106 44873 81.0 0 0 125.20 40.0\n",
"5107 19723 35.0 0 0 82.99 30.6\n",
"5108 37544 51.0 0 0 166.29 25.6\n",
"5109 44679 44.0 0 0 85.28 26.2\n",
"\n",
"[4909 rows x 6 columns]"
]
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4909, 6)"
]
},
"execution_count": 127,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X.shape"
]
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"2 1\n",
"3 1\n",
"4 1\n",
"5 1\n",
" ..\n",
"5104 0\n",
"5106 0\n",
"5107 0\n",
"5108 0\n",
"5109 0\n",
"Name: stroke, Length: 4909, dtype: int64"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y"
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {},
"outputs": [],
"source": [
"le = LabelEncoder()\n",
"y = le.fit_transform(y)"
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 1, 1, ..., 0, 0, 0])"
]
},
"execution_count": 130,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y"
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {},
"outputs": [],
"source": [
"scaler = StandardScaler()\n",
"X_scaled = scaler.fit_transform(X)"
]
},
{
"cell_type": "code",
"execution_count": 132,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-1.33465284, 1.07013796, -0.31806673, 4.38196829, 2.77769839,\n",
" 0.98134488],\n",
" [-0.28353855, 1.64656262, -0.31806673, 4.38196829, 0.0138418 ,\n",
" 0.45926914],\n",
" [ 1.10121139, 0.27201152, -0.31806673, -0.22820795, 1.48413156,\n",
" 0.70120668],\n",
" ...,\n",
" [-0.82605376, -0.34875349, -0.31806673, -0.22820795, -0.50236926,\n",
" 0.21733161],\n",
" [ 0.02284987, 0.36069224, -0.31806673, -0.22820795, 1.37291993,\n",
" -0.41934612],\n",
" [ 0.36272572, 0.05030973, -0.31806673, -0.22820795, -0.45081569,\n",
" -0.34294479]])"
]
},
"execution_count": 132,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_scaled"
]
},
{
"cell_type": "code",
"execution_count": 133,
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 134,
"metadata": {},
"outputs": [],
"source": [
"k_values = range(1, 31)\n",
"accuracies = []"
]
},
{
"cell_type": "code",
"execution_count": 135,
"metadata": {},
"outputs": [],
"source": [
"for k in k_values:\n",
" knn = KNeighborsClassifier(n_neighbors=k)\n",
" knn.fit(X_train, y_train)\n",
" y_pred = knn.predict(X_test)\n",
" accuracies.append(accuracy_score(y_test, y_pred))"
]
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAAIjCAYAAAD80aFnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACACklEQVR4nO3dd3hUxf7H8c8mpBc6hITQAoK0oHSRXiJBpKko3EuIXlQEFWJFkWbBBoJcBPQqeEGUixQrCIQuTZEIiqAUpVcNgQAhJOf3x/52YUkhCdk9ye779Tx5sjs7Z+a7O7tLvsycORbDMAwBAAAAAJzKy+wAAAAAAMATkHwBAAAAgAuQfAEAAACAC5B8AQAAAIALkHwBAAAAgAuQfAEAAACAC5B8AQAAAIALkHwBAAAAgAuQfAEAAACAC5B8AShUY8aMkcVi0alTp8wOpVBUq1ZNAwcONK3/gQMHqlq1ag5l586d07/+9S+FhYXJYrFo2LBh+uOPP2SxWDRr1ixT4nSmpUuXqlGjRvL395fFYlFycrLZIaGYsFgsGjp0qNlhAIAdyRcAUwwcOFAWi0UNGzaUYRhZHr/2jyZbcmGxWLRgwYIs9fOb9O3du1cPP/ywatSoIX9/f4WGhqpVq1aaPHmyLly4UPAn5gKvvvqqZs2apcGDB2v27Nn65z//6dL+rx4Li8Uib29vValSRb169VJSUlKh9nX69Gnde++9CggI0NSpUzV79mwFBQUVah9wjvXr16tr166KiIiQv7+/qlSpou7du2vu3Ln2OufPn9eYMWO0evVq8wK9AatXr3b4LPj5+alixYpq166dXn31VZ08ebLAbe/cuVNjxozRH3/8UXgB34C5c+dq0qRJZocBFHslzA4AgGfbsWOHFi5cqD59+uT5mHHjxql3796yWCwF6vPrr7/WPffcIz8/Pw0YMED169fXpUuXtH79ej399NP65Zdf9N577xWo7cL2/vvvKzMz06Fs5cqVatGihUaPHm0vMwxDFy5ckI+Pj8tiu//++xUbG6uMjAz9+uuvmjZtmpYsWaJNmzapUaNGhdLH999/r7Nnz+qll15Sp06dCqVNON/8+fPVt29fNWrUSE888YRKly6t/fv3a+3atXr//ffVr18/Sdbka+zYsZKkdu3amRjxjXn88cfVtGlTZWRk6OTJk9qwYYNGjx6tiRMn6n//+586dOiQ7zZ37typsWPHql27dllmv80wd+5c/fzzzxo2bJjZoQDFGskXANMEBAQoMjIyX8lUo0aNlJSUpEWLFql379757nP//v267777VLVqVa1cuVKVKlWyPzZkyBDt2bNHX3/9db7bdZbskqkTJ06obt26DmUWi0X+/v6F1m9qaup1Z5huvfVW/eMf/7Dfb9Wqle666y5NmzZNM2bMKJT+T5w4IUkqVarUDbWXXdtwnjFjxqhu3bratGmTfH19HR6zjWlBFNWxa926te6++26Hsp9++kldunRRnz59tHPnTofvGgCei2WHAJzuzz//VM2aNVW/fn0dP37cXu7l5aWRI0dq+/btWrRoUZ7auu+++3TTTTdp3Lhx2S5XvJ433nhD586d0wcffJDtH0M1a9bUE088kePxf/31l5566ik1aNBAwcHBCg0NVdeuXfXTTz9lqTtlyhTVq1dPgYGBKl26tJo0aeKw5Ors2bMaNmyYqlWrJj8/P1WoUEGdO3fWjz/+aK9z9TlftiVO+/fv19dff21f6vTHH3/keM7Xrl27dPfdd6tMmTLy9/dXkyZN9MUXXzjUmTVrliwWi9asWaNHH31UFSpUUOXKlfPycjqw/e/+/v377WWbN2/WHXfcoZIlSyowMFBt27bVd99953Ccbcnozp071a9fP5UuXVq333672rVrp7i4OElS06ZNZbFYHM6/mz9/vho3bqyAgACVK1dO//jHP3T48GGHtgcOHKjg4GDt3btXsbGxCgkJUf/+/SVdWdo6f/581a1bVwEBAWrZsqV27NghSZoxY4Zq1qwpf39/tWvXLsvyr3Xr1umee+5RlSpV5Ofnp8jISA0fPjzLslVbDIcPH1bPnj0VHBys8uXL66mnnlJGRoZD3czMTE2ePFkNGjSQv7+/ypcvrzvuuEM//PCDQ705c+bYn3uZMmV033336eDBg3kZJm3btk1du3ZVaGiogoOD1bFjR23atMmhju098d133ykhIUHly5dXUFCQevXqlaeldHv37lXTpk2zJF6SVKFCBUnW5avly5eXJI0dO9b+fh4zZozD65bd2KWmpurJJ59UZGSk/Pz8VLt2bb311lt5+k54+eWX5eXlpSlTptjLlixZotatWysoKEghISHq1q2bfvnll+u2lZvo6GhNmjRJycnJ+ve//20v//PPP/Xoo4+qdu3aCggIUNmyZXXPPfc4vL9mzZqle+65R5LUvn17+2tjW575+eefq1u3bgoPD5efn5+ioqL00ksvZXk//f777+rTp4/CwsLk7++vypUr67777tOZM2cc6l3v/dSuXTt9/fXX+vPPP+2xFIXZOKA4YuYLgFPt3btXHTp0UJkyZbR8+XKVK1fO4fF+/frppZde0rhx49SrV6/rzn55e3tr5MiRGjBgQIFmv7788kvVqFFDt912W76fiyTt27dPixcv1j333KPq1avr+PHjmjFjhtq2baudO3cqPDxcknW54OOPP667775bTzzxhC5evKjt27dr8+bN9iVXjzzyiD777DMNHTpUdevW1enTp7V+/Xr9+uuvuvXWW7P0ffPNN2v27NkaPny4KleurCeffFKSVL58+Wz/IP7ll1/UqlUrRURE6LnnnlNQUJD+97//qWfPnlqwYIF69erlUP/RRx9V+fLlNWrUKKWmpub7tdm7d68kqWzZspKsyyO7du2qxo0ba/To0fLy8tLMmTPVoUMHrVu3Ts2aNXM4/p577lGtWrX06quvyjAM1apVS7Vr19Z7772ncePGqXr16oqKipJk/eM0Pj5eTZs21fjx43X8+HFNnjxZ3333nbZt2+YwU3b58mXFxMTo9ttv11tvvaXAwED7Y+vWrdMXX3yhIUOGSJLGjx+vO++8U88884zeffddPfroo/r777/1xhtv6IEHHtDKlSvtx86fP1/nz5/X4MGDVbZsWW3ZskVTpkzRoUOHNH/+fIfnlpGRoZiYGDVv3lxvvfWWVqxYoQkTJigqKkqDBw+213vwwQc1a9Ysde3aVf/61790+fJlrVu3Tps2bVKTJk0kSa+88opefPFF3XvvvfrXv/6lkydPasqUKWrTpk2W536tX375Ra1bt1ZoaKieeeYZ+fj4aMaMGWrXrp3WrFmj5s2bO9R/7LHHVLp0aY0ePVp//PGHJk2apKFDh2revHm5vheqVq2qxMREHTp0KMdEvnz58po2bZoGDx6sXr162T/LDRs2tNfJbuwMw9Bdd92lVatW6cEHH1SjRo307bff6umnn9bhw4f19ttv5xjXyJEj9eqrr2rGjBkaNGiQJGn27NmKi4tTTEyMXn/9dZ0/f17Tpk3T7bffrm3btt1QknH33XfrwQcf1LJly/TKK69Isi6l3bBhg+677z5VrlxZf/zxh6ZNm6Z27dpp586dCgwMVJs2bfT444/rnXfe0fPPP6+bb75Zkuy/Z82apeDgYCUkJCg4OFgrV67UqFGjlJKSojfffFOSdOnSJcXExCgtLU2PPfaYwsLCdPjwYX311VdKTk5WyZIlJeXt/fTCCy/ozJkzOnTokP31DQ4OLvDrAng0AwAK0ejRow1JxsmTJ41ff/3VCA8PN5o2bWr89ddfDvXi4uKMoKAgwzAM46OPPjIkGQsXLrQ/LskYMmSI/f7+/fsNScabb75pXL582ahVq5YRHR1tZGZmZuk3J2fOnDEkGT169Mjz86lataoRFxdnv3/x4kUjIyPDoc7+/fsNPz8/Y9y4cfayHj16GPXq1cu17ZIlSzo8x+zExcUZVatWzRJTt27dssQgyZg5c6a9rGPHjkaDBg2Mixcv2ssyMzON2267zahVq5a9bObMmYYk4/bbbzcuX76cazxX9zV27Fjj5MmTxrFjx4zVq1cbt9xyiyHJWLBggZGZmWnUqlXLiImJsY+RYRjG+fPnjerVqxudO3e2l9nG7v7778/Sly2277//3l526dIlo0KFCkb9+vWNCxcu2Mu/+uorQ5IxatQoh9dPkvHcc89laVuS4efnZ+zfv99eNmPGDEOSERYWZqSkpNjLR4wYYUhyqHv+/PksbY4fP96wWCzGn3/+mSWGq98fhmEYt9xyi9G4cWP7/ZUrVxqSjMcffzxLu7bX8I8//jC8vb2NV155xeHxHTt2GCVKlMhSfq2ePXsavr6+xt69e+1lR44cMUJCQow2bdrYy2yve6dOnRzGb/jw4Ya3t7eRnJycaz8ffPCBIcnw9fU12rdvb7z44ovGunXrsnx2Tp48aUgyRo8enaWNnMZu8eLFhiTj5Zdfdii/++67DYvFYuzZs8dedvX3yJNPPml4eXkZs2bNsj9+9uxZo1SpUsagQYMc2jp27JhRsmTJLOXXWrVqlSHJmD9/fo51oqOjjdKlS9vvZ/e+2bhxoyHJ+O9//2svmz9/viHJWLVqVZb62bXx8MMPG4GBgfbP+7Zt264bW37eT926dcvyXQQg/1h2CMApfv75Z7Vt21bVqlXTihUrVLp06Rzr9u/fX7Vq1crzUkLb7NdPP/2kxYsX5zmmlJQUSVJISEiej7mWn5+fvLysX50ZGRk6ffq0goODVbt2bYflgqVKldKhQ4f0/fff59hWqVKltHnzZh05cqTA8eTkr7/+0sqVK3Xvvffq7NmzOnXqlE6dOqXTp08rJiZGv//+e5YleoMGDZK3t3ee+xg9erTKly+vsLAwtWvXTnv37tXrr7+u3r17KykpSb///rv69eun06dP2/tPTU1Vx44dtXbt2iwbiTzyyCN56veHH37QiRMn9Oijjzqc59atWzfVqVMn23P2rp5dulrHjh0dZjZsMz99+vRxeJ/Yyvft22cvCwgIsN9OTU3VqVOndNttt8kwDG3bti1LX9c+v9atWzu0t2DBAlksFoeNVGxsM8ILFy5UZmam7r33XvtreurUKYWFhalWrVpatWpVts9Tsr5fly1bpp49e6pGjRr28kqVKqlfv35av369/TNi89BDDznMRrdu3VoZGRn6888/c+xHkh544AEtXbpU7dq10/r16/XSSy+pdevWqlWrljZs2JDrsde6duy++eYbeXt76/HHH3cof/LJJ2UYhpYsWeJQbhiGhg4dqsmTJ2vOnDn2payStHz5ciUnJ+v+++93eD29vb3VvHnzXF/PvAoODtbZs2ft969+36Snp+v06dOqWbOmSpUq5fAdkpur27B9vlu3bq3z589r165dkmSf2fr22291/vz5bNu5kfcTgIJh2SEAp+jevbsqVqyob7/99rrLU2zJVFxcnBYvXpxlOVx2+vfvb1+u2LNnzzzFFBoaKkkOfwjll+2cnHfffVf79+93OMfCttxOkp599lmtWLFCzZo1U82aNdWlSxf169dPrVq1std54403FBcXp8jISDVu3FixsbEaMGCAwx/GBbVnzx4ZhqEXX3xRL774YrZ1Tpw4oYiICPv96tWr56uPhx56SPfcc4+8vLxUqlQp1atXT35+fpKs55pIcvhD91pnzpxxSMrz2r/tD//atWtneaxOnTpav369Q1mJEiVyXPpWpUoVh/u2P1gjIyOzLf/777/tZQcOHNCoUaP0xRdfOJRLynJOje38rauVLl3a4bi9e/cqPDxcZcqUyTZWyfq6Gv+/JDM7ue12efLkSZ0/fz7b1+3mm29WZmamDh48qHr16tnLr319bON17fPNTkxMjGJiYnT+/Hlt3bpV8+bN0/Tp03XnnXdq165d9nO/cpPd2P35558KDw/P8p8otiV51yaG//3vf3Xu3DlNmzZN999/v8NjtvdpTrsR2r4zbsS5c+ccYr1w4YLGjx+vmTNn6vDhww7/4XTt+yYnv/zyi0aOHKmVK1dmSZhtbVSvXl0JCQmaOHGiPv74Y7Vu3Vp33XWX/vGPf9jfzzfyfgJQMCRfAJyiT58++uijj/Txxx/r4Ycfvm79/CZTtoRt4MCB+vzzz/MUU2hoqMLDw/Xzzz/nqX52Xn31Vb344ot64IEH9NJLL6lMmTLy8vLSsGHDHGZybr75Zu3evVtfffWVli5dqgULFujdd9/VqFGj7Ftr33vvvWrdurUWLVqkZcuW6c0339Trr7+uhQsXqmvXrgWOUZI9lqeeekoxMTHZ1qlZs6bD/av/Nz0vatWqleP277b+33zzzRy3nb82Kc9v/3l19WzltXKa6cup3PaHckZGhjp37qy//vpLzz77rOrUqaOgoCAdPnxYAwcOzDKrl58ZxdxkZmbKYrFoyZIl2bZZ2OfhXO91yIvAwEC1bt1arVu3Vrly5TR27FgtWbIk18TcJrexy6tWrVopKSlJ//73v3Xvvfc6JLe2cZo9e7bCwsKyHFuixI39mZSenq7ffvtN9evXt5c99thjmjlzpoYNG6aWLVuqZMmSslgsuu+++7K8b7KTnJystm3bKjQ0VOPGjVNUVJT8/f31448/6tlnn3VoY8KECfbvyGXLlunxxx/X+PHjtWnTJlWuXNnl7ycAJF8AnOTNN99UiRIl9OijjyokJMS+yUROCpJM/eMf/9DLL7+ssWPH6q677srTMXfeeafee+89bdy4US1btszTMVf77LPP1L59e33wwQcO5cnJyVk2EwkKClLfvn3Vt29fXbp0Sb1799Yrr7yiESNG2JfLVapUSY8++qgeffRRnThxQrfeeqteeeWVG06+bLNnPj4+plwfy7YxRmhoaKH3X7VqVUnS7t27s8xY7N692/64M+3YsUO//fabPvroIw0YMMBevnz58gK3GRUVpW+//VZ//fVXjrNfUVFRMgxD1atX10033ZSv9suXL6/AwEDt3r07y2O7du2Sl5dXlhm/wmbbNOTo0aOSVKBr9VWtWlUrVqzQ2bNnHWaUbMvtrh3/mjVr6o033lC7du10xx13KDEx0X6c7X1aoUIFp3xOPvvsM124cMHhP0A+++wzxcXFacKECfayixcvKjk52eHYnF6b1atX6/Tp01q4cKHatGljL796l9GrNWjQQA0aNNDIkSO1YcMGtWrVStOnT9fLL7+cr/dTQa+rCMAR53wBcAqLxaL33ntPd999t+Li4rJsb56df/zjH6pZs6Z9Zuh6bAlbUlJSntqXpGeeeUZBQUH617/+5bDtvc3evXs1efLkXPu89n/958+fn+X8qdOnTzvc9/X1Vd26dWUYhtLT05WRkZFliVGFChUUHh6utLS0PD2X3FSoUEHt2rXTjBkz7H/oXi0v24XfiMaNGysqKkpvvfWWzp07V6j9N2nSRBUqVND06dMdXqslS5bo119/Vbdu3Qrcdl7ZZgmufi8YhpHre+d6+vTpI8Mwsn3/2/rp3bu3vL29NXbs2CzvQ8Mwsrzvro25S5cu+vzzzx22NT9+/Ljmzp2r22+/vVCW2UlSYmJituXffPONpCtLRm07T16beOTGdmHvq7dvl6S3335bFosl2/+4aNiwob755hv9+uuv6t69u/1yADExMQoNDdWrr76q9PT0LMfdyPv0p59+0rBhw1S6dGn7bppS9t8hU6ZMybJNvO16Zte+Ntm99y5duqR3333XoV5KSoouX77sUNagQQN5eXnZPzf5eT8FBQXleVkkgJwx8wXAaby8vDRnzhz17NlT9957r7755pscz62QrH9UvPDCC4qPj89zH7bliklJSXmqHxUVpblz56pv3766+eabNWDAANWvX1+XLl3Shg0bNH/+fIdrSV3rzjvv1Lhx4xQfH6/bbrtNO3bs0Mcff5zlPK0uXbooLCxMrVq1UsWKFfXrr7/q3//+t7p166aQkBAlJyercuXKuvvuuxUdHa3g4GCtWLFC33//vcP/iN+IqVOn6vbbb1eDBg00aNAg1ahRQ8ePH9fGjRt16NChbK9NVli8vLz0n//8R127dlW9evUUHx+viIgIHT58WKtWrVJoaKi+/PLLArXt4+Oj119/XfHx8Wrbtq3uv/9++1bz1apV0/Dhwwv52WRVp04dRUVF6amnntLhw4cVGhqqBQsW5OlcqJy0b99e//znP/XOO+/o999/1x133KHMzEytW7dO7du319ChQxUVFaWXX35ZI0aM0B9//KGePXsqJCRE+/fv16JFi/TQQw/pqaeeyrGPl19+WcuXL9ftt9+uRx99VCVKlNCMGTOUlpamN954o8CxX6tHjx6qXr26unfvrqioKKWmpmrFihX68ssv1bRpU3Xv3l2Sdalp3bp1NW/ePN10000qU6aM6tev77BM71rdu3dX+/bt9cILL+iPP/5QdHS0li1bps8//1zDhg2zz2Zdq0WLFvr8888VGxuru+++W4sXL1ZoaKimTZumf/7zn7r11lt13333qXz58jpw4IC+/vprtWrVKkuSl51169bp4sWL9k14vvvuO33xxRcqWbKkFi1a5LCk8c4779Ts2bNVsmRJ1a1bVxs3btSKFSsczhmVrBeU9/b21uuvv64zZ87Iz89PHTp00G233abSpUsrLi5Ojz/+uCwWi2bPnp0leVq5cqWGDh2qe+65RzfddJMuX76s2bNny9vbW3369JGkfL2fGjdurHnz5ikhIUFNmzZVcHCwfRwB5IPL9lUE4BGy2/L9/PnzRtu2bY3g4GBj06ZNhmE4bjV/tfT0dCMqKirXreavZdsW+9p+c/Pbb78ZgwYNMqpVq2b4+voaISEhRqtWrYwpU6Y4bM2e3VbzTz75pFGpUiUjICDAaNWqlbFx40ajbdu2Rtu2be31ZsyYYbRp08YoW7as4efnZ0RFRRlPP/20cebMGcMwDCMtLc14+umnjejoaCMkJMQICgoyoqOjjXfffdchzhvZat4wDGPv3r3GgAEDjLCwMMPHx8eIiIgw7rzzTuOzzz7L8vpdvZ17bnIbi2tt27bN6N27t/11qFq1qnHvvfcaiYmJ9jq5XSYgt9jmzZtn3HLLLYafn59RpkwZo3///sahQ4cc6uT0PjOMrJczyO25Zbel+M6dO41OnToZwcHBRrly5YxBgwYZP/30U5ZxyCkG2/O+2uXLl40333zTqFOnjuHr62uUL1/e6Nq1q7F161aHegsWLDBuv/12IygoyAgKCjLq1KljDBkyxNi9e3e2z/VqP/74oxETE2MEBwcbgYGBRvv27Y0NGzY41Mnpdbe9Dtltf361Tz75xLjvvvuMqKgoIyAgwPD39zfq1q1rvPDCCw5b+BuGYWzYsMFo3Lix4evr67DtfG5jd/bsWWP48OFGeHi44ePjY9SqVct48803HbbFN4zsx/jzzz83SpQoYfTt29e+9f2qVauMmJgYo2TJkoa/v78RFRVlDBw40Pjhhx9yfZ6218P24+PjY5QvX95o06aN8corrxgnTpzIcszff/9txMfHG+XKlTOCg4ONmJgYY9euXVm+awzDMN5//32jRo0ahre3t8Pr/t133xktWrQw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uXzZurNRdifdFkb7ruijuLfvDs+B18j923eH58Br5P7tu8NzcIfX6EbkNTfgIssAClX//talLc89J82aZT351WJxrGO7P2lSwU+I9faWJk92bK8w23dFH8W9fVf0Udzbd0UftG9+H8W9fVf0Qfvm91Hc23dVH07nomTQ7TDzhat56hinpBjGyJGGMXCgY/nZs1duZ3ctjshI515PpDDbd0Ufxb19V/RR3Nt3RR+0b34fxb19V/RB++b3Udzbd1Uf+cVW807GVvO4mqeN8eXL0syZ0osvSsePW8u2bZMaNcq+vrOvdO/s9m19rFp1WUuWJKlr10Zq375EsXoOrnqNivNzcPYY2/oo7q9RcW7f1gefZXP7KO6fZcbA/PZtfTj7Ozs/8pobkHwVEMkXruZJY7x0qfT009ZrmUhSzZrS669LvXplXQLgbjxpnD0VY+wZGGf3xxh7hqI0znnNDdhqHkCeHD4sPfCAtGyZ9X6ZMtKoUdYLKvr6mhsbAABAcUDyBRQDRWF5QKlS1tkuHx/p8celF15wvEYJAAAAckfyBRRxCxdKTzwhHTp0paxyZetuP717O6/911+3XnT34YetFzANCpLmzJGqVrVe6BIAAAD5UyS2mp86daqqVasmf39/NW/eXFu2bMmxbnp6usaNG6eoqCj5+/srOjpaS5cuzbH+a6+9JovFomHDhjmUt2vXThaLxeHnkUceKaynBBSKhQulu+92TIwk6xLAu++2Pu6M9g8dsm4Z/+ij0scfXylv357ECwAAoKBMT77mzZunhIQEjR49Wj/++KOio6MVExOjEydOZFt/5MiRmjFjhqZMmaKdO3fqkUceUa9evbRt27Ysdb///nvNmDFDDRs2zLatQYMG6ejRo/afN954o1CfG3AjMjKsM1LZbYljKxs2zFqvsNu38faWrrOfDAAAAPLI9GWHEydO1KBBgxQfHy9Jmj59ur7++mt9+OGHeu6557LUnz17tl544QXFxsZKkgYPHqwVK1ZowoQJmjNnjr3euXPn1L9/f73//vt6+eWXs+07MDBQYWFheYozLS1NaWlp9vspKSmSrDNx6enpuR5re/x69VB8OWOM16yx6NChnD+ihiEdPCg1bJipkiWl4GDp66+vZGJPPumlH37IfvtBb29p9OjMXNuXrAlaUNBlpaezKarEZ9kTMMaegXF2f4yxZyhK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V/ny5RUQEKBatWplO6Y233zzjfz8/NSiRYsc65w/f15du3ZVq1at7EsR69Wrp/DwcC1atCjH4wCguCP5AgAP4+3trVdffVVTpky54XNsVq5cqSNHjmjt2rWaOHGiRo8erTvvvFOlS5fW5s2b9cgjj+jhhx/O0s/TTz+tJ598Utu2bVPLli3VvXt3nT59WpKUnJysDh066JZbbtEPP/ygpUuX6vjx47r33nsd2vjoo4/k6+ur7777TtOnT882vsmTJ2vChAl66623tH37dsXExOiuu+7S77//Lkk6evSo6tWrpyeffFJHjx7VU089leNzzcvrtnfvXt1xxx3q06ePtm/frnnz5mn9+vUaOnRotvUzMjLUs2dPBQYGavPmzXrvvff0wgsvZFv3hRde0FNPPaWkpCTddNNNuv/++3X58mX74+fPn9crr7yi//73v/ruu++UnJys++67z/74okWL9MQTT+jJJ5/Uzz//rIcffljx8fFatWqVQz9jxoxRr169tGPHDj3wwAN68cUXtXPnTi1ZskS//vqrpk2bpnLlyuX4Oq1bt06NGzfO8fHk5GR17txZmZmZWr58ucO5as2aNdO6detyPBYAij0DAOAx4uLijB49ehiGYRgtWrQwHnjgAcMwDGPRokXG1f8kjB492oiOjnY49u233zaqVq3q0FbVqlWNjIwMe1nt2rWN1q1b2+9fvnzZCAoKMj755BPDMAxj//79hiTjtddes9dJT083KleubLz++uuGYRjGSy+9ZHTp0sWh74MHDxqSjN27dxuGYRht27Y1brnllus+3/DwcOOVV15xKGvatKnx6KOP2u9HR0cbo0ePzrWdvL5uDz74oPHQQw85HLtu3TrDy8vLuHDhgmEYhlG1alXj7bffNgzDMJYsWWKUKFHCOHr0qL3+8uXLDUnGokWLDMO48pr95z//sdf55ZdfDEnGr7/+ahiGYcycOdOQZGzatMle59dffzUkGZs3bzYMwzBuu+02Y9CgQQ6x3XPPPUZsbKz9viRj2LBhDnW6d+9uxMfH5/r6XK1Hjx7218dm1apV9ngbNmxo9OnTx0hLS8ty7PDhw4127drluS8AKG6Y+QIAD/X666/ro48+0q+//lrgNurVqycvryv/lFSsWFENGjSw3/f29lbZsmV14sQJh+Natmxpv12iRAk1adLEHsdPP/2kVatWKTg42P5Tp04dSdaZJZvcZlckKSUlRUeOHFGrVq0cylu1anVDzzm31+2nn37SrFmzHGKPiYlRZmam9u/fn6X+7t27FRkZqbCwMHtZs2bNsu23YcOG9tuVKlWSJIfXtUSJEmratKn9fp06dVSqVCl7nL/++mueXosmTZo43B88eLA+/fRTNWrUSM8884w2bNiQbXw2Fy5ckL+/f7aPde7cWTVr1tS8efPk6+ub5fGAgACdP38+1/YBoDgj+QIAD9WmTRvFxMRoxIgRWR7z8vKSYRgOZdltvuDj4+Nw32KxZFuWmZmZ57jOnTun7t27KykpyeHn999/V5s2bez1goKC8txmYcrtdTt37pwefvhhh7h/+ukn/f7774qKirqhfq9+XW07LObndc2ra1/Xrl276s8//9Tw4cN15MgRdezYMdflmeXKlctxU5Ju3bpp7dq12rlzZ7aP//XXXypfvnzBgweAIo7kCwA82GuvvaYvv/wyy+YN5cuX17FjxxwSsMK8NtemTZvsty9fvqytW7fq5ptvliTdeuut+uWXX1StWjXVrFnT4Sc/CVdoaKjCw8P13XffOZR/9913qlu37g3Fn9Prduutt2rnzp1Z4q5Zs2a2Mz21a9fWwYMHdfz4cXvZ999/X6CYLl++rB9++MF+f/fu3UpOTra/rjfffHOBX4vy5csrLi5Oc+bM0aRJk/Tee+/lWPeWW27JMbl67bXXFBcXp44dO2Zb5+eff9Ytt9xy3XgAoLgi+QIAD9agQQP1799f77zzjkN5u3btdPLkSb3xxhvau3evpk6dqiVLlhRav1OnTtWiRYu0a9cuDRkyRH///bceeOABSdKQIUP0119/6f7779f333+vvXv36ttvv1V8fLwyMjLy1c/TTz+t119/XfPmzdPu3bv13HPPKSkpSU888cQNxZ/T6/bss89qw4YNGjp0qH227vPPP89xw43OnTsrKipKcXFx2r59u7777juNHDlSkvJ9/TAfHx899thj2rx5s7Zu3aqBAweqRYsW9mWMTz/9tGbNmqVp06bp999/18SJE7Vw4cJcZ7EkadSoUfr888+1Z88e/fLLL/rqq6/sCV12YmJi9Msvv+Q4+/XWW2+pf//+6tChg3bt2mUvP3/+vLZu3aouXbrk63kDQHFC8gUAHm7cuHFZlq/dfPPNevfddzV16lRFR0dry5Yt1/0jPT9ee+01vfbaa4qOjtb69ev1xRdf2HfQs81WZWRkqEuXLmrQoIGGDRumUqVKOZxflhePP/64EhIS9OSTT6pBgwZaunSpvvjiC9WqVeuGn0N2r1vDhg21Zs0a/fbbb2rdurVuueUWjRo1SuHh4dm24e3trcWLF+vcuXNq2rSp/vWvf9l3O8zpvKmcBAYG6tlnn1W/fv3UqlUrBQcHa968efbHe/bsqcmTJ+utt95SvXr1NGPGDM2cOVPt2rXLtV1fX1+NGDFCDRs2VJs2beTt7a1PP/00x/oNGjTQrbfeqv/973851nn77bd17733qkOHDvrtt98kSZ9//rmqVKmi1q1b5+t5A0BxYjGuXdQPAABM89133+n222/Xnj17bvg8MbN8/fXXevrpp/Xzzz/nOWFu0aKFHn/8cfXr18/J0QGAeUqYHQAAAJ5s0aJFCg4OVq1atbRnzx498cQTatWqVbFNvCTrxhq///67Dh8+rMjIyOvWP3XqlHr37q3777/fBdEBgHmY+QIAwET//e9/9fLLL+vAgQMqV66cOnXqpAkTJqhs2bJmhwYAKGQkXwAAAADgAmy4AQAAAAAuQPIFAAAAAC5A8gUAAAAALkDyBQAAAAAuQPIFAAAAAC5A8gUAAAAALkDyBQAAAAAuQPIFAAAAAC7wf4xVsxwJc+UJAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot accuracy vs. k\n",
"plt.figure(figsize=(10, 6))\n",
"plt.plot(k_values, accuracies, marker='o', linestyle='dashed', color='b')\n",
"plt.xlabel('Number of Neighbors (k)')\n",
"plt.ylabel('Accuracy')\n",
"plt.title('kNN Classifier Performance on Stroke Dataset')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Aufgabe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Verwende nun die folgenden Datasets und versuche die bestmögliche Performance zu erreichen.\n",
"* Lade dazu das Dataset mit den bekannten Methoden (Laden mit Hilfe von `pd.read_csv`)\n",
"* Überlege, wie du bei schlechter Performance diese verbessern kannst. Zum Beipsiel: Normalisieren, Ausreißer entfernen etc.\n",
"* Müssen wir ggf. Features entfernen?\n",
"* Gehören ggf. Features mit einem Ordinal-Encoder oder mit einem Onehot-Encoder encodiert?\n",
"* Verwende für jedes Dataset eigene Code-Zellen und dokumentiere für die verschiedenen Durchläufe die Ergebnisse (zBsp. Accuracy, Confusion Matrix oder den MSE)\n",
"\n",
"**Datasets:**\n",
"* Breast Cancer `breast_cancer.csv` (verwendet von https://archive.ics.uci.edu/dataset/17/breast+cancer+wisconsin+diagnostic)\n",
"* Diabetes `diabetes.csv` (verwendet von https://www.kaggle.com/uciml/pima-indians-diabetes-database)\n",
"* Stroke Prediction `stroke.csv` (verwendet von https://www.kaggle.com/datasets/fedesoriano/stroke-prediction-dataset)\n",
"\n",
"*Hinweis:* Überlege dir stets, welchen Problemtyp du verwendest und verwende dementsprechend das richtige Model! "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" radius1 texture1 perimeter1 area1 smoothness1 compactness1 \\\n",
"0 17.99 10.38 122.80 1001.0 0.11840 0.27760 \n",
"1 20.57 17.77 132.90 1326.0 0.08474 0.07864 \n",
"2 19.69 21.25 130.00 1203.0 0.10960 0.15990 \n",
"3 11.42 20.38 77.58 386.1 0.14250 0.28390 \n",
"4 20.29 14.34 135.10 1297.0 0.10030 0.13280 \n",
".. ... ... ... ... ... ... \n",
"564 21.56 22.39 142.00 1479.0 0.11100 0.11590 \n",
"565 20.13 28.25 131.20 1261.0 0.09780 0.10340 \n",
"566 16.60 28.08 108.30 858.1 0.08455 0.10230 \n",
"567 20.60 29.33 140.10 1265.0 0.11780 0.27700 \n",
"568 7.76 24.54 47.92 181.0 0.05263 0.04362 \n",
"\n",
" concavity1 concave_points1 symmetry1 fractal_dimension1 ... \\\n",
"0 0.30010 0.14710 0.2419 0.07871 ... \n",
"1 0.08690 0.07017 0.1812 0.05667 ... \n",
"2 0.19740 0.12790 0.2069 0.05999 ... \n",
"3 0.24140 0.10520 0.2597 0.09744 ... \n",
"4 0.19800 0.10430 0.1809 0.05883 ... \n",
".. ... ... ... ... ... \n",
"564 0.24390 0.13890 0.1726 0.05623 ... \n",
"565 0.14400 0.09791 0.1752 0.05533 ... \n",
"566 0.09251 0.05302 0.1590 0.05648 ... \n",
"567 0.35140 0.15200 0.2397 0.07016 ... \n",
"568 0.00000 0.00000 0.1587 0.05884 ... \n",
"\n",
" texture3 perimeter3 area3 smoothness3 compactness3 concavity3 \\\n",
"0 17.33 184.60 2019.0 0.16220 0.66560 0.7119 \n",
"1 23.41 158.80 1956.0 0.12380 0.18660 0.2416 \n",
"2 25.53 152.50 1709.0 0.14440 0.42450 0.4504 \n",
"3 26.50 98.87 567.7 0.20980 0.86630 0.6869 \n",
"4 16.67 152.20 1575.0 0.13740 0.20500 0.4000 \n",
".. ... ... ... ... ... ... \n",
"564 26.40 166.10 2027.0 0.14100 0.21130 0.4107 \n",
"565 38.25 155.00 1731.0 0.11660 0.19220 0.3215 \n",
"566 34.12 126.70 1124.0 0.11390 0.30940 0.3403 \n",
"567 39.42 184.60 1821.0 0.16500 0.86810 0.9387 \n",
"568 30.37 59.16 268.6 0.08996 0.06444 0.0000 \n",
"\n",
" concave_points3 symmetry3 fractal_dimension3 Diagnosis \n",
"0 0.2654 0.4601 0.11890 M \n",
"1 0.1860 0.2750 0.08902 M \n",
"2 0.2430 0.3613 0.08758 M \n",
"3 0.2575 0.6638 0.17300 M \n",
"4 0.1625 0.2364 0.07678 M \n",
".. ... ... ... ... \n",
"564 0.2216 0.2060 0.07115 M \n",
"565 0.1628 0.2572 0.06637 M \n",
"566 0.1418 0.2218 0.07820 M \n",
"567 0.2650 0.4087 0.12400 M \n",
"568 0.0000 0.2871 0.07039 B \n",
"\n",
"[569 rows x 31 columns]\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAAIjCAYAAAD80aFnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACXBElEQVR4nOzdeVhU1f8H8Pew7yKCsohsLoggbknumgtKmlvupVJZbqVSWZq5VVqWppmpbdoPM821VYvINfctFxQVNRUVFQUUZb+/P+73DgwMMAMzc2d5v55nHmbunDn3M3NmLvOZc+45CkEQBBAREREREZFeWckdABERERERkSVg8kVERERERGQATL6IiIiIiIgMgMkXERERERGRATD5IiIiIiIiMgAmX0RERERERAbA5IuIiIiIiMgAmHwREREREREZAJMvIiIiIiIiA2DyRWRmZs+eDYVCgbt378odik4EBgZi9OjRsu1/9OjRCAwMVNn28OFDvPTSS/D29oZCocDkyZNx5coVKBQKrF69WpY49Wn79u1o1qwZHBwcoFAokJGRIXdIREREJonJF5GFGj16NBQKBZo2bQpBEMrcr1AoMHHiROVtKblQKBTYtGlTmfLaJn0pKSl45ZVXEBwcDAcHB7i5uaFdu3ZYsmQJHj9+XPUnZgDz5s3D6tWrMW7cOMTHx+P555836P5LtoVCoYC1tTXq1auH/v3748SJEzrdV3p6OgYPHgxHR0csW7YM8fHxcHZ21uk+SPekz6N0sbKygo+PD3r37o0DBw7IHV6Ffv/9d8yePVvrx23ZsgW9evWCp6cn7Ozs4Ovri8GDB+Pvv//WfZBGovSxwNbWFp6enmjbti2mT5+Oq1evVrnuGzduYPbs2To/plRVVd8XRMbGRu4AiEhep06dwubNmzFw4ECNHzN37lwMGDAACoWiSvv87bffMGjQINjb22PkyJEIDw9HXl4e9u7dizfffBNnzpzBl19+WaW6de2rr75CUVGRyra///4bTz75JGbNmqXcJggCHj9+DFtbW4PFNmzYMMTExKCwsBBnz57F8uXLsW3bNhw4cADNmjXTyT4OHz6MBw8e4L333kO3bt10UicZzvLly+Hi4oKioiJcu3YNX331FTp27IhDhw7p7D2ia7///juWLVum8RdtQRDwwgsvYPXq1WjevDni4uLg7e2NmzdvYsuWLejatSv++ecftG3bVr+By0g6FhQVFeH+/fs4fPgwFi9ejCVLluCbb77B0KFDta7zxo0bmDNnDgIDA43ivaLt+4LIWDH5IrJgjo6O8Pf31yqZatasGU6cOIEtW7ZgwIABWu/z8uXLGDp0KAICAvD333/Dx8dHed+ECRNw8eJF/Pbbb1rXqy/qkqnbt28jLCxMZZtCoYCDg4PO9pudnV1pD1OLFi3w3HPPKW+3a9cOzzzzDJYvX46VK1fqZP+3b98GALi7u1erPnV1k/49++yz8PT0VN7u168fwsPDsWHDhgq/UOfk5MDOzg5WVsY/QGbhwoVYvXo1Jk+ejEWLFqkcx9555x3Ex8fDxsZ0v+5U5VgAAP/99x969OiBUaNGoXHjxoiMjNRnmESkIeM/qhJRtf3333+oX78+wsPDkZaWptxuZWWFGTNm4OTJk9iyZYtGdQ0dOhQNGzbE3Llz1Q5XrMyCBQvw8OFDfPPNNyqJl6R+/fqYNGlSuY+/d+8e3njjDURERMDFxQVubm7o1asX/v333zJlly5diiZNmsDJyQk1a9ZEq1atsHbtWuX9Dx48wOTJkxEYGAh7e3vUrl0b3bt3x7Fjx5RlSp7ztXPnTigUCly+fBm//fabcqjPlStXyj3n69y5c3j22Wfh4eEBBwcHtGrVCj///LNKmdWrV0OhUGDXrl0YP348ateujbp162rycqp46qmnAIgJruTgwYPo2bMnatSoAScnJ3Tq1An//POPyuOkIWpJSUkYPnw4atasifbt26Nz584YNWoUAOCJJ56AQqFQOf9uw4YNaNmyJRwdHeHp6YnnnnsOqampKnWPHj0aLi4uSElJQUxMDFxdXTFixAgAxUNbN2zYgLCwMDg6OqJNmzY4deoUAGDlypWoX78+HBwc0LlzZ1y5ckWl7j179mDQoEGoV68e7O3t4e/vjylTppQZtirFkJqain79+sHFxQVeXl544403UFhYqFK2qKgIS5YsQUREBBwcHODl5YWePXviyJEjKuXWrFmjfO4eHh4YOnQorl27pkkz4fjx4+jVqxfc3Nzg4uKCrl27lhkKKL0n/vnnH8TFxcHLywvOzs7o378/7ty5o9F+1PH29gYAlWREel+vW7cOM2bMgJ+fH5ycnJCVlQVAs/fQf//9h/Hjx6NRo0ZwdHRErVq1MGjQoDJtlp+fjzlz5qBBgwZwcHBArVq10L59eyQkJAAQ22rZsmUAoDKcrjyPHz/G/PnzERoaik8++URt2eeffx6tW7cGoPnxQ3pNfvzxR3zwwQeoW7cuHBwc0LVrV1y8eLHMPg4ePIiYmBjUrFkTzs7OaNq0KZYsWaJSxpDHAgAICAjA6tWrkZeXhwULFii3a/Ia7Ny5E0888QQAIDY2VtkO0vFN08/erVu3EBsbi7p168Le3h4+Pj7o27dvmffFtm3b0KFDBzg7O8PV1RVPP/00zpw5o7xf2/cFkTEz3Z+CiEgjKSkpeOqpp+Dh4YGEhASVX8EBYPjw4Xjvvfcwd+5c9O/fv9J/aNbW1pgxYwZGjhxZpd6vX375BcHBwVUeAnTp0iVs3boVgwYNQlBQENLS0rBy5Up06tQJSUlJ8PX1BSAOF3zttdfw7LPPYtKkScjJycHJkydx8OBBDB8+HAAwduxYbNy4ERMnTkRYWBjS09Oxd+9enD17Fi1atCiz78aNGyM+Ph5TpkxB3bp18frrrwMAvLy81H4hPnPmDNq1awc/Pz+8/fbbcHZ2xo8//oh+/fph06ZN6N+/v0r58ePHw8vLCzNnzkR2drbWr01KSgoAoFatWgDE4ZG9evVCy5YtMWvWLFhZWWHVqlV46qmnsGfPHuUXUsmgQYPQoEEDzJs3D4IgoEGDBmjUqBG+/PJLzJ07F0FBQQgJCQEgfkmMjY3FE088gfnz5yMtLQ1LlizBP//8g+PHj6v0lBUUFCA6Ohrt27fHJ598AicnJ+V9e/bswc8//4wJEyYAAObPn4/evXtj6tSp+OKLLzB+/Hjcv38fCxYswAsvvKBy/s6GDRvw6NEjjBs3DrVq1cKhQ4ewdOlSXL9+HRs2bFB5boWFhYiOjkZUVBQ++eQT/PXXX1i4cCFCQkIwbtw4ZbkXX3wRq1evRq9evfDSSy+hoKAAe/bswYEDB9CqVSsAwAcffIB3330XgwcPxksvvYQ7d+5g6dKl6NixY5nnXtqZM2fQoUMHuLm5YerUqbC1tcXKlSvRuXNn7Nq1C1FRUSrlX331VdSsWROzZs3ClStXsHjxYkycOBHr16+v8L0guXfvHgAxqUxNTcV7770HBwcHDB48uEzZ9957D3Z2dnjjjTeQm5sLOzs7jd9Dhw8fxr59+zB06FDUrVsXV65cwfLly9G5c2ckJSUp23z27NmYP38+XnrpJbRu3RpZWVk4cuQIjh07hu7du+OVV17BjRs3kJCQgPj4+Eqf3969e3Hv3j1MnjwZ1tbWlZbX9Pgh+fDDD2FlZYU33ngDmZmZWLBgAUaMGIGDBw8qyyQkJKB3797w8fHBpEmT4O3tjbNnz+LXX39V/pBk6GOBpE2bNggJCVEmt5q+Bo0bN8bcuXMxc+ZMvPzyy+jQoQMAKI/bmn72Bg4ciDNnzuDVV19FYGAgbt++jYSEBFy9elX5o1Z8fDxGjRqF6OhofPTRR3j06BGWL1+O9u3b4/jx4wgMDNT6fUFk1AQiMiuzZs0SAAh37twRzp49K/j6+gpPPPGEcO/ePZVyo0aNEpydnQVBEITvvvtOACBs3rxZeT8AYcKECcrbly9fFgAIH3/8sVBQUCA0aNBAiIyMFIqKisrstzyZmZkCAKFv374aP5+AgABh1KhRyts5OTlCYWGhSpnLly8L9vb2wty5c5Xb+vbtKzRp0qTCumvUqKHyHNUZNWqUEBAQUCamp59+ukwMAIRVq1Ypt3Xt2lWIiIgQcnJylNuKioqEtm3bCg0aNFBuW7VqlQBAaN++vVBQUFBhPCX3NWfOHOHOnTvCrVu3hJ07dwrNmzcXAAibNm0SioqKhAYNGgjR0dHKNhIEQXj06JEQFBQkdO/eXblNarthw4aV2ZcU2+HDh5Xb8vLyhNq1awvh4eHC48ePldt//fVXAYAwc+ZMldcPgPD222+XqRuAYG9vL1y+fFm5beXKlQIAwdvbW8jKylJunzZtmgBApeyjR4/K1Dl//nxBoVAI//33X5kYSr4/BEEQmjdvLrRs2VJ5+++//xYACK+99lqZeqXX8MqVK4K1tbXwwQcfqNx/6tQpwcbGpsz20vr16yfY2dkJKSkpym03btwQXF1dhY4dOyq3Sa97t27dVNpvypQpgrW1tZCRkVHhfqQ2LX1xd3cXtm/frlJ2x44dAgAhODhY5TXV5j2kri32798vABD+7//+T7ktMjKyzGentAkTJgiafj1ZsmSJAEDYsmWLRuU1PX5Ir0njxo2F3NzcMvs7deqUIAiCUFBQIAQFBQkBAQHC/fv3Veot+Zrp+1jw8ccfl1umb9++AgAhMzNTq9fg8OHDZY5pEk0+e/fv3680tgcPHgju7u7CmDFjVLbfunVLqFGjhsp2bd4XRMaMww6JzNTp06fRqVMnBAYG4q+//kLNmjXLLTtixAg0aNBA46GEUu/Xv//+i61bt2ockzSMydXVVePHlGZvb688D6WwsBDp6elwcXFBo0aNVIYLuru74/r16zh8+HC5dbm7u+PgwYO4ceNGleMpz7179/D3339j8ODBePDgAe7evYu7d+8iPT0d0dHRuHDhQpkhemPGjNHo13vJrFmz4OXlBW9vb3Tu3BkpKSn46KOPMGDAAJw4cQIXLlzA8OHDkZ6ertx/dnY2unbtit27d5eZSGTs2LEa7ffIkSO4ffs2xo8fr3Ke29NPP43Q0FC15+yV7F0qqWvXripT+Us9PwMHDlR5n0jbL126pNzm6OiovJ6dnY27d++ibdu2EAQBx48fL7Ov0s+vQ4cOKvVt2rQJCoVCZSIVidQjvHnzZhQVFWHw4MHK1/Tu3bvw9vZGgwYNsGPHDrXPExDfr3/++Sf69euH4OBg5XYfHx8MHz4ce/fuVX5GJC+//LJKb3SHDh1QWFiI//77r9z9lLRp0yYkJCTgzz//xKpVq9CwYUMMHDgQ+/btK1N21KhRKq+pNu+hko/Lz89Heno66tevD3d39zKfyzNnzuDChQsaxV8ZbY8pmh4/JLGxsbCzs1PelnqApPfN8ePHcfnyZUyePLlMj6fUboY4FlTExcUFgDjMGtD+NVBHk8+eo6Mj7OzssHPnTty/f19tPQkJCcjIyMCwYcNUPk/W1taIioqq8PNEZKo47JDITPXp0wd16tTBH3/8ofznWx4pmRo1ahS2bt1aZgiMOiNGjFAOV+zXr59GMbm5uQEo/hJQFdI5OV988QUuX76scs6ONNwOAN566y389ddfaN26NerXr48ePXpg+PDhaNeunbLMggULMGrUKPj7+6Nly5aIiYnByJEjVb4YV9XFixchCALeffddvPvuu2rL3L59G35+fsrbQUFBWu3j5ZdfxqBBg2BlZQV3d3c0adIE9vb2AKD8ciuds6VOZmamSlKu6f6lL/6NGjUqc19oaCj27t2rss3Gxqbc81bq1auncrtGjRoAAH9/f7XbS36Ju3r1KmbOnImff/65zJe7zMxMldvS+Vsl1axZU+VxKSkp8PX1hYeHh9pYAfF1Ff43JFOdima7vHPnDh49eqT2dWvcuLFyRsImTZoot5d+faT2Ku/LbGkdO3ZUGWr87LPPokGDBnj11Vdx9OhRlbKl21+b95B07tWqVauQmpqq8iNOybaYO3cu+vbti4YNGyI8PBw9e/bE888/j6ZNm2r0fErT9pii6fFDUtnrLw31DQ8PL3efhjgWVOThw4cAihNUbV8DdTT57Nnb2+Ojjz7C66+/jjp16uDJJ59E7969MXLkSOW5h9J7TDpftTSpfYnMCZMvIjM1cOBAfPfdd/j+++/xyiuvVFpe22RKSthGjx6Nn376SaOY3Nzc4Ovri9OnT2tUXp158+bh3XffxQsvvID33nsPHh4esLKywuTJk1V6cho3bozk5GT8+uuv2L59OzZt2oQvvvgCM2fOxJw5cwAAgwcPRocOHbBlyxb8+eef+Pjjj/HRRx9h8+bN6NWrV5VjBKCM5Y033kB0dLTaMvXr11e5XfLXZE00aNCg3Onfpf1//PHH5c5qVzop13b/mir5S3tp5f26X9526Ut9YWEhunfvjnv37uGtt95CaGgonJ2dkZqaitGjR5fp1dNVL0JRUREUCgW2bdumts7KfujQVmWvg7ZcXFwQFRWFn376qcwseqXbX5v30KuvvopVq1Zh8uTJaNOmDWrUqAGFQoGhQ4eqtEXHjh2RkpKCn376CX/++Se+/vprfPrpp1ixYgVeeuklrZ9PaGgoAHHJDE2OW5oePyS6eP0NcSyoyOnTp1G7dm1lIqPta1CaNp+9yZMno0+fPti6dSv++OMPvPvuu5g/fz7+/vtvNG/eXFk2Pj5emZCVZMqzVBKVh+9qIjP18ccfw8bGBuPHj4erq6tykonyVCWZeu655/D+++9jzpw5eOaZZzR6TO/evfHll19i//79aNOmjUaPKWnjxo3o0qULvvnmG5XtGRkZZSYTcXZ2xpAhQzBkyBDk5eVhwIAB+OCDDzBt2jTlcDkfHx+MHz8e48ePx+3bt9GiRQt88MEH1U6+pN4zW1tbWdbHkibGcHNz0/n+AwICAADJycllfrFOTk5W3q9Pp06dwvnz5/Hdd99h5MiRyu0lJxbQVkhICP744w/cu3ev3N6vkJAQCIKAoKAgNGzYUKv6vby84OTkhOTk5DL3nTt3DlZWVmV6/PShoKAAgNgjUtEU5tq8hzZu3IhRo0Zh4cKFym05OTnIyMgoU9bDwwOxsbGIjY3Fw4cP0bFjR8yePVuZfGkzi1379u1Rs2ZN/PDDD5g+fXqlSbY2xw9NSK/R6dOny32N5DwW7N+/HykpKSrT0Gv6GpTXDtp+9kJCQvD666/j9ddfx4ULF9CsWTMsXLgQa9asUb5+tWvXrvS14eyGZC54zheRmVIoFPjyyy/x7LPPYtSoUWWmNFbnueeeQ/369ZU9Q5WRErYTJ05oVD8ATJ06Fc7OznjppZdUpr2XpKSklJmiufQ+S//qvGHDhjLnTKSnp6vctrOzQ1hYGARBQH5+PgoLC8sMTatduzZ8fX2Rm5ur0XOpSO3atdG5c2esXLkSN2/eLHN/daYL10TLli0REhKCTz75RDnsSFf7b9WqFWrXro0VK1aovFbbtm3D2bNn8fTTT1e5bk1JX7JLvhcEQajwvVOZgQMHQhAEte9/aT8DBgyAtbU15syZU+Z9KAhCmfdd6Zh79OiBn376SWWq7bS0NKxduxbt27fX+zCre/fuYd++ffD29kbt2rUrLKvNe0jd53Lp0qVlpvIv/fq4uLigfv36Ku8jKSFUl7iV5uTkhLfeegtnz57FW2+9pbZHas2aNTh06FC5cao7fmiqRYsWCAoKwuLFi8vEK+1HrmPBf//9h9GjR8POzg5vvvmmcrumr0F57aDpZ+/Ro0fIyclR2RYSEgJXV1dle0dHR8PNzQ3z5s1Dfn5+medQ8rXR5n1BZMzY80VkxqysrLBmzRr069cPgwcPxu+//17u2HpA/Kf6zjvvIDY2VuN9SMMVT5w4oVH5kJAQrF27FkOGDEHjxo0xcuRIhIeHIy8vD/v27cOGDRtU1pIqrXfv3pg7dy5iY2PRtm1bnDp1Ct9//32Z87R69OgBb29vtGvXDnXq1MHZs2fx+eef4+mnn4arqysyMjJQt25dPPvss4iMjISLiwv++usvHD58WOXX++pYtmwZ2rdvj4iICIwZMwbBwcFIS0vD/v37cf36dbVrk+mKlZUVvv76a/Tq1QtNmjRBbGws/Pz8kJqaih07dsDNzQ2//PJLleq2tbXFRx99hNjYWHTq1AnDhg1TTjUfGBiIKVOm6PjZlBUaGoqQkBC88cYbSE1NhZubGzZt2qTxuVDqdOnSBc8//zw+++wzXLhwAT179kRRURH27NmDLl26YOLEiQgJCcH777+PadOm4cqVK+jXrx9cXV1x+fJlbNmyBS+//DLeeOONcvfx/vvvIyEhAe3bt8f48eNhY2ODlStXIjc3V2UtJl3ZuHEjXFxcIAgCbty4gW+++Qb379/HihUrKu1J0OY91Lt3b8THx6NGjRoICwvD/v378ddff5U5hygsLAydO3dGy5Yt4eHhgSNHjiiXe5C0bNkSAPDaa68hOjoa1tbWGDp0aLlxvvnmmzhz5gwWLlyIHTt24Nlnn4W3tzdu3bqFrVu34tChQ8oJRjQ9fmjKysoKy5cvR58+fdCsWTPExsbCx8cH586dw5kzZ/DHH38A0P+x4NixY1izZg2KioqQkZGBw4cPKyeQiY+PVzmnTtPXICQkBO7u7lixYgVcXV3h7OyMqKgojT9758+fR9euXTF48GCEhYXBxsYGW7ZsQVpamrI93dzcsHz5cjz//PNo0aIFhg4dCi8vL1y9ehW//fYb2rVrh88//xyA9u8LIqNloFkVichA1E35/ujRI6FTp06Ci4uLcODAAUEQVKeaLyk/P18ICQmpcKr50qTpkUvvtyLnz58XxowZIwQGBgp2dnaCq6ur0K5dO2Hp0qUq0zGrm2r+9ddfF3x8fARHR0ehXbt2wv79+4VOnToJnTp1UpZbuXKl0LFjR6FWrVqCvb29EBISIrz55pvK6ZZzc3OFN998U4iMjBRcXV0FZ2dnITIyUvjiiy9U4qzOVPOCIAgpKSnCyJEjBW9vb8HW1lbw8/MTevfuLWzcuLHM61dyOveKaDK9tOT48ePCgAEDlK9DQECAMHjwYCExMVFZpqJlAiqKbf369ULz5s0Fe3t7wcPDQxgxYoRw/fp1lTLlvc8EoexyBhU9N2nq7w0bNii3JSUlCd26dRNcXFwET09PYcyYMcK///5bph3Ki0F63iUVFBQIH3/8sRAaGirY2dkJXl5eQq9evYSjR4+qlNu0aZPQvn17wdnZWXB2dhZCQ0OFCRMmCMnJyWqfa0nHjh0ToqOjBRcXF8HJyUno0qWLsG/fPpUy5b3u0uuwY8eOCvehbqp5Z2dnoU2bNsKPP/6ots6Sr21JmryH7t+/L8TGxgqenp6Ci4uLEB0dLZw7d67M5/f9998XWrduLbi7uwuOjo5CaGio8MEHHwh5eXnKMgUFBcKrr74qeHl5CQqFQuPpxTdu3Cj06NFD8PDwEGxsbAQfHx9hyJAhws6dO5VlND1+lPealPc537t3r9C9e3flsaRp06bC0qVLVcro81ggXWxsbAQPDw8hKipKmDZtmsqSC9q+BoIgCD/99JMQFhYm2NjYqDxvTT57d+/eFSZMmCCEhoYKzs7OQo0aNYSoqKgy7z/p9Y6OjhZq1KghODg4CCEhIcLo0aOFI0eOKMtU9X1BZGwUglDFs3aJiIiIiIhIYzzni4iIiIiIyACYfBERERERERkAky8iIiIiIiIDYPJFRERERERkAEy+iIiIiIiIDIDJFxERERERkQFwkeUqKioqwo0bN+Dq6lrpQpVERERERGS+BEHAgwcP4OvrCyur8vu3mHxV0Y0bN+Dv7y93GEREREREZCSuXbuGunXrlns/k68qcnV1BSC+wG5ubhWWzc/Px59//okePXrA1tbWEOGRgbGNLQPb2fyxjS0D29n8sY0tgzG1c1ZWFvz9/ZU5QnmYfFWRNNTQzc1No+TLyckJbm5usr8xSD/YxpaB7Wz+2MaWge1s/tjGlsEY27my05E44QYREREREZEBMPkiIiIiIiIyACZfREREREREBsDki4iIiIiIyACYfBERERERERkAky8iIiIiIiIDYPJFRERERERkAEy+iIiIiIiIDIDJFxERERERkQEw+SIiIiIiIjIAJl9EREREREQGwOSLiIiIiIjIAGRPvpYtW4bAwEA4ODggKioKhw4dKrdsfn4+5s6di5CQEDg4OCAyMhLbt28vUy41NRXPPfccatWqBUdHR0RERODIkSPK+0ePHg2FQqFy6dmzp16eHxEREREREQDYyLnz9evXIy4uDitWrEBUVBQWL16M6OhoJCcno3bt2mXKz5gxA2vWrMFXX32F0NBQ/PHHH+jfvz/27duH5s2bAwDu37+Pdu3aoUuXLti2bRu8vLxw4cIF1KxZU6Wunj17YtWqVcrb9vb2+n2yRKQ3hYXAnj3AzZuAjw/QoQNgbS13VERERESqZE2+Fi1ahDFjxiA2NhYAsGLFCvz222/49ttv8fbbb5cpHx8fj3feeQcxMTEAgHHjxuGvv/7CwoULsWbNGgDARx99BH9/f5XEKigoqExd9vb28Pb21sfTIiID2rwZmDQJuH69eFvdusCSJcCAAfLFRURERFSabMlXXl4ejh49imnTpim3WVlZoVu3bti/f7/ax+Tm5sLBwUFlm6OjI/bu3au8/fPPPyM6OhqDBg3Crl274Ofnh/Hjx2PMmDEqj9u5cydq166NmjVr4qmnnsL777+PWrVqlRtvbm4ucnNzlbezsrIAiEMh8/PzK3yu0v2VlSPTxTaWx5YtCgwdag1BAACFcntqqoBnnwXWrStE//6CzvbHdjZ/bGPLwHY2f2xjy2BM7axpDApBEHT3zUQLN27cgJ+fH/bt24c2bdoot0+dOhW7du3CwYMHyzxm+PDh+Pfff7F161aEhIQgMTERffv2RWFhoTIxkpKzuLg4DBo0CIcPH8akSZOwYsUKjBo1CgCwbt06ODk5ISgoCCkpKZg+fTpcXFywf/9+WJczVmn27NmYM2dOme1r166Fk5NTtV8PItJOYSHw8ss9kJ7ugJKJVzEBnp6PsXJlAocgEhERkV49evQIw4cPR2ZmJtzc3MotZ1LJ1507dzBmzBj88ssvUCgUCAkJQbdu3fDtt9/i8ePHAAA7Ozu0atUK+/btUz7utddew+HDh8vtUbt06RJCQkLw119/oWvXrmrLqOv58vf3x927dyt8gQExE05ISED37t1ha2tbYVkyTWxjw9u1S4Hu3SvvvE9IKECnTro5zLGdzR/b2DKwnc0f29gyGFM7Z2VlwdPTs9LkS7Zhh56enrC2tkZaWprK9rS0tHLPxfLy8sLWrVuRk5OD9PR0+Pr64u2330ZwcLCyjI+PD8LCwlQe17hxY2zatKncWIKDg+Hp6YmLFy+Wm3zZ29urnZTD1tZW48bWpiyZJrax4dy5o2k5G+i6SdjO5o9tbBnYzuaPbWwZjKGdNd2/bFPN29nZoWXLlkhMTFRuKyoqQmJiokpPmDoODg7w8/NDQUEBNm3ahL59+yrva9euHZKTk1XKnz9/HgEBAeXWd/36daSnp8PHx6eKz4aIDE3Tjys/1kRERGQsZF3nKy4uDl999RW+++47nD17FuPGjUN2drZy9sORI0eqTMhx8OBBbN68GZcuXcKePXvQs2dPFBUVYerUqcoyU6ZMwYEDBzBv3jxcvHgRa9euxZdffokJEyYAAB4+fIg333wTBw4cwJUrV5TnjdWvXx/R0dGGfQGIqMo6dBBnNVSoO90L4nZ/f7EcERERkTGQdar5IUOG4M6dO5g5cyZu3bqFZs2aYfv27ahTpw4A4OrVq7CyKs4Pc3JyMGPGDFy6dAkuLi6IiYlBfHw83N3dlWWeeOIJbNmyBdOmTcPcuXMRFBSExYsXY8SIEQAAa2trnDx5Et999x0yMjLg6+uLHj164L333uNaX0QmxNpanE7+2WfFREvd2auLF3O9LyIiIjIesiZfADBx4kRMnDhR7X07d+5Uud2pUyckJSVVWmfv3r3Ru3dvtfc5Ojrijz/+0DpOIjI+AwYAGzdynS8iIiIyDbInX0RE1TFgANC9O3D0KHDzpniOV4cO7PEiIiIi4yPrOV9ERLrQpw8weDBQsybQuTMTLyIiIjJOTL6IyKQJAnD6tDj1vJMTsHIlUGKeHiIiIiKjwWGHRGTS0tKA9HTAygoIDQU6dRK3v/km4OEhb2xEREREJbHni4hM2qlT4t/69YHatQFpSb/Tp+WLiYiIiEgdJl9EZNKkJCsiQvwbHq66nYiIiMhYMPkiIpMm9XxJSZeUhDH5IiIiImPD5IuITFp5PV9SUkZERERkLDjhBhGZtG7dADc3IDJSvF2y50sQAIVCvtiIiIiISmLyRUQmbd481duNGonrfGVkADduAH5+soRFREREVAaHHRKRWbG3B/75R1z3i4kXERERGRP2fBGRyUpNBVxcgBo1VLdHRckTDxEREVFF2PNFRCbr9dcBd3dg2TK5IyEiIiKqHJMvIjJZ0oyGwcGq269dA958E5g40fAxEREREZWHyRcRmaTcXOD8efG6NMNhyfs++QT45hugsNDwsRERERGpw+SLiExScjJQUCCe71V6Yo3gYMDREcjJAVJS5ImPiIiIqDQmX0RkkqTFlcPDy67lZWUFNGmiWo6IiIhIbky+iMgkSed7lR5yKAkPVy1HREREJDcmX0Rkkkr2fKkjJWXs+SIiIiJjwXW+iMgkDRkinuvVtq36+6WkjMkXERERGQsmX0Rkkp57TryUR+r5unsXyM8HbG0NExcRERFReTjskIjMkre3uN7X7dtMvIiIiMg4MPkiIpNz4QJw7Bjw+HH5ZRQKoG7dsjMhEhEREcmFyRcRmZzPPwdatgRmzJA7EiIiIiLNMfkiIpMjTaJR3jTzksOHgf79gZdf1n9MRERERJXhhBtEZHKktbvKm2ZekpcHbN0K+PvrPSQiIiKiSrHni4hMyu3bwJ074rlcYWEVl23SRPx77RqQkaH30IiIiIgqxOSLiEyK1OsVEgI4OVVc1t1dnHQDAM6c0WtYRERERJVi8kVEJkU636uyIYcS6bwwKWkjIiIikguTLyIyKVISVdlkGxIpSZOSNiIiIiK5cMINIjIpL74IhIYCHTpoVp49X0RERGQsmHwRkUlp00a8aCo8HHB0BOzt9RcTERERkSaYfBGRWYuMBB48AKyt5Y6EiIiILB3P+SIik3HuHPDjj0BKiuaPsbJi4kVERETGgckXEZmMzZuBIUOAWbPkjoSIiIhIe0y+iMhkaDvNvGTTJnHijVde0X1MRERERJriOV9EZDK0nWa+pNOnAQcH3cZDREREpA32fBGRScjLE8/5ArTv+ZKStTNngMJC3cZFREREpCkmX0RkEi5cAAoKAFdXoF497R4bEiL2ej1+DFy+rJ/4iIiIiCrD5IuITII05DA8HFAotHustTUQFiZel84bIyIiIjI0Jl9EZBKkpKkq53sBxUMVpSSOiIiIyNA44QYRmYSxY4GWLQE/v6o9Xkra2PNFREREcmHyRUQmoW5d8VJVzZoBTZoAAQE6C4mIiIhIK0y+iMgidOvGXi8iIiKSF8/5IiKjd+ECMG8e8NdfckdCREREVHVMvojI6O3ZA7zzDvDRR9Wvq6gIePSo+vUQERERaYvJFxEZvZLTzFfHhx+K64S99171YyIiIiLSFpMvIjJ61Z1mXuLmJvZ6cbp5IiIikgOTLyIyelLyVd2eL043T0RERHJi8kVERu3uXeDWLfF6WFj16pKSt//+A7KyqlcXERERkbaYfBGRUZN6qYKDAReX6tVVs2bxIs1nzlSvLiIiIiJtMfkiIqOmqyGHEqkeDj0kIiIiQ+Miy0Rk1F5+GejUCRAE3dQXHg788Qcn3SAiIiLDY/JFREbNzq76sxyW1L49cPEi0Ly57uokIiIi0gSTLyKyKP36iRciIiIiQ+M5X0RktG7cAF54AVi6VO5IiIiIiKqPyRcRGa3jx4FVq4Avv9RtvYIApKYC6em6rZeIiIioIky+iMhoSTMS6vKcLwB4/nmgbl0gPl639RIRERFVhMkXERktaUZCXU0zLwkJEf9yunkiIiIyJCZfRGS09NXzJSVznG6eiIiIDInJFxEZpfx84OxZ8bque76kZO7MGaCoSLd1ExEREZWHyRcRGaWLF4G8PMDZGQgI0G3d9euL64dlZwNXrui2biIiIqLyMPkiIqOUkgIoFGKvl5WOj1Q2NkDjxuJ1nvdFREREhsLki4iMUu/ewIMHwLp1+qlfGnrI876IiIjIUGzkDoCIqDzOzuJFH555BqhTB2jfXj/1ExEREZXG5IuILNKgQeKFiIiIyFA47JCIjM6jR0CnTsD48eKkG0RERETmgMkXERmdpCRg925g40ZxVkJ9uXcP2LULuHNHf/sgIiIikjD5IiKjI81AqOv1vUrr0wfo3Bn46y/97oeIiIgIMILka9myZQgMDISDgwOioqJw6NChcsvm5+dj7ty5CAkJgYODAyIjI7F9+/Yy5VJTU/Hcc8+hVq1acHR0REREBI4cOaK8XxAEzJw5Ez4+PnB0dES3bt1w4cIFvTw/ItKeNAOhNCOhvkjJHaebJyIiIkOQNflav3494uLiMGvWLBw7dgyRkZGIjo7G7du31ZafMWMGVq5ciaVLlyIpKQljx45F//79cfz4cWWZ+/fvo127drC1tcW2bduQlJSEhQsXombNmsoyCxYswGeffYYVK1bg4MGDcHZ2RnR0NHJycvT+nImocobq+eJ080RERGRIsiZfixYtwpgxYxAbG4uwsDCsWLECTk5O+Pbbb9WWj4+Px/Tp0xETE4Pg4GCMGzcOMTExWLhwobLMRx99BH9/f6xatQqtW7dGUFAQevTogZCQEABir9fixYsxY8YM9O3bF02bNsX//d//4caNG9i6dashnjYRVUJKvtjzRUREROZEtqnm8/LycPToUUybNk25zcrKCt26dcP+/fvVPiY3NxcODg4q2xwdHbF3717l7Z9//hnR0dEYNGgQdu3aBT8/P4wfPx5jxowBAFy+fBm3bt1Ct27dlI+pUaMGoqKisH//fgwdOrTcfefm5ipvZ2VlARCHQubn51f4XKX7KytHpottrDv37gE3btgCABo2zIc+X9JGjQDAFpcvA/fu5cPVteLybGfzxza2DGxn88c2tgzG1M6axiBb8nX37l0UFhaiTp06Ktvr1KmDc+fOqX1MdHQ0Fi1ahI4dOyIkJASJiYnYvHkzCgsLlWUuXbqE5cuXIy4uDtOnT8fhw4fx2muvwc7ODqNGjcKtW7eU+ym9X+k+debPn485c+aU2f7nn3/CyclJo+eckJCgUTkyXWzj6rtyxRUeHm1gY1OEPXv0PxNGzZrRuH/fAd98sx8NG97X6DFsZ/PHNrYMbGfzxza2DMbQzo8ePdKonEktsrxkyRKMGTMGoaGhUCgUCAkJQWxsrMowxaKiIrRq1Qrz5s0DADRv3hynT5/GihUrMGrUqCrve9q0aYiLi1PezsrKgr+/P3r06AE3N7cKH5ufn4+EhAR0794dtra2VY6BjBfbWLfGjweyswFn5xi976tFC2skJgI1arRFTIxQYVm2s/ljG1sGtrP5YxtbBmNqZ2lUXGVkS748PT1hbW2NtLQ0le1paWnw9vZW+xgvLy9s3boVOTk5SE9Ph6+vL95++20EBwcry/j4+CAsLEzlcY0bN8amTZsAQFl3WloafHx8VPbbrFmzcuO1t7eHvb19me22trYaN7Y2Zck0sY11x93dMPsZNw549lmga1cbaNp0bGfzxza2DGxn88c2tgzG0M6a7l+2CTfs7OzQsmVLJCYmKrcVFRUhMTERbdq0qfCxDg4O8PPzQ0FBATZt2oS+ffsq72vXrh2Sk5NVyp8/fx4BAQEAgKCgIHh7e6vsNysrCwcPHqx0v0RkfgYOBMaOBf43Jw8RERGR3sg622FcXBy++uorfPfddzh79izGjRuH7OxsxMbGAgBGjhypMiHHwYMHsXnzZly6dAl79uxBz549UVRUhKlTpyrLTJkyBQcOHMC8efNw8eJFrF27Fl9++SUmTJgAAFAoFJg8eTLef/99/Pzzzzh16hRGjhwJX19f9OvXz6DPn4hUCQIQFgb06AFUcAomERERkUmS9ZyvIUOG4M6dO5g5cyZu3bqFZs2aYfv27crJMK5evQorq+L8MCcnBzNmzMClS5fg4uKCmJgYxMfHw73E+KQnnngCW7ZswbRp0zB37lwEBQVh8eLFGDFihLLM1KlTkZ2djZdffhkZGRlo3749tm/fXmYmRSIyrNRU4OxZ4Px5oMTSfHp3+DBw8qTYC2ao4Y5ERERkeWSfcGPixImYOHGi2vt27typcrtTp05ISkqqtM7evXujd+/e5d6vUCgwd+5czJ07V6tYiUi/pMWOGzUC1JxiqTdDhwKXLgHBwUCXLobbLxEREVkWWYcdEhGVJC12LC1+bCjSYs5S8kdERESkD0y+iMhoSMmXlAwZipTsSfsnIiIi0gcmX0RkNKSeJ/Z8ERERkTli8kVERqGwEJBO6ZSz50uoeJ1lIiIioipj8kVERuH+fSAqCqhbFwgKMuy+GzYEbG2Bhw+Bq1cNu28iIiKyHEy+iMgoeHoCu3YB164BVgY+MtnaAqGh4nUOPSQiIiJ9kX2qeSIiY/DRR2IS9sQTckdCRERE5orJFxEZhfx8MfmRS69e8u2biIiILAOHHRKRUWjaVFzk+MQJuSMhIiIi0g8mX0Qku8ePgfPngcuXAW9veWIoKADWrgWmTxd74YiIiIh0jcMOiUh2584BRUVArVpAnTryxGBtDbzyijjj4XPPAWFh8sRBRERE5os9X0Qku5KLKysU8sSgUKiu90VERESka0y+iEh2UrJj6MWVS5OSL043T0RERPrA5IuIZFey50tOUvLHni8iIiLSByZfRCQ7KdmRO/lizxcRERHpE5MvIpJVYSHQowfQqpXxJF+XLgHZ2fLGQkREROaHyRcRycraGvjmG+DwYaBGDXljqV1bvAgCcOaMvLEQERGR+eFU80REJWzdCvj4APXqyR0JERERmRsmX0Qkq5s3xfW97OzkjkTUpo3cERAREZG54rBDIpLVkCGAs7PY40RERERkzph8EZFsBEGc6bCgAAgMlDsa0f37wNy5wEsvyR0JERERmRsmX0Qkm5s3xWTH2hoIDZU7GpGNDTBrljgJSHq63NEQERGROWHyRUSykdbTatAAcHCQNxaJq2txLxwXWyYiIiJdYvJFRLIxlsWVS4uIEP8y+SIiIiJdYvJFRLIx1uRLikfqmSMiIiLSBSZfRCQbKbmRepqMhZR8seeLiIiIdInrfBGRbIYPBxo2BJo3lzsSVSWHHQoCoFDIGw8RERGZByZfRCSbuDi5I1CvUSNx1sPHj4G0NMDbW+6IiIiIyBww+SIiKsXODkhOBurVE5MwIiIiIl3g1woiksW5c+L6XsHB4l9jExwsdwRERERkbjjhBhHJYuZM8XyvTz+VOxIiIiIiw2DyRUSyMNZp5iUXLwIjRwLDhskdCREREZkLDjskIoPLzQXOnxevG9s08xKFAoiPB+ztgYICnvtFRERE1ceeLyIyuHPngMJCwN0d8PWVOxr1goIAJycxUbx4Ue5oiIiIyBww+SIig5OGHEZEGO8aWlZWQJMm4nUutkxERES6wOSLiAzu1Cnxr7Ge7yWRhkRK8RIRERFVB5MvIjK4kj1fxkxKDtnzRURERLrAU8iJyODGjwdatAA6dpQ7kopJySGTLyIiItIFJl9EZHAxMeLF2IWHi+d+2diIMx4SERERVQeTLyKictSpA2RnAw4O4u38fHnjISIiItPGc76IyKD+/RfYtg1IS5M7ksopFMWJFxEREVF1MfkiIoP6+mtxyOEnn8gdCREREZFhMfkiIoMylZkOJXv2AG3bAoMHyx0JERERmTqe80VEBiMIprPGl8TGBti/H/DzkzsSIiIiMnXs+SIig0lLA9LTxRkEGzeWOxrNNGki/k1NBe7flzcWIiIiMm1MvojIYKRer/r1AUdHeWPRlJsbUK+eeP3MGYW8wRAREZFJY/JFRAYjne9lKkMOJdL5aUy+iIiIqDqYfBGRwZja+V4SKd4zZ+SNg4iIiEwbky8iMpg33wS++w4YMEDuSLQj9XydPs2eLyIiIqo6znZIRAbTuLHpTLRRUkQEEBAA+PvLHQkRERGZMiZfZPYKC8W1mm7eBHx8gA4dAGtruaPSjqk/B1OPv2lTICUF2LGjCNu2+cHZWYEuXXT7HPT9GhmiDUz9ORQWArt2KbB7t37amIjIWJj68Vrah0keswWqkszMTAGAkJmZWWnZvLw8YevWrUJeXp4BIqOSNm0ShLp1BUFcYUq81K0rbtclfbaxoZ6Dvph6/IKg/+dg6vUbYh+mXj8ZF/5fNn9s4/KZw/HUGI/ZmuYGTL6qiMmX8du0SRAUCtUPJiBuUyh0+wHVVxsb8jnog6nHLwj6fw6mXr85PAdzeJ+Sdvh/2fyxjdUzh+OpsR6zNc0NFIIgCPL2vZmmrKws1KhRA5mZmXBzc6uwbH5+Pn7//XfExMTA1tbWQBFatsJCIDAQuH5d/f0KBVC3LnD5sm66qPXRxoZ+Drpm6vEDlT8HAKhVC1izBujZs3hbQgLw4IH68k5OxWULC8XhGHfulF+/v3/xa7R7N3D3rvpy1tZA377Ft//5B7hxAxg3TlzYWh2pDdatA27dKj+GZ54BbP43SP3IEeDq1eL7Cgsr3gcgvkbLl5dt5+howNlZvH7qFHDhQtnHVqX+Ll2AmjXF6+fPFy9xoE7btsATT5j2+5S0x//L5o9tXJam/9OWLwe8vIDOnYu3b9sGPH6s/jFubkC3bprV7+UlDkWUjqd//w1kZKgv6+AAxMQU3961C7h9W7P/a3IcszXODQySCpoh9nwZtx07yv4iou6yY4du9qePNjb0c9A1U49fEDR/DgEBqo9r3Fizstq+Rp06lV/GyUk1hl69NKsbEISOHSu+Pzu7uN5RozSvt7LL5cvF9b7xhu7qPXSouN6PPqq47Kefmv77lLTH/8vmj21clqb/cwBBePJJ1ceWHuJX8hIRoV39JY+nzZuXX87bWzWG9u01j1+OY7amuQEn3CCzdPOmbsvJwdSfg6nHD2geW926qrdbtAA8PNSX9fbWvn6pXEQEUFCgvoyDg+rtsDBxkpDz5yuv38MDaNeu/PutSixK0qCBatk7dzTbR8OG4i+eJdnbF18PDFQfQ1Xqd3Ep3u7nV/FzK++X3NKM+X1KRKQJTY9jDRuKE02V9MQT4qy/6oSEaFd/yXLNmokjQtSpVUv1dkSE2POlyf8EYz5mM/kis+Tjo9tycjD152Dq8QOax/b++6q316zRbf1SuaVLNSsPAJ98AvTuLQ7Bq8ykSarDSyryzjviRbJzp2b7WLmy4n1MmCBeSqtu/SNGiJfy7NxZed2Acb9PiYg0oelxTN3xdPNm3dVfsty332r2GAD44gvN/ycY8zGbiyyTWerQQeyNUJSzJq5CIZ5L06GDYePShqk/B1OPH9D/czD1+g2xD1Ovn4jIWJjD8dQcjtlMvsgsWVsDS5aov0/6wC5ebNwn0Jv6czD1+AHV51D6QK+L52Dq9RtiH6ZePxGRsTCH46k5HLOZfJHZGjAA2Lix7Aewbl1x+4AB8sSljQEDgOnTy243lecgtYGvr+p2U4kfKH4Ofn6q23X1HEy9fkPsQ676vb1N531KRKQJ6XhnU+rEI1M5XhtqH/rEqeariFPNm4asLKBGDdVtaWlA7dq63Y8+23jBAuCtt4pvd+oEJCYa9686pRlipXt9KywEduwowLZtJ9CrVzN06WKj0+eg79fIEG1g6s9BauPXXsuEn19NfP65FRo10l39ZDz4f9n8sY3LV1goLvORmwt8+qk46YWpHa+lfejz/7K2NM0NOOEGmbUzZ8S/vr6AnR1w5Qpw9qzuky99SkkR/7ZvD+zdK870Y2qJi7W15hM6GCtra6BTJwHZ2ano1ClS522g79fIEG1g6s9BauP58/f+7wsbB4cQkflJSRETL0dH4LXXVGe01RVD/c/R5/9lfeF/FjJr0uKq4eHixc4OSE2VNyZtrVghLpYrzXR3/rx40DQVSUnibHrr1skdCREREZ06Jf5t0kQ/iRdVjC85mTUp+YqIAFavBrKzgeHDZQ1JawqF2GUfGQm4u4vd7OfOyR2V5vbtAz77TLvpZInklp8PXLwodxRERLpX8rsRGR6TLzJreXlit3p4uLhYX+kTTE2JQlF8oJR+tTIFUqzh4fLGQaSpjAw71Kxpg9BQ0+plJiLSRMlRQWR4TL7IrC1fDjx4YHq9XZI//gCeeUYcegiIK87Xrw8UFckblzb4CxuZmho18uDkZHq9zEREmuCPovJi8kVmz9paPNdLEIAXXwRatACuXZM7Ks3s3w/88gtw6JB4e+lS4MIFYORIeePSBn9hI1OjUABNmogTAUvvXyIiczF0KNCvn/iDLhmeCQ/CItKOQgEcPCjOgHjqlLgCurGTfp2Seo3KW9HdWN2+LV4UCiAsTO5oiDQXHi7gn39Ma4gvEZEmZs+WOwLLxp4vMltffCEmLZ9+WrxN6n0xlV+zy+s1EgTTGHooxR8cLK4pQmQqmjQR/5rKsYKIiEyDUSRfy5YtQ2BgIBwcHBAVFYVD0hgrNfLz8zF37lyEhITAwcEBkZGR2L59u0qZ2bNnQ6FQqFxCQ0NVynTu3LlMmbFjx+rl+ZE8jh0TvzhlZBRvM6UJKx4/Lp5trWTyNWgQ4OEh9uIZu+Rk8S/P9yJTEx4uDjs0hWMFEZGmzp8Hrl8Xf8QleciefK1fvx5xcXGYNWsWjh07hsjISERHR+P27dtqy8+YMQMrV67E0qVLkZSUhLFjx6J///44fvy4SrkmTZrg5s2bysvevXvL1DVmzBiVMgsWLNDLcyR5qDuh1JR6vs6eFXu3atUCvL2Ltz94ICaUpvAcxo0D0tKARYvkjoRIO2Fh4jeTq1eBrCyZgyEi0pHJk8XTLr7+Wu5ILJfsydeiRYswZswYxMbGIiwsDCtWrICTkxO+LWdRoPj4eEyfPh0xMTEIDg7GuHHjEBMTg4ULF6qUs7Gxgbe3t/Li6elZpi4nJyeVMm5ubnp5jmR4RUXiuV2AavIl9cCcPQsUFBg+Lm2UHHJY8lwv6fmYyi/ytWsDQUFyR0GkHQ8P4KWXgDlzxFkPiYjMgfTdgedhy0fWCTfy8vJw9OhRTJs2TbnNysoK3bp1w/79+9U+Jjc3Fw4ODirbHB0dy/RsXbhwAb6+vnBwcECbNm0wf/581KtXT6XM999/jzVr1sDb2xt9+vTBu+++Cycnp3L3m1tiwZes//0Ump+fj/z8/Aqfp3R/ZeVIdy5dArKzbWFnJyAwsADSS+/nBzg72yA7W4GzZ/NRajRqlemjjdPTreDsbIUmTYqQn198glfjxgoANjh1qgj5+fxWaEj8LJu/km38xRclt8sUEOkFP8vmj21cVkYGcP26LQCgYcN8sziuGVM7axqDrMnX3bt3UVhYiDp16qhsr1OnDs6Vs7hKdHQ0Fi1ahI4dOyIkJASJiYnYvHkzCkv8NBkVFYXVq1ejUaNGuHnzJubMmYMOHTrg9OnTcHV1BQAMHz4cAQEB8PX1xcmTJ/HWW28hOTkZmzdvVrvf+fPnY86cOWW2//nnn+UmbKUlJCRoVI6q79AhbwBR8PXNwp9/7lS5r27dDnj40Ba//34cly7d1+l+ddnGwcFAfDyQl2eN338vfn9nZNQA0BnHjuXjt9+2G+0MiHfuOGDlykiEhGRg2LBkucPRKX6WzR/b2DKwnc0f27jY2bMeADrA0/MR9u0zr9fFGNr50aNHGpVTCIJ8p9zduHEDfn5+2LdvH9q0aaPcPnXqVOzatQsH1cwocOfOHYwZMwa//PILFAoFQkJC0K1bN3z77bd4/Pix2v1kZGQgICAAixYtwosvvqi2zN9//42uXbvi4sWLCAkJKXO/up4vf39/3L17t9Lhivn5+UhISED37t1ha2tbYVnSjfnzrTBrljWGDy/C6tWqvUNFRYCVjgfcGrKNHz8G3N1tIAgKXLuWj1K/XRiN335ToH9/G0RECDh61MjHeGqIn2XzV7KNra1t8d9/wM2bCrRty7PTzQk/y+aPbVzWl19aYeJEa/TsWYSffzaPkTPG1M5ZWVnw9PREZmZmhbmBrD1fnp6esLa2Rlpamsr2tLQ0eJecYaAELy8vbN26FTk5OUhPT4evry/efvttBAcHl7sfd3d3NGzYEBelqePUiIqKAoByky97e3vY29uX2W5ra6txY2tTlqqnZk1xquiWLa1ga2u4UxsN0ca2tkD9+uJiy+fO2aJuXb3ursrOnhX/Nm2qMLv3PT/L5s/W1hYnT9qiVSvAy0tcr47MDz/L5o9tXEz6vxwRYdjvRoZgDO2s6f5lfeXt7OzQsmVLJCYmKrcVFRUhMTFRpSdMHQcHB/j5+aGgoACbNm1C3759yy378OFDpKSkwMfHp9wyJ06cAIAKy5DpePVVccKKuLjyyxjzNKv79oknw772mvr7u3YFevYE1PweYDTKW6OMyFSEhYmT3dy5I87aSURkyqTJNrj8i7xk7fkCgLi4OIwaNQqtWrVC69atsXjxYmRnZyM2NhYAMHLkSPj5+WH+/PkAgIMHDyI1NRXNmjVDamoqZs+ejaKiIkydOlVZ5xtvvIE+ffogICAAN27cwKxZs2BtbY1hw4YBAFJSUrB27VrExMSgVq1aOHnyJKZMmYKOHTuiadOmhn8RyKCys4Hu3cVfgG7cABwd5Y6orH//FeMrb5bA5csNG09VqJvqn8iUODoW9zKfPg2jHeJLRKSJiROB1q2BJ5+UOxLLJnvyNWTIENy5cwczZ87ErVu30KxZM2zfvl05CcfVq1dhVeIEnZycHMyYMQOXLl2Ci4sLYmJiEB8fD3d3d2WZ69evY9iwYUhPT4eXlxfat2+PAwcOwMvLC4DY4/bXX38pEz1/f38MHDgQM2bMMOhzJ/3Izwesrcs/r8vJSfwylZEhJjgtWhg0PI2Yeq9Rfj4gzZnDX9jIlIWHi8eLU6fEHmciIlM1aJB4IXnJnnwBwMSJEzFx4kS19+3cuVPldqdOnZCUlFRhfevWravwfn9/f+zatUurGMl0bNwors8zbJj6RQQVCvEL1c6d4hcqY0y+NB0acPeuuB6RricQqa4LF8QEzNUVKLXCA5FJiYgAtmwxjUXNiYjI+BnZVzai6jt9Gnj0SOz9Ko+U1BjjFypBqLznSxCAwEBxIoArVwwVmeZu3BATr9ILRBOZGlNb1JyISJ3jx8Ufne/rdoUdqgImX2R2NDnXSLrPGJOvmzfFg6O1NcpdBFqhAKSRtsb4pbBbNyAzE/j9d7kjIaoe6Vhx5oy4TAURkSn67DOgSxfxL8mLyReZHSmhqmjInjH/mi3F1KAB4OBQfjlj7r0DVBNEIlPVoAEwbRrw5ZdAoXksi0NEFoiTYBkPozjni0hXHj4ELl8Wr2vS85WaKvYy1ayp/9g0VVAANG1a+flexp58EZkDGxtg3jy5oyAiqrrCQkCaLoGTYMmPyReZlTNnxL/e3oCnZ/nl3NyAdu3EnpmsLONKvp5+WrxUtg6ZsfbeZWcDrVqJi1x//71xr0VGRERk7i5fBh4/FkfThITIHQ0x+SKzos0U7Xv36jeW6qpsogrp16vkZCAvD7Cz039MmkhKEqeZv3+fiReZh8xM4NAh8XP29NNyR0NEpB3pR9qwsIonIyPD4DlfZFZ8fIC+fYGnnpI7kqoRBM3PK6lbF6hRQxymeP68fuPSBseVk7nZuxfo0QN46y25IyEi0p6prx1qbtjzRWYlJka8aCMjw3gmhrh4UTzfq1UrYPfuinu/FApg5EgxYatoYg5D40GezI2x9jITEWlCk4nIyHCYfJHFSkkB2rQRe47S041jParTp4GcHHFstibxGOOUsZouEE1kKvz9xfNEs7LEXmb+sEBEpuStt8QRQe3byx0JARx2SGYkJ0ecvbCyiSokdesC9+6J5ybduKHf2DRlDkP22PNF5kahMN4JboiIKtOiBfDKK+JEWCQ/Jl9kNvbvFxOqVq00K29vDzRsKF43lunaqzI04MED4Ngx/cSjrbt3gVu3xOs8yJM5MeaF2YmIyHQw+SKzIf0i7e+v+WOM7ddsbXuNMjLE4VAtW4pJmNzu3gWaNwcaNwZcXOSOhkh3uK4eEZmiI0eAr78uXoqH5Mfki8xGVYa7GdOv2bm5xbMWatrz5e4uzvAIFC+gKKfQULEXjgd5MjfG9kMNEZEmNm4ExowBPv9c7khIwuSLzEZVhuxJZY3hC9W5c+I08zVrFidUmjCmBFJiDJOXEOlS8+bAN98A69fLHQkRkeY406Hx4WyHZBYEoXo9X0lJYuIj5+KDCgUwYADg5KRd8hIRASQkGEcCWVQEWPEnHTJDNWoAL7wgdxRERNrhJFjGh8kXmYWrV8VznmxtiyfR0ERwMNCzJ9CokTi9u5znKTVtCmzapP3jjKXnSxAAb2/A1xf47TfAz0/eeIiIiCxZVhbw33/idSZfxkPr5CswMBAvvPACRo8ejXr16ukjJiKtSb0+oaFiAqYpa2tg2zb9xGQoxpJ8XbsG3LkjTt3v5SVvLET6kJIC/Pmn+P5+9lm5oyEiqph0/rWvL+DhIW8sVEzrAUKTJ0/G5s2bERwcjO7du2PdunXIzc3VR2xEGgsIAF5/HRgxQu5Iqk6bNcpKCgsThymmpYnJj1xKJsB2dvLFQaQvu3cD48cDK1bIHQkRUeV4vpdxqlLydeLECRw6dAiNGzfGq6++Ch8fH0ycOBHHjGWxIbI4ERHAJ5+Iq7hXRWYmkJys25i0kZUlrlFWsybw8KF2j3V2BqZOBRYvBmxkHEjMceVk7oyll5mISBPSj6L8v2xcqnxqfIsWLfDZZ5/hxo0bmDVrFr7++ms88cQTaNasGb799lsIVfkJn0gGO3aIU7b36ydfDNKXOReXqp139uGHwKRJYvImF/7CRubOWHqZiYg08e67wF9/cbIgY1Pl5Cs/Px8//vgjnnnmGbz++uto1aoVvv76awwcOBDTp0/HCFMe/0UmpaAA2LULuHevao9v1Ej8e+ECkJOju7i0YQ6JC39hI3Pn7CxO0gOw94uIjJ+XF9C1q/jDERkPrQcpHTt2DKtWrcIPP/wAKysrjBw5Ep9++ilCQ0OVZfr3748nnnhCp4ESlef8eaBzZ7HHKCtL+zWmfHzEHqP798W1tpo100eUFatu4pKfL06Xf+MG0KuX7uLSVEEBcPaseN2UE0iiyoSHixNvnD4NdOkidzRERGRqtO75euKJJ3DhwgUsX74cqamp+OSTT1QSLwAICgrC0KFDdRYkUUVKnmtUlcV9FQr5F1uubs/XhQti0jh4cNUm7aiurCygb1+gRQtx8hMicyX3sYKISBMnTgDTpgG//ip3JFSa1j1fly5dQkAl366cnZ2xatWqKgdFpA1dDHcLDxdnMpNjKJEgVP85NGggTrH/8KG4pkdgoM7C04iHB/Djj4bdJ5EcOOkGEZmCnTvF88EHDAB695Y7GipJ656v27dv4+DBg2W2Hzx4EEeOHNFJUETa0MX5UtJj5fhClZYGpKcDVlZA48ZVq8PWtvix/FJIpD9du4rnmP7yi9yREBGVj+dhGy+tk68JEybg2rVrZbanpqZiwoQJOgmKSBu66vkqWZehTZ0qzkbk6Fj1OuR8DnfvAkVFht8vkaF5egIdOwK1askdCRFR+bj8i/HSethhUlISWrRoUWZ78+bNkZSUpJOgiDSVnQ1cuiRer84BJiICeOUVsQ5BqNq5Y1Xl7Q189FH165FzOFTbtsDNm+KUtlFRht8/ERERiYqKgDNnxOucBMv4aJ182dvbIy0tDcHSfLv/c/PmTdjIucIrWaSkJDFZql1bvFRVjRrAihW6i0sOck0E8OgRcPGi2A6cbIMswe7dwE8/iT80DB4sdzRERKquXBF/nLa3B+rXlzsaKk3rYYc9evTAtGnTkJmZqdyWkZGB6dOno3v37joNjqgy/v7A8uXA9OlyR1J1hw/rZsFWqefr3Dlx6nlDOXtWTLw8PYE6dQy3XyK5/PMPsGiRmIARERkb6UfYxo0B9osYH62b5JNPPkHHjh0REBCA5s2bAwBOnDiBOnXqID4+XucBElXE2xsYO1Y3deXkiD1pBQVA69a6qbMyRUXiGmWPHgHJyUDDhlWvq149YMECwy+mWHLCE0MO1ySSC2c8JCJjJp0FxPO9jJPWyZefnx9OnjyJ77//Hv/++y8cHR0RGxuLYcOGwdbWVh8xEhnEjz8Co0YBnTqJU7QawuXLYuJlbw+UGsmrNSsr4M03dROXNjijElkaaYjv2bNiLzP/9RGRMXn7bWD4cPHHZDI+VeqMdHZ2xssvv6zrWIi0tmaN2FvUokX1u9ZL/pptqEk3pF/OTXlogC6m+icyJfXqAS4u4rp6Fy4YvreZiKgiCgXPwTZmVf66l5SUhKtXryIvL09l+zPPPFPtoIg0kZ4OPP+8eD0rC3B1rV59jRuLvUfp6cCtW4CPT/VjrIzUa6SrxCU9Xey1y8sDhg3TTZ2V4XS2ZGmsrMT3+4ED4meYyRcREWlK6+Tr0qVL6N+/P06dOgWFQgFBEAAAiv91ExQWFuo2QqJySF/6AwOrn3gB4hpb9esD58+LdRsi+dJ14vLvv8CzzwIhIYZJvoqKgJEjxS+gTZrof39ExkJKvk6fBoYMkTsaIiLR+fPAO++Is7G+8Ybc0ZA6Ws92OGnSJAQFBeH27dtwcnLCmTNnsHv3brRq1Qo7DXWiDBH0M9xNqstQJ9Lr+jlI9Vy6JE4zq29WVsC8ecAvvwBubvrfH5GxkH4wSUmRNw4iopKOHgU2bgS2bJE7EiqP1snX/v37MXfuXHh6esLKygpWVlZo37495s+fj9dee00fMRKppY+JHqS6DLFWVl6eOMNhyf1Wl5eXuN6ZIBTPdkREuvf880BqKvD993JHQkRUjJNgGT+tk6/CwkK4/m+Ml6enJ27cuAEACAgIQLL0TZLIAPRxrpEhe74KC4EvvgBefx2oW1d39RryOSQni+fH/W/0MZHF8PAAfH25vAIRGRdOgmX8tD7nKzw8HP/++y+CgoIQFRWFBQsWwM7ODl9++SWCqztXNpGGBEE/B5gnnwQ+/hj43xJ2euXoCIwZo/t6w8OBxETD9N699BKwdy+wbh3PeyEiIpIbJ8EyflonXzNmzED2/04mmTt3Lnr37o0OHTqgVq1aWL9+vc4DJFLn+nUgM1Ocnr1RI93V6+dn+ieoGqrnq2QC3LixfvdFZIxWrxbPqxg1ChgwQO5oiMjSPXggrh8KMPkyZlonX9HR0crr9evXx7lz53Dv3j3UrFlTOeMhkb55egIJCWISZmcndzRVs307UKMGEBkJODnprl5DnbeWmgpkZADW1rpNgIlMxYkTwM8/i7OLMvkiIrlJ53p7e4vfk8g4aXXOV35+PmxsbHC61E/qHh4eTLzIoBwdgW7dgNGjdV/3tWvAjz8Cu3bpvu6Sxo0D2rYFjhzRbb0REeJMR/qefFQ6DDRqBNjb63dfRMao5MLsRERyu35d/H/MXi/jplXyZWtri3r16nEtLzJr0vlLy5frbx8PHgBXrojXdX2QdHICBg7Uf28UZ1QiS2fopSmIiCoycCDw8CHwww9yR0IV0Xq2w3feeQfTp0/HvXv39BEPkUaWLAHWrhWHvemaIYbtnTkj/vX1FWdNM0U8qZcsXViY+PfmTSA9Xd5YiIgA8Vx4Djk0blqf8/X555/j4sWL8PX1RUBAAJydnVXuP3bsmM6CI1KnoAB46y0gNxe4eBFwd9dt/dKv2efPi/vQx5A6fScu584BP/0krvkVG6uffUjJKaezJUvl6goEBYknuJ8+DXTqJHdERERk7LROvvr166eHMIg0d/GimBQ5OYlffHTNz0+cCCMzU1zHqmlT3e9D38nX8ePA22+L55TpK/mKiwOOHQNattRP/USmIDxcTL5OnWLyRUTyuXMH6NFD/M6yahVgpfXYNjIUrZOvWbNm6SMOIo1JiUuTJvo5uCgUYm/O3r3ivvSRfOm716jkRACCoJ+FYJ97TrwQWbKICHFdvawsuSMhIkt26pQ4A2tWFhMvY8fmIZNjiNXb9X3el757vho1Esd9Z2WJsx8RkX688444gc706XJHQkSWzBDfjUg3tO75srKyqnBaec6ESPpmiFn29Jl8CYI4o+Lp08Un7OuanZ2YgJ05Iz4Hf3/d1n/kCJCTI/YKurnptm4iU6LLNfqIiKqKyZfp0Dr52rJli8rt/Px8HD9+HN999x3mzJmjs8CIymOIA8zTT4vnfkVG6r5uhQLo0kW86FN4uJh8nT4NxMTotu4PPwQ2bQIWLhTP/SIiIiL5cPkX06F18tW3b98y25599lk0adIE69evx4svvqiTwIjUefxYnHAD0O8BJjBQvJiyiAhg/Xr99N5xmnmiYm+9Bfz2m/hjRHS03NEQkaURBPZ8mRKdnfP15JNPIjExUVfVEanl4ACkpIhfdOrUkTuaqtm0CYiPB1JT9bsfKTFKStJtvY8fAxcuiNd5kCcC/vtP7GX+91+5IyEiS3T1qri4sq0t0KCB3NFQZXSSfD1+/BifffYZ/Pz8dFEdUbkUCrFHKiZGPzP4lXTgADBvHvD337qt9+OPgZEjgX/+0W29pXXuLE45r+v9nDsHFBWJi0N7e+u2biJTVHJ2USIiQ7t7FwgNFY9FtrZyR0OV0XrYYc2aNVUm3BAEAQ8ePICTkxPWrFmj0+CI5LRhA7BoEfDqq8BTT+mmzqIi8RdyQP+9RjVqAM2a6b7ekkMO9Z0AE5kC6bOsr9lRiYgq0rIlcPYswDnvTIPWydenn36qknxZWVnBy8sLUVFRqFmzpk6DIypt3jygoAB4/nn9LLBckvSFSpe/Zv/3nzg0wM4OqF9fd/Uakr7XKCMyNVLP19mz4vHJRuv/rERE1WdtLXcEpAmt/0WMHj1aD2EQaeaLL8Rzpbp313/ypY+hRFJdoaGGGRrw11/ipBtPPgnoai4cTrZBpCooSJxy/tEjcUKg0FC5IyIiSyIIHIliSrQ+52vVqlXYsGFDme0bNmzAd999p5OgiNS5f794koomTfS/v7Aw8WB25w6QlqabOg3da3T6NPD118Dvv+uuztmzgWXLgK5ddVcnkSmzsio+JvG8LyIypPx8oHZtoE0b8XsSGT+tk6/58+fD09OzzPbatWtj3rx5OgmKSB3pXKl69QyzsK+TExASIl7X1RcqQ/ca6WOx6NatgfHjOaMSUUktW3IoLhEZ3oUL4oQbp08D7u5yR0Oa0HrY4dWrVxGkZrxXQEAArl69qpOgiNSR41yj8HBxGNGpU7rp6TH0IojSa3XxojhFvKOjYfZLZGmWL5c7AiKyRCW/V3DooWnQuuerdu3aOHnyZJnt//77L2rVqqWToIjUkeNcI11PuvH77+KlbVvd1FeZ2rUBT09xPLgu1vvavx9YvRpITq5+XURERFQ9XFzZ9GidfA0bNgyvvfYaduzYgcLCQhQWFuLvv//GpEmTMHToUH3ESATA8L1GAPDSS+J+v/hCN/X5+wO9eolrZBmCQqHbiUO+/x6IjQW++ab6dRGZo8JCcUkJIiJDkOO7EVWP1snXe++9h6ioKHTt2hWOjo5wdHREjx498NRTT/GcL9KrixfFv4b8dadePfGAZmdnuH3qmi7XIOI080Tl69kTcHUFTpyQOxIishScgdj0aH3Ol52dHdavX4/3338fJ06cgKOjIyIiIhAQEKCP+IiUrl4VEzBpEgxT88MPwLlzQJ8+QKtWhtuvdEC+fbt69QgCD/JEFcnNFc+tPHUKaNFC7miIyNxlZwOXLonX+aOo6ajyUpANGjRAA053RgZkYyPP+jnffw8kJorD7Tp0qHo969YBP/8snoNlyORr2DBg6NDqzxB56xZw7544rXbjxrqJjcicREQAO3dyunkiMoyMDODpp4GbNwEvL7mjIU1pPexw4MCB+Oijj8psX7BgAQYNGqSToIiMybZtwKpVwJ491atHrl4jV1fdTM0vDTls0ABwcKh+fUTmRh9LOxARlcfPD/jlF+DIEbkjIW1onXzt3r0bMTExZbb36tULu3fv1klQRKXNmQOMHAns22f4fetiwoqSQwNMdcgeZ1QiqpguJ7chIiLzpHXy9fDhQ9ipmX3A1tYWWVlZOgmKqLRffgHi44G0NMPvWxcTVkgLRNepI8/QgJUrgS5dgO++q3odnFGJqGLSZyM1Fbh/X95YiMj8ZWbKHQFVhdbJV0REBNavX19m+7p16xAWFqaToIhKKiwsTl7k+OIv7fPcOSAvr2p1yN1rdPmyeC7KwYNVr2P+fGD7dvEcMiIqy81NnCEVYO8XEelf48biep66WMeTDEfrCTfeffddDBgwACkpKXjqqacAAImJiVi7di02btyo8wCJLl0CcnIAR0cgONjw+69XTzxv6sED4Pz5qiWAcvca6aL3zttbvBBR+Xr1EmcWtbeXOxIiMmfp6eJEG4C4hiiZDq2Trz59+mDr1q2YN28eNm7cCEdHR0RGRuLvv/+Gh6FWjiWLIiUMYWGAtbXh9y8tVLx/v/hrdlUSqHPnxL9y9XyVPBdFEMTnRES6t2KF3BEQkSWQeteDgsQfiMl0aD3sEACefvpp/PPPP8jOzsalS5cwePBgvPHGG4iMjKxSEMuWLUNgYCAcHBwQFRWFQ4cOlVs2Pz8fc+fORUhICBwcHBAZGYnt27erlJk9ezYUCoXKJbTUHOU5OTmYMGECatWqBRcXFwwcOBBpcpxQRJUyhrWlIiLEhOXatao9/tdfxV6zfv10GpbGQkPFxDUjQzwfRVsHDgAzZgAJCToPjYiIiLQk94gaqroqJV+AOOvhqFGj4Ovri4ULF+Kpp57CgQMHtK5n/fr1iIuLw6xZs3Ds2DFERkYiOjoat8tZEXbGjBlYuXIlli5diqSkJIwdOxb9+/fH8ePHVco1adIEN2/eVF727t2rcv+UKVPwyy+/YMOGDdi1axdu3LiBAQMGaB0/6Z90gJFzlr333xeHHb75ZtUeb20tTtEuV+ewvT3QsKF4vSrnoiQkAB98IK55RkQVEwTg+nXxLxGRPhjDD9NUNVolX7du3cKHH36IBg0aYNCgQXBzc0Nubi62bt2KDz/8EE888YTWASxatAhjxoxBbGwswsLCsGLFCjg5OeHbb79VWz4+Ph7Tp09HTEwMgoODMW7cOMTExGDhwoUq5WxsbODt7a28eHp6Ku/LzMzEN998g0WLFuGpp55Cy5YtsWrVKuzbt69KCSTp16NH4sK+ch5gvLwAZ2f59q8L1ZkGmwd5Is0UFIgnwPv7AzduyB0NEZkrY/hhmqpG43O++vTpg927d+Ppp5/G4sWL0bNnT1hbW2NFNQa45+Xl4ejRo5g2bZpym5WVFbp164b9+/erfUxubi4cSq3w6ujoWKZn68KFC/D19YWDgwPatGmD+fPno97/pqE6evQo8vPz0a1bN2X50NBQ1KtXD/v378eTTz6pdr+5ubnK29K0+vn5+cjPz6/weUr3V1aO1Nu6FXj8WOw9MtaXsKI2/vFHBX791Qr9+hVhwAD5fgpv3NgKdepYIT+/CPn5RVo99uRJGwAKhIYWID/fcn/O52fZ/OmijT09bXD3rgLHjxegdm3L/bwYM36WzZ85t7EgAKdPi/+XGzXKN9rvRoZgTO2saQwaJ1/btm3Da6+9hnHjxqFBgwZVDqyku3fvorCwEHXq1FHZXqdOHZyTZigoJTo6GosWLULHjh0REhKCxMREbN68GYWFhcoyUVFRWL16NRo1aoSbN29izpw56NChA06fPg1XV1fcunULdnZ2cHd3L7PfW7duqd3v/PnzMWfOnDLb//zzTzg5OWn0fBN4woxJ+/77UJw5UwsvvXQawcHqF9dQ18b/93+R+PPPQBQUXISDw1l9h1muyEhxvS8A+P13zR+Xn2+F8+efBqDA7duJ+P33HL3EZ0r4WTZ/1WljD49WAPywadM5FBam6C4o0jl+ls2fObZxXp4VOnUKw9Wrrrh06QCuXeOPPMbQzo8ePdKonMbJ1969e/HNN9+gZcuWaNy4MZ5//nkMHTq0ygFW1ZIlSzBmzBiEhoZCoVAgJCQEsbGxKsMUe/XqpbzetGlTREVFISAgAD/++CNefPHFKu132rRpiIuLU97OysqCv78/evToATc3twofm5+fj4SEBHTv3h22trZV2j/Jb+lSayQlWcHZuT1iYlQPdBW18UcfiVM0PvNMMGJiggwWr678+y9QVGQFd3cBzz33lEXPlMjPsvnTRRsfO2aFffuAgoIwxMQ00nGEpAv8LJs/c2/j4gm8elVQyvwZUztLo+Iqo3Hy9eSTT+LJJ5/E4sWLsX79enz77beIi4tDUVEREhIS4O/vD1ct57r09PSEtbV1mVkG09LS4F3OgkJeXl7YunUrcnJykJ6eDl9fX7z99tsIrmABKHd3dzRs2BAXL14EAHh7eyMvLw8ZGRkqvV8V7dfe3h72ahZusbW11bixtSlLovfeA7ZtAyZOBIYPlzeWpk2BxETg7FkblNeMpdtYEIoXiG7evPzHGZo2080nJ4t/w8MVsLMzkicgM36WzV912rhZM/FvUpIVbG2rPK8VGQA/y+aPbWwZjKGdNd2/1v8VnJ2d8cILL2Dv3r04deoUXn/9dXz44YeoXbs2nnnmGa3qsrOzQ8uWLZGYmKjcVlRUhMTERLRp06bCxzo4OMDPzw8FBQXYtGkT+vbtW27Zhw8fIiUlBT4+PgCAli1bwtbWVmW/ycnJuHr1aqX7JcM6cEBcXytT/Sg/g5Imm9BmoeJr14CsLMDWtni2QTlNnixOBLBli+aPSUoS//KkXiLNSMeKpCSgxIh4IiKduHBBXDqGTFO1fpJr1KgRFixYgOvXr+OHH36oUh1xcXH46quv8N133+Hs2bMYN24csrOzERsbCwAYOXKkyoQcBw8exObNm3Hp0iXs2bMHPXv2RFFREaZOnaos88Ybb2DXrl24cuUK9u3bh/79+8Pa2hrDhg0DANSoUQMvvvgi4uLisGPHDhw9ehSxsbFo06aN2sk2SD7GNJtPVWYLlOJv1Aiws9N9TNrKzBSnwNYmgXzvPeDixapPs09kaYKDAUdHICcHSOEpX0SkY4MHAzVriiODyPRoPOywItbW1ujXrx/6VWEF2SFDhuDOnTuYOXMmbt26hWbNmmH79u3KSTiuXr0KK6viHDEnJwczZszApUuX4OLigpiYGMTHx6sMH7x+/TqGDRuG9PR0eHl5oX379jhw4AC8vLyUZT799FNYWVlh4MCByM3NRXR0NL744osqvwake5mZxYsaN2kibywlY0hLA+7cEaefr4yUqBlD8ghULYG0sgJCQvQTD5E5srYGXnoJcHAQL0REulJQAJz939xdjXhKqUnSSfJVXRMnTsTEiRPV3rdz506V2506dUKSNA6qHOvWrat0nw4ODli2bBmWLVumcZxkWFKCULeu+AuP3JydxV+0L10SY+vSpfLHpKeLX8SMZX0sKQnUpueLiLT32WdyR0BE5ujiRSA3V/xOEhgodzRUFTwTmIyWMS7sGx4O+Ppqfg7aggVAdjbw2mv6jUtT0mt54YI4JKoy//4LDB0K8DcKIiIi+UnfjZo0EUemkOlhs5HRMrYhewCwYQOQmlpyitfK2dsDLi56C0krPj6AhwdQVASUs5SeikOHgPXrgV9+0X9sRObm7l1x0iAiIl2RRq4Y0w/TpB0mX2S0XF2BevWMK/kyhkkzqkOh0G7WRh7kiarm5k3xvND27TXrZSYi0oQx/jBN2mHyRUZr3jzgv/+A556TO5Kq+flnICoKmD9f7khUtW0LtGsnjhevDA/yRFXj7S2eq1pYqFkvMxGRJvijqOlj8kVGT9PFgA1BEIA+fcTzvv77r+KyR46Iw/aMbarp+fOBvXuBAQMqLicIPMgTVZVCwQluiEj3pkwBXnkFiIyUOxKqKqOY7ZCotMJCcZZAY6NQiEnXzZtir1BAQPllTb3X6PZt8ZwVhQJo3FjuaIhMT3g4sHu3dks7EBFVZNw4uSOg6mLPFxmlzz4DatcGZs2SO5KyND1nyth7jR49AvLzy79fir9+fcDJyTAxEZkT6YcXJl9ERCRh8kVG6dQpcSFjYxpyKNFkoeJHj4qHGxpj8tW5szgD46FD5ZdJTQVsbY0zfiJToM3kNkRElTlyBDh6FHj8WO5IqDqYfJFRMsY1viSanMeRlCSeM+XlBdSpY5i4tOHkJMZXUQI5ahTw8CHw5ZeGi4vInEjHr2vXNF8bkIioPDNmAK1aAWvWyB0JVQeTLzI6RUXAmTPidWM8X0r6QnXuXPnD9ow5eQQ0/0Xezg7w9NR/PETmyN0dmD4dWLmSi6ESUfUZ+3cL0gwn3CCjc/myOGzP3h4ICZE7mrICAsRp2rOzgQsXgLCwsmWKioCgIKBpU8PHpwmei0JkGB98IHcERGQO7t8XTwcAgCZN5I2FqofJFxkdKSEICwNsjPAdamUFdOggJojlLZ76wgviRRAMG5umSvZ8CULZc+uuXAGefVYc3rBihcHDIyIiohKk70YBAYCbm7yxUPUY4VdbsnTGPksgAGzbplk5Y5wwBABCQ8Uk8t494NYtwMdH9f6TJ8WTegsK5ImPyFzk5AAnTogTCPXpI3c0RGSqOOTQfHAUOhmdevWAp54C2raVO5KqEQTj7fGSODoCDRqI19Wd9yVtM8Zz7ohMydmzQJs2QGys8R8XiMh4mcIP06QZJl9kdEaOBBITgbFj5Y6kco8eld22Z484ScXw4YaPRxv9+okzGnp4lL2Pv7AR6YbUy5yeLvYyExFVhfR/mT+Kmj4OOySqggcPgMhI4OpVcQppO7vi+06fFofzPXggX3ya+PDD8u9jzxeRbki9zMnJ4rGh9BBfIiJNzJkjng7Qrp3ckVB1seeLjEp2tmmsh+PqKq6BVVgoDisqydSHBuTliV8UAdN9DkTGhIstE1F1dekCvPEGEBgodyRUXUy+yKj89JO4Ns6AAXJHUrnypms3pSF7+fnimmpFRcXbzp8XJ9pwcwP8/eWLjchcSMcCLu1ARERMvsioSL8M16kjbxyaUPdrtiCYzpC9oiLx3LTwcHFtNcn9+0D9+uIaZcY6WyORKZGOBez5IqKq+OcfYP168VQHMn1MvsiomFKvkbqer9RUcdiktTXQqJE8cWnKyqp4EeuSXwo7dBAXj965U5awiMyOdDwr3ctMRKSJr74Chg4FvvtO7khIF5h8kVExlV4jQH3P1+nTYldRw4aAvb0MQWmpvKGTgJhAElH11a8PLF4M/Porp5snIu2Z+rnkpIqzHZLRyMoC/vtPvN6kibyxaEKK8eZNcRppAHBwALp3F79smYLyhk5yuCGR7lhbA5MmyR0FEZmiwkIgKUm8bgo/TFPlmHyR0ThzRvzr4wPUqiVvLJpwdQX69hVjzc0Vt3XuLKB7d3nj0kbpiQAePhQXuW7SBEhIEJNJIiIikkdKCpCTIy5bERQkdzSkC0y+yGiY4gKCW7eKf/PzgRMn5IykaqTXOjlZTCDPnBEn3EhJYeJFpEu3bgF//SWea2nsC7ATkfGQvhuFhfF0AHPBc77IaDRqBLz8MtCnj9yRVE1RkZi4mBI/P6BGDXFYg7QILMBx5US6dvw48PzzwAcfyB0JEZkSUzoXnjTDni8yGh07ihdTk5srTtV+86YL6tSxRYMGYiJjCudNKRTAa68BdnZAzZo8qZdIX6QvTufPi8cMU5iQh4jkxx9FzQ+TL6JqSE4WD4jOzjZ45RVXAGJPkikkXpK5c4uvm+LQTyJTIPUyZ2aKx42mTeWOiIhMwccfAyNGMPkyJxx2SEbh4UPg2DHg8WO5I9GOdPJrZqYCx46JK0ObcuLCX9iI9EOhKDvBDRFRZQIDgX79TGcWZaocky8yCgcPAi1bAs2ayR2JduzsihdT3rPHD4DpJS5FRcClS8CaNUBamvglMSxM7qiIzI/0w0zJpR2IiMiycNghGQXpy4gpfukPDxdnCczNFT9OptbzlZEBhISI19u2FWdTcnaWNSQis8SeLyLSxp494qVTJ6BdO7mjIV1h8kUVKiwUP/g3b4rrb3XooPupTgsLxTWlAHHtrMJC05pOtXTC2LixPHFUlYeH2LY3bwI9eogHeVNrAyJTIP0wc/gw8MMP+jmm6vuYber1S/vYtUuB3bv94OysQJcupvUcDPUamfJzMPU2lvbxxRfAunXimqJPPsn/y2ZDoCrJzMwUAAiZmZmVls3LyxO2bt0q5OXlGSAy3dm0SRDq1hUEoPhSt6643ZT2oU+bNglCrVqmG78giLHa25v2czAUU/0sk+b02cZr1giCp6f+Pmv6Pp6aev2G2Iep12+IfbB+49iHuTCm/8ua5gZMvqrI3JOvTZsEQaFQ/eAD4jaFQjcHAEPsQ59MPX5BMI/nYEim+Fkm7eirjfX9WWP98u/D1Os3h+dg6vUbah/mxJj+L2uaG3DYIZVRWAhMmiR+3EuTtr38ctmhacHBxRNm5OQAv/9e/j78/Creh0IBTJ4sdrUbYzd7Za+RsccPmMdzIDIF2h5TS37mjhwBrl4tv+6nnwZsbDSrv3t3cWg3AJw8CVy8WH693boBbm7i9VOnxMdrcqy4eFE8B7Y8HTsCnp7i9ZQU4N9/xec9blzF9U+cWPFw6Kgo8f8KAFy/Dhw6pHp/ZfsA1P9fa9ZM/N8GALdvA3v3qt9/YaG4ZqKm9TduXDxEPTMTSExUXy8ANGwoltWkjQMCxMmrgMr/D5csm58PbN1aeTtMngw88wzw88/l1+vtLZ4/LNm6VZzYSZN2fuWV8tu5Zk2gS5fi29u2qc6QXNU2dnICevYsvv333+K50KUVFgLjx2tev42N+FpJ/vlHnNSqPAMG8P+yxTBQMmh2zLnna8eOsr+4aHIZP764jrS0istGR2tW544dcr0KFdP0NTLW+AXBPJ6DoZnaZ5m0p4821vaY+uhR8WOff77isnfval7/unXF9cbFVVw2KUnzGEoeKz78sOIyu3YV1/vZZ1X7X6PusnFjcb3r1umu3i++KK43MVF39c6ZU1zvyZMVl506VfM27tevuN5btyouGxtbXDYrS/PYK3sdevdWff87OOjmNWvdWrVef3/d1BsUpFpvixa6qdfFRbXenj3LL6tQaHes4P/lYsb0f5k9X1RlN29qVq5hQ8DLq/i29OsgANjaVjwzj/SLqq5iMTRN4zLW+AHzeA5EpkDbY6pViUVgGjSo+FhqY6N5/ffvF18PCqq4XkfH4uv29prVf/Om2Puk6bHfx0cse+cOcP585fWX/p9TUq1axdc9PcvGUNV9eHsXX69Ro/znpm39/v7F25ycKn7NAgM1b2MXl+Lrlf0fbtCg+Lq1tRibJs/h5s2K6y096VSbNkBeXvXbufTkVq1aAfXqFd+uav2+vqr3N2um+v6vav2l6wgLAx48UP8YhUL8y//LFsJAyaDZYc9X9X55MfVfd0w9fkEwj+dgaKb2WSbtydnzVdXPGuuXfx+mXr85PAdTr99Q+zA3xvR/WdPcgIssUxkdOgB16xb/ElOaQiH+atehg3HvQ59MPX7APJ4DkSnQ92eN9cu/D1Ov3xD7YP3GsQ+SH5MvKsPaGliyRP190gFh8eLqnexZch+lDzK62oc+mXr8gHk8ByJToO/PGuuXfx+mXr8h9sH6jWMfZAQM1BNndsx52KFk0yZBqFFDtavb31//a1noeh/6ZOrxC4J5PAdDMdXPMmlOn22s788a65d/H6ZevyH2wfqNYx/mwpj+L2uaGygEQRDkTgBNUVZWFmrUqIHMzEy4VTJ7RH5+Pn7//XfExMTA1tbWQBHqxogRwNq1wKBB4hSr+lrFXd8rxetTYSGwY0cBtm07gV69mqFLFxuTih8w/TYwFFP+LJNm9N3G+v6ssX7N9qHPY7a5vEam/BxMvY0NtQ9zYEz/lzXNDTjbIVVIWq/lueeAzp31sw9ra/3VbQjW1kCnTgKys1PRqVOkSR4cTb0NiEyFvj9rrF+zfejzmG0ur5EpPwdTb2ND7YPkwXO+qFwFBcDZs+L18HB5YyEiIiIiMnVMvqhcFy6Ia3M4O4vrjBARERERUdVx2CGVq1Ej4PJl4OpV1UU/iYiIiIhIe0y+qFxWVmKPF3u9iIiIiIiqj/0ZREREREREBsCeLyrXq68Cnp7iFPNeXnJHQ0RERERk2ph8kVqPHgHLlolL+40dK3c0RERERESmj8MOSa2zZ8XEy9MTqF1b7miIiIiIiEwfky9S69Qp8W9EBKBQyBsLEREREZE5YPJFap0+Lf7l4spERERERLrB5IvUkpKviAh54yAiIiIiMhdMvkgtadghe76IiIiIiHSDyReV8eABkJ4uXm/SRN5YiIiIiIjMBaeapzJcXYGHD4HLlwE3N7mjISIiIiIyD+z5IrVsbIAGDeSOgoiIiIjIfDD5IiIiIiIiMgAmX1TGSy8BI0cCSUlyR0JEREREZD6YfJEKQQA2bQLi44GCArmjISIiIiIyH0y+SEVqKpCRAVhbA40ayR0NEREREZH5YPJFKqTFlRs1Auzt5Y2FiIiIiMicMPkiFVLyxcWViYiIiIh0i8kXqTh1SvwbESFvHERERERE5obJF6lgzxcRERERkX4w+SIlQRAvVlZMvoiIiIiIdM1G7gDIeCgUwLFjQE4OYGcndzREREREROaFyReV4eAgdwREREREROaHww6JiIiIiIgMwCiSr2XLliEwMBAODg6IiorCoUOHyi2bn5+PuXPnIiQkBA4ODoiMjMT27dvLLf/hhx9CoVBg8uTJKts7d+4MhUKhchk7dqyunpJJeuEFoG1bICFB7kiIiIiIiMyP7MnX+vXrERcXh1mzZuHYsWOIjIxEdHQ0bt++rbb8jBkzsHLlSixduhRJSUkYO3Ys+vfvj+PHj5cpe/jwYaxcuRJNmzZVW9eYMWNw8+ZN5WXBggU6fW6mZt8+YP9+cdINIiIiIiLSLdmTr0WLFmHMmDGIjY1FWFgYVqxYAScnJ3z77bdqy8fHx2P69OmIiYlBcHAwxo0bh5iYGCxcuFCl3MOHDzFixAh89dVXqFmzptq6nJyc4O3trby4ubnp/PmZipwc4MIF8TrX+CIiIiIi0j1ZJ9zIy8vD0aNHMW3aNOU2KysrdOvWDfv371f7mNzcXDiUmhHC0dERe/fuVdk2YcIEPP300+jWrRvef/99tXV9//33WLNmDby9vdGnTx+8++67cHJyKne/ubm5yttZWVkAxGGQ+fn5FT5P6f7Kysnp5EmgqMgWHh4CatUqgBGHapRMoY2p+tjO5o9tbBnYzuaPbWwZjKmdNY1B1uTr7t27KCwsRJ06dVS216lTB+fOnVP7mOjoaCxatAgdO3ZESEgIEhMTsXnzZhQWFirLrFu3DseOHcPhw4fL3ffw4cMREBAAX19fnDx5Em+99RaSk5OxefNmteXnz5+POXPmlNn+559/lpuwlZZgxCdT7dhRF0BL+PikY9u2f+QOx2QZcxuT7rCdzR/b2DKwnc0f29gyGEM7P3r0SKNyJjfV/JIlSzBmzBiEhoZCoVAgJCQEsbGxymGK165dw6RJk5CQkFCmh6ykl19+WXk9IiICPj4+6Nq1K1JSUhASElKm/LRp0xAXF6e8nZWVBX9/f/To0aPS4Yr5+flISEhA9+7dYWtrq+1TNojdu8URqB071kRMTIzM0ZgeU2hjqj62s/ljG1sGtrP5YxtbBmNqZ2lUXGVkTb48PT1hbW2NtLQ0le1paWnw9vZW+xgvLy9s3boVOTk5SE9Ph6+vL95++20EBwcDAI4ePYrbt2+jRYsWyscUFhZi9+7d+Pzzz5Gbmwtra+sy9UZFRQEALl68qDb5sre3h729fZnttra2Gje2NmUN7exZ8W/TptawtS37+pBmjLmNSXfYzuaPbWwZ2M7mj21sGYyhnTXdv6wTbtjZ2aFly5ZITExUbisqKkJiYiLatGlT4WMdHBzg5+eHgoICbNq0CX379gUAdO3aFadOncKJEyeUl1atWmHEiBE4ceKE2sQLAE6cOAEA8PHx0c2TMzE+PkBAACfbICIiIiLSF9mHHcbFxWHUqFFo1aoVWrdujcWLFyM7OxuxsbEAgJEjR8LPzw/z588HABw8eBCpqalo1qwZUlNTMXv2bBQVFWHq1KkAAFdXV4SHh6vsw9nZGbVq1VJuT0lJwdq1axETE4NatWrh5MmTmDJlCjp27FjutPTm7ptv5I6AiIiIiMi8yZ58DRkyBHfu3MHMmTNx69YtNGvWDNu3b1dOwnH16lVYWRV30OXk5GDGjBm4dOkSXFxcEBMTg/j4eLi7u2u8Tzs7O/z111/KRM/f3x8DBw7EjBkzdP30iIiIiIiIABhB8gUAEydOxMSJE9Xet3PnTpXbnTp1QlJSklb1l67D398fu3bt0qoOc5aXB9jZyR0FEREREZF5k32RZZLflClA7drAihVyR0JEREREZL6YfBFOnwbu3AGcneWOhIiIiIjIfDH5snCCICZfAFBqnhIiIiIiItIhJl8W7uZN4N49wMoKaNxY7miIiIiIiMwXky8LJ/V6NWgAODjIGwsRERERkTlj8mXhpOSLiysTEREREekXky8Ld+qU+JfnexERERER6ReTLwvXtCnQtSvQurXckRARERERmTejWGSZ5DNlinghIiIiIiL9Ys8XERERERGRATD5smD37wOZmXJHQURERERkGZh8WbDPPwfc3YFJk+SOhIiIiIjI/DH5smDSNPN168obBxERERGRJWDyZcGkaea5xhcRERERkf4x+bJQubnA+fPida7xRURERESkf0y+LFRyMlBYKJ7z5ecndzREREREROaPyZeFkoYchocDCoW8sRARERERWQImXxZKmmyD53sRERERERkGky8L1b498MorQPfuckdCRERERGQZbOQOgOTx9NPihYiIiIiIDIM9X0RERERERAbA5MsC3b4NHDsGPH4sdyRERERERJaDyZcF+uknoGVLoH9/uSMhIiIiIrIcTL4sUMlp5omIiIiIyDCYfFkgTjNPRERERGR4TL4sjCCw54uIiIiISA5MvizM7dvA3buAQgGEhckdDRERERGR5WDyZWGkXq/69QFHR3ljISIiIiKyJEy+LAyHHBIRERERycNG7gDIsLp1Az7+GAgJkTsSIiIiIiLLwuTLwkREcJZDIiIiIiI5cNghERERERGRATD5siB37gA//gicOyd3JERERERElofJlwXZtw8YMgQYOlTuSIiIiIiILA+TLwty+rT4l+d8EREREREZHpMvCyIlX5xmnoiIiIjI8Jh8WRBpjS/2fBERERERGR6TLwuRlwckJ4vX2fNFRERERGR4TL4sRHIyUFAAuLkB/v5yR0NEREREZHmYfFmIkud7KRTyxkJEREREZIls5A6ADKNrV2DLFsDWVu5IiIiIiIgsE5MvC1G7NtCvn9xREBERERFZLg47JCIiIiIiMgAmXxbg4UNg3jzg558BQZA7GiIiIiIiy8RhhxbgzBngnXcAb2/gmWfkjoaIiIiIyDKx58sClJzpkIiIiIiI5MHkywKcOiX+jYiQNw4iIiIiIkvG5MsCsOeLiIiIiEh+TL4sAHu+iIiIiIjkx+TLzN2+LV4UCiAsTO5oiIiIiIgsF5MvM3fmjPg3OBhwdpY3FiIiIiIiS8ap5s1c+/bisMN79+SOhIiIiIjIsjH5MnO2tpxog4iIiIjIGHDYIRERERERkQEw+TJjggC88gqwaBHw6JHc0RARERERWTYOOzRj//0H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",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Load dataset (Vehicle Silhouettes dataset)\n",
"ds = pd.read_csv(\"../../_data/breast_cancer.csv\") # ggf. etwas anders als unser bisheriges Dataset\n",
"print(ds)\n",
"ds = ds.dropna()\n",
"y = ds.Diagnosis\n",
"X = ds.drop('Diagnosis', axis=1)\n",
"X = X.select_dtypes(include=[np.number])\n",
"le = LabelEncoder()\n",
"y = le.fit_transform(y)\n",
"scaler = StandardScaler()\n",
"X_scaled = scaler.fit_transform(X)\n",
"X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)\n",
"k_values = range(1, 31)\n",
"accuracies = []\n",
"for k in k_values:\n",
" knn = KNeighborsClassifier(n_neighbors=k)\n",
" knn.fit(X_train, y_train)\n",
" y_pred = knn.predict(X_test)\n",
" accuracies.append(accuracy_score(y_test, y_pred))\n",
"# Plot accuracy vs. k\n",
"plt.figure(figsize=(10, 6))\n",
"plt.plot(k_values, accuracies, marker='o', linestyle='dashed', color='b')\n",
"plt.xlabel('Number of Neighbors (k)')\n",
"plt.ylabel('Accuracy')\n",
"plt.title('kNN Classifier Performance on Breast Cancer Dataset')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n",
"0 6 148 72 35 0 33.6 \n",
"1 1 85 66 29 0 26.6 \n",
"2 8 183 64 0 0 23.3 \n",
"3 1 89 66 23 94 28.1 \n",
"4 0 137 40 35 168 43.1 \n",
".. ... ... ... ... ... ... \n",
"763 10 101 76 48 180 32.9 \n",
"764 2 122 70 27 0 36.8 \n",
"765 5 121 72 23 112 26.2 \n",
"766 1 126 60 0 0 30.1 \n",
"767 1 93 70 31 0 30.4 \n",
"\n",
" DiabetesPedigreeFunction Age Outcome \n",
"0 0.627 50 1 \n",
"1 0.351 31 0 \n",
"2 0.672 32 1 \n",
"3 0.167 21 0 \n",
"4 2.288 33 1 \n",
".. ... ... ... \n",
"763 0.171 63 0 \n",
"764 0.340 27 0 \n",
"765 0.245 30 0 \n",
"766 0.349 47 1 \n",
"767 0.315 23 0 \n",
"\n",
"[768 rows x 9 columns]\n"
]
},
{
"data": {
"image/png": "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BLi5AaGhwLNnUkdDRERERGRamFyRzk6fBp4/B+7cAZycpI6GiIiIiMi0MLkinZ06Jf4OCZE0DCIiIiIik8TkinSmSq7q1pU2DiIiIiIiU8TkinTG5IqIiIiIKH9Mrkgn2dnAv/+Kj5lcERERERHlxeSKdPLPP0BODlCqFFC2rNTREBERERGZHskXESbzYGMDdO0KODsDMpnU0RARERERmR4mV6STOnWAVaukjoKIiIiIyHRxWCAREREREZEBMLmiQimVwNWrgCBIHQkRERERkelickWFunIFKF8e8PMTEy0iIiIiIsqLyRUVSrW+VUCAOLEFERERERHlxa/KVCguHkxEREREVDgmV1SoxETxN5MrIiIiIqL8MbmiQql6rkJCJA2DiIiIiMikMbmiAqWmij8yGVC7ttTREBERERGZLiZXVCDVkMAqVQAXF0lDISIiIiIyabZSB0CmrWxZ4PPPgZIlpY6EiIiIiMi0MbmiAlWvDkydKnUURERERESmj8MCiYiIiIiIDIDJFeXr6VMgIQG4c0fqSIiIiIiITB+TK8rXqVNAmzacgp2IiIiISBdMrihfqvWtuHgwEREREVHhmFxRvlTTsDO5IiIiIiIqHJMryhd7roiIiIiIdMfkirTKyQHOnhUf854rIiIiIqLCMbkirc6dA7KzAXd3IDhY6miIiIiIiEwfkyvSSjUkMCQEkMkkDYWIiIiIyCzYSh0AmaZmzYBffgFKlpQ6EiIiIiIi88DkirQqVw7o31/qKIiIiIiIzAeHBRIRERERERkAkyvKIzUVmDMHOHZM6kiIiIiIiMwHhwVSHn/9BQweDNSrB5w4IXU0RERERETmgT1XlEdiovibiwcTEREREemOyRXlkXsadiIiIiIi0g2TK8qDPVdERERERPpjckUa7twBkpPFhYNr15Y6GiIiIiIi88HkijSohgRWrAi4uUkbCxERERGROWFyRRo4JJCIiIiIqGg4FTtp+OgjICwMcHaWOhIiIiIiIvPC5Io0lCgBRERIHQURERERkfnhsEAiIiIiIiIDYHJFamfPAp98AqxbJ3UkRERERETmh8kVqe3bB8yYASxYIHUkRERERETmR/LkatasWQgKCoKjoyPCwsJw9OjRAus/fPgQMTEx8PX1hYODAypXrozNmzdr1ElOTsZ7772HMmXKwMnJCbVq1cLx48eNeRoWQTUNe0iIpGEQEREREZklSSe0WLlyJWJjYzF37lyEhYUhLi4OkZGRSEpKgpeXV5762dnZaN26Nby8vLB69Wr4+/vj+vXrKFmypLrOgwcP0KRJEzRv3hxbtmyBp6cnLl68iFKlShXjmZknTsNORERERFR0kiZXM2bMwIABAxAdHQ0AmDt3LjZt2oRFixbh888/z1N/0aJFuH//Pg4ePAg7OzsAQFBQkEadb7/9FoGBgVi8eLG6LDg4uMA4srKykJWVpX6ekZEBAMjJyUFOTk6Br1VtL6yeqcvJAc6csQUgQ40aOTDz0zE4S2lnyh/b2DqwnS0f29jysY2tgym1sz4xyARBEIwYS76ys7Ph7OyM1atXo3Pnzuryvn374uHDh1i/fn2e17Rr1w6lS5eGs7Mz1q9fD09PT/Tq1QujRo2CXC4HAFSvXh2RkZG4desW9u7dC39/fwwePBgDBgzIN5avv/4a48ePz1O+fPlyOFvJgk/Xr7th2LAWcHLKwbJlm2Ej+YBRIiIiIiLpPX36FL169cKjR4/g7u5eYF3Jeq7u3r0LhUIBb29vjXJvb2+cP39e62uuXLmCXbt2oXfv3ti8eTMuXbqEwYMHIycnB+PGjVPXmTNnDmJjY/HFF1/g2LFjGDp0KOzt7dG3b1+t+x09ejRiY2PVzzMyMhAYGIg2bdoU+gbm5OQgISEBrVu3VvemmaPffpMBAEJD5ejQoZ3E0ZgeS2lnyh/b2DqwnS0f29jysY2tgym1s2pUmy7MahFhpVIJLy8vzJ8/H3K5HKGhoUhOTsb06dPVyZVSqUT9+vUxZcoUAEDdunVx9uxZzJ07N9/kysHBAQ4ODnnK7ezsdG5MfeqaoosXxd9169rAzo7dVvkx93amwrGNrQPb2fKxjS0f29g6mEI763N8yb5Fe3h4QC6XIy0tTaM8LS0NPj4+Wl/j6+uLypUrq4cAAkC1atWQmpqK7OxsdZ3q1atrvK5atWq4ceOGgc/AskyeDNy6BXz2mdSREBERERGZJ8mSK3t7e4SGhmLnzp3qMqVSiZ07d6Jx48ZaX9OkSRNcunQJSqVSXXbhwgX4+vrC3t5eXScpKUnjdRcuXEC5cuWMcBaWQyYD/P2BgACpIyEiIiIiMk+Sjv+KjY3FggULsHTpUpw7dw6DBg1CZmamevbAPn36YPTo0er6gwYNwv379zFs2DBcuHABmzZtwpQpUxATE6OuM2LECBw+fBhTpkzBpUuXsHz5csyfP1+jDhERERERkaFJes9Vjx49cOfOHYwdOxapqakICQnB1q1b1ZNc3LhxAza5pq0LDAzEtm3bMGLECNSuXRv+/v4YNmwYRo0apa7ToEEDrF27FqNHj8aECRMQHByMuLg49O7du9jPz1zs2AH89BPQvj0wcKDU0RARERERmSfJJ7QYMmQIhgwZonXbnj178pQ1btwYhw8fLnCfHTp0QIcOHQwRnsVTKIBffwU2bACysoD+/YFct7QREREREZGOOC2cFYuPB4KCgP/7P/H5tm3i8/h4KaMiIiIiIjJPTK6sVHw80LWrOENgbsnJYjkTLCIiIiIi/TC5skIKBTBsGCAIebepyoYPF+sREREREZFumFxZof378/ZY5SYIwM2bYj0iIiIiItINkysrlJJi2HpERERERMTkyir5+hq2HhERERERMbmySuHhQEAAIJNp3y6TAYGBYj0iIiIiItINkysrJJcDM2eKj19NsFTP4+K43hURERERkT6YXFmpqCjgjz8Af3/N8oAAYPVqcTsREREREenOVuoASDp79wIuLsCYMUC1auI9VuHh7LEiIiIiIioKJldW7K+/gKQkoGZNoHt3qaMhIiIiIjJvHBZopTIzgdOnxceNG0sbCxERERGRJWByZaWOHwcUCvGeq8BAqaMhIiIiIjJ/TK6s1KFD4m/2WhERERERGQaTKyulSq4aNZI2DiIiIiIiS8HkygoJAnD4sPiYPVdERERERIbB5MoKPXsGtG8P1KoF1KsndTRERERERJaBU7FbIWdnYNEiqaMgIiIiIrIs7LkiIiIiIiIyACZXVuj8eeDFC6mjICIiIiKyLEyurMzTp0DNmkCJEkB6utTREBERERFZDiZXVka1eHDJkoCnp9TREBERERFZDiZXVib34sEymbSxEBERERFZEiZXVoaLBxMRERERGQeTKyvCxYOJiIiIiIyHyZUVuXYNSEsD7Oy4eDARERERkaExubIiqiGBISGAk5OkoRARERERWRxbqQOg4lOvHjBxIuDtLXUkRERERESWh8mVFalaFfjqK6mjICIiIiKyTBwWSEREREREZABMrqzE5cvA6tXA7dtSR0JEREREZJmYXFmJ+HigWzdgyBCpIyEiIiIiskxMrqyEaqZArm9FRERERGQcTK6sgCAwuSIiIiIiMjYmV1bg+nUgNRWwtQVCQ6WOhoiIiIjIMjG5sgKqXqu6dbl4MBERERGRsTC5sgKHD4u/GzWSNg4iIiIiIkvG5MoK8H4rIiIiIiLjs5U6ADK+lSvF3qsWLaSOhIiIiIjIcjG5sgLBweIPEREREREZD4cFEhERERERGQB7rizc9OniOlc9ewJly0odDRERERGR5WJyZcEEAfjhByAlRZzMgskVEREREZHxcFigBbt5U0ysbG2B+vWljoaIiIiIyLIxubJgqinYQ0K4eDARERERkbGZRHI1a9YsBAUFwdHREWFhYTh69GiB9R8+fIiYmBj4+vrCwcEBlStXxubNm7XW/eabbyCTyTB8+HAjRG7aVMkVFw8mIiIiIjI+ye+5WrlyJWJjYzF37lyEhYUhLi4OkZGRSEpKgpeXV5762dnZaN26Nby8vLB69Wr4+/vj+vXrKFmyZJ66x44dw7x581C7du1iOBPTw8WDiYiIiIiKj+Q9VzNmzMCAAQMQHR2N6tWrY+7cuXB2dsaiRYu01l+0aBHu37+PdevWoUmTJggKCkJERATq1KmjUe/Jkyfo3bs3FixYgFKlShXHqZiU58+BU6fEx0yuiIiIiIiMT9Keq+zsbJw4cQKjR49Wl9nY2KBVq1Y4pOp2ecWGDRvQuHFjxMTEYP369fD09ESvXr0watQoyOVydb2YmBi0b98erVq1wqRJkwqMIysrC1lZWernGRkZAICcnBzk5OQU+FrV9sLqFbd//gFsbGzh5QX4+7+AiYVndky1nclw2MbWge1s+djGlo9tbB1MqZ31iUHS5Oru3btQKBTw9vbWKPf29sb58+e1vubKlSvYtWsXevfujc2bN+PSpUsYPHgwcnJyMG7cOADAihUrcPLkSRw7dkynOKZOnYrx48fnKd++fTucnZ112kdCQoJO9YrTb7/ZID3dCVu2ZEodisUwxXYmw2IbWwe2s+VjG1s+trF1MIV2fvr0qc51Jb/nSl9KpRJeXl6YP38+5HI5QkNDkZycjOnTp2PcuHG4efMmhg0bhoSEBDg6Ouq0z9GjRyM2Nlb9PCMjA4GBgWjTpg3c3d0LfG1OTg4SEhLQunVr2NnZvda5keliO1s+trF1YDtbPrax5WMbWwdTamfVqDZdSJpceXh4QC6XIy0tTaM8LS0NPj4+Wl/j6+sLOzs7jSGA1apVQ2pqqnqYYXp6OurVq6ferlAosG/fPvz888/IysrSeC0AODg4wMHBIc+x7OzsdG5MfeqS+WI7Wz62sXVgO1s+trHlYxtbB1NoZ32OL+mEFvb29ggNDcXOnTvVZUqlEjt37kTjfGZhaNKkCS5dugSlUqkuu3DhAnx9fWFvb4+WLVvizJkzSExMVP/Ur18fvXv3RmJiYp7EyhLdvAnUqQN8/DEgCFJHQ0RERERkHSQfFhgbG4u+ffuifv36aNiwIeLi4pCZmYno6GgAQJ8+feDv74+pU6cCAAYNGoSff/4Zw4YNw8cff4yLFy9iypQpGDp0KADAzc0NNWvW1DiGi4sLypQpk6fcUh06BJw+DdjZATKZ1NEQEREREVkHyZOrHj164M6dOxg7dixSU1MREhKCrVu3qie5uHHjBmxsXnawBQYGYtu2bRgxYgRq164Nf39/DBs2DKNGjZLqFEwOFw8mIiIiIip+kidXADBkyBAMGTJE67Y9e/bkKWvcuDEOHz6s8/617cOSqd4arm9FRERERFR8JF9EmAwrKws4eVJ8zOSKiIiIiKj4MLmyMCdPAtnZgJcXEBwsdTRERERERNaDyZWFyX2/FSezICIiIiIqPkyuLIy9PVChAvDGG1JHQkRERERkXUxiQgsynCFDxJ9cy4AREREREVExYM+VhbJhyxIRERERFSt+BbcgT56wx4qIiIiISCpMrizI2LFAqVLATz9JHQkRERERkfVhcmVBDh8GMjLEBIuIiIiIiIoXkysLkZUFnDghPubiwURERERExY/JlYU4dUpcPNjDAyhfXupoiIiIiIisD5MrC6FaPLhxYy4eTEREREQkBSZXFuLwYfE3hwQSEREREUmDyZWFyN1zRURERERExc9W6gDo9b14AURHi71X9etLHQ0RERERkXVicmUBbG2B8eOljoKIiIiIyLpxWCAREREREZEBMLmyAPv3A+npUkdBRERERGTdmFyZuexsoHVrwNsbuHJF6miIiIiIiKwXkyszd+oUkJUlLh4cHCx1NERERERE1ovJlZlTTcHeqBEXDyYiIiIikhKTKzOnWjy4USNp4yAiIiIisnZMrswcFw8mIiIiIjINTK7M2O3bwI0bgI0N0LCh1NEQEREREVk3JldmTNVrVasW4OoqbSxERERERNbOVuoAqOjeeANYsgSws5M6EiIi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",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Load dataset (Vehicle Silhouettes dataset)\n",
"ds = pd.read_csv(\"../../_data/diabetes.csv\") # ggf. etwas anders als unser bisheriges Dataset\n",
"print(ds)\n",
"ds = ds.dropna()\n",
"y = ds.Outcome\n",
"X = ds.drop('Outcome', axis=1)\n",
"X = X.select_dtypes(include=[np.number])\n",
"le = LabelEncoder()\n",
"y = le.fit_transform(y)\n",
"scaler = StandardScaler()\n",
"X_scaled = scaler.fit_transform(X)\n",
"X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)\n",
"k_values = range(1, 31)\n",
"accuracies = []\n",
"for k in k_values:\n",
" knn = KNeighborsClassifier(n_neighbors=k)\n",
" knn.fit(X_train, y_train)\n",
" y_pred = knn.predict(X_test)\n",
" accuracies.append(accuracy_score(y_test, y_pred))\n",
"# Plot accuracy vs. k\n",
"plt.figure(figsize=(10, 6))\n",
"plt.plot(k_values, accuracies, marker='o', linestyle='dashed', color='b')\n",
"plt.xlabel('Number of Neighbors (k)')\n",
"plt.ylabel('Accuracy')\n",
"plt.title('kNN Classifier Performance on Diabetes Dataset')\n",
"plt.grid(True)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "dsai",
"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.9.20"
}
},
"nbformat": 4,
"nbformat_minor": 2
}