diff --git a/predict_genetics.ipynb b/predict_genetics.ipynb index 488e479..c2f9d11 100644 --- a/predict_genetics.ipynb +++ b/predict_genetics.ipynb @@ -1412,11 +1412,11 @@ }, { "cell_type": "code", - "execution_count": 521, + "execution_count": 692, "metadata": { "ExecuteTime": { - "end_time": "2017-12-09T01:54:08.262218Z", - "start_time": "2017-12-09T01:53:56.180148Z" + "end_time": "2017-12-09T04:28:21.487030Z", + "start_time": "2017-12-09T04:27:59.757404Z" } }, "outputs": [ @@ -1459,7 +1459,9 @@ "
27727 rows × 11 columns
\n", + "27727 rows × 13 columns
\n", "" ], "text/plain": [ @@ -2512,136 +2636,136 @@ "45631 2017-12-04 07:33:42 45631 0.029988 \n", "45637 2017-12-06 06:47:25 45637 0.475228 \n", "\n", - " sire_genes \\\n", - "3005 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3007 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3008 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3011 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3013 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3017 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3018 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3018 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3021 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3022 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3024 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3030 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3031 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3031 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3033 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "... ... \n", - "45592 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45594 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45597 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45597 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45598 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45598 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45600 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45601 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45601 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45602 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45604 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45607 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45609 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45610 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45621 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45622 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45624 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45624 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45628 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45631 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45637 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", + " sire_genes sire_gen \\\n", + "3005 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3007 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3008 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3011 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3013 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3017 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3018 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", + "3018 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", + "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", + "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", + "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", + "3021 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", + "3022 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3024 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3030 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3031 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3031 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3033 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "... ... ... \n", + "45592 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 15 \n", + "45594 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45597 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 3 \n", + "45597 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 3 \n", + "45598 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 13 \n", + "45598 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 13 \n", + "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 13 \n", + "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 13 \n", + "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 13 \n", + "45600 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 11 \n", + "45601 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 5 \n", + "45601 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 5 \n", + "45602 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 19 \n", + "45604 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 15 \n", + "45607 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 14 \n", + "45609 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 11 \n", + "45610 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 20 \n", + "45621 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 19 \n", + "45622 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 8 \n", + "45624 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45624 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45628 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", + "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 10 \n", + "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 10 \n", + "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 10 \n", + "45631 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 9 \n", + "45637 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", "\n", - " matron_genes \n", - "3005 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3007 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3008 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3011 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3013 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3017 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3018 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3018 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3021 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3022 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3024 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3030 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3031 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3031 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "3033 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "... ... \n", - "45592 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45594 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45597 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45597 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45598 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45598 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45600 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45601 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45601 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45602 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45604 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45607 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45609 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45610 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45621 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45622 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45624 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45624 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45628 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45631 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", - "45637 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... \n", + " matron_genes matron_gen \n", + "3005 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3007 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3008 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3010 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3011 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3012 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3013 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3017 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3018 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3018 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3020 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3021 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3022 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3024 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3029 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3030 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3031 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3031 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3032 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "3033 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0 \n", + "... ... ... \n", + "45592 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45594 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45597 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 3 \n", + "45597 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 3 \n", + "45598 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45598 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 16 \n", + "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 11 \n", + "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 11 \n", + "45599 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 11 \n", + "45600 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 12 \n", + "45601 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 5 \n", + "45601 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 5 \n", + "45602 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 12 \n", + "45604 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 8 \n", + "45607 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 15 \n", + "45609 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 11 \n", + "45610 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 15 \n", + "45621 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 14 \n", + "45622 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 5 \n", + "45624 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 12 \n", + "45624 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 12 \n", + "45628 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", + "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 6 \n", + "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 6 \n", + "45629 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 6 \n", + "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 9 \n", + "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 9 \n", + "45630 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 9 \n", + "45631 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 10 \n", + "45637 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 1 \n", "\n", - "[27727 rows x 11 columns]" + "[27727 rows x 13 columns]" ] }, - "execution_count": 521, + "execution_count": 692, "metadata": {}, "output_type": "execute_result" } @@ -2661,7 +2785,9 @@ "len(df)\n", "\n", "df['sire_genes']=df['sire_id'].apply(lambda x:df_genetics.loc[x].genes).apply(genestr_to_bits)\n", + "df['sire_gen']=df['sire_id'].apply(lambda x:df_genetics.loc[x].generation)\n", "df['matron_genes']=df['matron_id'].apply(lambda x:df_genetics.loc[x].genes).apply(genestr_to_bits)\n", + "df['matron_gen']=df['matron_id'].apply(lambda x:df_genetics.loc[x].generation)\n", "df['genes']=df['genes'].apply(genestr_to_bits)\n", "\n", "df" @@ -2676,11 +2802,11 @@ }, { "cell_type": "code", - "execution_count": 528, + "execution_count": 674, "metadata": { "ExecuteTime": { - "end_time": "2017-12-09T01:54:50.809681Z", - "start_time": "2017-12-09T01:54:49.978090Z" + "end_time": "2017-12-09T04:23:03.112410Z", + "start_time": "2017-12-09T04:23:02.283349Z" } }, "outputs": [ @@ -2690,7 +2816,7 @@ "((27727, 256, 2), (27727, 256))" ] }, - "execution_count": 528, + "execution_count": 674, "metadata": {}, "output_type": "execute_result" } @@ -2707,11 +2833,11 @@ }, { "cell_type": "code", - "execution_count": 590, + "execution_count": 675, "metadata": { "ExecuteTime": { - "end_time": "2017-12-09T02:36:35.574114Z", - "start_time": "2017-12-09T02:36:32.144940Z" + "end_time": "2017-12-09T04:23:03.622111Z", + "start_time": "2017-12-09T04:23:03.113800Z" } }, "outputs": [ @@ -2721,7 +2847,7 @@ "((24954, 256, 2), (24954, 256))" ] }, - "execution_count": 590, + "execution_count": 675, "metadata": {}, "output_type": "execute_result" } @@ -2735,11 +2861,11 @@ }, { "cell_type": "code", - "execution_count": 591, + "execution_count": 676, "metadata": { "ExecuteTime": { - "end_time": "2017-12-09T02:36:35.579413Z", - "start_time": "2017-12-09T02:36:35.575804Z" + "end_time": "2017-12-09T04:23:03.649822Z", + "start_time": "2017-12-09T04:23:03.646653Z" } }, "outputs": [], @@ -2756,16 +2882,53 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-12-09T02:24:43.706674Z", "start_time": "2017-12-09T02:24:43.701528Z" } }, - "outputs": [], - "source": [] + "source": [ + "# Baseline performance\n", + "\n", + "How easy is this problem? Lets see how well dummy models do\n", + "\n", + "http://scikit-learn.org/stable/modules/generated/sklearn.dummy.DummyClassifier.html" + ] + }, + { + "cell_type": "code", + "execution_count": 681, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-09T04:24:05.999163Z", + "start_time": "2017-12-09T04:24:03.898293Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "stratified loss 1666.43792773 accuracy 0.0\n", + "prior loss 1166.88507952 accuracy 0.0\n", + "uniform loss 2205.66894511 accuracy 0.0\n", + "most_frequent loss 1166.88507952 accuracy 0.0\n" + ] + } + ], + "source": [ + "from sklearn.dummy import DummyClassifier\n", + "for strategy in ['stratified', 'prior', 'uniform', 'most_frequent']:\n", + " clf = DummyClassifier(strategy=strategy, random_state=0)\n", + " clf.fit(X_train.reshape((-1,512)), y_train)\n", + " acc = clf.score(X_test.reshape((-1,512)), y_test)\n", + " \n", + " y_pred = clf.predict(X_test.reshape((-1,512)))\n", + " loss = sklearn.metrics.log_loss(y_test, y_pred)\n", + " print(strategy,'loss',loss,'accuracy',acc)" + ] }, { "cell_type": "markdown", @@ -3979,6 +4142,387 @@ "metrics" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Predict child price" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-09T04:45:48.048118Z", + "start_time": "2017-12-09T04:45:48.041354Z" + } + }, + "source": [ + "The prices are not normally distributed in linear space. But in log space they are, so lets predict log price." + ] + }, + { + "cell_type": "code", + "execution_count": 766, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-09T04:48:06.242181Z", + "start_time": "2017-12-09T04:48:04.768787Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n1ilm9ZsKI+oAAAAASUVORK5CYII=\n", + "text/plain": [ + "