Skip to content

Instantly share code, notes, and snippets.

@cindithompson
Created February 4, 2019 20:43
Show Gist options
  • Save cindithompson/1746083244d6d36784451e36499b874c to your computer and use it in GitHub Desktop.
Save cindithompson/1746083244d6d36784451e36499b874c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Python and data setup"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"import os\n",
"import subprocess\n",
"\n",
"from six import string_types\n",
"import random\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.image as mpimg\n",
"from matplotlib import rcParams\n",
"import scipy\n",
"from skimage import io\n",
"from scipy import ndimage\n",
"from IPython.display import display\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"rcParams['font.size'] = 14\n",
"rcParams['lines.linewidth'] = 2\n",
"rcParams['figure.figsize'] = (10, 6)\n",
"rcParams['axes.titlepad'] = 20"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"PLANET_KAGGLE_ROOT = os.path.abspath(\"input/\")\n",
"PLANET_KAGGLE_JPEG_DIR = os.path.join(PLANET_KAGGLE_ROOT, 'train-jpg')\n",
"PLANET_KAGGLE_LABEL_CSV = os.path.join(PLANET_KAGGLE_ROOT, 'train_v2.csv')\n",
"assert os.path.exists(PLANET_KAGGLE_ROOT)\n",
"assert os.path.exists(PLANET_KAGGLE_JPEG_DIR)\n",
"assert os.path.exists(PLANET_KAGGLE_LABEL_CSV)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"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>image_name</th>\n",
" <th>tags</th>\n",
" <th>selective_logging</th>\n",
" <th>clear</th>\n",
" <th>road</th>\n",
" <th>artisinal_mine</th>\n",
" <th>haze</th>\n",
" <th>partly_cloudy</th>\n",
" <th>blooming</th>\n",
" <th>water</th>\n",
" <th>blow_down</th>\n",
" <th>conventional_mine</th>\n",
" <th>cloudy</th>\n",
" <th>habitation</th>\n",
" <th>cultivation</th>\n",
" <th>agriculture</th>\n",
" <th>bare_ground</th>\n",
" <th>primary</th>\n",
" <th>slash_burn</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>train_0</td>\n",
" <td>haze primary</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>train_1</td>\n",
" <td>agriculture clear primary water</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>train_2</td>\n",
" <td>clear primary</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>train_3</td>\n",
" <td>clear primary</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>train_4</td>\n",
" <td>agriculture clear habitation primary road</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" image_name tags selective_logging \\\n",
"0 train_0 haze primary 0 \n",
"1 train_1 agriculture clear primary water 0 \n",
"2 train_2 clear primary 0 \n",
"3 train_3 clear primary 0 \n",
"4 train_4 agriculture clear habitation primary road 0 \n",
"\n",
" clear road artisinal_mine haze partly_cloudy blooming water \\\n",
"0 0 0 0 1 0 0 0 \n",
"1 1 0 0 0 0 0 1 \n",
"2 1 0 0 0 0 0 0 \n",
"3 1 0 0 0 0 0 0 \n",
"4 1 1 0 0 0 0 0 \n",
"\n",
" blow_down conventional_mine cloudy habitation cultivation agriculture \\\n",
"0 0 0 0 0 0 0 \n",
"1 0 0 0 0 0 1 \n",
"2 0 0 0 0 0 0 \n",
"3 0 0 0 0 0 0 \n",
"4 0 0 0 1 0 1 \n",
"\n",
" bare_ground primary slash_burn \n",
"0 0 1 0 \n",
"1 0 1 0 \n",
"2 0 1 0 \n",
"3 0 1 0 \n",
"4 0 1 0 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"labels_df = pd.read_csv(PLANET_KAGGLE_LABEL_CSV)\n",
"# Build list with unique labels\n",
"label_list = set()\n",
"for tag_str in labels_df.tags.values:\n",
" labels = tag_str.split()\n",
" for label in labels:\n",
" label_list.add(label)\n",
"# Add one hot features (new columns in the dataframe) for every label\n",
"for label in label_list:\n",
" labels_df[label] = labels_df['tags'].apply(lambda x: 1 if label in x.split(' ') else 0)\n",
"labels_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"label_list = list(label_list)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"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>primary</th>\n",
" <th>clear</th>\n",
" <th>agriculture</th>\n",
" <th>road</th>\n",
" <th>water</th>\n",
" <th>partly_cloudy</th>\n",
" <th>cultivation</th>\n",
" <th>habitation</th>\n",
" <th>haze</th>\n",
" <th>cloudy</th>\n",
" <th>bare_ground</th>\n",
" <th>selective_logging</th>\n",
" <th>artisinal_mine</th>\n",
" <th>blooming</th>\n",
" <th>slash_burn</th>\n",
" <th>conventional_mine</th>\n",
" <th>blow_down</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>primary</th>\n",
" <td>37513</td>\n",
" <td>27668</td>\n",
" <td>11972</td>\n",
" <td>7728</td>\n",
" <td>7001</td>\n",
" <td>7175</td>\n",
" <td>4455</td>\n",
" <td>3469</td>\n",
" <td>2670</td>\n",
" <td>0</td>\n",
" <td>683</td>\n",
" <td>340</td>\n",
" <td>324</td>\n",
" <td>332</td>\n",
" <td>209</td>\n",
" <td>94</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>clear</th>\n",
" <td>27668</td>\n",
" <td>28431</td>\n",
" <td>9150</td>\n",
" <td>6295</td>\n",
" <td>5502</td>\n",
" <td>0</td>\n",
" <td>3527</td>\n",
" <td>3090</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>747</td>\n",
" <td>308</td>\n",
" <td>307</td>\n",
" <td>311</td>\n",
" <td>173</td>\n",
" <td>70</td>\n",
" <td>85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>agriculture</th>\n",
" <td>11972</td>\n",
" <td>9150</td>\n",
" <td>12315</td>\n",
" <td>6034</td>\n",
" <td>2712</td>\n",
" <td>2493</td>\n",
" <td>3377</td>\n",
" <td>2737</td>\n",
" <td>672</td>\n",
" <td>0</td>\n",
" <td>225</td>\n",
" <td>65</td>\n",
" <td>38</td>\n",
" <td>32</td>\n",
" <td>119</td>\n",
" <td>24</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>road</th>\n",
" <td>7728</td>\n",
" <td>6295</td>\n",
" <td>6034</td>\n",
" <td>8071</td>\n",
" <td>2125</td>\n",
" <td>1382</td>\n",
" <td>1294</td>\n",
" <td>2786</td>\n",
" <td>394</td>\n",
" <td>0</td>\n",
" <td>323</td>\n",
" <td>151</td>\n",
" <td>110</td>\n",
" <td>10</td>\n",
" <td>36</td>\n",
" <td>59</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>water</th>\n",
" <td>7001</td>\n",
" <td>5502</td>\n",
" <td>2712</td>\n",
" <td>2125</td>\n",
" <td>7411</td>\n",
" <td>1295</td>\n",
" <td>868</td>\n",
" <td>915</td>\n",
" <td>613</td>\n",
" <td>0</td>\n",
" <td>206</td>\n",
" <td>49</td>\n",
" <td>299</td>\n",
" <td>16</td>\n",
" <td>24</td>\n",
" <td>26</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>partly_cloudy</th>\n",
" <td>7175</td>\n",
" <td>0</td>\n",
" <td>2493</td>\n",
" <td>1382</td>\n",
" <td>1295</td>\n",
" <td>7261</td>\n",
" <td>748</td>\n",
" <td>441</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>74</td>\n",
" <td>27</td>\n",
" <td>27</td>\n",
" <td>17</td>\n",
" <td>33</td>\n",
" <td>28</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>cultivation</th>\n",
" <td>4455</td>\n",
" <td>3527</td>\n",
" <td>3377</td>\n",
" <td>1294</td>\n",
" <td>868</td>\n",
" <td>748</td>\n",
" <td>4477</td>\n",
" <td>895</td>\n",
" <td>202</td>\n",
" <td>0</td>\n",
" <td>89</td>\n",
" <td>58</td>\n",
" <td>18</td>\n",
" <td>35</td>\n",
" <td>126</td>\n",
" <td>4</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>habitation</th>\n",
" <td>3469</td>\n",
" <td>3090</td>\n",
" <td>2737</td>\n",
" <td>2786</td>\n",
" <td>915</td>\n",
" <td>441</td>\n",
" <td>895</td>\n",
" <td>3660</td>\n",
" <td>129</td>\n",
" <td>0</td>\n",
" <td>163</td>\n",
" <td>13</td>\n",
" <td>29</td>\n",
" <td>4</td>\n",
" <td>41</td>\n",
" <td>36</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>haze</th>\n",
" <td>2670</td>\n",
" <td>0</td>\n",
" <td>672</td>\n",
" <td>394</td>\n",
" <td>613</td>\n",
" <td>0</td>\n",
" <td>202</td>\n",
" <td>129</td>\n",
" <td>2697</td>\n",
" <td>0</td>\n",
" <td>41</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>cloudy</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2089</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>bare_ground</th>\n",
" <td>683</td>\n",
" <td>747</td>\n",
" <td>225</td>\n",
" <td>323</td>\n",
" <td>206</td>\n",
" <td>74</td>\n",
" <td>89</td>\n",
" <td>163</td>\n",
" <td>41</td>\n",
" <td>0</td>\n",
" <td>862</td>\n",
" <td>13</td>\n",
" <td>40</td>\n",
" <td>3</td>\n",
" <td>10</td>\n",
" <td>10</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>selective_logging</th>\n",
" <td>340</td>\n",
" <td>308</td>\n",
" <td>65</td>\n",
" <td>151</td>\n",
" <td>49</td>\n",
" <td>27</td>\n",
" <td>58</td>\n",
" <td>13</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>13</td>\n",
" <td>340</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>artisinal_mine</th>\n",
" <td>324</td>\n",
" <td>307</td>\n",
" <td>38</td>\n",
" <td>110</td>\n",
" <td>299</td>\n",
" <td>27</td>\n",
" <td>18</td>\n",
" <td>29</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>40</td>\n",
" <td>6</td>\n",
" <td>339</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>blooming</th>\n",
" <td>332</td>\n",
" <td>311</td>\n",
" <td>32</td>\n",
" <td>10</td>\n",
" <td>16</td>\n",
" <td>17</td>\n",
" <td>35</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>332</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>slash_burn</th>\n",
" <td>209</td>\n",
" <td>173</td>\n",
" <td>119</td>\n",
" <td>36</td>\n",
" <td>24</td>\n",
" <td>33</td>\n",
" <td>126</td>\n",
" <td>41</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>209</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>conventional_mine</th>\n",
" <td>94</td>\n",
" <td>70</td>\n",
" <td>24</td>\n",
" <td>59</td>\n",
" <td>26</td>\n",
" <td>28</td>\n",
" <td>4</td>\n",
" <td>36</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>100</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>blow_down</th>\n",
" <td>98</td>\n",
" <td>85</td>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>13</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>98</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" primary clear agriculture road water partly_cloudy \\\n",
"primary 37513 27668 11972 7728 7001 7175 \n",
"clear 27668 28431 9150 6295 5502 0 \n",
"agriculture 11972 9150 12315 6034 2712 2493 \n",
"road 7728 6295 6034 8071 2125 1382 \n",
"water 7001 5502 2712 2125 7411 1295 \n",
"partly_cloudy 7175 0 2493 1382 1295 7261 \n",
"cultivation 4455 3527 3377 1294 868 748 \n",
"habitation 3469 3090 2737 2786 915 441 \n",
"haze 2670 0 672 394 613 0 \n",
"cloudy 0 0 0 0 0 0 \n",
"bare_ground 683 747 225 323 206 74 \n",
"selective_logging 340 308 65 151 49 27 \n",
"artisinal_mine 324 307 38 110 299 27 \n",
"blooming 332 311 32 10 16 17 \n",
"slash_burn 209 173 119 36 24 33 \n",
"conventional_mine 94 70 24 59 26 28 \n",
"blow_down 98 85 22 2 3 13 \n",
"\n",
" cultivation habitation haze cloudy bare_ground \\\n",
"primary 4455 3469 2670 0 683 \n",
"clear 3527 3090 0 0 747 \n",
"agriculture 3377 2737 672 0 225 \n",
"road 1294 2786 394 0 323 \n",
"water 868 915 613 0 206 \n",
"partly_cloudy 748 441 0 0 74 \n",
"cultivation 4477 895 202 0 89 \n",
"habitation 895 3660 129 0 163 \n",
"haze 202 129 2697 0 41 \n",
"cloudy 0 0 0 2089 0 \n",
"bare_ground 89 163 41 0 862 \n",
"selective_logging 58 13 5 0 13 \n",
"artisinal_mine 18 29 5 0 40 \n",
"blooming 35 4 4 0 3 \n",
"slash_burn 126 41 3 0 10 \n",
"conventional_mine 4 36 2 0 10 \n",
"blow_down 8 3 0 0 4 \n",
"\n",
" selective_logging artisinal_mine blooming slash_burn \\\n",
"primary 340 324 332 209 \n",
"clear 308 307 311 173 \n",
"agriculture 65 38 32 119 \n",
"road 151 110 10 36 \n",
"water 49 299 16 24 \n",
"partly_cloudy 27 27 17 33 \n",
"cultivation 58 18 35 126 \n",
"habitation 13 29 4 41 \n",
"haze 5 5 4 3 \n",
"cloudy 0 0 0 0 \n",
"bare_ground 13 40 3 10 \n",
"selective_logging 340 6 7 2 \n",
"artisinal_mine 6 339 0 0 \n",
"blooming 7 0 332 2 \n",
"slash_burn 2 0 2 209 \n",
"conventional_mine 0 4 0 0 \n",
"blow_down 1 0 1 2 \n",
"\n",
" conventional_mine blow_down \n",
"primary 94 98 \n",
"clear 70 85 \n",
"agriculture 24 22 \n",
"road 59 2 \n",
"water 26 3 \n",
"partly_cloudy 28 13 \n",
"cultivation 4 8 \n",
"habitation 36 3 \n",
"haze 2 0 \n",
"cloudy 0 0 \n",
"bare_ground 10 4 \n",
"selective_logging 0 1 \n",
"artisinal_mine 4 0 \n",
"blooming 0 1 \n",
"slash_burn 0 2 \n",
"conventional_mine 100 0 \n",
"blow_down 0 98 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#revisit label cooccurence\n",
"def make_and_show_cooccurence_matrix(labels, df):\n",
" numeric_df = df[labels]; \n",
" c_matrix = numeric_df.T.dot(numeric_df)\n",
" plt.title(\"Label cooccurrence\")\n",
" sns.heatmap(c_matrix)\n",
" return c_matrix\n",
" \n",
"# Compute the co-ocurrence matrix\n",
"make_and_show_cooccurence_matrix(labels_df[label_list].sum().sort_values(ascending=False).index, labels_df)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"#number of labels per image\n",
"label_counts=labels_df[label_list].sum(axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 40479.000000\n",
"mean 2.870748\n",
"std 1.218504\n",
"min 1.000000\n",
"25% 2.000000\n",
"50% 2.000000\n",
"75% 4.000000\n",
"max 9.000000\n",
"dtype: float64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"label_counts.describe()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2 19176\n",
"3 7194\n",
"4 7191\n",
"5 3697\n",
"1 2091\n",
"6 993\n",
"7 124\n",
"8 12\n",
"9 1\n",
"dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"label_counts.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.title(\"Number of labels per image\")\n",
"plt.xlabel(\"# of labels\")\n",
"plt.ylabel(\"# of images\")\n",
"label_counts.value_counts().sort_index().plot('bar');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Split up the training data"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"num_exs = len(labels_df)\n",
"ntrain = int(num_exs * 0.6)\n",
"nval = int((num_exs-ntrain)/2)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"# data is already shuffled by the contest organizers, no need to randomize\n",
"train_data = labels_df[:ntrain]\n",
"validation_data = labels_df[ntrain:ntrain+nval]\n",
"test_data = labels_df[ntrain+nval:]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"import cv2\n",
"# let's just try a subset\n",
"n_samples = 5000\n",
"rescaled_dim = 20"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"X = np.squeeze(np.array([cv2.resize(io.imread(os.path.join(PLANET_KAGGLE_ROOT, 'train-jpg', name+'.jpg')),\n",
" (rescaled_dim, rescaled_dim), cv2.INTER_LINEAR).reshape(1, -1)\n",
" for name in train_data.head(n_samples)['image_name'].values]))"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(5000, 1200)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.shape(X)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 96, 113, 103, 96, 111, 105, 90, 107, 100, 95, 110, 105, 89,\n",
" 110, 102, 97, 111, 105, 94, 111], dtype=uint8)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X[0][:20]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/cynthiathompson/miniconda3/lib/python3.7/site-packages/sklearn/utils/validation.py:595: DataConversionWarning: Data with input dtype uint8 was converted to float64 by the scale function.\n",
" warnings.warn(msg, DataConversionWarning)\n"
]
}
],
"source": [
"import sklearn.preprocessing\n",
"X = sklearn.preprocessing.scale(X)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.349651 , 0.66388934, 0.72284896, 0.35213571, 0.61175353,\n",
" 0.77545435, 0.2051926 , 0.49758084, 0.63218983, 0.33760877,\n",
" 0.59648454, 0.78803755, 0.20977346, 0.60650581, 0.71529774,\n",
" 0.39971639, 0.63918757, 0.80457113, 0.32743866, 0.64012098])"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X[0][:20]"
]
},
{
"cell_type": "code",
"execution_count": null,
"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.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment