Created
December 4, 2025 15:45
-
-
Save tteofili/e315844b5e2bab607b6d0c4d5f8a54c3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells" : [ { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T15:39:49.759345Z", | |
| "start_time" : "2025-12-04T15:39:49.756767Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "", | |
| "id" : "e635173ef70d8762", | |
| "outputs" : [ ], | |
| "execution_count" : null | |
| }, { | |
| "metadata" : { | |
| "collapsed" : true, | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T14:00:03.890791Z", | |
| "start_time" : "2025-12-04T14:00:03.885325Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import pandas as pd\n", "import json\n", "import operator\n", "\n", "from ellmer.selfexplainer import SelfExplainer" ], | |
| "id" : "909306fc9640edd9", | |
| "outputs" : [ ], | |
| "execution_count" : 141 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T14:15:49.746740Z", | |
| "start_time" : "2025-12-04T14:15:49.734664Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "def perturb_for_target_label(row, ranked_cols, predict_fn, label, k):\n", " row_c = row.copy()\n", " top_k = ranked_cols[:k]\n", " for col in top_k:\n", " if label == 1:\n", " row_c[col] = \"\"\n", " else:\n", " if col.startswith(\"ltable_\"):\n", " counterpart = \"rtable_\" + col[len(\"ltable_\"):]\n", " elif col.startswith(\"rtable_\"):\n", " counterpart = \"ltable_\" + col[len(\"rtable_\"):]\n", " else:\n", " raise ValueError(f\"Column does not start with valid prefix: {col}\")\n", "\n", " if counterpart in row_c.columns:\n", " row_c[col] = row_c[counterpart]\n", " else:\n", " print(f'no counterpart found for {counterpart}')\n", " pass\n", "\n", " new_pred = predict_fn(row_c)\n", " return row_c, new_pred\n" ], | |
| "id" : "4af866c094810b13", | |
| "outputs" : [ ], | |
| "execution_count" : 175 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T12:03:04.623161Z", | |
| "start_time" : "2025-12-04T12:03:04.605366Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "llm = SelfExplainer(explanation_granularity='attribute',\n", " temperature=1,\n", " model_name='gpt-5-nano', model_type='azure_openai',\n", " prompts={\"ptse\": {\"er\": \"../ellmer/prompts/er.txt\"}})" ], | |
| "id" : "b56f71faca9a505a", | |
| "outputs" : [ ], | |
| "execution_count" : 18 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T15:10:56.879137Z", | |
| "start_time" : "2025-12-04T15:10:56.872534Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "def predict_fn(row):\n", " return llm.predict(pd.DataFrame(row))['match_score'].values[0]\n" ], | |
| "id" : "a710f7acb402396a", | |
| "outputs" : [ ], | |
| "execution_count" : 183 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T13:58:37.335056Z", | |
| "start_time" : "2025-12-04T13:58:33.950135Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "outputs" : [ { | |
| "name" : "stderr", | |
| "output_type" : "stream", | |
| "text" : [ "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:03<00:00, 3.37s/it]\u001B[A" ] | |
| }, { | |
| "name" : "stdout", | |
| "output_type" : "stream", | |
| "text" : [ "ltable_name Canon EOS digital camera\n", "rtable_name Canon EOS 90D camera body\n", "dtype: object\n" ] | |
| }, { | |
| "name" : "stderr", | |
| "output_type" : "stream", | |
| "text" : [ "\n" ] | |
| } ], | |
| "execution_count" : 140, | |
| "source" : [ "row = pd.Series({\n", " \"ltable_name\": \"Canon EOS 80D digital camera\",\n", " \"rtable_name\": \"Canon EOS 90D camera body\",\n", "})\n", "\n", "ranked = [\n", " \"ltable_name__80D\",\n", " \"rtable_name__90D\",\n", "]\n", "\n", "perturbed, pred = token_perturb_for_target_label(\n", " row, ranked, predict_fn, label=1, k=1\n", ")\n", "\n", "print(perturbed)\n" ], | |
| "id" : "6e0e039e08657c82" | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T12:30:45.760222Z", | |
| "start_time" : "2025-12-04T12:30:45.757545Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "with open(\"/Users/tteofili/dev/ellmer/experiments/azure_openai/gpt-5-nano/attribute/cameras_small/20251204/12_43/2_results.json\") as f:\n", " d = json.load(f)" ], | |
| "id" : "20da3c2e2a410071", | |
| "outputs" : [ ], | |
| "execution_count" : 56 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T12:33:39.917203Z", | |
| "start_time" : "2025-12-04T12:33:39.912517Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "ltuple = pd.json_normalize(d['data'][0]['zs_sample']['ltuple']).add_prefix('ltable_')\n", "rtuple = pd.json_normalize(d['data'][0]['zs_sample']['rtuple']).add_prefix('rtable_')" ], | |
| "id" : "e6b98d295d5adc27", | |
| "outputs" : [ ], | |
| "execution_count" : 66 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T14:03:33.542898Z", | |
| "start_time" : "2025-12-04T14:03:33.531077Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "wdc_cameras_row = pd.concat([ltuple, rtuple], axis=1)\n", "wdc_cameras_row" ], | |
| "id" : "3bba24732497f80f", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ " ltable_category ltable_cluster_id ltable_brand \\\n", "0 Camera_and_Photo 660483.0 nan \n", "\n", " ltable_title \\\n", "0 Canon Digital Rebel T7i 18-55mm Kit\"@en-US Kit... \n", "\n", " ltable_description ltable_price \\\n", "0 What's included EOS Rebel T7i EF-S 18-55mm 4-... nan \n", "\n", " ltable_specTableContent rtable_category rtable_cluster_id rtable_brand \\\n", "0 nan Camera_and_Photo 3092335.0 nan \n", "\n", " rtable_title \\\n", "0 \"Canon Lens Hood ES-52 for EF 44mm f/2.8 STM\"... \n", "\n", " rtable_description rtable_price \\\n", "0 \" Prevents stray light from entering the lens... nan \n", "\n", " rtable_specTableContent \n", "0 nan " ], | |
| "text/html" : [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>ltable_category</th>\n", " <th>ltable_cluster_id</th>\n", " <th>ltable_brand</th>\n", " <th>ltable_title</th>\n", " <th>ltable_description</th>\n", " <th>ltable_price</th>\n", " <th>ltable_specTableContent</th>\n", " <th>rtable_category</th>\n", " <th>rtable_cluster_id</th>\n", " <th>rtable_brand</th>\n", " <th>rtable_title</th>\n", " <th>rtable_description</th>\n", " <th>rtable_price</th>\n", " <th>rtable_specTableContent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Camera_and_Photo</td>\n", " <td>660483.0</td>\n", " <td>nan</td>\n", " <td>Canon Digital Rebel T7i 18-55mm Kit\"@en-US Kit...</td>\n", " <td>What's included EOS Rebel T7i EF-S 18-55mm 4-...</td>\n", " <td>nan</td>\n", " <td>nan</td>\n", " <td>Camera_and_Photo</td>\n", " <td>3092335.0</td>\n", " <td>nan</td>\n", " <td>\"Canon Lens Hood ES-52 for EF 44mm f/2.8 STM\"...</td>\n", " <td>\" Prevents stray light from entering the lens...</td>\n", " <td>nan</td>\n", " <td>nan</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ] | |
| }, | |
| "execution_count" : 146, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 146 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T12:31:12.361585Z", | |
| "start_time" : "2025-12-04T12:31:12.358224Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "prediction = pd.json_normalize(d['data'][0]['zs_sample'])['prediction']\n", "prediction" ], | |
| "id" : "2565ccf869a697d5", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ "0 0\n", "Name: prediction, dtype: int64" ] | |
| }, | |
| "execution_count" : 62, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 62 | |
| }, { | |
| "metadata" : { }, | |
| "cell_type" : "code", | |
| "outputs" : [ ], | |
| "execution_count" : null, | |
| "source" : "", | |
| "id" : "9fe431c5ad2e4300" | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T12:27:55.326675Z", | |
| "start_time" : "2025-12-04T12:27:55.320310Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "self_explanation = pd.json_normalize(d['data'][0]['zs_sample']['saliency'])\n", "self_explanation" ], | |
| "id" : "bcd247cd99207821", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ " ltable_category ltable_cluster_id ltable_brand ltable_title \\\n", "0 0.25 0.1 0.05 0.4 \n", "\n", " ltable_description ltable_price ltable_specTableContent rtable_category \\\n", "0 0.45 0.05 0.0 0.25 \n", "\n", " rtable_cluster_id rtable_brand rtable_title rtable_description \\\n", "0 0.1 0.05 0.4 0.45 \n", "\n", " rtable_price rtable_specTableContent \n", "0 0.05 0.0 " ], | |
| "text/html" : [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>ltable_category</th>\n", " <th>ltable_cluster_id</th>\n", " <th>ltable_brand</th>\n", " <th>ltable_title</th>\n", " <th>ltable_description</th>\n", " <th>ltable_price</th>\n", " <th>ltable_specTableContent</th>\n", " <th>rtable_category</th>\n", " <th>rtable_cluster_id</th>\n", " <th>rtable_brand</th>\n", " <th>rtable_title</th>\n", " <th>rtable_description</th>\n", " <th>rtable_price</th>\n", " <th>rtable_specTableContent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>0.25</td>\n", " <td>0.1</td>\n", " <td>0.05</td>\n", " <td>0.4</td>\n", " <td>0.45</td>\n", " <td>0.05</td>\n", " <td>0.0</td>\n", " <td>0.25</td>\n", " <td>0.1</td>\n", " <td>0.05</td>\n", " <td>0.4</td>\n", " <td>0.45</td>\n", " <td>0.05</td>\n", " <td>0.0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ] | |
| }, | |
| "execution_count" : 46, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 46 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T12:31:18.138580Z", | |
| "start_time" : "2025-12-04T12:31:18.127412Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "post_hoc_explanation = pd.json_normalize(d['data'][0]['certa_sample']['saliency'])\n", "post_hoc_explanation" ], | |
| "id" : "ea0e7d561021f797", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ " ltable_category ltable_cluster_id ltable_brand ltable_title \\\n", "0 0.152993 0.170732 0.13969 0.317073 \n", "\n", " ltable_description ltable_price ltable_specTableContent rtable_category \\\n", "0 0.192905 0.152993 0.152993 0.334812 \n", "\n", " rtable_cluster_id rtable_brand rtable_title rtable_description \\\n", "0 0.412417 0.332594 0.682927 0.40133 \n", "\n", " rtable_price rtable_specTableContent \n", "0 0.334812 0.32816 " ], | |
| "text/html" : [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>ltable_category</th>\n", " <th>ltable_cluster_id</th>\n", " <th>ltable_brand</th>\n", " <th>ltable_title</th>\n", " <th>ltable_description</th>\n", " <th>ltable_price</th>\n", " <th>ltable_specTableContent</th>\n", " <th>rtable_category</th>\n", " <th>rtable_cluster_id</th>\n", " <th>rtable_brand</th>\n", " <th>rtable_title</th>\n", " <th>rtable_description</th>\n", " <th>rtable_price</th>\n", " <th>rtable_specTableContent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>0.152993</td>\n", " <td>0.170732</td>\n", " <td>0.13969</td>\n", " <td>0.317073</td>\n", " <td>0.192905</td>\n", " <td>0.152993</td>\n", " <td>0.152993</td>\n", " <td>0.334812</td>\n", " <td>0.412417</td>\n", " <td>0.332594</td>\n", " <td>0.682927</td>\n", " <td>0.40133</td>\n", " <td>0.334812</td>\n", " <td>0.32816</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ] | |
| }, | |
| "execution_count" : 63, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 63 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T12:58:10.509733Z", | |
| "start_time" : "2025-12-04T12:58:10.503045Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "# compare\n", "explanations = pd.concat([self_explanation, post_hoc_explanation], axis=0, keys=['self', 'post_hoc'])\n", "explanations.head()" ], | |
| "id" : "92275ff5b2d6fc4d", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ " ltable_category ltable_cluster_id ltable_brand ltable_title \\\n", "self 0 0.250000 0.100000 0.05000 0.400000 \n", "post_hoc 0 0.152993 0.170732 0.13969 0.317073 \n", "\n", " ltable_description ltable_price ltable_specTableContent \\\n", "self 0 0.450000 0.050000 0.000000 \n", "post_hoc 0 0.192905 0.152993 0.152993 \n", "\n", " rtable_category rtable_cluster_id rtable_brand rtable_title \\\n", "self 0 0.250000 0.100000 0.050000 0.400000 \n", "post_hoc 0 0.334812 0.412417 0.332594 0.682927 \n", "\n", " rtable_description rtable_price rtable_specTableContent \n", "self 0 0.45000 0.050000 0.00000 \n", "post_hoc 0 0.40133 0.334812 0.32816 " ], | |
| "text/html" : [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th></th>\n", " <th>ltable_category</th>\n", " <th>ltable_cluster_id</th>\n", " <th>ltable_brand</th>\n", " <th>ltable_title</th>\n", " <th>ltable_description</th>\n", " <th>ltable_price</th>\n", " <th>ltable_specTableContent</th>\n", " <th>rtable_category</th>\n", " <th>rtable_cluster_id</th>\n", " <th>rtable_brand</th>\n", " <th>rtable_title</th>\n", " <th>rtable_description</th>\n", " <th>rtable_price</th>\n", " <th>rtable_specTableContent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>self</th>\n", " <th>0</th>\n", " <td>0.250000</td>\n", " <td>0.100000</td>\n", " <td>0.05000</td>\n", " <td>0.400000</td>\n", " <td>0.450000</td>\n", " <td>0.050000</td>\n", " <td>0.000000</td>\n", " <td>0.250000</td>\n", " <td>0.100000</td>\n", " <td>0.050000</td>\n", " <td>0.400000</td>\n", " <td>0.45000</td>\n", " <td>0.050000</td>\n", " <td>0.00000</td>\n", " </tr>\n", " <tr>\n", " <th>post_hoc</th>\n", " <th>0</th>\n", " <td>0.152993</td>\n", " <td>0.170732</td>\n", " <td>0.13969</td>\n", " <td>0.317073</td>\n", " <td>0.192905</td>\n", " <td>0.152993</td>\n", " <td>0.152993</td>\n", " <td>0.334812</td>\n", " <td>0.412417</td>\n", " <td>0.332594</td>\n", " <td>0.682927</td>\n", " <td>0.40133</td>\n", " <td>0.334812</td>\n", " <td>0.32816</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ] | |
| }, | |
| "execution_count" : 109, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 109 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T12:58:15.123491Z", | |
| "start_time" : "2025-12-04T12:58:14.985275Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "explanations.T.plot(kind='bar', stacked=False, figsize=(12, 6), rot=58)", | |
| "id" : "fcf69878d4338a74", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ "<Axes: >" ] | |
| }, | |
| "execution_count" : 110, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| }, { | |
| "data" : { | |
| "text/plain" : [ "<Figure size 1200x600 with 1 Axes>" ], | |
| "image/png" : "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OQAAAAAAJiOcAwAAAABgMsI5AAAAAKQAN27ckNy5c8vZs2eT5P26dOkizZs3N/6tqvLWW2+Jq6urWCwW2b9/f5J8zpEjRyR//vwSHh6eJO+XVvGccwAAAACpXqEP1ibr550d0yTRrxk1apQ0a9ZMChUqlPQFicj69etl/vz5smnTJilSpIi4ubk91evu378v/fr1k2XLlklkZKQEBATItGnTxN3dXURESpUqJVWrVpUJEybIxx9//EJqTwu4cg4AAAAAJouIiJA5c+ZIt27dXthnnDp1SvLkySPVqlUTDw8PcXR8umu177//vvzwww+ycuVK2bx5s1y6dElatGhhM01gYKBMnz5dHjx48CJKTxMI5wAAAABgsnXr1omTk5NUrVrVGHbr1i1p37695MqVSzJmzCjFixeXefPmGeMvXLggrVu3luzZs4urq6s0a9bssU3iu3TpIu+++66cP39eLBbLU1+dDw0NlTlz5siECROkXr164uvrK/PmzZM//vhDduzYYUzXoEEDuXnzpmzevPmZ5h+EcwAAAAAw3ZYtW8TX19dm2McffyxHjhyRn376SY4ePSrTp083mqJHR0dLQECAZMmSRbZs2SLbtm2TzJkzS8OGDSUqKirB+0+aNElGjBgh+fPnl8uXL8vu3bufqq69e/dKdHS0+Pv7G8NKliwpBQoUkO3btxvDMmTIID4+PrJly5ZnmX0I95wDAAAAgOnOnTsnefPmtRl2/vx5eemll6RixYoiIjZXu5cvXy6xsbEye/ZssVgsIiIyb948yZ49u2zatElefvllm/fKli2bZMmSRdKlSyceHh5PXVdISIhkyJBBsmfPbjPc3d1dQkJCbIblzZtXzp0799TvDVuEcwAAAAAw2b1798TZ2dlmWI8ePaRly5ayb98+efnll6V58+ZSrVo1ERE5cOCAnDx5UrJkyWLzmvv378upU6eSre74MmbMKBEREaZ8dmpAOAcAAAAAk7m5ucmtW7dshjVq1EjOnTsn69atk40bN0r9+vWlV69eMm7cOLl79674+vrK4sWLE7xXrly5kqwuDw8PiYqKktu3b9tcPb9y5UqCK/A3b96UokWLJtlnpzXccw4AAAAAJnvppZfkyJEjCYbnypVLOnfuLIsWLZKJEyfKzJkzRUSkQoUKcuLECcmdO7cUK1bM5i9btmxJVpevr6+kT59e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MhLv7t27unTpUm3evLlaLBbjEa/xPapzvmdBODfRzz//rJUrV1YvLy8dOnSo7t+/3642CC/KrVu3dN26dVq7dm0tUqSIXR40PmzHjh369ttv66uvvmrc82P9rm/cuKEfffSRWiwWm2fT2rtx48ZpkyZNdMOGDWqxWHTbtm024y9cuKCjRo3SevXqadmyZW2u9KRV1nUi/lXLDRs2qLe3t547d85m2jt37mixYsW0f//+yVrj83o4aF+4cEFdXV1t7tWy/uZXrlypL730kt12dme2h/cn1n8fOXJEW7durRaLRd98880UH2oevvIbv94dO3ZoyZIlNUeOHDps2LAEv5O04OF7sTdv3qx9+/bVUqVKae3atW3uQbU31nmLiorSn3/+Wfv162dzEubWrVu6YsUKLVeunFosFj1w4ECqOY4aOnSoWiwWoz8Wq/hXQa9evar9+/fXOnXq2OXTOV6k+NuNb7/9VsuXL58ghO/evVszZcqU4MRHSrV582ab3uVV41qXlStXTuvUqZPgOKpbt242ncDh+cTGxurFixd11KhR6unpqaVKlUrwfSQFwnkysO4oQkJCdP/+/bphwwabg4uhQ4dqkSJFtFKlSvrjjz+aVWaK8/fff+vff/+tqvb5SKj4Zs6cqRkzZlQnJyebJnjxDyLOnz+vqvZ5BetRfvvtNy1VqpRmzpxZa9SoYTMu/nxv27YtQa/9aVV4eHiCYWfPntUCBQro559/nmB8nz59NDAwMLnKe26DBw9+5EHQm2++qVmzZtVp06YZw86fP69lypQxHvuSWn4XycV6guf69es6f/58bdWqlQ4cOFDnzZunqnFXAVasWKHFihVTi8VibH9SGuv3HhkZqRMmTNDq1atry5YttWvXrjad133++edqsVgeeatMWhF/u3rt2jWdMWOGzpgxw8SKks64cePUYrFo/vz5jSbc8R81evz48VTZyvDrr79Wi8WiLi4u+vXXXxvDo6KibKaznsBMybejmGnfvn2aPXt2/fbbb1XVdn/y5ptv6vvvv28XJ3UaN25stIgJCwszjo2tHajWrVtXR40apevXr9cePXpotmzZjEfCsW4kTvz1ISQkRNetW6d//vmnXrp0SVXjTpS0a9dOXV1dtUmTJnr//v0kW4cI5y+Y9YezdetWrVOnjmbKlEm9vb01Z86cNk3Ojhw5ovXr19c/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xaLdu3dX1bgnEfXu3VuLFStmTE84txP3799XPz8//eOPP4xhS5cu1Ro1amj58uXVYrFozZo1derUqaqaNn5EM2bM0JIlS2q2bNl04cKFT5xnf39/feONN5KxuqQTHR2tw4cP1/nz56tqXA/c7dq1U9W4kFWpUiVt0aKF7ty508wyk9SCBQu0TJkyxmNfHnVWd9myZerm5qaZM2f+zz4H0poxY8ZogQIF1MnJSV9//fVHHnjdvXtXt27davSsbU8HFaqqBw4cUB8fH82cObO+8847NuPiN8F71LPe8d+aNWumR44c0QEDBqi3t7c+ePDAWJY7d+7UFi1aqJeXlzZo0ECnT59uLN+UFs6t9Zw6dUodHR3Vz89PN23aZIxfu3at9uvXTwcOHKiLFy9OM4+QunPnjtauXVstFotWq1bNaF0SGxtrsy2wLofPPvvMpo8BexITE6Pdu3fXMWPGqGrcSbvSpUtraGio7ty5U7Nly6YWiyVVPYJz5MiR+tJLL2nJkiW1aNGixvD4Hfupqv7vf//TcuXKvZD7XO1d/fr11WKxaKlSpbRWrVqPnGbfvn3av39/bdWqVTJX9/wuX76snTt31gIFCqiXl5fOnTvX5vdtPd6yt2MDs1mX1/fff6+qcS3OsmTJYlwkuXbtmg4bNkwzZ86sbm5umidPHm3SpInRIulFXGwinCcx65f8999/a44cOdTBwUHfeecd46rinTt3dN++fXr48GG9evVqgteldteuXdNOnTqpxWLRN954w7jnOL79+/drxYoVE1w9TMnif3+XL1/W69ev66FDhzQ8PFxr165tdNqiqtqiRQvj/uHU8L3Hxsbq6tWrtWPHjpohQwYtXbq0TVPDe/fu2TTfjv8sa/xr8ODB6urqqp6envrmm29qcHCwzb1M+/btsznZkdJC1dP49ttvtUOHDpo/f35t37690axaVe3uKkZKcvnyZW3atKmmT59enZ2djU5GH15HHm4CnNLWIWs99+/f16FDh6qvr69myJBBnZ2dtWPHjo+9WphW1purV6/q3LlzNU+ePFqgQAH96aefjHHxv8srV65oxowZ7bp11pYtW/S7777TyMhIrVatmk6aNElV41povfnmmzbbjtRiwoQJRrgcOHCgTU/jqnEnXiIjI41gTgu0hHr27KkWi0W9vb11zZo1j+2bwZ46U314+/bjjz9qQECAVqpUSYOCgnTHjh0mVZZ6XLhwQV1dXbVUqVLq7u5u3Dpk/a3duXNH//nnH121apXu3LnTOCn8ovY9hPMkZN1Qbt68WRs0aKCtWrXSV199VT08PNTNzc14HnFaExoaqidOnLC5723jxo3q7e2t7u7u+vnnnyfovMKegrnqvz/QPn36aNWqVY0DpejoaK1SpYq2b99er169qp9//rnmzJkzVXbWsWTJEnV1dVU/Pz/18fFJEMKPHj1qc69XSgsGZrFuN3bu3KlXr17VlStXqre3t5YvX14nTJighw8f1rCwMLVYLDbNfO3V1atXdeLEiVq/fn2tUaOGfvbZZzYnKvHs3N3dNX369JorVy6b/Y11e/PHH39oeHh4ig2z1rqs+85NmzbpH3/8oePHj1dvb2/Nly+fTVPV1L4Nefh7sv779OnT2rlzZ7VYLNq2bVujjw+r8PBw4z58exG/J+qePXsaw6KiorRmzZo6fvx4VVX966+/NF++fDaP1bN31vV4w4YNOmrUKB0+fLjWqFFD/f39debMmcY+onv37gmauyOONURNnjxZR48erS1btlSLxaJdunTRAwcOGNvAhg0b6uzZs80s9ak9vH2L32dVaGioDhs2TCtWrKiNGzfWMWPGPPVjipHQ3bt39c8//9RChQoZ6038VgnW32By7XMI5y9AwYIFdcSIEcZ9IEeOHNFu3boZO9L4vRGn1IOk52VdkdesWaNNmzbVvHnzapUqVbRWrVrGgURkZKQOHjxYnZycjINze1weD3d29fPPP9uM//HHH9XV1VUzZMigRYoU0f/973+qmnrOesdvhnrkyBHdtm2bvvPOO1qqVClt1qyZ8SzlwoUL6+eff25mqXbj7t272rNnTy1YsKD6+flp6dKltUGDBmaXlSjW9TskJES3bdumkyZNsrnatX37du3Zs6dWqVJFX375Zbt4pFdKt3r1aj1y5Ii+//776ujoqP7+/sbzbn///XctWrSo0fFgSnXixAnNmTOnzS1h4eHh+vPPP2vhwoXVYrFokyZN9Ny5cyZW+eJZw+r169d1zpw5+sorr2hQUJDRY3lERISuWbNGy5Yta/Osa3vn5+eX4PGiffr0UUdHR23UqJGWLFlS27Ztq6r2ebzwtNasWaPt2rXTatWqabNmzXTw4MHq6OhoXE1PzfOeVL799lv18PDQAgUK6MiR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mjWr7t+/3xi3Zs0anTZtmk1/FI965Jo9e1RP1DVq1NDixYsb4cpetoWP07t3b7VYLNqyZUvdvn270cnn3r17tXnz5url5aVvvfWWjh07Vps2barFihUzTrCllu85KX366adaqlQp44lAqv/29aMatx5ZT4Cr2s8ypOf+5BEeHq4tWrTQDz74IMG4qVOnqpOTk548edKEyhIinCdS1apV1WKxqIuLi829xtazMHv37k1wljS1ioqK0rZt2xodUixbtkybN2+uFStW1KCgIM2fP7+eOHHC5CpfrPgHD7dv39Z9+/YZw+39wGLt2rVaqVIl9fb21mHDhum+ffs0NjZWo6Ki9Msvv9QyZcpojhw5tEyZMlqmTBnt1q2b2SWnSA8ePNC1a9dqly5d1GKxaKdOnWwOKOL/v72g5/4X63EnfBcuXKilSpXSdevW2TTdPH36tObPn1937dqVrHU+i759++r777+vderU0Rw5cuhnn31mM/6tt96yi/lIKi1bttR33nlHVeOaUn788ceaPn16rVy5slaqVCnVP+0l/rq+ZcsWHTly5CPH2atdu3apt7e3ZsuWTUeNGqUXL15U1bjm+0OGDNG6detqoUKFdNiwYUYfDKn1No7ncefOHe3Tp4+WLl1as2fPbtNCMTo6OsEyS+nBnJ77zfHhhx9qhQoV9PLlywn6wSlTpoxu377dxOr+RThPpF9++UX379+vn3/+uWbOnFl9fHyMQHb69GktWLCgzX0Lqd2kSZO0XLly+vbbb2vevHn1008/1atXr+rly5fV19fXphfN1Ozhg4jUtOEcPny4EbwWLVqkt27d0ujoaN27d6/Onj1bhw0bpocOHTKuCqS1K2CPYl0GERERxr1xFy9e1OnTp6uXl5d6enoavfXaI3ruf3Gsy+vmzZs6Y8YM7devn3H/26VLl7RevXrGY4K2bNmiW7du1ddff11r1KhhZtn/yfqbiIyM1NjYWD148KAOHz5c8+bNq76+vrpmzRodMmSIurm5mVxp8vroo4+0adOmum3bNm3cuLG2bdtW16xZo7/++quWK1cuTZzIir+/jN8nhz2L/5QO1bgWZ46OjlqpUiWjLwXrPNr7YzNflIfXgbCwMP3uu++0SZMmWrhwYe3Zs6dNx7v2duxBz/0v3rFjx3TDhg1Gq76tW7dqrly5tF27dnrixAnjwurs2bM1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" | |
| }, | |
| "metadata" : { }, | |
| "output_type" : "display_data", | |
| "jetTransient" : { | |
| "display_id" : null | |
| } | |
| } ], | |
| "execution_count" : 110 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T14:16:02.544493Z", | |
| "start_time" : "2025-12-04T14:15:57.953584Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "expl1 = [r[0] for r in sorted(explanations.iloc[0].to_dict().items(), key=operator.itemgetter(1), reverse=True)]\n", "perturb_for_target_label(wdc_cameras_row, expl1, predict_fn, label=int(prediction.values), k=5)" ], | |
| "id" : "2af6f53ef7514183", | |
| "outputs" : [ { | |
| "name" : "stderr", | |
| "output_type" : "stream", | |
| "text" : [ "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/2824996153.py:2: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " perturb_for_target_label(wdc_cameras_row, expl1, predict_fn, label=int(prediction.values), k=5)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:04<00:00, 4.57s/it]\u001B[A\n" ] | |
| }, { | |
| "data" : { | |
| "text/plain" : [ "( ltable_category ltable_cluster_id ltable_brand \\\n", " 0 Camera_and_Photo 660483.0 nan \n", " \n", " ltable_title \\\n", " 0 \"Canon Lens Hood ES-52 for EF 44mm f/2.8 STM\"... \n", " \n", " ltable_description ltable_price \\\n", " 0 \" Prevents stray light from entering the lens... nan \n", " \n", " ltable_specTableContent rtable_category rtable_cluster_id rtable_brand \\\n", " 0 nan Camera_and_Photo 3092335.0 nan \n", " \n", " rtable_title \\\n", " 0 \"Canon Lens Hood ES-52 for EF 44mm f/2.8 STM\"... \n", " \n", " rtable_description rtable_price \\\n", " 0 \" Prevents stray light from entering the lens... nan \n", " \n", " rtable_specTableContent \n", " 0 nan ,\n", " array([1]))" ] | |
| }, | |
| "execution_count" : 176, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 176 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T15:11:32.767610Z", | |
| "start_time" : "2025-12-04T15:11:01.605846Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "res = []\n", "\n", "k_range = 6\n", "\n", "for i in range(len(explanations)):\n", " expl = explanations.iloc[i]\n", " explainer = expl.name[0]\n", " salient_features = [r[0] for r in sorted(expl.to_dict().items(), key=operator.itemgetter(1), reverse=True)]\n", " for k in range(k_range):\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", " cr = {'prediction': pred, 'perturbed': pert, 'explainer': explainer}\n", " res.append(cr)\n", "\n", "consistency = pd.DataFrame(res)\n" ], | |
| "id" : "3afed76d80884a44", | |
| "outputs" : [ { | |
| "name" : "stderr", | |
| "output_type" : "stream", | |
| "text" : [ "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:01<00:00, 1.99s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:01<00:00, 1.98s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:02<00:00, 2.07s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:02<00:00, 2.44s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:03<00:00, 3.20s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:02<00:00, 2.85s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:01<00:00, 1.89s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:05<00:00, 5.38s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:03<00:00, 3.58s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:01<00:00, 1.17s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:02<00:00, 2.86s/it]\u001B[A\n", "/var/folders/mr/6xnd0hrs6257283btx8ff88r0000gn/T/ipykernel_5310/493151998.py:7: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n", " pert, pred = perturb_for_target_label(wdc_cameras_row, salient_features, predict_fn, label=int(prediction.values), k=k)\n", "\n", " 0%| | 0/1 [00:00<?, ?it/s]\u001B[A\n", "100%|██████████| 1/1 [00:01<00:00, 1.66s/it]\u001B[A\n" ] | |
| } ], | |
| "execution_count" : 184 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-12-04T15:25:54.687618Z", | |
| "start_time" : "2025-12-04T15:25:54.674936Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "consistency[['explainer','prediction']].groupby(['explainer']).sum()/k_range", | |
| "id" : "98f451ed7e6bee27", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ " prediction\n", "explainer \n", "post_hoc 0.833333\n", "self 0.500000" ], | |
| "text/html" : [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>prediction</th>\n", " </tr>\n", " <tr>\n", " <th>explainer</th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>post_hoc</th>\n", " <td>0.833333</td>\n", " </tr>\n", " <tr>\n", " <th>self</th>\n", " <td>0.500000</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ] | |
| }, | |
| "execution_count" : 189, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 189 | |
| } ], | |
| "metadata" : { | |
| "kernelspec" : { | |
| "display_name" : "Python 3", | |
| "language" : "python", | |
| "name" : "python3" | |
| }, | |
| "language_info" : { | |
| "codemirror_mode" : { | |
| "name" : "ipython", | |
| "version" : 2 | |
| }, | |
| "file_extension" : ".py", | |
| "mimetype" : "text/x-python", | |
| "name" : "python", | |
| "nbconvert_exporter" : "python", | |
| "pygments_lexer" : "ipython2", | |
| "version" : "2.7.6" | |
| } | |
| }, | |
| "nbformat" : 4, | |
| "nbformat_minor" : 5 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment