diff --git a/day65-random-forest/feature-importance-in-sklearn.ipynb b/day65-random-forest/feature-importance-in-sklearn.ipynb new file mode 100644 index 0000000..0b61668 --- /dev/null +++ b/day65-random-forest/feature-importance-in-sklearn.ipynb @@ -0,0 +1,603 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 10, + "id": "8d0d33c9", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import seaborn as sns" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "b0aa3f74", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv('train.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "493ce773", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
labelpixel0pixel1pixel2pixel3pixel4pixel5pixel6pixel7pixel8...pixel774pixel775pixel776pixel777pixel778pixel779pixel780pixel781pixel782pixel783
01000000000...0000000000
10000000000...0000000000
21000000000...0000000000
34000000000...0000000000
40000000000...0000000000
\n", + "

5 rows × 785 columns

\n", + "
" + ], + "text/plain": [ + " label pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 \\\n", + "0 1 0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 0 0 \n", + "2 1 0 0 0 0 0 0 0 0 \n", + "3 4 0 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 0 0 0 \n", + "\n", + " pixel8 ... pixel774 pixel775 pixel776 pixel777 pixel778 pixel779 \\\n", + "0 0 ... 0 0 0 0 0 0 \n", + "1 0 ... 0 0 0 0 0 0 \n", + "2 0 ... 0 0 0 0 0 0 \n", + "3 0 ... 0 0 0 0 0 0 \n", + "4 0 ... 0 0 0 0 0 0 \n", + "\n", + " pixel780 pixel781 pixel782 pixel783 \n", + "0 0 0 0 0 \n", + "1 0 0 0 0 \n", + "2 0 0 0 0 \n", + "3 0 0 0 0 \n", + "4 0 0 0 0 \n", + "\n", + "[5 rows x 785 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "4e99c4a0", + "metadata": {}, + "outputs": [], + "source": [ + "X = df.iloc[:,1:]\n", + "y = df.iloc[:,0]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "d5b9af3f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.heatmap(X.iloc[5].values.reshape(28,28))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "fa080863", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RandomForestClassifier()" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "\n", + "rf = RandomForestClassifier()\n", + "\n", + "rf.fit(X,y)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e27797e8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 2.07436584e-06, 9.19884516e-07,\n", + " 4.34853305e-06, 1.01733148e-06, 5.23735101e-07, 2.39912019e-06,\n", + " 5.75262282e-06, 3.60104241e-06, 3.80910359e-06, 9.72540243e-07,\n", + " 1.63705990e-06, 2.57991132e-06, 7.64457802e-07, 1.04243394e-06,\n", + " 9.07395677e-07, 0.00000000e+00, 0.00000000e+00, 4.93946060e-07,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 4.93991875e-07, 0.00000000e+00, 2.00348069e-06, 5.66696370e-06,\n", + " 2.15208376e-05, 2.90086682e-05, 5.55141102e-05, 8.83356475e-05,\n", + " 1.89168567e-04, 1.14667884e-04, 7.22891567e-05, 7.34303237e-05,\n", + " 6.59974536e-05, 4.82855906e-05, 3.99497951e-05, 6.47228578e-05,\n", + " 2.35820037e-05, 1.49315510e-05, 6.13803626e-06, 3.62306200e-06,\n", + " 3.97058947e-07, 2.64651069e-07, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 1.39475862e-06, 1.30540820e-06, 9.31850480e-06, 6.41709431e-05,\n", + " 5.05168293e-05, 1.52261729e-04, 4.25951400e-04, 3.09042593e-04,\n", + " 9.41932091e-04, 1.19860346e-03, 2.22356526e-03, 2.60166710e-03,\n", + " 1.98443015e-03, 1.95758068e-03, 1.18034848e-03, 9.38626287e-04,\n", + " 2.80292518e-04, 1.59946322e-04, 4.52213390e-05, 3.14446221e-05,\n", + " 9.73172176e-06, 5.17563202e-07, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 3.04115366e-06,\n", + " 5.05137475e-06, 1.19093605e-05, 3.08678357e-05, 9.57433027e-05,\n", + " 1.41523183e-04, 3.64077330e-04, 8.48454155e-04, 1.10724808e-03,\n", + " 1.34939254e-03, 2.09010955e-03, 1.23550226e-03, 2.02069350e-03,\n", + " 1.42377147e-03, 9.56126241e-04, 8.09348411e-04, 5.73801052e-04,\n", + " 3.80711786e-04, 2.36441434e-04, 1.67404060e-04, 6.68979409e-05,\n", + " 2.60728202e-05, 1.04438860e-05, 2.85103262e-06, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 8.78874667e-07,\n", + " 1.58594953e-05, 4.16178301e-05, 1.21580766e-04, 2.14017560e-04,\n", + " 5.06917925e-04, 9.75914059e-04, 2.09683737e-03, 2.26191094e-03,\n", + " 3.61761492e-03, 4.53436274e-03, 5.94206030e-03, 5.76006373e-03,\n", + " 4.92168322e-03, 3.64021454e-03, 2.25605645e-03, 1.77798191e-03,\n", + " 9.93174852e-04, 6.53140293e-04, 6.75048214e-04, 2.86344248e-04,\n", + " 1.27359482e-04, 1.69052604e-05, 1.37454518e-06, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 2.49183072e-06, 4.29477479e-06,\n", + " 4.06403327e-05, 1.11861175e-04, 2.24916426e-04, 4.21508710e-04,\n", + " 1.20825355e-03, 1.57168344e-03, 3.27098135e-03, 2.99881560e-03,\n", + " 2.38481426e-03, 2.93658414e-03, 4.30380577e-03, 4.36289656e-03,\n", + " 2.96922272e-03, 2.86445894e-03, 1.95373034e-03, 1.90938453e-03,\n", + " 1.27242634e-03, 1.43165301e-03, 1.25345937e-03, 8.80088512e-04,\n", + " 2.89203260e-04, 9.50104245e-05, 5.43076269e-06, 8.31290561e-07,\n", + " 0.00000000e+00, 0.00000000e+00, 2.70964273e-06, 1.49661622e-05,\n", + " 6.23136844e-05, 1.83952476e-04, 2.55637083e-04, 7.08109081e-04,\n", + " 1.11443457e-03, 2.05886707e-03, 2.72493098e-03, 2.53628370e-03,\n", + " 2.27746577e-03, 4.02155779e-03, 5.95223652e-03, 5.39171265e-03,\n", + " 5.57364749e-03, 2.73532883e-03, 2.82979282e-03, 2.37669760e-03,\n", + " 1.46743874e-03, 1.56603827e-03, 1.34560636e-03, 1.06244865e-03,\n", + " 9.51884162e-04, 1.18133602e-04, 1.05361178e-05, 0.00000000e+00,\n", + " 5.12061659e-07, 3.90643340e-07, 3.27680364e-06, 3.10948889e-05,\n", + " 9.12722682e-05, 1.79671011e-04, 5.52636366e-04, 5.98214188e-04,\n", + " 1.72664143e-03, 1.89285552e-03, 3.04253121e-03, 3.41974233e-03,\n", + " 3.10148068e-03, 3.37887819e-03, 6.08087696e-03, 5.77020370e-03,\n", + " 3.72353459e-03, 3.14460162e-03, 2.77582130e-03, 2.78043056e-03,\n", + " 2.08026366e-03, 1.63329721e-03, 1.38774796e-03, 1.14303565e-03,\n", + " 7.30468367e-04, 1.56463063e-04, 1.62643293e-05, 3.01390379e-06,\n", + " 0.00000000e+00, 2.64634831e-07, 5.14549739e-06, 4.90190225e-05,\n", + " 1.38939172e-04, 1.68563388e-04, 4.33464395e-04, 1.60994964e-03,\n", + " 1.91056281e-03, 2.00407875e-03, 3.20067841e-03, 5.98434761e-03,\n", + " 3.36405869e-03, 2.99017684e-03, 4.06859706e-03, 3.05005566e-03,\n", + " 4.10767726e-03, 3.90346071e-03, 2.96031797e-03, 5.02928551e-03,\n", + " 2.28230996e-03, 1.55932624e-03, 1.15123933e-03, 8.56325355e-04,\n", + " 4.30313560e-04, 9.09580344e-05, 1.74877055e-05, 1.27118568e-06,\n", + " 0.00000000e+00, 4.85868139e-07, 3.33629759e-06, 6.60122777e-05,\n", + " 1.55585269e-04, 2.42079412e-04, 4.81105517e-04, 7.76825992e-04,\n", + " 1.83544155e-03, 3.41027708e-03, 5.09033891e-03, 4.96299660e-03,\n", + " 2.93394929e-03, 2.76663639e-03, 3.14683403e-03, 3.13462572e-03,\n", + " 3.41269574e-03, 3.91249982e-03, 3.44491607e-03, 3.41279644e-03,\n", + " 2.41003228e-03, 2.12823181e-03, 8.13394316e-04, 4.58447753e-04,\n", + " 2.18948465e-04, 7.45592268e-05, 1.64994471e-05, 2.38610523e-06,\n", + " 0.00000000e+00, 2.06133338e-06, 9.95177552e-06, 3.89764344e-05,\n", + " 8.28009760e-05, 2.08959148e-04, 5.34720424e-04, 1.34510841e-03,\n", + " 2.10036163e-03, 3.45150026e-03, 6.77024832e-03, 4.70701116e-03,\n", + " 3.71609292e-03, 3.15558440e-03, 4.30515967e-03, 4.52116845e-03,\n", + " 3.39686449e-03, 3.31621454e-03, 3.72140648e-03, 3.14926250e-03,\n", + " 2.19469635e-03, 1.94494015e-03, 1.51348629e-03, 7.09100202e-04,\n", + " 1.28500730e-04, 3.75743904e-05, 8.10045659e-06, 1.45844839e-06,\n", + " 0.00000000e+00, 5.11206236e-07, 6.39392694e-06, 2.30335558e-05,\n", + " 8.69908310e-05, 3.57657671e-04, 9.39581490e-04, 1.56916384e-03,\n", + " 2.17512267e-03, 4.14950506e-03, 6.69972910e-03, 7.42247005e-03,\n", + " 5.38696720e-03, 4.49110020e-03, 7.07563168e-03, 4.40567202e-03,\n", + " 4.33833238e-03, 3.79538224e-03, 4.70950004e-03, 2.63359465e-03,\n", + " 1.43037651e-03, 2.17850580e-03, 2.99703586e-03, 8.90920403e-04,\n", + " 1.18162066e-04, 2.51643607e-05, 1.13434385e-05, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 4.15769985e-06, 1.12521374e-05,\n", + " 8.53874992e-05, 4.15657541e-04, 1.14103599e-03, 1.93641144e-03,\n", + " 4.21120744e-03, 7.01705444e-03, 4.39295618e-03, 6.96181626e-03,\n", + " 4.11693236e-03, 8.17224604e-03, 1.00586540e-02, 4.92986637e-03,\n", + " 4.49944339e-03, 7.18296522e-03, 4.38315172e-03, 1.78815301e-03,\n", + " 1.23236940e-03, 1.41689614e-03, 1.42362137e-03, 1.15041190e-03,\n", + " 1.95731652e-04, 2.48016997e-05, 9.05497265e-06, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 2.53303566e-06, 1.86683478e-05,\n", + " 9.87828829e-05, 5.75230203e-04, 1.07880349e-03, 2.28002660e-03,\n", + " 5.39436063e-03, 4.04877792e-03, 4.39293362e-03, 6.00983736e-03,\n", + " 4.13660027e-03, 6.93203551e-03, 5.91044256e-03, 4.66391668e-03,\n", + " 5.05354297e-03, 6.03075782e-03, 3.74201011e-03, 1.26480760e-03,\n", + " 1.29344421e-03, 1.27788770e-03, 2.02071429e-03, 6.72053755e-04,\n", + " 2.39072330e-04, 3.63637177e-05, 7.55335720e-06, 7.59215476e-07,\n", + " 0.00000000e+00, 0.00000000e+00, 9.63161132e-07, 2.50053158e-05,\n", + " 9.89290165e-05, 3.87944076e-04, 1.05947544e-03, 2.79319210e-03,\n", + " 3.84245868e-03, 3.93841582e-03, 3.97793032e-03, 3.99566496e-03,\n", + " 4.37384617e-03, 8.09292324e-03, 4.73343600e-03, 3.29414376e-03,\n", + " 3.12975474e-03, 5.74658952e-03, 2.45460096e-03, 2.09363243e-03,\n", + " 1.55678443e-03, 1.26135609e-03, 8.79801733e-04, 5.16754506e-04,\n", + " 1.72679085e-04, 3.08854271e-05, 3.96757334e-06, 2.51673426e-06,\n", + " 0.00000000e+00, 0.00000000e+00, 1.57303848e-06, 3.03580028e-05,\n", + " 8.95941346e-05, 4.40180385e-04, 1.10948854e-03, 2.12964521e-03,\n", + " 3.26297220e-03, 4.46461797e-03, 4.88809689e-03, 4.47752394e-03,\n", + " 5.36603077e-03, 8.45807680e-03, 4.57110093e-03, 3.10040671e-03,\n", + " 3.02434088e-03, 3.70847391e-03, 2.43240974e-03, 2.01559267e-03,\n", + " 2.04195345e-03, 1.05566308e-03, 6.88503873e-04, 3.58634799e-04,\n", + " 2.01364382e-04, 4.76932460e-05, 2.04905226e-05, 4.81102417e-06,\n", + " 0.00000000e+00, 2.01395053e-06, 3.00418188e-06, 4.24083914e-05,\n", + " 1.17240611e-04, 5.23108101e-04, 1.54527498e-03, 1.72069261e-03,\n", + " 3.84406079e-03, 3.45086181e-03, 4.99634264e-03, 5.47898290e-03,\n", + " 4.98580745e-03, 6.46271773e-03, 3.91381412e-03, 2.87910613e-03,\n", + " 1.92472785e-03, 2.44246705e-03, 3.61792582e-03, 1.75540688e-03,\n", + " 1.87176547e-03, 9.69888752e-04, 6.64353715e-04, 3.93518601e-04,\n", + " 2.02972831e-04, 6.39769603e-05, 1.01275810e-05, 3.41611857e-06,\n", + " 0.00000000e+00, 1.06208366e-06, 5.55135468e-06, 6.01430847e-05,\n", + " 1.61678313e-04, 4.80635725e-04, 1.66436267e-03, 2.99573088e-03,\n", + " 2.64122613e-03, 4.49787258e-03, 5.64671025e-03, 6.42767076e-03,\n", + " 3.78814148e-03, 5.09768938e-03, 2.89698590e-03, 1.43798833e-03,\n", + " 1.29648063e-03, 2.81796899e-03, 2.82281832e-03, 1.78098489e-03,\n", + " 1.47090812e-03, 8.06953165e-04, 5.92338796e-04, 3.15132016e-04,\n", + " 2.11169397e-04, 5.62726967e-05, 1.79172976e-05, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 1.13701217e-05, 5.24023177e-05,\n", + " 1.60092876e-04, 4.89109475e-04, 1.50358906e-03, 3.58357918e-03,\n", + " 3.81727087e-03, 6.24297427e-03, 7.78169049e-03, 5.41247486e-03,\n", + " 3.56127005e-03, 2.54250909e-03, 2.18507957e-03, 1.44991126e-03,\n", + " 1.15070226e-03, 3.52643499e-03, 2.29469695e-03, 2.24534846e-03,\n", + " 1.74410003e-03, 1.01155824e-03, 5.69923006e-04, 3.48303181e-04,\n", + " 1.70267339e-04, 2.25314473e-05, 4.04643963e-06, 0.00000000e+00,\n", + " 0.00000000e+00, 1.13133543e-06, 9.58855129e-06, 7.11819648e-05,\n", + " 2.14378155e-04, 5.28758201e-04, 1.10632983e-03, 2.67095839e-03,\n", + " 5.27806719e-03, 6.30810726e-03, 4.23734886e-03, 4.01137415e-03,\n", + " 3.15706692e-03, 2.26321613e-03, 1.92577736e-03, 1.96391507e-03,\n", + " 1.45197147e-03, 2.52730220e-03, 2.15907811e-03, 2.41588843e-03,\n", + " 1.65095491e-03, 8.92960996e-04, 9.47596828e-04, 3.39443744e-04,\n", + " 1.91699297e-04, 1.84273617e-05, 5.25620821e-07, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 7.29260984e-06, 8.66348039e-05,\n", + " 2.13029638e-04, 4.50872399e-04, 1.19697437e-03, 1.98208084e-03,\n", + " 3.69924155e-03, 4.98194937e-03, 2.03539523e-03, 1.72280430e-03,\n", + " 1.54241260e-03, 1.34154528e-03, 1.38364866e-03, 1.17857782e-03,\n", + " 1.09904107e-03, 1.09294281e-03, 1.53461817e-03, 1.34756707e-03,\n", + " 9.19190735e-04, 5.84650029e-04, 3.36657949e-04, 2.15014909e-04,\n", + " 5.91337042e-05, 1.40814191e-05, 7.55493018e-07, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 2.91985577e-06, 2.77309242e-05,\n", + " 1.38762744e-04, 3.26127729e-04, 7.55081909e-04, 1.98244098e-03,\n", + " 2.54436879e-03, 2.94541655e-03, 3.41705040e-03, 1.98063499e-03,\n", + " 1.99405488e-03, 1.90102176e-03, 1.58595141e-03, 1.58592948e-03,\n", + " 1.47412132e-03, 1.04112568e-03, 1.05635645e-03, 7.46598144e-04,\n", + " 4.79001450e-04, 2.51982151e-04, 2.08810355e-04, 7.47350525e-05,\n", + " 2.01644904e-05, 8.35240138e-06, 7.14596588e-07, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 1.02290884e-06, 1.74183126e-05,\n", + " 5.79932027e-05, 1.45464213e-04, 2.94937054e-04, 7.52562848e-04,\n", + " 1.31381701e-03, 1.94202499e-03, 2.94861373e-03, 4.99993861e-03,\n", + " 4.94668307e-03, 3.85242434e-03, 3.70222735e-03, 1.89975312e-03,\n", + " 1.47350315e-03, 9.16233446e-04, 7.18292218e-04, 3.96018830e-04,\n", + " 2.50579514e-04, 1.35008135e-04, 7.23018842e-05, 3.46435516e-05,\n", + " 1.71906222e-05, 7.06842545e-06, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 9.59855729e-06,\n", + " 5.62080441e-05, 1.11985093e-04, 2.56276077e-04, 4.32524132e-04,\n", + " 5.64382025e-04, 7.73410372e-04, 9.91021972e-04, 1.72984001e-03,\n", + " 1.33654699e-03, 1.57781815e-03, 8.54370590e-04, 1.09465296e-03,\n", + " 6.96500577e-04, 4.08638679e-04, 3.74594217e-04, 2.34131754e-04,\n", + " 1.18479922e-04, 7.65418454e-05, 4.31409358e-05, 2.13840393e-05,\n", + " 7.24498273e-06, 3.52911332e-07, 4.70431594e-07, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.82327541e-06,\n", + " 1.61341723e-05, 3.35935933e-05, 1.16936141e-04, 1.64447465e-04,\n", + " 4.12966136e-04, 6.92918171e-04, 7.99143409e-04, 6.52851229e-04,\n", + " 1.38837459e-03, 5.78680556e-04, 5.69908723e-04, 4.33428275e-04,\n", + " 4.21550415e-04, 4.03367958e-04, 2.83096241e-04, 2.01752619e-04,\n", + " 7.36945205e-05, 4.97371623e-05, 1.64651248e-05, 7.89598992e-06,\n", + " 7.85685099e-07, 1.53417554e-06, 5.19781967e-07, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 7.93634033e-06, 6.09067869e-06, 9.52705686e-06, 3.45841059e-05,\n", + " 7.59796956e-05, 7.79661963e-05, 1.13892490e-04, 2.70827276e-04,\n", + " 1.15536496e-04, 3.34548632e-04, 1.70926183e-04, 1.36570029e-04,\n", + " 1.04306867e-04, 1.39214892e-04, 7.60117663e-05, 3.62471587e-05,\n", + " 1.67010501e-05, 1.44607191e-05, 1.63431477e-06, 2.56015342e-06,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", + " 0.00000000e+00, 8.94737910e-07, 5.16210616e-07, 5.23797792e-07,\n", + " 0.00000000e+00, 1.51367122e-06, 3.06963479e-06, 2.04311837e-06,\n", + " 4.88525117e-07, 2.77654626e-06, 5.71768303e-06, 7.33702495e-06,\n", + " 6.12617982e-06, 5.94211407e-06, 4.86205097e-06, 3.51396447e-06,\n", + " 5.10355451e-07, 2.10713701e-06, 9.38360597e-07, 1.04976823e-06,\n", + " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rf.feature_importances_" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "83fe2092", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(784,)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rf.feature_importances_.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "25abe08d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.heatmap(rf.feature_importances_.reshape(28,28))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5236a1a6", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/day65-random-forest/how-feature-importance-is-calculated.ipynb b/day65-random-forest/how-feature-importance-is-calculated.ipynb new file mode 100644 index 0000000..85edcfb --- /dev/null +++ b/day65-random-forest/how-feature-importance-is-calculated.ipynb @@ -0,0 +1,336 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 23, + "id": "aa83b2fa", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import make_classification" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "cf98028b", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeClassifier" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "98e617f3", + "metadata": {}, + "outputs": [], + "source": [ + "X,y = make_classification(n_samples=5, n_classes=2,\n", + " n_features=2, n_informative=2, n_redundant=0,\n", + " random_state=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "c2f01ef2", + "metadata": {}, + "outputs": [], + "source": [ + "clf = DecisionTreeClassifier()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "62ce1795", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DecisionTreeClassifier()" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf.fit(X,y)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "01e8059b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(133.92000000000002, 181.2, 'X[1] <= -0.894\\ngini = 0.48\\nsamples = 5\\nvalue = [3, 2]'),\n", + " Text(66.96000000000001, 108.72, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 1]'),\n", + " Text(200.88000000000002, 108.72, 'X[0] <= 1.01\\ngini = 0.375\\nsamples = 4\\nvalue = [3, 1]'),\n", + " Text(133.92000000000002, 36.23999999999998, 'gini = 0.0\\nsamples = 3\\nvalue = [3, 0]'),\n", + " Text(267.84000000000003, 36.23999999999998, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 1]')]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.tree import plot_tree\n", + "plot_tree(clf)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "55330670", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.625, 0.375])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf.feature_importances_" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "8ffceaa2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RandomForestClassifier(n_estimators=2)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "rf = RandomForestClassifier(n_estimators=2)\n", + "rf.fit(X,y)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "2c7e9f85", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.77777778, 0.22222222])" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rf.feature_importances_" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "f44ab949", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1. 0.]\n", + "[0.55555556 0.44444444]\n", + "0.7775000000000001\n" + ] + } + ], + "source": [ + "print(rf.estimators_[0].feature_importances_)\n", + "print(rf.estimators_[1].feature_importances_)\n", + "\n", + "print((1 + 0.555)/2)" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "id": "5f1fe755", + "metadata": {}, + "outputs": [], + "source": [ + "X,y = make_classification(n_samples=15, n_classes=2,\n", + " n_features=2, n_informative=2, n_redundant=0,\n", + " random_state=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "id": "ced9e8f6", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeClassifier" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "id": "a701bd11", + "metadata": {}, + "outputs": [], + "source": [ + "clf = DecisionTreeClassifier()" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "id": "11f6b663", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DecisionTreeClassifier()" + ] + }, + "execution_count": 146, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf.fit(X,y)" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "id": "8a311643", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(111.60000000000001, 190.26, 'X[1] <= -0.383\\ngini = 0.498\\nsamples = 15\\nvalue = [8, 7]'),\n", + " Text(55.800000000000004, 135.9, 'gini = 0.0\\nsamples = 6\\nvalue = [6, 0]'),\n", + " Text(167.4, 135.9, 'X[0] <= 0.878\\ngini = 0.346\\nsamples = 9\\nvalue = [2, 7]'),\n", + " Text(111.60000000000001, 81.53999999999999, 'gini = 0.0\\nsamples = 6\\nvalue = [0, 6]'),\n", + " Text(223.20000000000002, 81.53999999999999, 'X[0] <= 2.444\\ngini = 0.444\\nsamples = 3\\nvalue = [2, 1]'),\n", + " Text(167.4, 27.180000000000007, 'gini = 0.0\\nsamples = 2\\nvalue = [2, 0]'),\n", + " Text(279.0, 27.180000000000007, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 1]')]" + ] + }, + "execution_count": 147, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.tree import plot_tree\n", + "plot_tree(clf)" + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "id": "554a842c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.41666667, 0.58333333])" + ] + }, + "execution_count": 148, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf.feature_importances_" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28e5ad5f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}