diff --git a/Phase 2/task_7.ipynb b/Phase 2/task_7.ipynb index f782863..3a72b77 100644 --- a/Phase 2/task_7.ipynb +++ b/Phase 2/task_7.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 49, + "execution_count": 102, "metadata": {}, "outputs": [ { @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 103, "metadata": {}, "outputs": [], "source": [ @@ -36,7 +36,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 104, "metadata": {}, "outputs": [], "source": [ @@ -46,14 +46,14 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 105, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "image_sim-cm_fd-kmeans-10-semantics.json loaded\n" + "label_sim-cm_fd-lda-10-model.joblib loaded\n" ] } ], @@ -87,28 +87,45 @@ "\n", "match selected_latent_space:\n", " case \"\":\n", - " if os.path.exists(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"):\n", - " data = json.load(open(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"))\n", - " print(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json loaded\")\n", - " else:\n", - " print(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json does not exist\")\n", + " if selected_dim_reduction_method == \"lda\":\n", + " if os.path.exists(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib\") and os.path.exists(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"):\n", + " if os.path.exists(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib\"):\n", + " model = load(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib\")\n", + " data = json.load(open(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"))\n", + " print(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib and json loaded\")\n", + " else:\n", + " print(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib does not exist\")\n", + " else:\n", + " if os.path.exists(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"):\n", + " data = json.load(open(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"))\n", + " print(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json loaded\")\n", + " else:\n", + " print(f\"{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json does not exist\")\n", " case \"cp\":\n", " if os.path.exists(f\"{selected_feature_model}-cp-{k}-semantics.json\"):\n", " data = json.load(open(f\"{selected_feature_model}-cp-{k}-semantics.json\"))\n", " print(f\"{selected_feature_model}-cp-{k}-semantics.json loaded\")\n", - " else: \n", + " else:\n", " print(f\"{selected_feature_model}-cp-{k}-semantics.json does not exist\")\n", " case _:\n", - " if os.path.exists(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"):\n", - " data = json.load(open(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"))\n", - " print(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json loaded\")\n", + " if selected_dim_reduction_method == \"lda\":\n", + " if os.path.exists(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib\") and os.path.exists(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"):\n", + " model = load(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib\")\n", + " data = json.load(open(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"))\n", + " print(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib loaded\")\n", + " else:\n", + " print(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-model.joblib does not exist\")\n", " else:\n", - " print(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json does not exist\")\n" + " if os.path.exists(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"):\n", + " data = json.load(open(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json\"))\n", + " print(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json loaded\")\n", + " else:\n", + " print(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json does not exist\")\n" ] }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 106, "metadata": {}, "outputs": [], "source": [ @@ -152,6 +169,19 @@ " comparison_vector.append(math.dist(sim_matrix[int(image_id / 2)], centroid))\n", " else:\n", " comparison_vector.append(math.dist(image_fd, centroid))\n", + " \n", + " case \"lda\":\n", + " comparison_feature_space = np.array(data[\"image-semantic\"])\n", + " if latent_space == \"image_sim\":\n", + " comparison_vector = comparison_feature_space[int(image_id / 2)]\n", + " else:\n", + " fd = np.array(all_images[int(image_id / 2)][selected_feature_model])\n", + " min_value = np.min(fd)\n", + " feature_vectors_shifted = fd - min_value\n", + " comparison_vector = model.transform(feature_vectors_shifted.flatten().reshape(1, -1)).flatten()\n", + " print(comparison_feature_space.shape)\n", + " print(comparison_vector.shape)\n", + " # print(retValue)\n", "\n", " n = len(comparison_feature_space)\n", "\n", @@ -168,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 107, "metadata": {}, "outputs": [], "source": [ @@ -198,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 108, "metadata": {}, "outputs": [], "source": [ @@ -224,6 +254,10 @@ " comparison_feature_space = np.array(data[\"image-semantic\"])\n", " comparison_vector = comparison_feature_space[img_label]\n", "\n", + " case \"lda\":\n", + " comparison_feature_space = np.array(data[\"image-semantic\"])\n", + " comparison_vector = comparison_feature_space[img_label]\n", + "\n", " n = len(comparison_feature_space)\n", " distance = float('inf')\n", " most_similar_label = img_label\n", @@ -244,23 +278,24 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 109, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'image_id': 2457, 'label': 39, 'distance': 5.400083378408386}\n", - "{'image_id': 2629, 'label': 46, 'distance': 6.360136822031199}\n", - "{'image_id': 1916, 'label': 23, 'distance': 8.279651870400942}\n", - "{'image_id': 1975, 'label': 24, 'distance': 9.305370097143731}\n", - "{'image_id': 3287, 'label': 65, 'distance': 9.696792665660324}\n", - "{'image_id': 292, 'label': 1, 'distance': 10.198675122162054}\n", - "{'image_id': 3965, 'label': 90, 'distance': 11.544874878013612}\n", - "{'image_id': 4018, 'label': 92, 'distance': 12.064116415014514}\n", - "{'image_id': 4037, 'label': 92, 'distance': 13.383239007317492}\n", - "{'image_id': 4307, 'label': 99, 'distance': 14.448284626506538}\n" + "Most similar label to 0 is 19\n", + "3634\n", + "3600\n", + "3562\n", + "3618\n", + "3574\n", + "3604\n", + "3550\n", + "3542\n", + "3564\n", + "3538\n" ] } ], @@ -279,6 +314,13 @@ "\n", " extract_similarities_ls2(data, image_id)\n" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": {