Skip to content

Commit

Permalink
linear complexity objective (alternative to the recursive version)
Browse files Browse the repository at this point in the history
  • Loading branch information
gAldeia committed Jun 26, 2024
1 parent e508cbc commit 004ff7a
Show file tree
Hide file tree
Showing 15 changed files with 239 additions and 120 deletions.
2 changes: 1 addition & 1 deletion docs/guide/bandits.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.2"
"version": "3.1.undefined"
}
},
"nbformat": 4,
Expand Down
283 changes: 173 additions & 110 deletions docs/guide/saving_loading_populations.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -48,78 +48,78 @@
"output_type": "stream",
"text": [
"Generation 1/10 [////// ]\n",
"Train Loss (Med): 14.24093 (60.79966)\n",
"Val Loss (Med): 14.24093 (60.79966)\n",
"Median Size (Max): 3 (18)\n",
"Median complexity (Max): 9 (351)\n",
"Time (s): 0.12213\n",
"Train Loss (Med): 16.41696 (74.37033)\n",
"Val Loss (Med): 16.41696 (74.37033)\n",
"Median Size (Max): 3 (12)\n",
"Median complexity (Max): 9 (156)\n",
"Time (s): 0.07226\n",
"\n",
"Generation 2/10 [/////////// ]\n",
"Train Loss (Med): 13.86337 (20.54475)\n",
"Val Loss (Med): 13.86337 (20.54475)\n",
"Median Size (Max): 3 (20)\n",
"Median complexity (Max): 9 (651)\n",
"Time (s): 0.20873\n",
"Train Loss (Med): 12.66635 (49.96683)\n",
"Val Loss (Med): 12.66635 (49.96683)\n",
"Median Size (Max): 3 (12)\n",
"Median complexity (Max): 9 (165)\n",
"Time (s): 0.12100\n",
"\n",
"Generation 3/10 [//////////////// ]\n",
"Train Loss (Med): 13.58168 (17.94969)\n",
"Val Loss (Med): 13.58168 (17.94969)\n",
"Median Size (Max): 3 (18)\n",
"Median complexity (Max): 9 (216)\n",
"Time (s): 0.30500\n",
"Train Loss (Med): 12.66635 (16.41696)\n",
"Val Loss (Med): 12.66635 (16.41696)\n",
"Median Size (Max): 5 (14)\n",
"Median complexity (Max): 33 (408)\n",
"Time (s): 0.16357\n",
"\n",
"Generation 4/10 [///////////////////// ]\n",
"Train Loss (Med): 13.58167 (17.94969)\n",
"Val Loss (Med): 13.58167 (17.94969)\n",
"Median Size (Max): 3 (18)\n",
"Median complexity (Max): 9 (478)\n",
"Time (s): 0.44846\n",
"Train Loss (Med): 10.97588 (17.85729)\n",
"Val Loss (Med): 10.97588 (17.85729)\n",
"Median Size (Max): 5 (14)\n",
"Median complexity (Max): 20 (360)\n",
"Time (s): 0.21556\n",
"\n",
"Generation 5/10 [////////////////////////// ]\n",
"Train Loss (Med): 13.58167 (17.94969)\n",
"Val Loss (Med): 13.58167 (17.94969)\n",
"Median Size (Max): 3 (18)\n",
"Median complexity (Max): 8 (297)\n",
"Time (s): 0.58464\n",
"Train Loss (Med): 10.97588 (16.95482)\n",
"Val Loss (Med): 10.97588 (16.95482)\n",
"Median Size (Max): 5 (15)\n",
"Median complexity (Max): 33 (399)\n",
"Time (s): 0.26767\n",
"\n",
"Generation 6/10 [/////////////////////////////// ]\n",
"Train Loss (Med): 13.25836 (63.64049)\n",
"Val Loss (Med): 13.25836 (63.64049)\n",
"Median Size (Max): 3 (18)\n",
"Median complexity (Max): 7 (297)\n",
"Time (s): 0.71193\n",
"Train Loss (Med): 10.97588 (16.41696)\n",
"Val Loss (Med): 10.97588 (16.41696)\n",
"Median Size (Max): 5 (15)\n",
"Median complexity (Max): 33 (315)\n",
"Time (s): 0.33006\n",
"\n",
"Generation 7/10 [//////////////////////////////////// ]\n",
"Train Loss (Med): 10.63986 (63.64049)\n",
"Val Loss (Med): 10.63986 (63.64049)\n",
"Median Size (Max): 3 (18)\n",
"Median complexity (Max): 6 (567)\n",
"Time (s): 0.84199\n",
"Train Loss (Med): 10.97588 (16.41696)\n",
"Val Loss (Med): 10.97588 (16.41696)\n",
"Median Size (Max): 5 (15)\n",
"Median complexity (Max): 33 (273)\n",
"Time (s): 0.43463\n",
"\n",
"Generation 8/10 [///////////////////////////////////////// ]\n",
"Train Loss (Med): 10.28156 (63.64049)\n",
"Val Loss (Med): 10.28156 (63.64049)\n",
"Median Size (Max): 3 (18)\n",
"Median complexity (Max): 6 (270)\n",
"Time (s): 0.96073\n",
"Train Loss (Med): 10.97588 (15.46647)\n",
"Val Loss (Med): 10.97588 (15.46647)\n",
"Median Size (Max): 7 (15)\n",
"Median complexity (Max): 43 (273)\n",
"Time (s): 0.51012\n",
"\n",
"Generation 9/10 [////////////////////////////////////////////// ]\n",
"Train Loss (Med): 10.09177 (63.64049)\n",
"Val Loss (Med): 10.09177 (63.64049)\n",
"Median Size (Max): 3 (18)\n",
"Median complexity (Max): 6 (216)\n",
"Time (s): 1.06539\n",
"Train Loss (Med): 10.97588 (15.94172)\n",
"Val Loss (Med): 10.97588 (15.94172)\n",
"Median Size (Max): 6 (15)\n",
"Median complexity (Max): 34 (273)\n",
"Time (s): 0.58572\n",
"\n",
"Generation 10/10 [//////////////////////////////////////////////////]\n",
"Train Loss (Med): 10.09177 (63.64049)\n",
"Val Loss (Med): 10.09177 (63.64049)\n",
"Median Size (Max): 3 (20)\n",
"Median complexity (Max): 6 (510)\n",
"Time (s): 1.15215\n",
"Train Loss (Med): 10.97588 (15.94172)\n",
"Val Loss (Med): 10.97588 (15.94172)\n",
"Median Size (Max): 6 (15)\n",
"Median complexity (Max): 34 (273)\n",
"Time (s): 0.64205\n",
"\n",
"Saved population to file /tmp/tmp91lebnyr/population.json\n",
"Saved population to file /tmp/tmpfphckt_3/population.json\n",
"saving final population as archive...\n",
"score: 0.8883469950530682\n"
"score: 0.8785654367436365\n"
]
}
],
Expand Down Expand Up @@ -161,10 +161,10 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Loaded population from /tmp/tmp91lebnyr/population.json of size = 200\n",
"Loaded population from /tmp/tmpfphckt_3/population.json of size = 200\n",
"Completed 100% [====================]\n",
"saving final population as archive...\n",
"score: 0.8893989188100573\n"
"score: 0.888055116477749\n"
]
}
],
Expand Down Expand Up @@ -200,7 +200,7 @@
"\n",
"First, we run the evolution and save the population to a file; then, we load it and keep evolving the individuals.\n",
"\n",
"What is different though is that the first run is optimizing `error` and `complexity`, and the second run is optimizing `average_precision_score` and `size`."
"What is different though is that the first run is optimizing `error` and `complexity`, and the second run is optimizing `average_precision_score` and `linear_complexity`."
]
},
{
Expand All @@ -213,79 +213,79 @@
"output_type": "stream",
"text": [
"Generation 1/10 [////// ]\n",
"Train Loss (Med): 0.54930 (0.69315)\n",
"Val Loss (Med): 0.54930 (0.69315)\n",
"Median Size (Max): 5 (10)\n",
"Train Loss (Med): 0.54851 (0.69315)\n",
"Val Loss (Med): 0.54851 (0.69315)\n",
"Median Size (Max): 5 (12)\n",
"Median complexity (Max): 6 (270)\n",
"Time (s): 0.05091\n",
"Time (s): 0.03284\n",
"\n",
"Generation 2/10 [/////////// ]\n",
"Train Loss (Med): 0.54848 (0.69315)\n",
"Val Loss (Med): 0.54848 (0.69315)\n",
"Train Loss (Med): 0.54850 (0.69315)\n",
"Val Loss (Med): 0.54850 (0.69315)\n",
"Median Size (Max): 5 (10)\n",
"Median complexity (Max): 6 (54)\n",
"Time (s): 0.08855\n",
"Median complexity (Max): 6 (165)\n",
"Time (s): 0.05459\n",
"\n",
"Generation 3/10 [//////////////// ]\n",
"Train Loss (Med): 0.54847 (0.69315)\n",
"Val Loss (Med): 0.54847 (0.69315)\n",
"Median Size (Max): 5 (10)\n",
"Median complexity (Max): 6 (54)\n",
"Time (s): 0.12188\n",
"Train Loss (Med): 0.54851 (0.69315)\n",
"Val Loss (Med): 0.54851 (0.69315)\n",
"Median Size (Max): 3 (10)\n",
"Median complexity (Max): 3 (165)\n",
"Time (s): 0.07147\n",
"\n",
"Generation 4/10 [///////////////////// ]\n",
"Train Loss (Med): 0.54847 (0.69315)\n",
"Val Loss (Med): 0.54847 (0.69315)\n",
"Train Loss (Med): 0.54851 (0.69315)\n",
"Val Loss (Med): 0.54851 (0.69315)\n",
"Median Size (Max): 1 (10)\n",
"Median complexity (Max): 2 (52)\n",
"Time (s): 0.15164\n",
"Median complexity (Max): 2 (54)\n",
"Time (s): 0.08754\n",
"\n",
"Generation 5/10 [////////////////////////// ]\n",
"Train Loss (Med): 0.54846 (0.69315)\n",
"Val Loss (Med): 0.54846 (0.69315)\n",
"Median Size (Max): 1 (9)\n",
"Median complexity (Max): 1 (52)\n",
"Time (s): 0.18853\n",
"Median Size (Max): 1 (10)\n",
"Median complexity (Max): 2 (54)\n",
"Time (s): 0.11204\n",
"\n",
"Generation 6/10 [/////////////////////////////// ]\n",
"Train Loss (Med): 0.50911 (0.69315)\n",
"Val Loss (Med): 0.50911 (0.69315)\n",
"Median Size (Max): 1 (12)\n",
"Median complexity (Max): 1 (52)\n",
"Time (s): 0.23546\n",
"Train Loss (Med): 0.54846 (0.69315)\n",
"Val Loss (Med): 0.54846 (0.69315)\n",
"Median Size (Max): 1 (10)\n",
"Median complexity (Max): 1 (90)\n",
"Time (s): 0.13126\n",
"\n",
"Generation 7/10 [//////////////////////////////////// ]\n",
"Train Loss (Med): 0.50911 (0.69315)\n",
"Val Loss (Med): 0.50911 (0.69315)\n",
"Median Size (Max): 1 (12)\n",
"Median complexity (Max): 1 (44)\n",
"Time (s): 0.28747\n",
"Train Loss (Med): 0.54846 (0.69315)\n",
"Val Loss (Med): 0.54846 (0.69315)\n",
"Median Size (Max): 1 (10)\n",
"Median complexity (Max): 1 (54)\n",
"Time (s): 0.14825\n",
"\n",
"Generation 8/10 [///////////////////////////////////////// ]\n",
"Train Loss (Med): 0.50911 (0.69315)\n",
"Val Loss (Med): 0.50911 (0.69315)\n",
"Median Size (Max): 1 (14)\n",
"Median complexity (Max): 1 (120)\n",
"Time (s): 0.34002\n",
"Train Loss (Med): 0.54846 (0.69315)\n",
"Val Loss (Med): 0.54846 (0.69315)\n",
"Median Size (Max): 1 (10)\n",
"Median complexity (Max): 1 (52)\n",
"Time (s): 0.16841\n",
"\n",
"Generation 9/10 [////////////////////////////////////////////// ]\n",
"Train Loss (Med): 0.50911 (0.69315)\n",
"Val Loss (Med): 0.50911 (0.69315)\n",
"Median Size (Max): 1 (14)\n",
"Median complexity (Max): 1 (80)\n",
"Time (s): 0.39083\n",
"Train Loss (Med): 0.54846 (0.69315)\n",
"Val Loss (Med): 0.54846 (0.69315)\n",
"Median Size (Max): 1 (10)\n",
"Median complexity (Max): 1 (48)\n",
"Time (s): 0.19657\n",
"\n",
"Generation 10/10 [//////////////////////////////////////////////////]\n",
"Train Loss (Med): 0.50911 (0.69315)\n",
"Val Loss (Med): 0.50911 (0.69315)\n",
"Median Size (Max): 1 (12)\n",
"Median complexity (Max): 1 (44)\n",
"Time (s): 0.45610\n",
"Train Loss (Med): 0.54846 (0.69315)\n",
"Val Loss (Med): 0.54846 (0.69315)\n",
"Median Size (Max): 1 (10)\n",
"Median complexity (Max): 1 (48)\n",
"Time (s): 0.22023\n",
"\n",
"Saved population to file /tmp/tmpqcnwu35t/population.json\n",
"Saved population to file /tmp/tmpe7n_mbgz/population.json\n",
"saving final population as archive...\n",
"If(AIDS>15890.50,Logistic(13.52),If(Total>1572255.50,0.22,0.52))\n",
"score: 0.7\n"
"If(AIDS>15890.50,1.18*Logistic(1.69*MeanLabel),0.39*MeanLabel)\n",
"score: 0.68\n"
]
}
],
Expand Down Expand Up @@ -317,33 +317,96 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Generation 1/1 [//////////////////////////////////////////////////]\n",
"Generation 1/10 [////// ]\n",
"Train Loss (Med): 0.46115 (0.31675)\n",
"Val Loss (Med): 0.46115 (0.31675)\n",
"Median Size (Max): 5 (9)\n",
"Median complexity (Max): 6 (180)\n",
"Time (s): 0.03686\n",
"\n",
"Generation 2/10 [/////////// ]\n",
"Train Loss (Med): 0.75212 (0.31675)\n",
"Val Loss (Med): 0.75212 (0.31675)\n",
"Median Size (Max): 5 (9)\n",
"Median complexity (Max): 6 (120)\n",
"Time (s): 0.04622\n",
"Time (s): 0.06046\n",
"\n",
"Generation 3/10 [//////////////// ]\n",
"Train Loss (Med): 0.75212 (0.31675)\n",
"Val Loss (Med): 0.75212 (0.31675)\n",
"Median Size (Max): 4 (9)\n",
"Median complexity (Max): 2 (90)\n",
"Time (s): 0.07728\n",
"\n",
"Generation 4/10 [///////////////////// ]\n",
"Train Loss (Med): 0.75212 (0.00000)\n",
"Val Loss (Med): 0.75212 (0.00000)\n",
"Median Size (Max): 1 (9)\n",
"Median complexity (Max): 1 (90)\n",
"Time (s): 0.09751\n",
"\n",
"Generation 5/10 [////////////////////////// ]\n",
"Train Loss (Med): 0.75212 (0.00000)\n",
"Val Loss (Med): 0.75212 (0.00000)\n",
"Median Size (Max): 1 (6)\n",
"Median complexity (Max): 1 (90)\n",
"Time (s): 0.11214\n",
"\n",
"Generation 6/10 [/////////////////////////////// ]\n",
"Train Loss (Med): 0.75212 (0.00000)\n",
"Val Loss (Med): 0.75212 (0.00000)\n",
"Median Size (Max): 1 (6)\n",
"Median complexity (Max): 1 (90)\n",
"Time (s): 0.12957\n",
"\n",
"Generation 7/10 [//////////////////////////////////// ]\n",
"Train Loss (Med): 0.75258 (0.00000)\n",
"Val Loss (Med): 0.75258 (0.00000)\n",
"Median Size (Max): 1 (8)\n",
"Median complexity (Max): 1 (360)\n",
"Time (s): 0.14327\n",
"\n",
"Generation 8/10 [///////////////////////////////////////// ]\n",
"Train Loss (Med): 0.75212 (0.31675)\n",
"Val Loss (Med): 0.75212 (0.31675)\n",
"Median Size (Max): 1 (6)\n",
"Median complexity (Max): 1 (30)\n",
"Time (s): 0.15835\n",
"\n",
"Generation 9/10 [////////////////////////////////////////////// ]\n",
"Train Loss (Med): 0.75212 (0.31675)\n",
"Val Loss (Med): 0.75212 (0.31675)\n",
"Median Size (Max): 1 (6)\n",
"Median complexity (Max): 1 (30)\n",
"Time (s): 0.17249\n",
"\n",
"Generation 10/10 [//////////////////////////////////////////////////]\n",
"Train Loss (Med): 0.75212 (0.31675)\n",
"Val Loss (Med): 0.75212 (0.31675)\n",
"Median Size (Max): 1 (6)\n",
"Median complexity (Max): 1 (30)\n",
"Time (s): 0.18584\n",
"\n",
"saving final population as archive...\n",
"Logistic(Sum(-1.2485952,Add(-1.25,0.08*AIDS)))\n",
"score: 0.54\n"
"Logistic(-0.07*Mul(0.00*AIDS,-0.03*MeanLabel))\n",
"score: 0.52\n"
]
}
],
"source": [
"est = BrushClassifier(\n",
" functions=['SplitBest','Add','Mul','Sin','Cos','Exp','Logabs'],\n",
" #load_population=pop_file,\n",
" objectives=[\"error\", \"complexity\"],\n",
" objectives=[\"error\", \"linear_complexity\"],\n",
" scorer=\"average_precision_score\",\n",
" max_gens=1,\n",
" max_gens=10,\n",
" verbosity=2\n",
")\n",
"\n",
Expand Down
Loading

0 comments on commit 004ff7a

Please sign in to comment.