|
23 | 23 | "import pickle\n",
|
24 | 24 | "import matplotlib.pyplot as plt\n",
|
25 | 25 | "from matplotlib import rcParams\n",
|
26 |
| - "rcParams.update({'figure.autolayout': True})\n", |
| 26 | + "\n", |
| 27 | + "rcParams.update({\"figure.autolayout\": True})\n", |
27 | 28 | "import numpy as np\n",
|
28 | 29 | "from itertools import product\n",
|
29 | 30 | "import seaborn as sns\n",
|
|
39 | 40 | "\n",
|
40 | 41 | "#%%\n",
|
41 | 42 | "def unpickle(file):\n",
|
42 |
| - " with open(file, 'rb') as fo:\n", |
43 |
| - " dict = pickle.load(fo, encoding='bytes')\n", |
| 43 | + " with open(file, \"rb\") as fo:\n", |
| 44 | + " dict = pickle.load(fo, encoding=\"bytes\")\n", |
44 | 45 | " return dict\n",
|
45 | 46 | "\n",
|
| 47 | + "\n", |
46 | 48 | "def get_fte_bte(err, single_err, ntrees):\n",
|
47 | 49 | " bte = [[] for i in range(10)]\n",
|
48 | 50 | " te = [[] for i in range(10)]\n",
|
49 | 51 | " fte = []\n",
|
50 |
| - " \n", |
| 52 | + "\n", |
51 | 53 | " for i in range(10):\n",
|
52 |
| - " for j in range(i,10):\n", |
53 |
| - " #print(err[j][i],j,i)\n", |
54 |
| - " bte[i].append(err[i][i]/err[j][i])\n", |
55 |
| - " te[i].append(single_err[i]/err[j][i])\n", |
56 |
| - " \n", |
| 54 | + " for j in range(i, 10):\n", |
| 55 | + " # print(err[j][i],j,i)\n", |
| 56 | + " bte[i].append(err[i][i] / err[j][i])\n", |
| 57 | + " te[i].append(single_err[i] / err[j][i])\n", |
| 58 | + "\n", |
57 | 59 | " for i in range(10):\n",
|
58 |
| - " #print(single_err[i],err[i][i])\n", |
59 |
| - " fte.append(single_err[i]/err[i][i])\n", |
60 |
| - " \n", |
61 |
| - " \n", |
62 |
| - " return fte,bte,te\n", |
| 60 | + " # print(single_err[i],err[i][i])\n", |
| 61 | + " fte.append(single_err[i] / err[i][i])\n", |
63 | 62 | "\n",
|
64 |
| - "def calc_mean_bte(btes,task_num=10,reps=6):\n", |
65 |
| - " mean_bte = [[] for i in range(task_num)]\n", |
| 63 | + " return fte, bte, te\n", |
66 | 64 | "\n",
|
67 | 65 | "\n",
|
| 66 | + "def calc_mean_bte(btes, task_num=10, reps=6):\n", |
| 67 | + " mean_bte = [[] for i in range(task_num)]\n", |
| 68 | + "\n", |
68 | 69 | " for j in range(task_num):\n",
|
69 | 70 | " tmp = 0\n",
|
70 | 71 | " for i in range(reps):\n",
|
71 | 72 | " tmp += np.array(btes[i][j])\n",
|
72 |
| - " \n", |
73 |
| - " tmp=tmp/reps\n", |
| 73 | + "\n", |
| 74 | + " tmp = tmp / reps\n", |
74 | 75 | " mean_bte[j].extend(tmp)\n",
|
75 |
| - " \n", |
76 |
| - " return mean_bte \n", |
77 | 76 | "\n",
|
78 |
| - "def calc_mean_te(tes,task_num=10,reps=6):\n", |
| 77 | + " return mean_bte\n", |
| 78 | + "\n", |
| 79 | + "\n", |
| 80 | + "def calc_mean_te(tes, task_num=10, reps=6):\n", |
79 | 81 | " mean_te = [[] for i in range(task_num)]\n",
|
80 | 82 | "\n",
|
81 | 83 | " for j in range(task_num):\n",
|
82 | 84 | " tmp = 0\n",
|
83 | 85 | " for i in range(reps):\n",
|
84 | 86 | " tmp += np.array(tes[i][j])\n",
|
85 |
| - " \n", |
86 |
| - " tmp=tmp/reps\n", |
| 87 | + "\n", |
| 88 | + " tmp = tmp / reps\n", |
87 | 89 | " mean_te[j].extend(tmp)\n",
|
88 |
| - " \n", |
89 |
| - " return mean_te \n", |
90 | 90 | "\n",
|
91 |
| - "def calc_mean_fte(ftes,task_num=10,reps=6):\n", |
| 91 | + " return mean_te\n", |
| 92 | + "\n", |
| 93 | + "\n", |
| 94 | + "def calc_mean_fte(ftes, task_num=10, reps=6):\n", |
92 | 95 | " fte = np.asarray(ftes)\n",
|
93 |
| - " \n", |
94 |
| - " return list(np.mean(np.asarray(fte_tmp),axis=0))\n", |
95 | 96 | "\n",
|
96 |
| - "def calc_mean_err(err,task_num=10,reps=6):\n", |
97 |
| - " mean_err = [[] for i in range(task_num)]\n", |
| 97 | + " return list(np.mean(np.asarray(fte_tmp), axis=0))\n", |
98 | 98 | "\n",
|
99 | 99 | "\n",
|
| 100 | + "def calc_mean_err(err, task_num=10, reps=6):\n", |
| 101 | + " mean_err = [[] for i in range(task_num)]\n", |
| 102 | + "\n", |
100 | 103 | " for j in range(task_num):\n",
|
101 | 104 | " tmp = 0\n",
|
102 | 105 | " for i in range(reps):\n",
|
103 | 106 | " tmp += np.array(err[i][j])\n",
|
104 |
| - " \n", |
105 |
| - " tmp=tmp/reps\n", |
106 |
| - " #print(tmp)\n", |
| 107 | + "\n", |
| 108 | + " tmp = tmp / reps\n", |
| 109 | + " # print(tmp)\n", |
107 | 110 | " mean_err[j].extend([tmp])\n",
|
108 |
| - " \n", |
109 |
| - " return mean_err \n", |
| 111 | + "\n", |
| 112 | + " return mean_err\n", |
| 113 | + "\n", |
110 | 114 | "\n",
|
111 | 115 | "#%%\n",
|
112 |
| - "reps = slots*shifts\n", |
| 116 | + "reps = slots * shifts\n", |
113 | 117 | "\n",
|
114 | 118 | "btes = [[] for i in range(task_num)]\n",
|
115 | 119 | "ftes = [[] for i in range(task_num)]\n",
|
|
121 | 125 | "fte_tmp = [[] for _ in range(reps)]\n",
|
122 | 126 | "err_tmp = [[] for _ in range(reps)]\n",
|
123 | 127 | "\n",
|
124 |
| - "count = 0 \n", |
| 128 | + "count = 0\n", |
125 | 129 | "for slot in range(slots):\n",
|
126 | 130 | " for shift in range(shifts):\n",
|
127 |
| - " filename = 'result/'+model+str(ntrees)+'_'+str(shift+1)+'_'+str(slot)+'.pickle'\n", |
| 131 | + " filename = (\n", |
| 132 | + " \"result/\"\n", |
| 133 | + " + model\n", |
| 134 | + " + str(ntrees)\n", |
| 135 | + " + \"_\"\n", |
| 136 | + " + str(shift + 1)\n", |
| 137 | + " + \"_\"\n", |
| 138 | + " + str(slot)\n", |
| 139 | + " + \".pickle\"\n", |
| 140 | + " )\n", |
128 | 141 | " multitask_df, single_task_df = unpickle(filename)\n",
|
129 | 142 | "\n",
|
130 | 143 | " err = [[] for _ in range(10)]\n",
|
131 | 144 | "\n",
|
132 | 145 | " for ii in range(10):\n",
|
133 | 146 | " err[ii].extend(\n",
|
134 |
| - " 1 - np.array(\n", |
135 |
| - " multitask_df[multitask_df['base_task']==ii+1]['accuracy']\n", |
136 |
| - " )\n", |
| 147 | + " 1\n", |
| 148 | + " - np.array(\n", |
| 149 | + " multitask_df[multitask_df[\"base_task\"] == ii + 1][\"accuracy\"]\n", |
| 150 | + " )\n", |
137 | 151 | " )\n",
|
138 |
| - " single_err = 1 - np.array(single_task_df['accuracy'])\n", |
139 |
| - " fte, bte, te = get_fte_bte(err,single_err,ntrees)\n", |
140 |
| - " \n", |
| 152 | + " single_err = 1 - np.array(single_task_df[\"accuracy\"])\n", |
| 153 | + " fte, bte, te = get_fte_bte(err, single_err, ntrees)\n", |
| 154 | + "\n", |
141 | 155 | " err_ = [[] for i in range(task_num)]\n",
|
142 | 156 | " for i in range(task_num):\n",
|
143 |
| - " for j in range(task_num-i):\n", |
144 |
| - " #print(err[i+j][i])\n", |
145 |
| - " err_[i].append(err[i+j][i])\n", |
146 |
| - " \n", |
| 157 | + " for j in range(task_num - i):\n", |
| 158 | + " # print(err[i+j][i])\n", |
| 159 | + " err_[i].append(err[i + j][i])\n", |
| 160 | + "\n", |
147 | 161 | " te_tmp[count].extend(te)\n",
|
148 | 162 | " bte_tmp[count].extend(bte)\n",
|
149 | 163 | " fte_tmp[count].extend(fte)\n",
|
150 | 164 | " err_tmp[count].extend(err_)\n",
|
151 |
| - " count+=1\n", |
152 |
| - " \n", |
153 |
| - "te = calc_mean_te(te_tmp,reps=reps)\n", |
154 |
| - "bte = calc_mean_bte(bte_tmp,reps=reps)\n", |
155 |
| - "fte = calc_mean_fte(fte_tmp,reps=reps)\n", |
156 |
| - "error = calc_mean_err(err_tmp,reps=reps)" |
| 165 | + " count += 1\n", |
| 166 | + "\n", |
| 167 | + "te = calc_mean_te(te_tmp, reps=reps)\n", |
| 168 | + "bte = calc_mean_bte(bte_tmp, reps=reps)\n", |
| 169 | + "fte = calc_mean_fte(fte_tmp, reps=reps)\n", |
| 170 | + "error = calc_mean_err(err_tmp, reps=reps)" |
157 | 171 | ]
|
158 | 172 | },
|
159 | 173 | {
|
|
162 | 176 | "metadata": {},
|
163 | 177 | "outputs": [],
|
164 | 178 | "source": [
|
165 |
| - "flat_te_per_rep = [[np.mean(te_tmp[rep][i]) for i in range(len(te))] for rep in range(reps)]\n", |
166 |
| - "mean_te_per_rep = np.mean(flat_te_per_rep, axis = 1)\n", |
167 |
| - "min_te_per_rep = np.min(flat_te_per_rep, axis = 1)" |
| 179 | + "flat_te_per_rep = [\n", |
| 180 | + " [np.mean(te_tmp[rep][i]) for i in range(len(te))] for rep in range(reps)\n", |
| 181 | + "]\n", |
| 182 | + "mean_te_per_rep = np.mean(flat_te_per_rep, axis=1)\n", |
| 183 | + "min_te_per_rep = np.min(flat_te_per_rep, axis=1)" |
168 | 184 | ]
|
169 | 185 | },
|
170 | 186 | {
|
|
211 | 227 | }
|
212 | 228 | ],
|
213 | 229 | "source": [
|
214 |
| - "print(\"Mean FTE(Task 10): ({} +- {})\".format(np.mean(task_fte_task_10_per_rep), np.std(task_fte_task_10_per_rep)))\n", |
215 |
| - "print(\"Mean BTE(Task 1): ({} +- {})\".format(np.mean(task_bte_task_1_per_rep), np.std(task_bte_task_1_per_rep)))" |
| 230 | + "print(\n", |
| 231 | + " \"Mean FTE(Task 10): ({} +- {})\".format(\n", |
| 232 | + " np.mean(task_fte_task_10_per_rep), np.std(task_fte_task_10_per_rep)\n", |
| 233 | + " )\n", |
| 234 | + ")\n", |
| 235 | + "print(\n", |
| 236 | + " \"Mean BTE(Task 1): ({} +- {})\".format(\n", |
| 237 | + " np.mean(task_bte_task_1_per_rep), np.std(task_bte_task_1_per_rep)\n", |
| 238 | + " )\n", |
| 239 | + ")" |
216 | 240 | ]
|
217 | 241 | },
|
218 | 242 | {
|
|
240 | 264 | "source": [
|
241 | 265 | "for task in range(task_num):\n",
|
242 | 266 | " final_te_of_task_per_rep = [te_tmp[rep][task][-1] for rep in range(reps)]\n",
|
243 |
| - " print(\"Final TE of Task {}: ({} +- {})\".format(task, np.mean(final_te_of_task_per_rep), np.std(final_te_of_task_per_rep)))" |
| 267 | + " print(\n", |
| 268 | + " \"Final TE of Task {}: ({} +- {})\".format(\n", |
| 269 | + " task, np.mean(final_te_of_task_per_rep), np.std(final_te_of_task_per_rep)\n", |
| 270 | + " )\n", |
| 271 | + " )" |
244 | 272 | ]
|
245 | 273 | },
|
246 | 274 | {
|
|
0 commit comments