{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\nimport cv2\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":29,"outputs":[{"output_type":"stream","text":"['resnet50', 'dog-breed-identification']\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"!ls ../input/dog-breed-identification","execution_count":30,"outputs":[{"output_type":"stream","text":"labels.csv  sample_submission.csv  test  train\r\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"main_dir = \"../input/\"\ntrain_dir = \"dog-breed-identification/train\"\npath = os.path.join(main_dir,train_dir)\n\nfor p in os.listdir(path):\n    category = p.split(\".\")[0]\n    img_array = cv2.imread(os.path.join(path,p),cv2.IMREAD_GRAYSCALE)\n    new_img_array = cv2.resize(img_array, dsize=(80, 80))\n    plt.imshow(new_img_array,cmap=\"gray\")\n    break","execution_count":31,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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DbVCje06NRTPo1KS14pi5POece78fPD5oTgSxdVvRYKOov5S9Fm5cmVXpmLT4HPHUGRvfOMbJQ0iBkvDab6iyMU+n2NdF3LFTyRmEPniJxIziKlS/V/96led3dE7j0hBubONiKg+6TUppNtohd4yVWuFMqLW3dSX55Nu2nbLXWlMZUVNumkb01u1fBHsstmy45vGctzc386x21ZMCwD3dnM8rqdWn9TWZd4HUlDSWdvv2Rbt1qSknj+ngZKGRZ9JwqF5TtgXzpPvGekyd1xG7tkt6wr7ddBBB0mSDj300K6OGvy99tpL0rBLN8UsWoDs3k2x8s477+zKvNc+JvL9WBdyxU8kZhD54icSM4ipUv3ly5d3TgumX61QRaS21sBG2vnR80x1+tx/WceAB9TERzSZNNraaFLFlgXA2lf2izSb/fFOLFJUOpn4ehQxGHWWIsaow5QURx0m2BdqvE1zSdOpjbblQhrMHak+54YabfeBY+CcRmC/o3miMxHHY1GT16cIEiV44bPY2p1nMYnJPSi63n777ZKGo+k+8MADYVu2DFCUYB49RlT28+prpQNPIpFoYpNly/XXNLLX+1jDx0R79KU4sGZfVlKyBG7ocTonabCq8CtO1uHVhamfzjzzzK5MO6wVMtxj/dGPfrQrX3rppV3ZK1/kxikNbOTco003Tp7nMldesg4qszzPvCdcpT1PVIbSbk124DLvGVdWKte8SvXlL2C/uPLy/vlZ4O/slxW2LQZERNdthekygyDTiFb/W2+9tasjM+P98dxwbhn0lGzFz6s39OSKn0gkmsgXP5GYQUyV6tdaO8WQqVwrI2hE36OsuNIwlTelakXOjcDzaVvtC3FlWsXde1biSNLppw9ik5i+//mf/3lXR3pHqm/beGS/Zn+4d5zKP9J3zzfnI0o5xXFQkcQ5t2098hOQhm3nvj9snzZsutlaSRnFxCeo0GO/op1+VJxG0YxbobtYH1F9gj4M0c5R7r5zfymWUDlLWm+xjormffbZpytzHuz74DlIqp9IJJrIFz+RmEGMm0JrO0mflbSf5mLsv1fSvZowhVYppaM8plRRwI3Rso8lJePuKiISC6JAHKRmLf8AU1ra+an193mkh9S+ktqecsopC671nve8pysff/wgitnVV18taVjsoJba4yFt5HhIvy36UJPPuY126lHEsKupNLBS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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"\nfrom tensorflow.python.keras.applications import ResNet50\nfrom tensorflow.python.keras.models import Sequential\nfrom tensorflow.python.keras.layers import Dense, Flatten, GlobalAveragePooling2D, Activation, Flatten, Dropout, BatchNormalization\n\nimport h5py\nimport keras as k","execution_count":36,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"num_classes = 120\nresnet_weights_path = '../input/resnet50/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5'\n\nmodel = Sequential()\nmodel.add(ResNet50(include_top=False, pooling='avg', weights=resnet_weights_path))\nmodel.add(Dense(1024))\nmodel.add(Activation('relu'))\nmodel.add(Dropout(0.25))\nmodel.add(Dense(512))\nmodel.add(Activation('relu'))\nmodel.add(Dense(num_classes, activation='softmax'))\n\n# Say not to train first layer (ResNet) model. It is already trained\nmodel.layers[0].trainable = False","execution_count":56,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.compile(optimizer='sgd', loss='categorical_crossentropy', metrics=['accuracy'])\nmodel.summary()","execution_count":57,"outputs":[{"output_type":"stream","text":"_________________________________________________________________\nLayer (type)                 Output Shape              Param #   \n=================================================================\nresnet50 (Model)             (None, 2048)              23587712  \n_________________________________________________________________\ndense_8 (Dense)              (None, 1024)              2098176   \n_________________________________________________________________\nactivation_443 (Activation)  (None, 1024)              0         \n_________________________________________________________________\ndropout_2 (Dropout)          (None, 1024)              0         \n_________________________________________________________________\ndense_9 (Dense)              (None, 512)               524800    \n_________________________________________________________________\nactivation_444 (Activation)  (None, 512)               0         \n_________________________________________________________________\ndense_10 (Dense)             (None, 120)               61560     \n=================================================================\nTotal params: 26,272,248\nTrainable params: 2,684,536\nNon-trainable params: 23,587,712\n_________________________________________________________________\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"import os\nfrom tqdm import tqdm\nfrom sklearn import preprocessing\nfrom sklearn.model_selection import train_test_split\nimport cv2\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nfrom subprocess import check_output\nprint(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\n","execution_count":43,"outputs":[{"output_type":"stream","text":"dog-breed-identification\nresnet50\n\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train = pd.read_csv('../input/dog-breed-identification/labels.csv')\ndf_test = pd.read_csv('../input/dog-breed-identification/sample_submission.csv')","execution_count":44,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"targets_series = pd.Series(df_train['breed'])\none_hot = pd.get_dummies(targets_series, sparse = True)","execution_count":45,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"one_hot_labels = np.asarray(one_hot)","execution_count":46,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im_size = 90","execution_count":47,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"x_train = []\ny_train = []\nx_test = []","execution_count":48,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"i = 0 \nfor f, breed in tqdm(df_train.values):\n    img = cv2.imread('../input/dog-breed-identification/train/{}.jpg'.format(f))\n    label = one_hot_labels[i]\n    x_train.append(cv2.resize(img, (im_size, im_size)))\n    y_train.append(label)\n    i += 1","execution_count":49,"outputs":[{"output_type":"stream","text":"100%|██████████| 10222/10222 [00:47<00:00, 215.80it/s]\n","name":"stderr"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"for f in tqdm(df_test['id'].values):\n    img = cv2.imread('../input/dog-breed-identification/test/{}.jpg'.format(f))\n    x_test.append(cv2.resize(img, (im_size, im_size)))","execution_count":50,"outputs":[{"output_type":"stream","text":"100%|██████████| 10357/10357 [00:41<00:00, 250.15it/s]\n","name":"stderr"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_train_raw = np.array(y_train, np.uint8)\nx_train_raw = np.array(x_train, np.float32) / 255.\nx_test  = np.array(x_test, np.float32) / 255.\nnum_class = y_train_raw.shape[1]","execution_count":51,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train, X_valid, Y_train, Y_valid = train_test_split(x_train_raw, y_train_raw, test_size=0.2, random_state=1)","execution_count":52,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.fit(X_train, Y_train, epochs=50, validation_data=(X_valid, Y_valid), verbose=1)\n","execution_count":68,"outputs":[{"output_type":"stream","text":"Train on 7155 samples, validate on 3067 samples\nEpoch 1/3\n7155/7155 [==============================] - 32s 4ms/step - loss: 4.7870 - acc: 0.0067 - val_loss: 4.7852 - val_acc: 0.0137\nEpoch 2/3\n7155/7155 [==============================] - 8s 1ms/step - loss: 4.7835 - acc: 0.0102 - val_loss: 4.7837 - val_acc: 0.0137\nEpoch 3/3\n7155/7155 [==============================] - 8s 1ms/step - loss: 4.7810 - acc: 0.0117 - val_loss: 4.7828 - val_acc: 0.0137\n","name":"stdout"},{"output_type":"execute_result","execution_count":68,"data":{"text/plain":"<keras.callbacks.History at 0x7f50c54ba908>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"preds = model.predict(x_test, verbose=1)\n","execution_count":59,"outputs":[{"output_type":"stream","text":"10357/10357 [==============================] - 9s 831us/sample\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"sub = pd.DataFrame(preds)\n# Set column names to those generated by the one-hot encoding earlier\ncol_names = one_hot.columns.values\nsub.columns = col_names\n# Insert the column id from the sample_submission at the start of the data frame\nsub.insert(0, 'id', df_test['id'])\nsub.head(5)","execution_count":60,"outputs":[{"output_type":"execute_result","execution_count":60,"data":{"text/plain":"                                 id        ...          yorkshire_terrier\n0  000621fb3cbb32d8935728e48679680e        ...                   0.000536\n1  00102ee9d8eb90812350685311fe5890        ...                   0.008327\n2  0012a730dfa437f5f3613fb75efcd4ce        ...                   0.000689\n3  001510bc8570bbeee98c8d80c8a95ec1        ...                   0.008603\n4  001a5f3114548acdefa3d4da05474c2e        ...                   0.008932\n\n[5 rows x 121 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>affenpinscher</th>\n      <th>afghan_hound</th>\n      <th>african_hunting_dog</th>\n      <th>airedale</th>\n      <th>american_staffordshire_terrier</th>\n      <th>appenzeller</th>\n      <th>australian_terrier</th>\n      <th>basenji</th>\n      <th>basset</th>\n      <th>beagle</th>\n      <th>bedlington_terrier</th>\n      <th>bernese_mountain_dog</th>\n      <th>black-and-tan_coonhound</th>\n      <th>blenheim_spaniel</th>\n      <th>bloodhound</th>\n      <th>bluetick</th>\n      <th>border_collie</th>\n      <th>border_terrier</th>\n      <th>borzoi</th>\n      <th>boston_bull</th>\n      <th>bouvier_des_flandres</th>\n      <th>boxer</th>\n      <th>brabancon_griffon</th>\n      <th>briard</th>\n      <th>brittany_spaniel</th>\n      <th>bull_mastiff</th>\n      <th>cairn</th>\n      <th>cardigan</th>\n      <th>chesapeake_bay_retriever</th>\n      <th>chihuahua</th>\n      <th>chow</th>\n      <th>clumber</th>\n      <th>cocker_spaniel</th>\n      <th>collie</th>\n      <th>curly-coated_retriever</th>\n      <th>dandie_dinmont</th>\n      <th>dhole</th>\n      <th>dingo</th>\n      <th>doberman</th>\n      <th>...</th>\n      <th>norwegian_elkhound</th>\n      <th>norwich_terrier</th>\n      <th>old_english_sheepdog</th>\n      <th>otterhound</th>\n      <th>papillon</th>\n      <th>pekinese</th>\n      <th>pembroke</th>\n      <th>pomeranian</th>\n      <th>pug</th>\n      <th>redbone</th>\n      <th>rhodesian_ridgeback</th>\n      <th>rottweiler</th>\n      <th>saint_bernard</th>\n      <th>saluki</th>\n      <th>samoyed</th>\n      <th>schipperke</th>\n      <th>scotch_terrier</th>\n      <th>scottish_deerhound</th>\n      <th>sealyham_terrier</th>\n      <th>shetland_sheepdog</th>\n      <th>shih-tzu</th>\n      <th>siberian_husky</th>\n      <th>silky_terrier</th>\n      <th>soft-coated_wheaten_terrier</th>\n      <th>staffordshire_bullterrier</th>\n      <th>standard_poodle</th>\n      <th>standard_schnauzer</th>\n      <th>sussex_spaniel</th>\n      <th>tibetan_mastiff</th>\n      <th>tibetan_terrier</th>\n      <th>toy_poodle</th>\n      <th>toy_terrier</th>\n      <th>vizsla</th>\n      <th>walker_hound</th>\n      <th>weimaraner</th>\n      <th>welsh_springer_spaniel</th>\n      <th>west_highland_white_terrier</th>\n      <th>whippet</th>\n      <th>wire-haired_fox_terrier</th>\n      <th>yorkshire_terrier</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000621fb3cbb32d8935728e48679680e</td>\n      <td>0.000118</td>\n      <td>0.006826</td>\n      <td>0.008886</td>\n      <td>0.095089</td>\n      <td>0.004257</td>\n      <td>0.008165</td>\n      <td>0.000455</td>\n      <td>0.000848</td>\n      <td>0.030856</td>\n      <td>0.007843</td>\n      <td>0.000389</td>\n      <td>0.002345</td>\n      <td>0.000187</td>\n      <td>0.000489</td>\n      <td>0.046020</td>\n      <td>0.009762</td>\n      <td>0.001590</td>\n      <td>0.007637</td>\n      <td>0.000967</td>\n      <td>0.000407</td>\n      <td>0.000155</td>\n      <td>0.023430</td>\n      <td>0.010080</td>\n      <td>0.000809</td>\n      <td>0.000402</td>\n      <td>0.003491</td>\n      <td>0.002633</td>\n      <td>0.004792</td>\n      <td>0.001370</td>\n      <td>0.000689</td>\n      <td>0.004231</td>\n      <td>0.000471</td>\n      <td>0.057084</td>\n      <td>0.000164</td>\n      <td>0.000311</td>\n      <td>0.000188</td>\n      <td>0.000153</td>\n      <td>0.003222</td>\n      <td>0.002245</td>\n      <td>...</td>\n      <td>0.005269</td>\n      <td>0.000739</td>\n      <td>0.000024</td>\n      <td>0.026182</td>\n      <td>0.001289</td>\n      <td>0.000122</td>\n      <td>0.099181</td>\n      <td>0.000541</td>\n      <td>0.036921</td>\n      <td>0.036965</td>\n      <td>0.057777</td>\n      <td>0.042673</td>\n      <td>0.001777</td>\n      <td>0.009134</td>\n      <td>0.000460</td>\n      <td>0.000347</td>\n      <td>0.001534</td>\n      <td>0.002395</td>\n      <td>0.011800</td>\n      <td>0.002070</td>\n      <td>0.002021</td>\n      <td>0.000903</td>\n      <td>0.000659</td>\n      <td>0.004156</td>\n      <td>0.003078</td>\n      <td>0.000046</td>\n      <td>0.001006</td>\n      <td>0.001594</td>\n      <td>0.002353</td>\n      <td>0.002028</td>\n      <td>0.013392</td>\n      <td>0.003448</td>\n      <td>0.004622</td>\n      <td>0.002154</td>\n      <td>0.001081</td>\n      <td>0.000743</td>\n      <td>0.001860</td>\n      <td>0.002173</td>\n      <td>0.002560</td>\n      <td>0.000536</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>00102ee9d8eb90812350685311fe5890</td>\n      <td>0.008077</td>\n      <td>0.008159</td>\n      <td>0.012465</td>\n      <td>0.005564</td>\n      <td>0.007519</td>\n      <td>0.003480</td>\n      <td>0.004677</td>\n      <td>0.007736</td>\n      <td>0.011395</td>\n      <td>0.009093</td>\n      <td>0.005563</td>\n      <td>0.005451</td>\n      <td>0.004436</td>\n      <td>0.005088</td>\n      <td>0.003864</td>\n      <td>0.009925</td>\n      <td>0.004337</td>\n      <td>0.004944</td>\n      <td>0.003158</td>\n      <td>0.011502</td>\n      <td>0.003917</td>\n      <td>0.008045</td>\n      <td>0.005169</td>\n      <td>0.007691</td>\n      <td>0.016363</td>\n      <td>0.003664</td>\n      <td>0.004298</td>\n      <td>0.005889</td>\n      <td>0.016241</td>\n      <td>0.011731</td>\n      <td>0.006736</td>\n      <td>0.015304</td>\n      <td>0.008125</td>\n      <td>0.002836</td>\n      <td>0.005875</td>\n      <td>0.008332</td>\n      <td>0.006068</td>\n      <td>0.006161</td>\n      <td>0.007255</td>\n      <td>...</td>\n      <td>0.006431</td>\n      <td>0.003717</td>\n      <td>0.006853</td>\n      <td>0.017505</td>\n      <td>0.014580</td>\n      <td>0.005588</td>\n      <td>0.006959</td>\n      <td>0.014608</td>\n      <td>0.014543</td>\n      <td>0.013461</td>\n      <td>0.005251</td>\n      <td>0.005456</td>\n      <td>0.006068</td>\n      <td>0.012496</td>\n      <td>0.015072</td>\n      <td>0.006070</td>\n      <td>0.006268</td>\n      <td>0.004492</td>\n      <td>0.025257</td>\n      <td>0.006667</td>\n      <td>0.008454</td>\n      <td>0.006107</td>\n      <td>0.006838</td>\n      <td>0.004194</td>\n      <td>0.012446</td>\n      <td>0.006433</td>\n      <td>0.005637</td>\n      <td>0.009478</td>\n      <td>0.005469</td>\n      <td>0.006778</td>\n      <td>0.016148</td>\n      <td>0.013888</td>\n      <td>0.006129</td>\n      <td>0.005783</td>\n      <td>0.011562</td>\n      <td>0.007218</td>\n      <td>0.011439</td>\n      <td>0.004139</td>\n      <td>0.013577</td>\n      <td>0.008327</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0012a730dfa437f5f3613fb75efcd4ce</td>\n      <td>0.000011</td>\n      <td>0.005401</td>\n      <td>0.003747</td>\n      <td>0.178139</td>\n      <td>0.001482</td>\n      <td>0.004819</td>\n      <td>0.000237</td>\n      <td>0.000763</td>\n      <td>0.068620</td>\n      <td>0.001972</td>\n      <td>0.000220</td>\n      <td>0.000778</td>\n      <td>0.000039</td>\n      <td>0.000216</td>\n      <td>0.068891</td>\n      <td>0.004063</td>\n      <td>0.000714</td>\n      <td>0.009872</td>\n      <td>0.000518</td>\n      <td>0.000067</td>\n      <td>0.000067</td>\n      <td>0.042689</td>\n      <td>0.007238</td>\n      <td>0.000334</td>\n      <td>0.000035</td>\n      <td>0.000872</td>\n      <td>0.000928</td>\n      <td>0.002217</td>\n      <td>0.000690</td>\n      <td>0.000147</td>\n      <td>0.001798</td>\n      <td>0.000210</td>\n      <td>0.063604</td>\n      <td>0.000066</td>\n      <td>0.000122</td>\n      <td>0.000075</td>\n      <td>0.000086</td>\n      <td>0.001806</td>\n      <td>0.002755</td>\n      <td>...</td>\n      <td>0.006268</td>\n      <td>0.000610</td>\n      <td>0.000004</td>\n      <td>0.023288</td>\n      <td>0.000380</td>\n      <td>0.000019</td>\n      <td>0.104833</td>\n      <td>0.000162</td>\n      <td>0.023187</td>\n      <td>0.073625</td>\n      <td>0.059168</td>\n      <td>0.057101</td>\n      <td>0.000327</td>\n      <td>0.010006</td>\n      <td>0.000075</td>\n      <td>0.000121</td>\n      <td>0.000852</td>\n      <td>0.001903</td>\n      <td>0.002650</td>\n      <td>0.001734</td>\n      <td>0.000951</td>\n      <td>0.000515</td>\n      <td>0.000324</td>\n      <td>0.002767</td>\n      <td>0.001153</td>\n      <td>0.000003</td>\n      <td>0.000778</td>\n      <td>0.001198</td>\n      <td>0.001166</td>\n      <td>0.001575</td>\n      <td>0.004780</td>\n      <td>0.000775</td>\n      <td>0.002475</td>\n      <td>0.001402</td>\n      <td>0.000255</td>\n      <td>0.000258</td>\n      <td>0.001622</td>\n      <td>0.001085</td>\n      <td>0.002912</td>\n      <td>0.000689</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>001510bc8570bbeee98c8d80c8a95ec1</td>\n      <td>0.006635</td>\n      <td>0.007721</td>\n      <td>0.009488</td>\n      <td>0.012736</td>\n      <td>0.008514</td>\n      <td>0.004919</td>\n      <td>0.004023</td>\n      <td>0.004755</td>\n      <td>0.013213</td>\n      <td>0.009740</td>\n      <td>0.006149</td>\n      <td>0.006642</td>\n      <td>0.002467</td>\n      <td>0.006715</td>\n      <td>0.009127</td>\n      <td>0.009726</td>\n      <td>0.005544</td>\n      <td>0.005108</td>\n      <td>0.004155</td>\n      <td>0.008445</td>\n      <td>0.004060</td>\n      <td>0.008058</td>\n      <td>0.006881</td>\n      <td>0.009725</td>\n      <td>0.010251</td>\n      <td>0.005755</td>\n      <td>0.006487</td>\n      <td>0.005763</td>\n      <td>0.012650</td>\n      <td>0.008567</td>\n      <td>0.009478</td>\n      <td>0.007612</td>\n      <td>0.013060</td>\n      <td>0.003913</td>\n      <td>0.005391</td>\n      <td>0.009185</td>\n      <td>0.012005</td>\n      <td>0.008022</td>\n      <td>0.007651</td>\n      <td>...</td>\n      <td>0.007629</td>\n      <td>0.005208</td>\n      <td>0.003408</td>\n      <td>0.020247</td>\n      <td>0.007195</td>\n      <td>0.005721</td>\n      <td>0.009664</td>\n      <td>0.009061</td>\n      <td>0.023770</td>\n      <td>0.012965</td>\n      <td>0.010415</td>\n      <td>0.007398</td>\n      <td>0.006938</td>\n      <td>0.018320</td>\n      <td>0.008563</td>\n      <td>0.007625</td>\n      <td>0.006314</td>\n      <td>0.006496</td>\n      <td>0.017800</td>\n      <td>0.006675</td>\n      <td>0.009803</td>\n      <td>0.004414</td>\n      <td>0.006129</td>\n      <td>0.007792</td>\n      <td>0.013208</td>\n      <td>0.004046</td>\n      <td>0.007095</td>\n      <td>0.007837</td>\n      <td>0.005077</td>\n      <td>0.005453</td>\n      <td>0.013959</td>\n      <td>0.007916</td>\n      <td>0.006249</td>\n      <td>0.005514</td>\n      <td>0.009648</td>\n      <td>0.005049</td>\n      <td>0.011491</td>\n      <td>0.004103</td>\n      <td>0.014250</td>\n      <td>0.008603</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>001a5f3114548acdefa3d4da05474c2e</td>\n      <td>0.009402</td>\n      <td>0.007856</td>\n      <td>0.010975</td>\n      <td>0.007110</td>\n      <td>0.009545</td>\n      <td>0.005820</td>\n      <td>0.006755</td>\n      <td>0.009455</td>\n      <td>0.015381</td>\n      <td>0.008524</td>\n      <td>0.006042</td>\n      <td>0.006835</td>\n      <td>0.007062</td>\n      <td>0.006647</td>\n      <td>0.003684</td>\n      <td>0.012833</td>\n      <td>0.009234</td>\n      <td>0.008662</td>\n      <td>0.006301</td>\n      <td>0.009952</td>\n      <td>0.006140</td>\n      <td>0.007702</td>\n      <td>0.008628</td>\n      <td>0.007722</td>\n      <td>0.007970</td>\n      <td>0.005299</td>\n      <td>0.006408</td>\n      <td>0.007773</td>\n      <td>0.011573</td>\n      <td>0.010361</td>\n      <td>0.007163</td>\n      <td>0.011981</td>\n      <td>0.011869</td>\n      <td>0.003770</td>\n      <td>0.007227</td>\n      <td>0.011108</td>\n      <td>0.006922</td>\n      <td>0.010830</td>\n      <td>0.006235</td>\n      <td>...</td>\n      <td>0.009177</td>\n      <td>0.003852</td>\n      <td>0.007610</td>\n      <td>0.012958</td>\n      <td>0.010120</td>\n      <td>0.007867</td>\n      <td>0.011939</td>\n      <td>0.011634</td>\n      <td>0.011147</td>\n      <td>0.008651</td>\n      <td>0.005045</td>\n      <td>0.007168</td>\n      <td>0.008089</td>\n      <td>0.010500</td>\n      <td>0.007346</td>\n      <td>0.009688</td>\n      <td>0.008934</td>\n      <td>0.006080</td>\n      <td>0.011001</td>\n      <td>0.006560</td>\n      <td>0.007963</td>\n      <td>0.006474</td>\n      <td>0.006110</td>\n      <td>0.004891</td>\n      <td>0.018568</td>\n      <td>0.007478</td>\n      <td>0.006475</td>\n      <td>0.005973</td>\n      <td>0.004466</td>\n      <td>0.007101</td>\n      <td>0.006905</td>\n      <td>0.010147</td>\n      <td>0.006578</td>\n      <td>0.008681</td>\n      <td>0.008942</td>\n      <td>0.011258</td>\n      <td>0.012487</td>\n      <td>0.005487</td>\n      <td>0.015406</td>\n      <td>0.008932</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"sub.to_csv('submission.csv', index = False)","execution_count":61,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}