diff --git a/docs/TO DO LISTE.md b/docs/TO DO LISTE.md
index 4916bf243572084c4bc361f82a485bb90770d835..8cff74843ee61095fab18ce5020407357efcfa39 100644
--- a/docs/TO DO LISTE.md	
+++ b/docs/TO DO LISTE.md	
@@ -13,6 +13,7 @@
 8. Zwei der vier neuronalen Netze haben bessere Evaluations-metriken auf Sequenzanomalien, statt Punktanoamlien
 9. Probleme in der Reproducibility bei kShape, trotz gleicher Hyperparameter und Datensätze haben wir Fehler debuggen müssen.
 10. Probleme in der Reproducibility beim Testen der num_channels in CNN (stattdessen mit Lernrate getestet)
+11. Probleme bei der Reproducibility bei LOF: Optimale Hyperparameter stimmen nicht mit den getesten überein
 
 # TO DO'S
 + Datensätze genauer untersuchen
@@ -44,4 +45,5 @@
 	+ nach Recall, AUC-PR und VUS-PR
 	+ Dichtebasiert vs. Distanzbasiert
 	+ Statistisch vs. Neuronal
-+ Ausarbeiten der Algorithmen und Vorbereiten für die Hausarbeit
\ No newline at end of file
++ Ausarbeiten der Algorithmen und Vorbereiten für die Hausarbeit
++ Histplot / Barplot erstellen mit Ergebnissen von VUS-PR bei TAO von den Autoren gegenüber unseren Ergebnissen für die Modelle, bei denen die Werte stark abweichen
\ No newline at end of file
diff --git a/docs/evaluation/Vergleich der Ergebnisse.md b/docs/evaluation/Vergleich der Ergebnisse.md
index 0871f394a071b47b3a7eb10848075058354287a2..db4248d95758f553a7ccf6d0260a0c4094b9e6d0 100644
--- a/docs/evaluation/Vergleich der Ergebnisse.md	
+++ b/docs/evaluation/Vergleich der Ergebnisse.md	
@@ -412,6 +412,27 @@
 	+ nach VUS-PR:
 		+  MGAB: 0.005586 (vgl. 0.0, + 0.005 , vermutl. gleich)
 
+**TAO DATENSATZ**
+*Optimale Hyperparameter der Autoren:*
++ {'win_size': 5, 'lr': 0.002}
+*Hyperparameter nach Tuning pro Datensatz:*
++ {'win_size': 5, 'lr': 0.0002} ,257_TAO_id_1_Environment_tr_500_1st_3.csv
++ {'win_size': 5, 'lr': 0.0002}, 258_TAO_id_2_Environment_tr_500_1st_4.csv
++ {'win_size': 5, 'lr': 0.0002}, 259_TAO_id_3_Environment_tr_500_1st_7.csv
+$\rightarrow$ Optimalen Hyperparameter pro Datensatz stimmen mit denen der Autoren überein. Das Ergebnis sollte daher für den Datensatz nicht abweichen
+**Ergebnisse:**
++ Datei: 257_TAO_id_1_Environment_tr_500_1st_3.csv, 
+	+ AUC-PR: 0.3586081804879467, 
+	+ VUS-PR: 0.9728672536645818 
++ Datei: 258_TAO_id_2_Environment_tr_500_1st_4.csv, 
+	+ AUC-PR: 0.4041242440064773, 
+	+ VUS-PR: 0.9829327615168215 
++ Datei: 259_TAO_id_3_Environment_tr_500_1st_7.csv, 
+	+ AUC-PR: 0.27130311500372556, 
+	+ VUS-PR: 0.8345304743557422 
++ Durchschnittlicher AUC-PR: 0.34467851316604986 
++ Durchschnittlicher VUS-PR: 0.9301101631790485
+
 # LSTMAD
 + Prozessor: GPU
 	+ Modell: NVIDIA GeForce RTX 2060 SUPER
