diff --git a/Phase 2/task_4.ipynb b/Phase 2/task_4.ipynb index 9d8d25c..25d660c 100644 --- a/Phase 2/task_4.ipynb +++ b/Phase 2/task_4.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -22,9 +22,351 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Applying CP decomposition on the cm_fd space to get 10 latent semantics (showing only top 10 image-weight pairs for each latent semantic)...\n", + "(4339, 900, 101)\n", + "Showing image-weight latent semantic\n", + "Latent semantic no. 0\n", + "image\t823\t-\tweight\t0.06101574157129977\n", + "image\t809\t-\tweight\t0.06062830674568429\n", + "image\t806\t-\tweight\t0.060448512391290884\n", + "image\t832\t-\tweight\t0.06044200170224582\n", + "image\t830\t-\tweight\t0.06028043498591822\n", + "image\t808\t-\tweight\t0.06026752408221666\n", + "image\t772\t-\tweight\t0.06021140705672949\n", + "image\t750\t-\tweight\t0.060162025437143496\n", + "image\t844\t-\tweight\t0.060101929899988096\n", + "image\t784\t-\tweight\t0.06003388853666149\n", + "Latent semantic no. 1\n", + "image\t980\t-\tweight\t0.0754118902341204\n", + "image\t1084\t-\tweight\t0.07362125136812943\n", + "image\t1011\t-\tweight\t0.06967853969554338\n", + "image\t997\t-\tweight\t0.06873541509302017\n", + "image\t1065\t-\tweight\t0.06811244748351335\n", + "image\t1184\t-\tweight\t0.06715708987702379\n", + "image\t1053\t-\tweight\t0.06697645698011236\n", + "image\t962\t-\tweight\t0.06677715910430597\n", + "image\t1287\t-\tweight\t0.06650715541378867\n", + "image\t968\t-\tweight\t0.065552599099574\n", + "Latent semantic no. 2\n", + "image\t0\t-\tweight\t0.0\n", + "image\t1\t-\tweight\t0.0\n", + "image\t2\t-\tweight\t0.0\n", + "image\t3\t-\tweight\t0.0\n", + "image\t4\t-\tweight\t0.0\n", + "image\t5\t-\tweight\t0.0\n", + "image\t6\t-\tweight\t0.0\n", + "image\t7\t-\tweight\t0.0\n", + "image\t8\t-\tweight\t0.0\n", + "image\t9\t-\tweight\t0.0\n", + "Latent semantic no. 3\n", + "image\t218\t-\tweight\t0.0\n", + "image\t219\t-\tweight\t0.0\n", + "image\t220\t-\tweight\t0.0\n", + "image\t221\t-\tweight\t0.0\n", + "image\t222\t-\tweight\t0.0\n", + "image\t223\t-\tweight\t0.0\n", + "image\t224\t-\tweight\t0.0\n", + "image\t225\t-\tweight\t0.0\n", + "image\t226\t-\tweight\t0.0\n", + "image\t227\t-\tweight\t0.0\n", + "Latent semantic no. 4\n", + "image\t4178\t-\tweight\t0.13411466061203375\n", + "image\t4133\t-\tweight\t0.13381869962849108\n", + "image\t4186\t-\tweight\t0.1328204635772519\n", + "image\t4112\t-\tweight\t0.13246858130287337\n", + "image\t4165\t-\tweight\t0.13047834274654035\n", + "image\t4096\t-\tweight\t0.12970904464417174\n", + "image\t4130\t-\tweight\t0.1276357487547854\n", + "image\t4163\t-\tweight\t0.12611220410021198\n", + "image\t4175\t-\tweight\t0.12609814994237703\n", + "image\t4125\t-\tweight\t0.12492475451893506\n", + "Latent semantic no. 5\n", + "image\t0\t-\tweight\t0.0\n", + "image\t1\t-\tweight\t0.0\n", + "image\t2\t-\tweight\t0.0\n", + "image\t3\t-\tweight\t0.0\n", + "image\t4\t-\tweight\t0.0\n", + "image\t5\t-\tweight\t0.0\n", + "image\t6\t-\tweight\t0.0\n", + "image\t7\t-\tweight\t0.0\n", + "image\t8\t-\tweight\t0.0\n", + "image\t9\t-\tweight\t0.0\n", + "Latent semantic no. 6\n", + "image\t0\t-\tweight\t0.0\n", + "image\t1\t-\tweight\t0.0\n", + "image\t2\t-\tweight\t0.0\n", + "image\t3\t-\tweight\t0.0\n", + "image\t4\t-\tweight\t0.0\n", + "image\t5\t-\tweight\t0.0\n", + "image\t6\t-\tweight\t0.0\n", + "image\t7\t-\tweight\t0.0\n", + "image\t8\t-\tweight\t0.0\n", + "image\t9\t-\tweight\t0.0\n", + "Latent semantic no. 7\n", + "image\t0\t-\tweight\t0.0\n", + "image\t1\t-\tweight\t0.0\n", + "image\t2\t-\tweight\t0.0\n", + "image\t3\t-\tweight\t0.0\n", + "image\t4\t-\tweight\t0.0\n", + "image\t5\t-\tweight\t0.0\n", + "image\t6\t-\tweight\t0.0\n", + "image\t7\t-\tweight\t0.0\n", + "image\t8\t-\tweight\t0.0\n", + "image\t9\t-\tweight\t0.0\n", + "Latent semantic no. 8\n", + "image\t0\t-\tweight\t0.0\n", + "image\t1\t-\tweight\t0.0\n", + "image\t2\t-\tweight\t0.0\n", + "image\t3\t-\tweight\t0.0\n", + "image\t4\t-\tweight\t0.0\n", + "image\t5\t-\tweight\t0.0\n", + "image\t6\t-\tweight\t0.0\n", + "image\t7\t-\tweight\t0.0\n", + "image\t8\t-\tweight\t0.0\n", + "image\t9\t-\tweight\t0.0\n", + "Latent semantic no. 9\n", + "image\t0\t-\tweight\t0.0\n", + "image\t1\t-\tweight\t0.0\n", + "image\t2\t-\tweight\t0.0\n", + "image\t3\t-\tweight\t0.0\n", + "image\t4\t-\tweight\t0.0\n", + "image\t5\t-\tweight\t0.0\n", + "image\t6\t-\tweight\t0.0\n", + "image\t7\t-\tweight\t0.0\n", + "image\t8\t-\tweight\t0.0\n", + "image\t9\t-\tweight\t0.0\n", + "Showing feature-weight latent semantic\n", + "Latent semantic no. 0\n", + "feature\t0\t-\tweight\t0.07577182824380883\n", + "feature\t9\t-\tweight\t0.07573677778472039\n", + "feature\t3\t-\tweight\t0.07557126037394385\n", + "feature\t6\t-\tweight\t0.0753781982199277\n", + "feature\t7\t-\tweight\t0.0001951950616295707\n", + "feature\t4\t-\tweight\t0.00017549416192999285\n", + "feature\t1\t-\tweight\t0.00012194961415249631\n", + "feature\t2\t-\tweight\t4.287652912002155e-06\n", + "feature\t8\t-\tweight\t-2.314815116961173e-06\n", + "feature\t5\t-\tweight\t-5.197417109414247e-06\n", + "Latent semantic no. 1\n", + "feature\t9\t-\tweight\t0.09115512060365509\n", + "feature\t0\t-\tweight\t0.09113096158559393\n", + "feature\t3\t-\tweight\t0.09044159243667037\n", + "feature\t6\t-\tweight\t0.09018059343754826\n", + "feature\t7\t-\tweight\t0.0021130646053269977\n", + "feature\t4\t-\tweight\t0.002030234496532767\n", + "feature\t1\t-\tweight\t0.002009281088063933\n", + "feature\t5\t-\tweight\t-0.0006594073704548895\n", + "feature\t2\t-\tweight\t-0.0006852646011520126\n", + "feature\t8\t-\tweight\t-0.0007029010314333884\n", + "Latent semantic no. 2\n", + "feature\t2\t-\tweight\t0.0017202269882332225\n", + "feature\t5\t-\tweight\t0.0012782693995776035\n", + "feature\t8\t-\tweight\t0.0011056757480729573\n", + "feature\t4\t-\tweight\t-0.008186797881888055\n", + "feature\t1\t-\tweight\t-0.008219352401356154\n", + "feature\t7\t-\tweight\t-0.0082326697588083\n", + "feature\t6\t-\tweight\t-0.052967486759999564\n", + "feature\t0\t-\tweight\t-0.053269849112101635\n", + "feature\t3\t-\tweight\t-0.053314794168011104\n", + "feature\t9\t-\tweight\t-0.054790922702571875\n", + "Latent semantic no. 3\n", + "feature\t8\t-\tweight\t0.0012457435033955949\n", + "feature\t5\t-\tweight\t0.0011302318267326496\n", + "feature\t2\t-\tweight\t0.0008915556276299796\n", + "feature\t1\t-\tweight\t-0.0067143893348969585\n", + "feature\t7\t-\tweight\t-0.006979411165292033\n", + "feature\t4\t-\tweight\t-0.007115085250947199\n", + "feature\t9\t-\tweight\t-0.04627063193585373\n", + "feature\t0\t-\tweight\t-0.04669584380231813\n", + "feature\t3\t-\tweight\t-0.05358789010258499\n", + "feature\t6\t-\tweight\t-0.05372707309592606\n", + "Latent semantic no. 4\n", + "feature\t9\t-\tweight\t0.06636728404803105\n", + "feature\t0\t-\tweight\t0.06602164959781295\n", + "feature\t6\t-\tweight\t0.0658680657426211\n", + "feature\t3\t-\tweight\t0.0658246292439607\n", + "feature\t7\t-\tweight\t0.0024698135167617423\n", + "feature\t1\t-\tweight\t0.0024642047114514965\n", + "feature\t4\t-\tweight\t0.002441605516788918\n", + "feature\t2\t-\tweight\t3.412235539925601e-05\n", + "feature\t8\t-\tweight\t3.0388889414075837e-05\n", + "feature\t5\t-\tweight\t-3.5221294849889635e-05\n", + "Latent semantic no. 5\n", + "feature\t2\t-\tweight\t-0.0004406092931454461\n", + "feature\t8\t-\tweight\t-0.0004885796160427777\n", + "feature\t5\t-\tweight\t-0.00061257112416781\n", + "feature\t1\t-\tweight\t-0.007155350004314086\n", + "feature\t4\t-\tweight\t-0.007165462449854097\n", + "feature\t7\t-\tweight\t-0.007444856783482605\n", + "feature\t6\t-\tweight\t-0.06042702105743578\n", + "feature\t3\t-\tweight\t-0.06082664033553194\n", + "feature\t0\t-\tweight\t-0.061400505754596324\n", + "feature\t9\t-\tweight\t-0.06196505846576572\n", + "Latent semantic no. 6\n", + "feature\t8\t-\tweight\t0.001098350913411075\n", + "feature\t2\t-\tweight\t0.0010016779555276794\n", + "feature\t5\t-\tweight\t0.0005821006414327626\n", + "feature\t4\t-\tweight\t-0.005900355271379414\n", + "feature\t1\t-\tweight\t-0.00598284109579637\n", + "feature\t7\t-\tweight\t-0.0061876362657868585\n", + "feature\t0\t-\tweight\t-0.06848064266828655\n", + "feature\t3\t-\tweight\t-0.06851566211382039\n", + "feature\t6\t-\tweight\t-0.0686464268816822\n", + "feature\t9\t-\tweight\t-0.0692640377395642\n", + "Latent semantic no. 7\n", + "feature\t5\t-\tweight\t0.0017254022262197148\n", + "feature\t8\t-\tweight\t0.001702794313355738\n", + "feature\t2\t-\tweight\t0.0003159487432469688\n", + "feature\t1\t-\tweight\t-0.0020164365697178\n", + "feature\t4\t-\tweight\t-0.0027621541654151115\n", + "feature\t7\t-\tweight\t-0.002853145862649653\n", + "feature\t0\t-\tweight\t-0.06195980356747699\n", + "feature\t9\t-\tweight\t-0.06199428708500771\n", + "feature\t6\t-\tweight\t-0.06368714708105448\n", + "feature\t3\t-\tweight\t-0.06385832819997592\n", + "Latent semantic no. 8\n", + "feature\t5\t-\tweight\t0.000579681022086685\n", + "feature\t8\t-\tweight\t0.00023776162317446615\n", + "feature\t2\t-\tweight\t-8.903068121134156e-05\n", + "feature\t1\t-\tweight\t-0.003628410033754683\n", + "feature\t4\t-\tweight\t-0.004042182279091933\n", + "feature\t7\t-\tweight\t-0.004079610197989652\n", + "feature\t0\t-\tweight\t-0.07078512499474116\n", + "feature\t9\t-\tweight\t-0.07090128668558571\n", + "feature\t6\t-\tweight\t-0.07284859530849022\n", + "feature\t3\t-\tweight\t-0.07317257962730919\n", + "Latent semantic no. 9\n", + "feature\t5\t-\tweight\t8.414336905221735e-05\n", + "feature\t8\t-\tweight\t5.6427744439484355e-05\n", + "feature\t2\t-\tweight\t-0.00016083066069906443\n", + "feature\t1\t-\tweight\t-0.0028491737945443647\n", + "feature\t4\t-\tweight\t-0.003057268122115886\n", + "feature\t7\t-\tweight\t-0.003069397622655647\n", + "feature\t0\t-\tweight\t-0.06533602471133236\n", + "feature\t3\t-\tweight\t-0.06579569084919401\n", + "feature\t6\t-\tweight\t-0.06579792129352352\n", + "feature\t9\t-\tweight\t-0.06583901427338712\n", + "Showing label-weight latent semantic\n", + "Latent semantic no. 0\n", + "label\t3\t-\tweight\t1.0\n", + "label\t0\t-\tweight\t0.0\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "label\t9\t-\tweight\t0.0\n", + "Latent semantic no. 1\n", + "label\t5\t-\tweight\t0.9999999999999999\n", + "label\t0\t-\tweight\t0.0\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "label\t9\t-\tweight\t0.0\n", + "Latent semantic no. 2\n", + "label\t1\t-\tweight\t0.9999999999999998\n", + "label\t0\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "label\t9\t-\tweight\t0.0\n", + "Latent semantic no. 3\n", + "label\t0\t-\tweight\t0.9999999999999994\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "label\t9\t-\tweight\t0.0\n", + "Latent semantic no. 4\n", + "label\t94\t-\tweight\t1.0000000000000007\n", + "label\t0\t-\tweight\t0.0\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "Latent semantic no. 5\n", + "label\t55\t-\tweight\t1.0\n", + "label\t0\t-\tweight\t0.0\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "Latent semantic no. 6\n", + "label\t12\t-\tweight\t0.9999999999999998\n", + "label\t0\t-\tweight\t0.0\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "Latent semantic no. 7\n", + "label\t63\t-\tweight\t0.9999999999999997\n", + "label\t0\t-\tweight\t0.0\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "Latent semantic no. 8\n", + "label\t46\t-\tweight\t1.0\n", + "label\t0\t-\tweight\t0.0\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n", + "Latent semantic no. 9\n", + "label\t93\t-\tweight\t1.0000000000000002\n", + "label\t0\t-\tweight\t0.0\n", + "label\t1\t-\tweight\t0.0\n", + "label\t2\t-\tweight\t0.0\n", + "label\t3\t-\tweight\t0.0\n", + "label\t4\t-\tweight\t0.0\n", + "label\t5\t-\tweight\t0.0\n", + "label\t6\t-\tweight\t0.0\n", + "label\t7\t-\tweight\t0.0\n", + "label\t8\t-\tweight\t0.0\n" + ] + } + ], "source": [ "selected_feature_model = valid_feature_models[\n", " str(input(\"Enter feature model - one of \" + str(list(valid_feature_models.keys()))))\n", @@ -59,7 +401,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.5" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/Phase 2/task_9.ipynb b/Phase 2/task_9.ipynb index 5c99624..c57a926 100644 --- a/Phase 2/task_9.ipynb +++ b/Phase 2/task_9.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 197, + "execution_count": 207, "metadata": {}, "outputs": [ { @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 198, + "execution_count": 208, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 199, + "execution_count": 209, "metadata": {}, "outputs": [], "source": [ @@ -45,14 +45,14 @@ }, { "cell_type": "code", - "execution_count": 200, + "execution_count": 210, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "image_sim-cm_fd-kmeans-10-semantics.json loaded\n" + "cm_fd-cp-10-semantics.json loaded\n" ] } ], @@ -109,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 201, + "execution_count": 211, "metadata": {}, "outputs": [], "source": [ @@ -200,7 +200,37 @@ }, { "cell_type": "code", - "execution_count": 202, + "execution_count": 233, + "metadata": {}, + "outputs": [], + "source": [ + "def extract_similarities_ls2(data, label):\n", + "\n", + " LS = np.array(data[\"label-semantic\"])\n", + " S = np.array(data[\"semantics-core\"])\n", + "\n", + " if len(S.shape) == 1:\n", + " S = np.diag(S)\n", + "\n", + " comparison_vector = LS[label]\n", + " comparison_feature_space = np.matmul(LS, S)\n", + "\n", + " distances = []\n", + "\n", + " n = len(comparison_feature_space)\n", + " for i in range(n):\n", + " if i != label:\n", + " distances.append({\"label\": i, \"distance\": math.dist(comparison_vector, comparison_feature_space[i])})\n", + " \n", + " distances = sorted(distances, key=lambda x: x[\"distance\"], reverse=False)[:knum]\n", + "\n", + " for x in distances:\n", + " print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 234, "metadata": {}, "outputs": [], "source": [ @@ -238,23 +268,23 @@ }, { "cell_type": "code", - "execution_count": 203, + "execution_count": 235, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'image_id': 1596, 'label': 13, 'distance': 10.699607616770502}\n", - "{'image_id': 81, 'label': 0, 'distance': 11.42726536242745}\n", - "{'image_id': 3045, 'label': 57, 'distance': 12.5398964971548}\n", - "{'image_id': 311, 'label': 1, 'distance': 13.106117374912184}\n", - "{'image_id': 2671, 'label': 47, 'distance': 14.239608716065096}\n", - "{'image_id': 1923, 'label': 23, 'distance': 15.409297843450119}\n", - "{'image_id': 3471, 'label': 74, 'distance': 15.417780769047727}\n", - "{'image_id': 4108, 'label': 94, 'distance': 17.628035952336866}\n", - "{'image_id': 1547, 'label': 12, 'distance': 19.28128511589925}\n", - "{'image_id': 3115, 'label': 59, 'distance': 19.762521112658867}\n" + "{'label': 2, 'distance': 0.9999999999999999}\n", + "{'label': 4, 'distance': 0.9999999999999999}\n", + "{'label': 6, 'distance': 0.9999999999999999}\n", + "{'label': 7, 'distance': 0.9999999999999999}\n", + "{'label': 8, 'distance': 0.9999999999999999}\n", + "{'label': 9, 'distance': 0.9999999999999999}\n", + "{'label': 10, 'distance': 0.9999999999999999}\n", + "{'label': 11, 'distance': 0.9999999999999999}\n", + "{'label': 13, 'distance': 0.9999999999999999}\n", + "{'label': 14, 'distance': 0.9999999999999999}\n" ] } ], @@ -268,6 +298,10 @@ " case \"label_sim\":\n", "\n", " extract_similarities_ls3(selected_dim_reduction_method, data, label)\n", + "\n", + " case \"cp\":\n", + "\n", + " extract_similarities_ls2(data, label)\n", " " ] },