aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dslr_notebook.ipynb701
-rw-r--r--src/analysis.py10
-rw-r--r--src/cli.py29
-rw-r--r--src/describe.py0
-rw-r--r--src/model.py0
5 files changed, 461 insertions, 279 deletions
diff --git a/dslr_notebook.ipynb b/dslr_notebook.ipynb
index c85b8c6..b226df7 100644
--- a/dslr_notebook.ipynb
+++ b/dslr_notebook.ipynb
@@ -11,7 +11,36 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 1,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['Ravenclaw', 'Slytherin', 'Gryffindor', 'Hufflepuff'], dtype=object)"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "df = pd.read_csv(\"./datasets/dataset_train.csv\")\n",
+ "df.drop(columns=[\"Index\"], inplace=True)\n",
+ "df.dropna(inplace=True)\n",
+ "df['Hogwarts House'].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
"metadata": {},
"outputs": [
{
@@ -35,12 +64,6 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
- " <th>Index</th>\n",
- " <th>Hogwarts House</th>\n",
- " <th>First Name</th>\n",
- " <th>Last Name</th>\n",
- " <th>Birthday</th>\n",
- " <th>Best Hand</th>\n",
" <th>Arithmancy</th>\n",
" <th>Astronomy</th>\n",
" <th>Herbology</th>\n",
@@ -59,12 +82,6 @@
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
- " <td>0</td>\n",
- " <td>Ravenclaw</td>\n",
- " <td>Tamara</td>\n",
- " <td>Hsu</td>\n",
- " <td>2000-03-30</td>\n",
- " <td>Left</td>\n",
" <td>58384.0</td>\n",
" <td>-487.886086</td>\n",
" <td>5.727180</td>\n",
@@ -80,35 +97,7 @@
" <td>-26.89</td>\n",
" </tr>\n",
" <tr>\n",
- " <th>1</th>\n",
- " <td>1</td>\n",
- " <td>Slytherin</td>\n",
- " <td>Erich</td>\n",
- " <td>Paredes</td>\n",
- " <td>1999-10-14</td>\n",
- " <td>Right</td>\n",
- " <td>67239.0</td>\n",
- " <td>-552.060507</td>\n",
- " <td>-5.987446</td>\n",
- " <td>5.520605</td>\n",
- " <td>-5.612</td>\n",
- " <td>-487.340557</td>\n",
- " <td>367.760303</td>\n",
- " <td>4.107170</td>\n",
- " <td>1058.944592</td>\n",
- " <td>7.248742</td>\n",
- " <td>0.091674</td>\n",
- " <td>-252.18425</td>\n",
- " <td>-113.45</td>\n",
- " </tr>\n",
- " <tr>\n",
" <th>2</th>\n",
- " <td>2</td>\n",
- " <td>Ravenclaw</td>\n",
- " <td>Stephany</td>\n",
- " <td>Braun</td>\n",
- " <td>1999-11-03</td>\n",
- " <td>Left</td>\n",
" <td>23702.0</td>\n",
" <td>-366.076117</td>\n",
" <td>7.725017</td>\n",
@@ -124,100 +113,97 @@
" <td>30.42</td>\n",
" </tr>\n",
" <tr>\n",
- " <th>3</th>\n",
- " <td>3</td>\n",
- " <td>Gryffindor</td>\n",
- " <td>Vesta</td>\n",
- " <td>Mcmichael</td>\n",
- " <td>2000-08-19</td>\n",
- " <td>Left</td>\n",
- " <td>32667.0</td>\n",
- " <td>697.742809</td>\n",
- " <td>-6.497214</td>\n",
- " <td>-6.977428</td>\n",
- " <td>4.026</td>\n",
- " <td>-537.001128</td>\n",
- " <td>523.982133</td>\n",
- " <td>-4.809637</td>\n",
- " <td>920.391449</td>\n",
- " <td>0.821911</td>\n",
- " <td>-0.014040</td>\n",
- " <td>-256.84675</td>\n",
- " <td>200.64</td>\n",
+ " <th>14</th>\n",
+ " <td>44791.0</td>\n",
+ " <td>-197.527318</td>\n",
+ " <td>2.742444</td>\n",
+ " <td>1.975273</td>\n",
+ " <td>6.603</td>\n",
+ " <td>527.356323</td>\n",
+ " <td>605.590600</td>\n",
+ " <td>5.480097</td>\n",
+ " <td>1063.522361</td>\n",
+ " <td>9.407484</td>\n",
+ " <td>-1.112649</td>\n",
+ " <td>-232.65964</td>\n",
+ " <td>-19.94</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>21630.0</td>\n",
+ " <td>-447.649812</td>\n",
+ " <td>4.046727</td>\n",
+ " <td>4.476498</td>\n",
+ " <td>4.949</td>\n",
+ " <td>810.154483</td>\n",
+ " <td>615.531088</td>\n",
+ " <td>3.653495</td>\n",
+ " <td>1075.853850</td>\n",
+ " <td>9.622899</td>\n",
+ " <td>0.567096</td>\n",
+ " <td>-229.38229</td>\n",
+ " <td>17.00</td>\n",
" </tr>\n",
" <tr>\n",
- " <th>4</th>\n",
- " <td>4</td>\n",
- " <td>Gryffindor</td>\n",
- " <td>Gaston</td>\n",
- " <td>Gibbs</td>\n",
- " <td>1998-09-27</td>\n",
- " <td>Left</td>\n",
- " <td>60158.0</td>\n",
- " <td>436.775204</td>\n",
- " <td>-7.820623</td>\n",
- " <td>NaN</td>\n",
- " <td>2.236</td>\n",
- " <td>-444.262537</td>\n",
- " <td>599.324514</td>\n",
- " <td>-3.444377</td>\n",
- " <td>937.434724</td>\n",
- " <td>4.311066</td>\n",
- " <td>-0.264070</td>\n",
- " <td>-256.38730</td>\n",
- " <td>157.98</td>\n",
+ " <th>18</th>\n",
+ " <td>15578.0</td>\n",
+ " <td>-151.088209</td>\n",
+ " <td>6.871857</td>\n",
+ " <td>1.510882</td>\n",
+ " <td>7.906</td>\n",
+ " <td>645.447451</td>\n",
+ " <td>607.442729</td>\n",
+ " <td>6.317446</td>\n",
+ " <td>1091.054831</td>\n",
+ " <td>11.708777</td>\n",
+ " <td>0.260556</td>\n",
+ " <td>-226.76896</td>\n",
+ " <td>11.22</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
- " Index Hogwarts House First Name Last Name Birthday Best Hand \\\n",
- "0 0 Ravenclaw Tamara Hsu 2000-03-30 Left \n",
- "1 1 Slytherin Erich Paredes 1999-10-14 Right \n",
- "2 2 Ravenclaw Stephany Braun 1999-11-03 Left \n",
- "3 3 Gryffindor Vesta Mcmichael 2000-08-19 Left \n",
- "4 4 Gryffindor Gaston Gibbs 1998-09-27 Left \n",
+ " Arithmancy Astronomy Herbology Defense Against the Dark Arts \\\n",
+ "0 58384.0 -487.886086 5.727180 4.878861 \n",
+ "2 23702.0 -366.076117 7.725017 3.660761 \n",
+ "14 44791.0 -197.527318 2.742444 1.975273 \n",
+ "15 21630.0 -447.649812 4.046727 4.476498 \n",
+ "18 15578.0 -151.088209 6.871857 1.510882 \n",
"\n",
- " Arithmancy Astronomy Herbology Defense Against the Dark Arts \\\n",
- "0 58384.0 -487.886086 5.727180 4.878861 \n",
- "1 67239.0 -552.060507 -5.987446 5.520605 \n",
- "2 23702.0 -366.076117 7.725017 3.660761 \n",
- "3 32667.0 697.742809 -6.497214 -6.977428 \n",
- "4 60158.0 436.775204 -7.820623 NaN \n",
+ " Divination Muggle Studies Ancient Runes History of Magic \\\n",
+ "0 4.722 272.035831 532.484226 5.231058 \n",
+ "2 6.140 664.893521 602.585284 3.555579 \n",
+ "14 6.603 527.356323 605.590600 5.480097 \n",
+ "15 4.949 810.154483 615.531088 3.653495 \n",
+ "18 7.906 645.447451 607.442729 6.317446 \n",
"\n",
- " Divination Muggle Studies Ancient Runes History of Magic \\\n",
- "0 4.722 272.035831 532.484226 5.231058 \n",
- "1 -5.612 -487.340557 367.760303 4.107170 \n",
- "2 6.140 664.893521 602.585284 3.555579 \n",
- "3 4.026 -537.001128 523.982133 -4.809637 \n",
- "4 2.236 -444.262537 599.324514 -3.444377 \n",
- "\n",
- " Transfiguration Potions Care of Magical Creatures Charms Flying \n",
- "0 1039.788281 3.790369 0.715939 -232.79405 -26.89 \n",
- "1 1058.944592 7.248742 0.091674 -252.18425 -113.45 \n",
- "2 1088.088348 8.728531 -0.515327 -227.34265 30.42 \n",
- "3 920.391449 0.821911 -0.014040 -256.84675 200.64 \n",
- "4 937.434724 4.311066 -0.264070 -256.38730 157.98 "
+ " Transfiguration Potions Care of Magical Creatures Charms Flying \n",
+ "0 1039.788281 3.790369 0.715939 -232.79405 -26.89 \n",
+ "2 1088.088348 8.728531 -0.515327 -227.34265 30.42 \n",
+ "14 1063.522361 9.407484 -1.112649 -232.65964 -19.94 \n",
+ "15 1075.853850 9.622899 0.567096 -229.38229 17.00 \n",
+ "18 1091.054831 11.708777 0.260556 -226.76896 11.22 "
]
},
- "execution_count": 4,
+ "execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "import pandas as pd\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
+ "def house_scores_df(house_name):\n",
+ " house_filt = (df['Hogwarts House'] == house_name)\n",
+ " return df[house_filt].loc[:, 'Arithmancy':'Flying']\n",
"\n",
- "df = pd.read_csv(\"./datasets/dataset_train.csv\")\n",
- "df.head()"
+ "houses_df = {key: house_scores_df(key) for key in df['Hogwarts House'].unique()}\n",
+ "houses_df['Ravenclaw'].head()"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -241,7 +227,6 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
- " <th>Index</th>\n",
" <th>Arithmancy</th>\n",
" <th>Astronomy</th>\n",
" <th>Herbology</th>\n",
@@ -259,198 +244,356 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
- " <th>count</th>\n",
- " <td>1600.00000</td>\n",
- " <td>1566.000000</td>\n",
- " <td>1568.000000</td>\n",
- " <td>1567.000000</td>\n",
- " <td>1569.000000</td>\n",
- " <td>1561.000000</td>\n",
- " <td>1565.000000</td>\n",
- " <td>1565.000000</td>\n",
- " <td>1557.000000</td>\n",
- " <td>1566.000000</td>\n",
- " <td>1570.000000</td>\n",
- " <td>1560.000000</td>\n",
- " <td>1600.000000</td>\n",
- " <td>1600.000000</td>\n",
- " </tr>\n",
- " <tr>\n",
- " <th>mean</th>\n",
- " <td>799.50000</td>\n",
- " <td>49634.570243</td>\n",
- " <td>39.797131</td>\n",
- " <td>1.141020</td>\n",
- " <td>-0.387863</td>\n",
- " <td>3.153910</td>\n",
- " <td>-224.589915</td>\n",
- " <td>495.747970</td>\n",
- " <td>2.963095</td>\n",
- " <td>1030.096946</td>\n",
- " <td>5.950373</td>\n",
- " <td>-0.053427</td>\n",
- " <td>-243.374409</td>\n",
- " <td>21.958012</td>\n",
- " </tr>\n",
- " <tr>\n",
- " <th>std</th>\n",
- " <td>462.02453</td>\n",
- " <td>16679.806036</td>\n",
- " <td>520.298268</td>\n",
- " <td>5.219682</td>\n",
- " <td>5.212794</td>\n",
- " <td>4.155301</td>\n",
- " <td>486.344840</td>\n",
- " <td>106.285165</td>\n",
- " <td>4.425775</td>\n",
- " <td>44.125116</td>\n",
- " <td>3.147854</td>\n",
- " <td>0.971457</td>\n",
- " <td>8.783640</td>\n",
- " <td>97.631602</td>\n",
- " </tr>\n",
- " <tr>\n",
- " <th>min</th>\n",
- " <td>0.00000</td>\n",
- " <td>-24370.000000</td>\n",
- " <td>-966.740546</td>\n",
- " <td>-10.295663</td>\n",
- " <td>-10.162119</td>\n",
- " <td>-8.727000</td>\n",
- " <td>-1086.496835</td>\n",
- " <td>283.869609</td>\n",
- " <td>-8.858993</td>\n",
- " <td>906.627320</td>\n",
- " <td>-4.697484</td>\n",
- " <td>-3.313676</td>\n",
- " <td>-261.048920</td>\n",
- " <td>-181.470000</td>\n",
+ " <th>0</th>\n",
+ " <td>0.070306</td>\n",
+ " <td>-0.005636</td>\n",
+ " <td>0.043022</td>\n",
+ " <td>0.005636</td>\n",
+ " <td>-0.015935</td>\n",
+ " <td>-0.117316</td>\n",
+ " <td>-0.163066</td>\n",
+ " <td>0.019460</td>\n",
+ " <td>-0.077827</td>\n",
+ " <td>-0.252914</td>\n",
+ " <td>0.124483</td>\n",
+ " <td>-0.056668</td>\n",
+ " <td>-0.074683</td>\n",
" </tr>\n",
" <tr>\n",
- " <th>25%</th>\n",
- " <td>399.75000</td>\n",
- " <td>38511.500000</td>\n",
- " <td>-489.551387</td>\n",
- " <td>-4.308182</td>\n",
- " <td>-5.259095</td>\n",
- " <td>3.099000</td>\n",
- " <td>-577.580096</td>\n",
- " <td>397.511047</td>\n",
- " <td>2.218653</td>\n",
- " <td>1026.209993</td>\n",
- " <td>3.646785</td>\n",
- " <td>-0.671606</td>\n",
- " <td>-250.652600</td>\n",
- " <td>-41.870000</td>\n",
+ " <th>2</th>\n",
+ " <td>-0.197869</td>\n",
+ " <td>0.068820</td>\n",
+ " <td>0.166863</td>\n",
+ " <td>-0.068820</td>\n",
+ " <td>0.075970</td>\n",
+ " <td>0.103740</td>\n",
+ " <td>0.013395</td>\n",
+ " <td>-0.092922</td>\n",
+ " <td>0.281957</td>\n",
+ " <td>0.135497</td>\n",
+ " <td>-0.091151</td>\n",
+ " <td>0.126031</td>\n",
+ " <td>0.106128</td>\n",
" </tr>\n",
" <tr>\n",
- " <th>50%</th>\n",
- " <td>799.50000</td>\n",
- " <td>49013.500000</td>\n",
- " <td>260.289446</td>\n",
- " <td>3.469012</td>\n",
- " <td>-2.589342</td>\n",
- " <td>4.624000</td>\n",
- " <td>-419.164294</td>\n",
- " <td>463.918305</td>\n",
- " <td>4.378176</td>\n",
- " <td>1045.506996</td>\n",
- " <td>5.874837</td>\n",
- " <td>-0.044811</td>\n",
- " <td>-244.867765</td>\n",
- " <td>-2.515000</td>\n",
+ " <th>14</th>\n",
+ " <td>-0.034800</td>\n",
+ " <td>0.171845</td>\n",
+ " <td>-0.141995</td>\n",
+ " <td>-0.171845</td>\n",
+ " <td>0.105978</td>\n",
+ " <td>0.026350</td>\n",
+ " <td>0.020960</td>\n",
+ " <td>0.036164</td>\n",
+ " <td>0.098966</td>\n",
+ " <td>0.188900</td>\n",
+ " <td>-0.195761</td>\n",
+ " <td>-0.052163</td>\n",
+ " <td>-0.052756</td>\n",
" </tr>\n",
" <tr>\n",
- " <th>75%</th>\n",
- " <td>1199.25000</td>\n",
- " <td>60811.250000</td>\n",
- " <td>524.771949</td>\n",
- " <td>5.419183</td>\n",
- " <td>4.904680</td>\n",
- " <td>5.667000</td>\n",
- " <td>254.994857</td>\n",
- " <td>597.492230</td>\n",
- " <td>5.825242</td>\n",
- " <td>1058.436410</td>\n",
- " <td>8.248173</td>\n",
- " <td>0.589919</td>\n",
- " <td>-232.552305</td>\n",
- " <td>50.560000</td>\n",
+ " <th>15</th>\n",
+ " <td>-0.213890</td>\n",
+ " <td>0.018958</td>\n",
+ " <td>-0.061146</td>\n",
+ " <td>-0.018958</td>\n",
+ " <td>-0.001222</td>\n",
+ " <td>0.185477</td>\n",
+ " <td>0.045982</td>\n",
+ " <td>-0.086354</td>\n",
+ " <td>0.190823</td>\n",
+ " <td>0.205844</td>\n",
+ " <td>0.098415</td>\n",
+ " <td>0.057674</td>\n",
+ " <td>0.063788</td>\n",
" </tr>\n",
" <tr>\n",
- " <th>max</th>\n",
- " <td>1599.00000</td>\n",
- " <td>104956.000000</td>\n",
- " <td>1016.211940</td>\n",
- " <td>11.612895</td>\n",
- " <td>9.667405</td>\n",
- " <td>10.032000</td>\n",
- " <td>1092.388611</td>\n",
- " <td>745.396220</td>\n",
- " <td>11.889713</td>\n",
- " <td>1098.958201</td>\n",
- " <td>13.536762</td>\n",
- " <td>3.056546</td>\n",
- " <td>-225.428140</td>\n",
- " <td>279.070000</td>\n",
+ " <th>18</th>\n",
+ " <td>-0.260687</td>\n",
+ " <td>0.200230</td>\n",
+ " <td>0.113977</td>\n",
+ " <td>-0.200230</td>\n",
+ " <td>0.190430</td>\n",
+ " <td>0.092798</td>\n",
+ " <td>0.025622</td>\n",
+ " <td>0.092329</td>\n",
+ " <td>0.304054</td>\n",
+ " <td>0.369908</td>\n",
+ " <td>0.044731</td>\n",
+ " <td>0.145258</td>\n",
+ " <td>0.045552</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
- " Index Arithmancy Astronomy Herbology \\\n",
- "count 1600.00000 1566.000000 1568.000000 1567.000000 \n",
- "mean 799.50000 49634.570243 39.797131 1.141020 \n",
- "std 462.02453 16679.806036 520.298268 5.219682 \n",
- "min 0.00000 -24370.000000 -966.740546 -10.295663 \n",
- "25% 399.75000 38511.500000 -489.551387 -4.308182 \n",
- "50% 799.50000 49013.500000 260.289446 3.469012 \n",
- "75% 1199.25000 60811.250000 524.771949 5.419183 \n",
- "max 1599.00000 104956.000000 1016.211940 11.612895 \n",
- "\n",
- " Defense Against the Dark Arts Divination Muggle Studies \\\n",
- "count 1569.000000 1561.000000 1565.000000 \n",
- "mean -0.387863 3.153910 -224.589915 \n",
- "std 5.212794 4.155301 486.344840 \n",
- "min -10.162119 -8.727000 -1086.496835 \n",
- "25% -5.259095 3.099000 -577.580096 \n",
- "50% -2.589342 4.624000 -419.164294 \n",
- "75% 4.904680 5.667000 254.994857 \n",
- "max 9.667405 10.032000 1092.388611 \n",
+ " Arithmancy Astronomy Herbology Defense Against the Dark Arts \\\n",
+ "0 0.070306 -0.005636 0.043022 0.005636 \n",
+ "2 -0.197869 0.068820 0.166863 -0.068820 \n",
+ "14 -0.034800 0.171845 -0.141995 -0.171845 \n",
+ "15 -0.213890 0.018958 -0.061146 -0.018958 \n",
+ "18 -0.260687 0.200230 0.113977 -0.200230 \n",
"\n",
- " Ancient Runes History of Magic Transfiguration Potions \\\n",
- "count 1565.000000 1557.000000 1566.000000 1570.000000 \n",
- "mean 495.747970 2.963095 1030.096946 5.950373 \n",
- "std 106.285165 4.425775 44.125116 3.147854 \n",
- "min 283.869609 -8.858993 906.627320 -4.697484 \n",
- "25% 397.511047 2.218653 1026.209993 3.646785 \n",
- "50% 463.918305 4.378176 1045.506996 5.874837 \n",
- "75% 597.492230 5.825242 1058.436410 8.248173 \n",
- "max 745.396220 11.889713 1098.958201 13.536762 \n",
+ " Divination Muggle Studies Ancient Runes History of Magic \\\n",
+ "0 -0.015935 -0.117316 -0.163066 0.019460 \n",
+ "2 0.075970 0.103740 0.013395 -0.092922 \n",
+ "14 0.105978 0.026350 0.020960 0.036164 \n",
+ "15 -0.001222 0.185477 0.045982 -0.086354 \n",
+ "18 0.190430 0.092798 0.025622 0.092329 \n",
"\n",
- " Care of Magical Creatures Charms Flying \n",
- "count 1560.000000 1600.000000 1600.000000 \n",
- "mean -0.053427 -243.374409 21.958012 \n",
- "std 0.971457 8.783640 97.631602 \n",
- "min -3.313676 -261.048920 -181.470000 \n",
- "25% -0.671606 -250.652600 -41.870000 \n",
- "50% -0.044811 -244.867765 -2.515000 \n",
- "75% 0.589919 -232.552305 50.560000 \n",
- "max 3.056546 -225.428140 279.070000 "
+ " Transfiguration Potions Care of Magical Creatures Charms Flying \n",
+ "0 -0.077827 -0.252914 0.124483 -0.056668 -0.074683 \n",
+ "2 0.281957 0.135497 -0.091151 0.126031 0.106128 \n",
+ "14 0.098966 0.188900 -0.195761 -0.052163 -0.052756 \n",
+ "15 0.190823 0.205844 0.098415 0.057674 0.063788 \n",
+ "18 0.304054 0.369908 0.044731 0.145258 0.045552 "
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "def normalize_house_scores_df(house_scores_df):\n",
+ " return (house_scores_df - house_scores_df.mean()) / (house_scores_df.max() - house_scores_df.min())\n",
+ "\n",
+ "for k, v in houses_df.items():\n",
+ " houses_df[k] = normalize_house_scores_df(v)\n",
+ "houses_df['Ravenclaw'].head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([-0.65609001, -0.55609001, -0.45609001, -0.35609001, -0.25609001,\n",
+ " -0.15609001, -0.05609001, 0.04390999, 0.14390999, 0.24390999,\n",
+ " 0.34390999, 0.44390999, 0.54390999])"
]
},
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "df.describe()"
+ "scores_df = normalize_house_scores_df(df.loc[:, 'Arithmancy':'Flying'])\n",
+ "\n",
+ "bins = np.arange(scores_df.min().min(), scores_df.max().max(), 0.1)\n",
+ "bins"
]
},
{
"cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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IjSt9I9hda8B7geKgKNB3b8G2zL4atrp34CJkUw7zcjIcN0gR+qj7Vv/J+ZttD7nxD1lumnTJjp37lzXYTR45b3PZpbt7hnVPVaVIwR3H1FB+Y3llL1AaBpqefVXA+dXMz4REYkTLV0hIiKAEoKIiASUEEREBFBCEBGRgBKCiIgASggiEi9fbI/uI0IPPvggaWlpdOvWjfT0dN577z2ysrKobDr73r17+cMf/lD6+s0332TQoEG16v4f//hHnn766VodI9Z0PwQRabDeffddXnnlFdasWcPJJ5/M7t27OXz4cJX7lSSE8ePHRyWO4uJibr755qor1jElBBFpsLZv305ycnLpekPJycllts+cOZN169YxdepUAJ544gk2btzI9u3b2bp1K+np6fTv358rrriCwsJChg4dyvr16+nVqxfPPvssZkZ2djY//elPKSwsJDk5mVmzZtG6dWuysrJIT0/n7bffZsSIEezfv5+kpCTuuOMOsrKy6NOnD0uXLmXv3r08+eSTcfkmclV0ykhEGqwBAwbw6aef0qlTJ8aPH89bb71VZvuwYcP461//SlFREQB//vOfGT16NA899BDnnHMOOTk5PPLIIwCsXbu2dBXSbdu28c4771BUVMTEiROZP38+2dnZjB49usw9Cw4fPszq1au5/fbbj4utuLiYVatWMXXqVO67774YvguR0whBRBqspKQksrOzWb58OUuXLmX48OE89NBDZbZfcsklvPLKK3Tu3JmioiK6du1Kbm7uccfq3bs3bduG1uhMT08nNzeXFi1asH79+tJltY8cOVLmvgclq6WW5+qrrwa+WjK7PlBCEJEGLSEhgaysLLKysujatStPPfVUme0//vGP+fWvf815553HTTfdVOFxjl3muri4GHcnLS2Nd999t9x9whesq+h4JceqD3TKSEQarI8++ojNm7+6f1dOTg7t27cvU6dPnz58+umnPP/884wYEVq6rXnz5uzfv7/K43/zm99k165dpQmhqKiIDRs2RLEH8aURgojEx6mtq64TZYWFhUycOJG9e/fSuHFjzj33XGbMmMHQoUPL1Bs2bBg5OTmcdtppAJxxxhlcfPHFnH/++Vx++eVcccUV5R7/pJNOYv78+dx6663s27eP4uJibrvtNtLSqn1fsHqhyuWv65qWv5b6SstfV+5EWv560KBBTJo0iX79+tV1KNUWzeWvdcpIRL629u7dS6dOnWjatOkJmQyiTaeMRORrq0WLFqU3txeNEEREJKCEICIigBKCiIgElBBERASIICGY2Uwz22lm68PKJptZvpnlBI/vhW2728y2mNlHZnZZWPnAoGyLmd0V/a6ISH2288DOqD4itWPHDn7wgx9w9tln06tXLy666CJeeumlasU+YsQIunXrxpQpU/jwww9JT0+nR48ebN26lW9961vVOlY0ltKOlUhGCLOAgeWUT3H39ODxKoCZdQGuA9KCff5gZglmlgBMAy4HugAjgroiIjHj7gwZMoS+ffuybds2srOzmTNnDnl5eWXqVbZ0xGeffcb777/PunXrmDRpEgsWLGDo0KGsXbuWc845hxUrVsS0D/Fc1qLKaafuvszMUiM83pXAHHf/EvinmW0Begfbtrj7NgAzmxPU3VjtiEVEIvTGG29w0kknlbkXQfv27Zk4cSKzZs3ixRdfpLCwkCNHjtC+fXuuvvpqhgwZAsD111/PsGHD+M///E/y8/NJT0/nqquuYvr06SQkJLBkyRKWLl1KUlIShYWFvPnmm0yePJnk5OTjlsh+7bXXuO2222jWrBnf/va3S2MpKChg9OjRbNu2jWbNmjFjxgy6devG5MmT2bp1K9u2baNdu3bMnj07Lu9Xbb6HcIuZjQRWA7e7++dAG2BlWJ28oAzg02PK+9SibRGRKm3YsIGePXtWuH3NmjWsW7eO008/nbfeeospU6YwZMgQ9u3bx4oVK3jqqafo3r07gwYNIicnBwiNOkrua3CstWvXsmHDBs4880wuvvhi3nnnHTIyMhgzZgxvvPEG5557bpkVUO+991569OjBggULeOONNxg5cmRpOxs3buTtt9+madOmUX5XKlbTi8rTgXOAdGA78FjUIgLMbKyZrTaz1bt27YrmoUXka2zChAl0796dCy64AID+/ftz+umnA/Cd73yHzZs3s2vXLmbPns0111xD48bV+8xcskR2o0aNSpfI/vDDD+nQoQMdO3bEzLjhhhtK67/99tv88Ic/BOCSSy5hz549fPHFFwAMHjw4rskAapgQ3H2Hux9x96PAE3x1WigfOCusatugrKLyio4/w90z3D0jJSWlJiGKiJCWlsaaNWtKX0+bNo0lS5ZQ8kHz2OWpR44cybPPPlt6o5zqKm+J7JqqbOnsWKlRQjCz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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "houses_scores_series = {k: pd.Series() for k in houses_df.keys()}\n",
+ "for k, v in houses_df.items():\n",
+ " for col in houses_df[k]:\n",
+ " houses_scores_series[k] = houses_scores_series[k].append(houses_df[k][col])\n",
+ " \n",
+ "#print(houses_scores_series)\n",
+ "\n",
+ "for k, v in houses_scores_series.items():\n",
+ " plt.hist(v, bins, histtype='bar', rwidth=1, alpha=0.1, label=k)\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "for col in scores_df:\n",
+ " plt.hist(scores_df[col], bins, rwidth=0.9, alpha=0.5, label=col)\n",
+ "#plt.legend()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Arithmancy 0.082528\n",
+ "Astronomy 0.512377\n",
+ "Herbology 0.747755\n",
+ "Defense Against the Dark Arts 0.591140\n",
+ "Divination 0.549033\n",
+ "Muggle Studies 0.853373\n",
+ "Ancient Runes 0.566074\n",
+ "History of Magic 0.846511\n",
+ "Transfiguration 0.846511\n",
+ "Potions 0.598582\n",
+ "Care of Magical Creatures 0.063826\n",
+ "Charms 0.853373\n",
+ "Flying 0.566074\n",
+ "dtype: float64"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.corr()[df.corr() < 1.0].max()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.collections.PathCollection at 0x7f9f1e8610f0>"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter( df['Charms'],df['Muggle Studies'], s=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.collections.PathCollection at 0x7f9f1e66e0f0>"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<Figure size 432x288 with 1 Axes>"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(df['Transfiguration'], df['History of Magic'], s=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
diff --git a/src/analysis.py b/src/analysis.py
new file mode 100644
index 0000000..64ba100
--- /dev/null
+++ b/src/analysis.py
@@ -0,0 +1,10 @@
+class Analysis(Dataset):
+ def __init__(self, path):
+ self.dataset_path = path
+ super().__init__(path)
+
+ def describe(self):
+ for title in self.df.
+ pass
+
+
diff --git a/src/cli.py b/src/cli.py
new file mode 100644
index 0000000..ec1a324
--- /dev/null
+++ b/src/cli.py
@@ -0,0 +1,29 @@
+class CommandLineInterface:
+ def __init__(self):
+ pass
+
+ def parse_args(self):
+ parse = argparse.ArgumentParser(prog="dslr_cli",
+ description="CLI for the dslr project")
+ subparser = parser.add_subparsers(dest="subparser_name")
+ parser_describe = subparsers.add_parser("describe",
+ help="give useful information about a dataset")
+ parser_describe.add_argument("path", help="path to the dataset")
+ parser_describe.set_defaults(func=self._describe)
+
+ self.args = parser.parse_args(sys.argv[1:])
+
+ def exec_args(self):
+ if self.args.subparser_name is None:
+ print("{} --help for more information".format(sys.argv[0]))
+ return
+ self.args.func()
+
+ def _describe(self):
+ describe.describe(self.args.path)
+
+
+if __name__ == "__main__":
+ cli = CommandLineInterface()
+ cli.parse_args()
+ cli.exec_args()
diff --git a/src/describe.py b/src/describe.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/describe.py
diff --git a/src/model.py b/src/model.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/model.py