@@ -547,9 +568,17 @@
 + {'periodicity': 3, 'n_clusters': 20},258_TAO_id_2_Environment_tr_500_1st_4.csv
 + {'periodicity': 2, 'n_clusters': 40},259_TAO_id_3_Environment_tr_500_1st_7.csv
 *Werte mit optimalen Hpyerparametern der Autoren:*
-+ 257_TAO_id_1_Environment_tr_500_1st_3.csv: 
-+ 258_TAO_id_2_Environment_tr_500_1st_4.csv: 
-+ 259_TAO_id_3_Environment_tr_500_1st_7.csv
++ Datei: 257_TAO_id_1_Environment_tr_500_1st_3.csv, 
+	+ AUC-PR: 0.12265257769439533, 
+	+ VUS-PR: 0.9040614352081129 
++ Datei: 258_TAO_id_2_Environment_tr_500_1st_4.csv, 
+	+ AUC-PR: 0.15678134000899518, 
+	+ VUS-PR: 0.9440441289414194 
++ Datei: 259_TAO_id_3_Environment_tr_500_1st_7.csv, 
+	+ AUC-PR: 0.053845356361248695, 
+	+ VUS-PR: 0.32750765229928963 
++ Durchschnittlicher **AUC-PR: 0.11109309135487976**
++ Durchschnittlicher **VUS-PR: 0.7252044054829406**
 # Sub-OCSVM
 + Prozessor: CPU
 	+ Modell: iCore 5 8th
@@ -638,6 +667,26 @@
 	+ nach VUS-PR:
 		+ MGAB 0.004639 (vgl. MGAB 0.00)
 
+**TAO DATENSATZ**
+*Optimale Hyperparameter der Autoren:*
++ {'n_neighbors': 50}
+*Hyperparameter nach Tuning pro Datensatz:*
++ {'n_neighbors': 50} ,257_TAO_id_1_Environment_tr_500_1st_3.csv
++ {'n_neighbors': 50}, 258_TAO_id_2_Environment_tr_500_1st_4.csv
++ {'n_neighbors': 40}, 259_TAO_id_3_Environment_tr_500_1st_7.csv
+
+**Ergebnisse:**	
++ Datei: 257_TAO_id_1_Environment_tr_500_1st_3.csv, 
+	+ AUC-PR: 0.24626115376452629, 
+		+ VUS-PR: 0.8847122136088094 
++ Datei: 258_TAO_id_2_Environment_tr_500_1st_4.csv, 
+	+ AUC-PR: 0.2088996299028087, 
+	+ VUS-PR: 0.934478804260389 
++ Datei: 259_TAO_id_3_Environment_tr_500_1st_7.csv, 
+	+ AUC-PR: 0.048932116715130855, 
+	+ VUS-PR: 0.31206376824211285 
++ Durchschnittlicher AUC-PR: 0.16803096679415527 
++ Durchschnittlicher VUS-PR: 0.7104182620371038
 # Sub-LOF
 + Prozessor: CPU
 	+ Modell: iCore5 8th
@@ -685,7 +734,28 @@
 	+ nach VUS-PR:
 		+  (vgl. WSD 0.03)
 + Im Gegensatz zur schlechten Performanz der anderen Modelle auf dem Datensatz **MGAB** hat Sub-LOF bei den Autoren hier ein Vus-PR von **0.44**
