mirror of
https://github.com/20kaushik02/CSE515_MWDB_Project.git
synced 2025-12-06 09:24:07 +00:00
ls4 cases for svd and nmf
This commit is contained in:
parent
a5b877b6a3
commit
3ca1614746
@ -2,7 +2,7 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 62,
|
||||
"execution_count": 64,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
@ -21,7 +21,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 63,
|
||||
"execution_count": 65,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -35,7 +35,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 64,
|
||||
"execution_count": 66,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -45,9 +45,17 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 65,
|
||||
"execution_count": 67,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"image_sim-cm_fd-nmf-10-semantics.json loaded\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"selected_latent_space = valid_latent_spaces[\n",
|
||||
" str(input(\"Enter latent space - one of \" + str(list(valid_latent_spaces.keys()))))\n",
|
||||
@ -82,53 +90,87 @@
|
||||
" 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",
|
||||
" 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",
|
||||
" else:\n",
|
||||
" \n",
|
||||
" print(f\"{selected_feature_model}-cp-{k}-semantics.json does not exist\" )\n",
|
||||
" print(f\"{selected_feature_model}-cp-{k}-semantics.json loaded\")\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",
|
||||
" else:\n",
|
||||
" print(f\"{selected_latent_space}-{selected_feature_model}-{selected_dim_reduction_method}-{k}-semantics.json does not exist\" )\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": 66,
|
||||
"execution_count": 83,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def extract_similarities_ls1(dim_reduction, data, label, label_rep):\n",
|
||||
"def extract_similarities_ls1_ls4(latent_space, dim_reduction, data, label, label_rep):\n",
|
||||
"\n",
|
||||
" match dim_reduction:\n",
|
||||
"\n",
|
||||
" case 'svd':\n",
|
||||
" U = np.array(data[\"image-semantic\"])\n",
|
||||
" S = np.array(data[\"semantics-core\"])\n",
|
||||
" if len(S.shape) == 1:\n",
|
||||
" S = np.diag(S)\n",
|
||||
" V = np.transpose(np.array(data[\"semantic-feature\"]))\n",
|
||||
"\n",
|
||||
" if latent_space == \"image_sim\":\n",
|
||||
" label_vectors = []\n",
|
||||
" length = len(U)\n",
|
||||
" for i in range(length):\n",
|
||||
" if all_images[i][\"true_label\"] == label:\n",
|
||||
" label_vectors.append(U[i])\n",
|
||||
" label_rep = [sum(col) / len(col) for col in zip(*label_vectors)]\n",
|
||||
" \n",
|
||||
" comparison_feature_space = np.matmul(U, S)\n",
|
||||
"\n",
|
||||
" if latent_space == \"image_sim\":\n",
|
||||
" print(np.array(label_rep).shape)\n",
|
||||
" print(np.array(S).shape)\n",
|
||||
" comparison_vector = np.matmul(label_rep, S)\n",
|
||||
" else:\n",
|
||||
" comparison_vector = np.matmul(np.matmul(label_rep, V), S)\n",
|
||||
" \n",
|
||||
" case \"nmf\":\n",
|
||||
" H = np.array(data['semantic-feature'])\n",
|
||||
" comparison_feature_space = np.array(data['image-semantic'])\n",
|
||||
" comparison_feature_space = W = np.array(data['image-semantic'])\n",
|
||||
" if latent_space == \"image_sim\":\n",
|
||||
" label_vectors = []\n",
|
||||
" length = len(W)\n",
|
||||
" for i in range(length):\n",
|
||||
" if all_images[i][\"true_label\"] == label:\n",
|
||||
" label_vectors.append(W[i])\n",
|
||||
" label_rep = [sum(col) / len(col) for col in zip(*label_vectors)]\n",
|
||||
"\n",
|
||||
" if latent_space == \"image_sim\":\n",
|
||||
" comparison_vector = label_rep\n",
|
||||
" else:\n",
|
||||
" comparison_vector = np.matmul(label_rep, np.transpose(H))\n",
|
||||
"\n",
|
||||
" case \"\"\n",
|
||||
" case \"kmeans\":\n",
|
||||
" comparison_vector = []\n",
|
||||
" comparison_feature_space = np.array(data[\"image-semantic\"])\n",
|
||||
" S = np.array(data[\"semantic-feature\"])\n",
|
||||
"\n",
|
||||
" for centroid in S:\n",
|
||||
" comparison_vector.append(math.dist(label_rep, centroid))\n",
|
||||
"\n",
|
||||
" print(comparison_feature_space.shape)\n",
|
||||
" n = len(comparison_feature_space)\n",
|
||||
" \n",
|
||||
"\n",
|
||||
" distances = []\n",
|
||||
" for i in range(n):\n",
|
||||
" if i != label:\n",
|
||||
" distances.append({\"image_id\": i, \"label\": all_images[i][\"true_label\"],\"distance\": math.dist(comparison_vector, comparison_feature_space[i])})\n",
|
||||
" distances.append({\"image_id\": i, \"label\": all_images[i][\"true_label\"], \"distance\": math.dist(comparison_vector, comparison_feature_space[i])})\n",
|
||||
"\n",
|
||||
" distances = sorted(distances, key=lambda x: x[\"distance\"], reverse=False)\n",
|
||||
"\n",
|
||||
@ -150,7 +192,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 67,
|
||||
"execution_count": 84,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -170,6 +212,10 @@
|
||||
" comparison_feature_space = np.array(data['image-semantic'])\n",
|
||||
" comparison_vector = comparison_feature_space[label]\n",
|
||||
"\n",
|
||||
" case \"kmeans\":\n",
|
||||
" comparison_feature_space = np.array(data[\"image-semantic\"])\n",
|
||||
" comparison_vector = comparison_feature_space[label]\n",
|
||||
"\n",
|
||||
" n = len(comparison_feature_space)\n",
|
||||
" distances = []\n",
|
||||
" for i in range(n):\n",
|
||||
@ -184,72 +230,32 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 68,
|
||||
"execution_count": 85,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"{'label': 4, 'distance': 0.9931105104385977}\n",
|
||||
"{'label': 92, 'distance': 1.1209182190288185}\n",
|
||||
"{'label': 65, 'distance': 1.2107732156271573}\n",
|
||||
"{'label': 21, 'distance': 1.5053484881391492}\n",
|
||||
"{'label': 2, 'distance': 1.698430977110922}\n",
|
||||
"{'label': 100, 'distance': 1.8636096001573115}\n",
|
||||
"{'label': 95, 'distance': 2.003755992104511}\n",
|
||||
"{'label': 11, 'distance': 2.069066281581252}\n",
|
||||
"{'label': 60, 'distance': 2.070894540798742}\n",
|
||||
"{'label': 88, 'distance': 2.0925931256031}\n",
|
||||
"{'label': 43, 'distance': 2.1056747598887218}\n",
|
||||
"{'label': 33, 'distance': 2.165431005806523}\n",
|
||||
"{'label': 90, 'distance': 2.174626607979455}\n",
|
||||
"{'label': 83, 'distance': 2.188609736988739}\n",
|
||||
"{'label': 68, 'distance': 2.209562202827548}\n",
|
||||
"{'label': 59, 'distance': 2.27130902508622}\n",
|
||||
"{'label': 35, 'distance': 2.276916489521396}\n",
|
||||
"{'label': 70, 'distance': 2.283111150497479}\n",
|
||||
"{'label': 53, 'distance': 2.2871296343421075}\n",
|
||||
"{'label': 42, 'distance': 2.2943393449254192}\n",
|
||||
"{'label': 1, 'distance': 2.299515307388396}\n",
|
||||
"{'label': 89, 'distance': 2.300444335700286}\n",
|
||||
"{'label': 64, 'distance': 2.3105619552648906}\n",
|
||||
"{'label': 47, 'distance': 2.3258018764464126}\n",
|
||||
"{'label': 28, 'distance': 2.33793138436563}\n",
|
||||
"{'label': 91, 'distance': 2.348432279582375}\n",
|
||||
"{'label': 66, 'distance': 2.378823252101462}\n",
|
||||
"{'label': 52, 'distance': 2.3845656934663344}\n",
|
||||
"{'label': 17, 'distance': 2.3851103284430946}\n",
|
||||
"{'label': 29, 'distance': 2.392106657184808}\n",
|
||||
"{'label': 46, 'distance': 2.4059349825734024}\n",
|
||||
"{'label': 98, 'distance': 2.425981349727766}\n",
|
||||
"{'label': 12, 'distance': 2.4320238781945878}\n",
|
||||
"{'label': 5, 'distance': 2.433658250868235}\n",
|
||||
"{'label': 72, 'distance': 2.4438014606638965}\n",
|
||||
"{'label': 96, 'distance': 2.446857205149324}\n",
|
||||
"{'label': 18, 'distance': 2.4473786634019508}\n",
|
||||
"{'label': 0, 'distance': 2.4482053195868017}\n",
|
||||
"{'label': 49, 'distance': 2.451590137889849}\n",
|
||||
"{'label': 14, 'distance': 2.4717097207497414}\n",
|
||||
"{'label': 85, 'distance': 2.473715190942228}\n",
|
||||
"{'label': 19, 'distance': 2.4754273396104534}\n",
|
||||
"{'label': 51, 'distance': 2.4810475345400316}\n",
|
||||
"{'label': 75, 'distance': 2.4850838216864224}\n",
|
||||
"{'label': 93, 'distance': 2.4867224184341175}\n",
|
||||
"{'label': 44, 'distance': 2.498509815319209}\n",
|
||||
"{'label': 82, 'distance': 2.501339416798757}\n",
|
||||
"{'label': 54, 'distance': 2.506342353975533}\n",
|
||||
"{'label': 9, 'distance': 2.5065630929096394}\n",
|
||||
"{'label': 41, 'distance': 2.51345667730748}\n"
|
||||
"{'image_id': 1102, 'label': 5, 'distance': 0.4995439271653643}\n",
|
||||
"{'image_id': 637, 'label': 3, 'distance': 0.6162759255696203}\n",
|
||||
"{'image_id': 1450, 'label': 9, 'distance': 0.6537940561051517}\n",
|
||||
"{'image_id': 2148, 'label': 30, 'distance': 0.6885146297494956}\n",
|
||||
"{'image_id': 3574, 'label': 77, 'distance': 0.6970323320729979}\n",
|
||||
"{'image_id': 2202, 'label': 31, 'distance': 0.6975621319006345}\n",
|
||||
"{'image_id': 2917, 'label': 54, 'distance': 0.7112049573397025}\n",
|
||||
"{'image_id': 4325, 'label': 100, 'distance': 0.7394787087142192}\n",
|
||||
"{'image_id': 1543, 'label': 12, 'distance': 0.7404143327603417}\n",
|
||||
"{'image_id': 2333, 'label': 35, 'distance': 0.7432769566450207}\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"match selected_latent_space:\n",
|
||||
"\n",
|
||||
" case \"\":\n",
|
||||
" case \"\" | \"image_sim\":\n",
|
||||
" \n",
|
||||
" extract_similarities_ls1(selected_dim_reduction_method, data, label, label_rep)\n",
|
||||
" extract_similarities_ls1_ls4(selected_latent_space, selected_dim_reduction_method, data, label, label_rep)\n",
|
||||
"\n",
|
||||
" case \"label_sim\":\n",
|
||||
"\n",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user