mirror of
https://github.com/20kaushik02/CSE515_MWDB_Project.git
synced 2025-12-06 09:24:07 +00:00
task8 lda
This commit is contained in:
parent
579c68f9fa
commit
b117bc84e8
@ -2,7 +2,7 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 140,
|
||||
"execution_count": 29,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
@ -21,7 +21,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 141,
|
||||
"execution_count": 30,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -36,7 +36,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 142,
|
||||
"execution_count": 31,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -46,14 +46,14 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 143,
|
||||
"execution_count": 32,
|
||||
"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"
|
||||
]
|
||||
}
|
||||
],
|
||||
@ -89,28 +89,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\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 33,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -154,6 +171,18 @@
|
||||
" 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",
|
||||
"\n",
|
||||
" n = len(comparison_feature_space)\n",
|
||||
"\n",
|
||||
@ -182,7 +211,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 144,
|
||||
"execution_count": 34,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -224,7 +253,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 145,
|
||||
"execution_count": 41,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -250,6 +279,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",
|
||||
@ -257,15 +290,7 @@
|
||||
" for i in range(n):\n",
|
||||
" if i != img_label:\n",
|
||||
" distances.append({\"label\": i, \"distance\": math.dist(comparison_vector, comparison_feature_space[i])})\n",
|
||||
" # temp_distance = math.dist(comparison_vector, comparison_feature_space[i])\n",
|
||||
" # if distance > temp_distance:\n",
|
||||
" # distance = temp_distance\n",
|
||||
" # most_similar_label = i\n",
|
||||
"\n",
|
||||
" # label_images = [x[\"image_id\"] for x in all_images if x[\"true_label\"] == most_similar_label]\n",
|
||||
" # similar_images = random.sample(label_images, knum)\n",
|
||||
"\n",
|
||||
" # print(f\"Most similar label to {img_label} is {most_similar_label}\")\n",
|
||||
" distances = sorted(distances, key=lambda x: x[\"distance\"], reverse=False)[:knum]\n",
|
||||
"\n",
|
||||
" for img in distances:\n",
|
||||
@ -274,23 +299,23 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 147,
|
||||
"execution_count": 42,
|
||||
"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': 4307, 'label': 99, 'distance': 14.448284626506538}\n",
|
||||
"{'image_id': 2329, 'label': 35, 'distance': 14.742475318290913}\n"
|
||||
"{'label': 19, 'distance': 6.355424425784916e-06}\n",
|
||||
"{'label': 33, 'distance': 1.2740918489579356e-05}\n",
|
||||
"{'label': 54, 'distance': 6.85116641512525e-05}\n",
|
||||
"{'label': 49, 'distance': 8.314856743319156e-05}\n",
|
||||
"{'label': 28, 'distance': 0.00016883047586624644}\n",
|
||||
"{'label': 36, 'distance': 0.0002122873813686887}\n",
|
||||
"{'label': 35, 'distance': 0.00023350326417372972}\n",
|
||||
"{'label': 44, 'distance': 0.0002406295461878455}\n",
|
||||
"{'label': 9, 'distance': 0.00024234313765943418}\n",
|
||||
"{'label': 10, 'distance': 0.0002640071831902495}\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user