-	
+
+**TAO DATENSATZ**
+*Optimale Hyperparameter der Autoren:*
++ {'periodicity': 2, 'n_neighbors': 30}
+*Hyperparameter nach Tuning pro Datensatz:*
++ {{'periodicity': 1, 'n_neighbors': 10} ,257_TAO_id_1_Environment_tr_500_1st_3.csv
++ {'periodicity': 1, 'n_neighbors': 20}, 258_TAO_id_2_Environment_tr_500_1st_4.csv
++ {'periodicity': 1, 'n_neighbors': 50}, 259_TAO_id_3_Environment_tr_500_1st_7.csv
+
+**Ergebnisse:**	
++ Datei: 257_TAO_id_1_Environment_tr_500_1st_3.csv, 
+	+ AUC-PR: 0.11950767866796852, 
+	+ VUS-PR: 0.9015786393630423 
++ Datei: 258_TAO_id_2_Environment_tr_500_1st_4.csv, 
+	+ AUC-PR: 0.15483076390775474, 
+	+ VUS-PR: 0.9434105963694659 
++ Datei: 259_TAO_id_3_Environment_tr_500_1st_7.csv, 
+	+ AUC-PR: 0.06999046309145394, 
+	+ VUS-PR: 0.4013508985695418 
++ Durchschnittlicher AUC-PR: 0.11477630188905907 
++ Durchschnittlicher VUS-PR: 0.7487800447673499
+
 # Sub-KNN
 + Prozessor: CPU
 	+ Modell: iCore 5 8th
@@ -729,4 +799,40 @@
 	+ nach VUS-PR:
 		+ Daphnet : 0.035185 (vgl.  0.04, vermutl. gleich)
 + Im Gegensatz zur schlechten Performanz der anderen Modelle auf dem Datensatz **MGAB** hat Sub-LOF bei den Autoren hier ein Vus-PR von **0.24**
-+ Bei Autoren hat Sub-KNN ein VUS-PR von 0.92 auf dem Datensatz TAO. Bei uns nur 0.68. Haben wir oder sie einen Fehler gemacht? Insgesamt hat sich bei uns die Leistung des Modells verbessert
\ No newline at end of file
++ Bei Autoren hat Sub-KNN ein VUS-PR von 0.92 auf dem Datensatz TAO. Bei uns nur 0.68. Haben wir oder sie einen Fehler gemacht? Insgesamt hat sich bei uns die Leistung des Modells verbessert
+
+**TAO DATENSATZ**
+*Optimale Hyperparameter der Autoren:*
++ {'n_neighbors': 50, 'method': 'largest', 'periodicity':2}
+*Hyperparameter nach Tuning pro Datensatz:*
++ {'n_neighbors': 20, 'method': 'median','periodicity':1} ,257_TAO_id_1_Environment_tr_500_1st_3.csv
++ {'n_neighbors': 20, 'method': 'mean','periodicity':1}, 258_TAO_id_2_Environment_tr_500_1st_4.csv
++ {'n_neighbors': 50, 'method': 'largest','periodicity':1}, 259_TAO_id_3_Environment_tr_500_1st_7.csv
+
+**Ergebnisse:**	
++ Datei: 257_TAO_id_1_Environment_tr_500_1st_3.csv, 
+	+ AUC-PR: 0.11646226439911839, 
+	+ VUS-PR: 0.9008211948983802 
++ Datei: 258_TAO_id_2_Environment_tr_500_1st_4.csv, 
+	+ AUC-PR: 0.14713017393481623, 
+	+ VUS-PR: 0.9399148903141962 
++ Datei: 259_TAO_id_3_Environment_tr_500_1st_7.csv, 
+	+ AUC-PR: 0.0657367850786509, 
+	+ VUS-PR: 0.3800981474497113 
++ Durchschnittlicher AUC-PR: 0.10977640780419518 
++ Durchschnittlicher VUS-PR: 0.7402780775540959
+
+$\rightarrow$ VUS-PR dezent besser als bei unserem Test, aber noch stark abweichend von den Autoren durch die andere Periodizität (Fehler unsererseits. die falschen Hyperparameter wurden kopiert). Sonst erhalten wir gleiches Ergebnis.
+
+*Mit periodicity:1*
++ Datei: 257_TAO_id_1_Environment_tr_500_1st_3.csv, 
+	+ AUC-PR: 0.12329675188802566, 
+	+ VUS-PR: 0.9079681057410124 
++ Datei: 258_TAO_id_2_Environment_tr_500_1st_4.csv, 
+	+ AUC-PR: 0.15584484586202274, 
+	+ VUS-PR: 0.9463314499613164 
++ Datei: 259_TAO_id_3_Environment_tr_500_1st_7.csv, 
+	+ AUC-PR: 0.03747524809411396, 
+	+ VUS-PR: 0.19297952994706424 
++ Durchschnittlicher AUC-PR: 0.1055389486147208 
++ Durchschnittlicher VUS-PR: 0.682426361883131
\ No newline at end of file
diff --git a/src/models/desi/check_evaluation_content.ipynb b/src/models/desi/check_evaluation_content.ipynb
index 10eac4611720544c30f338beedd27d295359a500..31a3584a24b4d03ade6b9f6094603ee43157c431 100644
--- a/src/models/desi/check_evaluation_content.ipynb
+++ b/src/models/desi/check_evaluation_content.ipynb
@@ -18,7 +18,7 @@
     "from POLY import POLY\n",
     "import sys\n",
     "import pathlib\n",
-    "sys.path.append(str(pathlib.Path.absolute)+ '../../')\n",
+    "sys.path.append(str(pathlib.Path.absolute)+ '../../../')\n",
     "from src.utils.slidingWindows import find_length_rank\n",
     "from src.run_model_wrapper import main"
    ]
diff --git a/src/models/desi/test_hyperparameters.ipynb b/src/models/desi/test_hyperparameters.ipynb
index aac5ce7e074d89c031076a6d50cbd70b7a79c5e8..65452fe14e0a14b34bc242e561b94cc709d21032 100644
--- a/src/models/desi/test_hyperparameters.ipynb
+++ b/src/models/desi/test_hyperparameters.ipynb
@@ -2,58 +2,189 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 62,
    "metadata": {},
    "outputs": [],
    "source": [
+    "import numpy as np\n",
+    "\n",
     "import sys\n",
     "import pathlib\n",
-    "sys.path.append(str(pathlib.Path.absolute)+ '../../')\n",
+    "sys.path.append(str(pathlib.Path.absolute)+ '../../../../../')\n",
     "from src.utils.slidingWindows import find_length_rank\n",
-    "from src.run_model_wrapper import main\n",
-    "from src.models.ahmad.KMeansAD import KMeansAD\n"
+    "from src.run_model_wrapper import preprocess_data\n",
+    "from src.models.sofia_modelle.KNN import KNN\n",
+    "from src.evaluation import get_metrics"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 70,
    "metadata": {},
    "outputs": [],
    "source": [
     "#Hyperparamater\n",
-    "params = {'periodicity': 2, 'n_clusters': 10}"
+    "params =  {'n_neighbors': 50, 'method': 'largest', 'periodicity':1}"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 71,
    "metadata": {},
    "outputs": [],
    "source": [
     "#Fit Funktion\n",
-    "def run_KMeansAD_U(data, n_clusters=20, periodicity=1,n_jobs=1):\n",
+    "def run_Sub_KNN(data, n_neighbors=10, method='largest', periodicity=1, n_jobs=1):\n",
     "    slidingWindow = find_length_rank(data, rank=periodicity)\n",
-    "    clf = KMeansAD(k=n_clusters, window_size=slidingWindow, stride=1, n_jobs=n_jobs)\n",
-    "    score = clf.fit_predict(data)\n",
+    "    clf = KNN(slidingWindow=slidingWindow, n_neighbors=n_neighbors,method=method, n_jobs=n_jobs)\n",
+    "    clf.fit(data)\n",
+    "    score = clf.decision_scores_\n",
     "    return score.ravel()"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 72,
    "metadata": {},
    "outputs": [],
    "source": [
-    "model = 'run_KMeansAD_U'\n",
-    "output_path = '../../../docs/evaluation/'"
+    "#define paths to data and for storing files\n",
+    "data_folders = '../../../data/train/temp/'"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 73,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "#Ouptput: [{file_name:str,train_data:list,data:list, label:list, sliding_window:int}]\n",
+    "dataList = preprocess_data(data_folders)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 74,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "257_TAO_id_1_Environment_tr_500_1st_3.csv\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "c:\\Users\\desiw\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n",
+      "  _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "258_TAO_id_2_Environment_tr_500_1st_4.csv\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "c:\\Users\\desiw\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n",
+      "  _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "259_TAO_id_3_Environment_tr_500_1st_7.csv\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "c:\\Users\\desiw\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1565: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n",
+      "  _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n"
+     ]
+    }
+   ],
+   "source": [
+    "results = dataList.copy()\n",
+    "\n",
+    "#train a model for each file and store metrics, file_name and hyperparameters \n",
+    "for idx  in range(len(dataList)):\n",
+    "    time_series = dataList[idx]\n",
+    "    file_name = time_series['file_name']\n",
+    "    print(file_name)\n",
+    "    data = time_series['data']\n",
+    "    label = np.array(time_series['label'])\n",
+    "    train_data = time_series['train_data']\n",
+    "    \n",
+    "    #scores = run_LOF(train_data,data, **params)\n",
+    "    scores = run_Sub_KNN(data, **params)\n",
+    "\n",
+    "    slidingWindow = time_series['sliding_window']\n",
+    "    metrics = get_metrics(scores, labels=label, slidingWindow=slidingWindow)\n",
+    "    results[idx]['metrics']= metrics.copy()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 75,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Datei: 257_TAO_id_1_Environment_tr_500_1st_3.csv, AUC-PR: 0.12329675188802566, VUS-PR: 0.9079681057410124\n",
+      "Datei: 258_TAO_id_2_Environment_tr_500_1st_4.csv, AUC-PR: 0.15584484586202274, VUS-PR: 0.9463314499613164\n",
+      "Datei: 259_TAO_id_3_Environment_tr_500_1st_7.csv, AUC-PR: 0.03747524809411396, VUS-PR: 0.19297952994706424\n",
+      "Durchschnittlicher AUC-PR:  0.1055389486147208\n",
+      "Durchschnittlicher VUS-PR:  0.682426361883131\n"
+     ]
+    }
+   ],
+   "source": [
+    "mean_auc_pr = 0\n",
+    "mean_vus_pr = 0\n",
+    "for element in results:\n",
+    "    file = element['file_name']\n",
+    "    metrics = element['metrics']\n",
+    "    auc_pr = metrics['AUC-PR']\n",
+    "    vus_pr = metrics['VUS-PR']\n",
+    "    print(f'Datei: {file}, AUC-PR: {auc_pr}, VUS-PR: {vus_pr}')\n",
+    "    mean_auc_pr += auc_pr\n",
+    "    mean_vus_pr += vus_pr\n",
+    "\n",
+    "print('Durchschnittlicher AUC-PR: ', (mean_auc_pr/len(results)))\n",
+    "print('Durchschnittlicher VUS-PR: ', (mean_vus_pr/len(results)))\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 76,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "dict_keys(['AUC-PR', 'AUC-ROC', 'VUS-PR', 'VUS-ROC', 'Standard-F1', 'PA-F1', 'Event-based-F1', 'R-based-F1', 'Affiliation-F', 'Precision', 'Recall'])"
+      ]
+     },
+     "execution_count": 76,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "results[0]['metrics'].keys()"
+   ]
   }
  ],
  "metadata": {
diff --git a/src/models/sofia_modelle/call_knn.py b/src/models/sofia_modelle/call_knn.py
index c70dac7cd70651f5a9d0565cf9706f9deeb06733..18a2e885fdc44be4eaeaec7a2353a71796689c3e 100644
--- a/src/models/sofia_modelle/call_knn.py
+++ b/src/models/sofia_modelle/call_knn.py
@@ -5,7 +5,7 @@ sys.path.append(str(pathlib.Path.absolute)+ '../../')
 from src.utils.slidingWindows import find_length_rank
 from src.run_model_wrapper import main
 
-#optimal hyperparameters from autors: {'periodicity': 2, 'n_neighbors': 50}
+#optimal hyperparameters from autors: {'n_neighbors': 50, 'method': 'mean'},  
 params = {
         'n_neighbors': [10, 20, 30, 40, 50],
         'method': ['largest', 'mean', 'median']