blob: cfe8c97c51cdbc70fc7bc5dcfb301079132bd0c4 [file] [log] [blame]
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Model Selection for Multilayer Perceptron Using Keras and MADlib\n",
"\n",
"E2E classification example using MADlib calling a Keras MLP for different hyperparameters and model architectures.\n",
"\n",
"Deep learning works best on very large datasets, but that is not convenient for a quick introduction to the syntax. So in this workbook we use the well known iris data set from https://archive.ics.uci.edu/ml/datasets/iris to help get you started. It is similar to the example in user docs http://madlib.apache.org/docs/latest/index.html\n",
"\n",
"For more realistic examples please refer to the deep learning notebooks at https://github.com/apache/madlib-site/tree/asf-site/community-artifacts\n",
"\n",
"## Table of contents\n",
"\n",
"<a href=\"#class\">Classification</a>\n",
"\n",
"* <a href=\"#create_input_data\">1. Create input data</a>\n",
"\n",
"* <a href=\"#pp\">2. Call preprocessor for deep learning</a>\n",
"\n",
"* <a href=\"#load\">3. Define and load model architecture</a>\n",
"\n",
"* <a href=\"#def_mst\">4. Define and load model selection tuples</a>\n",
"\n",
"* <a href=\"#train\">5. Train</a>\n",
"\n",
"* <a href=\"#eval\">6. Evaluate</a>\n",
"\n",
"* <a href=\"#pred\">7. Predict</a>\n",
"\n",
"<a href=\"#class2\">Classification with Other Parameters</a>\n",
"\n",
"* <a href=\"#val_dataset\">1. Validation dataset</a>\n",
"\n",
"* <a href=\"#pred_prob\">2. Predict probabilities</a>\n",
"\n",
"* <a href=\"#warm_start\">3. Warm start</a>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/config.py:13: ShimWarning: The `IPython.config` package has been deprecated since IPython 4.0. You should import from traitlets.config instead.\n",
" \"You should import from traitlets.config instead.\", ShimWarning)\n",
"/Users/fmcquillan/anaconda/lib/python2.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.\n",
" warn(\"IPython.utils.traitlets has moved to a top-level traitlets package.\")\n"
]
}
],
"source": [
"%load_ext sql"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"u'Connected: gpadmin@madlib'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Greenplum Database 5.x on GCP (PM demo machine) - direct external IP access\n",
"#%sql postgresql://gpadmin@34.67.65.96:5432/madlib\n",
"\n",
"# Greenplum Database 5.x on GCP - via tunnel\n",
"%sql postgresql://gpadmin@localhost:8000/madlib\n",
" \n",
"# PostgreSQL local\n",
"#%sql postgresql://fmcquillan@localhost:5432/madlib"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>version</th>\n",
" </tr>\n",
" <tr>\n",
" <td>MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(u'MADlib version: 1.17-dev, git revision: rel/v1.16-54-gec5614f, cmake configuration time: Wed Dec 18 17:08:05 UTC 2019, build type: release, build system: Linux-3.10.0-1062.4.3.el7.x86_64, C compiler: gcc 4.8.5, C++ compiler: g++ 4.8.5',)]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%sql select madlib.version();\n",
"#%sql select version();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"class\"></a>\n",
"# Classification\n",
"\n",
"<a id=\"create_input_data\"></a>\n",
"# 1. Create input data\n",
"\n",
"Load iris data set."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"Done.\n",
"150 rows affected.\n",
"150 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>id</th>\n",
" <th>attributes</th>\n",
" <th>class_text</th>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>[Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>[Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>[Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>[Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>9</td>\n",
" <td>[Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>11</td>\n",
" <td>[Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>12</td>\n",
" <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>13</td>\n",
" <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>14</td>\n",
" <td>[Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>15</td>\n",
" <td>[Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>16</td>\n",
" <td>[Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>17</td>\n",
" <td>[Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>18</td>\n",
" <td>[Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>19</td>\n",
" <td>[Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>20</td>\n",
" <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>21</td>\n",
" <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>22</td>\n",
" <td>[Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>23</td>\n",
" <td>[Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>24</td>\n",
" <td>[Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>25</td>\n",
" <td>[Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>26</td>\n",
" <td>[Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>27</td>\n",
" <td>[Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>28</td>\n",
" <td>[Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>29</td>\n",
" <td>[Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>30</td>\n",
" <td>[Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>31</td>\n",
" <td>[Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>32</td>\n",
" <td>[Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>33</td>\n",
" <td>[Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>34</td>\n",
" <td>[Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>35</td>\n",
" <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>36</td>\n",
" <td>[Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>37</td>\n",
" <td>[Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>38</td>\n",
" <td>[Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>39</td>\n",
" <td>[Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>40</td>\n",
" <td>[Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>41</td>\n",
" <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>42</td>\n",
" <td>[Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>43</td>\n",
" <td>[Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>44</td>\n",
" <td>[Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>45</td>\n",
" <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>46</td>\n",
" <td>[Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>47</td>\n",
" <td>[Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>48</td>\n",
" <td>[Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>49</td>\n",
" <td>[Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>50</td>\n",
" <td>[Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')]</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>51</td>\n",
" <td>[Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>52</td>\n",
" <td>[Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>53</td>\n",
" <td>[Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>54</td>\n",
" <td>[Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>55</td>\n",
" <td>[Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>56</td>\n",
" <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>57</td>\n",
" <td>[Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>58</td>\n",
" <td>[Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>59</td>\n",
" <td>[Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>60</td>\n",
" <td>[Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>61</td>\n",
" <td>[Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>62</td>\n",
" <td>[Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>63</td>\n",
" <td>[Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>64</td>\n",
" <td>[Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>65</td>\n",
" <td>[Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>66</td>\n",
" <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>67</td>\n",
" <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>68</td>\n",
" <td>[Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>69</td>\n",
" <td>[Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>70</td>\n",
" <td>[Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>71</td>\n",
" <td>[Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>72</td>\n",
" <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>73</td>\n",
" <td>[Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>74</td>\n",
" <td>[Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>75</td>\n",
" <td>[Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>76</td>\n",
" <td>[Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>77</td>\n",
" <td>[Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>78</td>\n",
" <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>79</td>\n",
" <td>[Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>80</td>\n",
" <td>[Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>81</td>\n",
" <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>82</td>\n",
" <td>[Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>83</td>\n",
" <td>[Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>84</td>\n",
" <td>[Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>85</td>\n",
" <td>[Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>86</td>\n",
" <td>[Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>87</td>\n",
" <td>[Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>88</td>\n",
" <td>[Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>89</td>\n",
" <td>[Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>90</td>\n",
" <td>[Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>91</td>\n",
" <td>[Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>92</td>\n",
" <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>93</td>\n",
" <td>[Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>94</td>\n",
" <td>[Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>95</td>\n",
" <td>[Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>96</td>\n",
" <td>[Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>97</td>\n",
" <td>[Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>98</td>\n",
" <td>[Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>99</td>\n",
" <td>[Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>100</td>\n",
" <td>[Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')]</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>101</td>\n",
" <td>[Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>102</td>\n",
" <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>103</td>\n",
" <td>[Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>104</td>\n",
" <td>[Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>105</td>\n",
" <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>106</td>\n",
" <td>[Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>107</td>\n",
" <td>[Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>108</td>\n",
" <td>[Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>109</td>\n",
" <td>[Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>110</td>\n",
" <td>[Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>111</td>\n",
" <td>[Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>112</td>\n",
" <td>[Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>113</td>\n",
" <td>[Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>114</td>\n",
" <td>[Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>115</td>\n",
" <td>[Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>116</td>\n",
" <td>[Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>117</td>\n",
" <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>118</td>\n",
" <td>[Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>119</td>\n",
" <td>[Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>120</td>\n",
" <td>[Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>121</td>\n",
" <td>[Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>122</td>\n",
" <td>[Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>123</td>\n",
" <td>[Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>124</td>\n",
" <td>[Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>125</td>\n",
" <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>126</td>\n",
" <td>[Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>127</td>\n",
" <td>[Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>128</td>\n",
" <td>[Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>129</td>\n",
" <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>130</td>\n",
" <td>[Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>131</td>\n",
" <td>[Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>132</td>\n",
" <td>[Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>133</td>\n",
" <td>[Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>134</td>\n",
" <td>[Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>135</td>\n",
" <td>[Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>136</td>\n",
" <td>[Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>137</td>\n",
" <td>[Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>138</td>\n",
" <td>[Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>139</td>\n",
" <td>[Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>140</td>\n",
" <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>141</td>\n",
" <td>[Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>142</td>\n",
" <td>[Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>143</td>\n",
" <td>[Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>144</td>\n",
" <td>[Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>145</td>\n",
" <td>[Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>146</td>\n",
" <td>[Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>147</td>\n",
" <td>[Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>148</td>\n",
" <td>[Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>149</td>\n",
" <td>[Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>150</td>\n",
" <td>[Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')]</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(1, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
" (2, [Decimal('4.9'), Decimal('3.0'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
" (3, [Decimal('4.7'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
" (4, [Decimal('4.6'), Decimal('3.1'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
" (5, [Decimal('5.0'), Decimal('3.6'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
" (6, [Decimal('5.4'), Decimal('3.9'), Decimal('1.7'), Decimal('0.4')], u'Iris-setosa'),\n",
" (7, [Decimal('4.6'), Decimal('3.4'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
" (8, [Decimal('5.0'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
" (9, [Decimal('4.4'), Decimal('2.9'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
" (10, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
" (11, [Decimal('5.4'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
" (12, [Decimal('4.8'), Decimal('3.4'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
" (13, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.1')], u'Iris-setosa'),\n",
" (14, [Decimal('4.3'), Decimal('3.0'), Decimal('1.1'), Decimal('0.1')], u'Iris-setosa'),\n",
" (15, [Decimal('5.8'), Decimal('4.0'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
" (16, [Decimal('5.7'), Decimal('4.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
" (17, [Decimal('5.4'), Decimal('3.9'), Decimal('1.3'), Decimal('0.4')], u'Iris-setosa'),\n",
" (18, [Decimal('5.1'), Decimal('3.5'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
" (19, [Decimal('5.7'), Decimal('3.8'), Decimal('1.7'), Decimal('0.3')], u'Iris-setosa'),\n",
" (20, [Decimal('5.1'), Decimal('3.8'), Decimal('1.5'), Decimal('0.3')], u'Iris-setosa'),\n",
" (21, [Decimal('5.4'), Decimal('3.4'), Decimal('1.7'), Decimal('0.2')], u'Iris-setosa'),\n",
" (22, [Decimal('5.1'), Decimal('3.7'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
" (23, [Decimal('4.6'), Decimal('3.6'), Decimal('1.0'), Decimal('0.2')], u'Iris-setosa'),\n",
" (24, [Decimal('5.1'), Decimal('3.3'), Decimal('1.7'), Decimal('0.5')], u'Iris-setosa'),\n",
" (25, [Decimal('4.8'), Decimal('3.4'), Decimal('1.9'), Decimal('0.2')], u'Iris-setosa'),\n",
" (26, [Decimal('5.0'), Decimal('3.0'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
" (27, [Decimal('5.0'), Decimal('3.4'), Decimal('1.6'), Decimal('0.4')], u'Iris-setosa'),\n",
" (28, [Decimal('5.2'), Decimal('3.5'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
" (29, [Decimal('5.2'), Decimal('3.4'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
" (30, [Decimal('4.7'), Decimal('3.2'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
" (31, [Decimal('4.8'), Decimal('3.1'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
" (32, [Decimal('5.4'), Decimal('3.4'), Decimal('1.5'), Decimal('0.4')], u'Iris-setosa'),\n",
" (33, [Decimal('5.2'), Decimal('4.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
" (34, [Decimal('5.5'), Decimal('4.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
" (35, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
" (36, [Decimal('5.0'), Decimal('3.2'), Decimal('1.2'), Decimal('0.2')], u'Iris-setosa'),\n",
" (37, [Decimal('5.5'), Decimal('3.5'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
" (38, [Decimal('4.9'), Decimal('3.1'), Decimal('1.5'), Decimal('0.1')], u'Iris-setosa'),\n",
" (39, [Decimal('4.4'), Decimal('3.0'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
" (40, [Decimal('5.1'), Decimal('3.4'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
" (41, [Decimal('5.0'), Decimal('3.5'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
" (42, [Decimal('4.5'), Decimal('2.3'), Decimal('1.3'), Decimal('0.3')], u'Iris-setosa'),\n",
" (43, [Decimal('4.4'), Decimal('3.2'), Decimal('1.3'), Decimal('0.2')], u'Iris-setosa'),\n",
" (44, [Decimal('5.0'), Decimal('3.5'), Decimal('1.6'), Decimal('0.6')], u'Iris-setosa'),\n",
" (45, [Decimal('5.1'), Decimal('3.8'), Decimal('1.9'), Decimal('0.4')], u'Iris-setosa'),\n",
" (46, [Decimal('4.8'), Decimal('3.0'), Decimal('1.4'), Decimal('0.3')], u'Iris-setosa'),\n",
" (47, [Decimal('5.1'), Decimal('3.8'), Decimal('1.6'), Decimal('0.2')], u'Iris-setosa'),\n",
" (48, [Decimal('4.6'), Decimal('3.2'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
" (49, [Decimal('5.3'), Decimal('3.7'), Decimal('1.5'), Decimal('0.2')], u'Iris-setosa'),\n",
" (50, [Decimal('5.0'), Decimal('3.3'), Decimal('1.4'), Decimal('0.2')], u'Iris-setosa'),\n",
" (51, [Decimal('7.0'), Decimal('3.2'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
" (52, [Decimal('6.4'), Decimal('3.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (53, [Decimal('6.9'), Decimal('3.1'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (54, [Decimal('5.5'), Decimal('2.3'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (55, [Decimal('6.5'), Decimal('2.8'), Decimal('4.6'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (56, [Decimal('5.7'), Decimal('2.8'), Decimal('4.5'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (57, [Decimal('6.3'), Decimal('3.3'), Decimal('4.7'), Decimal('1.6')], u'Iris-versicolor'),\n",
" (58, [Decimal('4.9'), Decimal('2.4'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
" (59, [Decimal('6.6'), Decimal('2.9'), Decimal('4.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (60, [Decimal('5.2'), Decimal('2.7'), Decimal('3.9'), Decimal('1.4')], u'Iris-versicolor'),\n",
" (61, [Decimal('5.0'), Decimal('2.0'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
" (62, [Decimal('5.9'), Decimal('3.0'), Decimal('4.2'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (63, [Decimal('6.0'), Decimal('2.2'), Decimal('4.0'), Decimal('1.0')], u'Iris-versicolor'),\n",
" (64, [Decimal('6.1'), Decimal('2.9'), Decimal('4.7'), Decimal('1.4')], u'Iris-versicolor'),\n",
" (65, [Decimal('5.6'), Decimal('2.9'), Decimal('3.6'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (66, [Decimal('6.7'), Decimal('3.1'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
" (67, [Decimal('5.6'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (68, [Decimal('5.8'), Decimal('2.7'), Decimal('4.1'), Decimal('1.0')], u'Iris-versicolor'),\n",
" (69, [Decimal('6.2'), Decimal('2.2'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (70, [Decimal('5.6'), Decimal('2.5'), Decimal('3.9'), Decimal('1.1')], u'Iris-versicolor'),\n",
" (71, [Decimal('5.9'), Decimal('3.2'), Decimal('4.8'), Decimal('1.8')], u'Iris-versicolor'),\n",
" (72, [Decimal('6.1'), Decimal('2.8'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (73, [Decimal('6.3'), Decimal('2.5'), Decimal('4.9'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (74, [Decimal('6.1'), Decimal('2.8'), Decimal('4.7'), Decimal('1.2')], u'Iris-versicolor'),\n",
" (75, [Decimal('6.4'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (76, [Decimal('6.6'), Decimal('3.0'), Decimal('4.4'), Decimal('1.4')], u'Iris-versicolor'),\n",
" (77, [Decimal('6.8'), Decimal('2.8'), Decimal('4.8'), Decimal('1.4')], u'Iris-versicolor'),\n",
" (78, [Decimal('6.7'), Decimal('3.0'), Decimal('5.0'), Decimal('1.7')], u'Iris-versicolor'),\n",
" (79, [Decimal('6.0'), Decimal('2.9'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (80, [Decimal('5.7'), Decimal('2.6'), Decimal('3.5'), Decimal('1.0')], u'Iris-versicolor'),\n",
" (81, [Decimal('5.5'), Decimal('2.4'), Decimal('3.8'), Decimal('1.1')], u'Iris-versicolor'),\n",
" (82, [Decimal('5.5'), Decimal('2.4'), Decimal('3.7'), Decimal('1.0')], u'Iris-versicolor'),\n",
" (83, [Decimal('5.8'), Decimal('2.7'), Decimal('3.9'), Decimal('1.2')], u'Iris-versicolor'),\n",
" (84, [Decimal('6.0'), Decimal('2.7'), Decimal('5.1'), Decimal('1.6')], u'Iris-versicolor'),\n",
" (85, [Decimal('5.4'), Decimal('3.0'), Decimal('4.5'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (86, [Decimal('6.0'), Decimal('3.4'), Decimal('4.5'), Decimal('1.6')], u'Iris-versicolor'),\n",
" (87, [Decimal('6.7'), Decimal('3.1'), Decimal('4.7'), Decimal('1.5')], u'Iris-versicolor'),\n",
" (88, [Decimal('6.3'), Decimal('2.3'), Decimal('4.4'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (89, [Decimal('5.6'), Decimal('3.0'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (90, [Decimal('5.5'), Decimal('2.5'), Decimal('4.0'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (91, [Decimal('5.5'), Decimal('2.6'), Decimal('4.4'), Decimal('1.2')], u'Iris-versicolor'),\n",
" (92, [Decimal('6.1'), Decimal('3.0'), Decimal('4.6'), Decimal('1.4')], u'Iris-versicolor'),\n",
" (93, [Decimal('5.8'), Decimal('2.6'), Decimal('4.0'), Decimal('1.2')], u'Iris-versicolor'),\n",
" (94, [Decimal('5.0'), Decimal('2.3'), Decimal('3.3'), Decimal('1.0')], u'Iris-versicolor'),\n",
" (95, [Decimal('5.6'), Decimal('2.7'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (96, [Decimal('5.7'), Decimal('3.0'), Decimal('4.2'), Decimal('1.2')], u'Iris-versicolor'),\n",
" (97, [Decimal('5.7'), Decimal('2.9'), Decimal('4.2'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (98, [Decimal('6.2'), Decimal('2.9'), Decimal('4.3'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (99, [Decimal('5.1'), Decimal('2.5'), Decimal('3.0'), Decimal('1.1')], u'Iris-versicolor'),\n",
" (100, [Decimal('5.7'), Decimal('2.8'), Decimal('4.1'), Decimal('1.3')], u'Iris-versicolor'),\n",
" (101, [Decimal('6.3'), Decimal('3.3'), Decimal('6.0'), Decimal('2.5')], u'Iris-virginica'),\n",
" (102, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
" (103, [Decimal('7.1'), Decimal('3.0'), Decimal('5.9'), Decimal('2.1')], u'Iris-virginica'),\n",
" (104, [Decimal('6.3'), Decimal('2.9'), Decimal('5.6'), Decimal('1.8')], u'Iris-virginica'),\n",
" (105, [Decimal('6.5'), Decimal('3.0'), Decimal('5.8'), Decimal('2.2')], u'Iris-virginica'),\n",
" (106, [Decimal('7.6'), Decimal('3.0'), Decimal('6.6'), Decimal('2.1')], u'Iris-virginica'),\n",
" (107, [Decimal('4.9'), Decimal('2.5'), Decimal('4.5'), Decimal('1.7')], u'Iris-virginica'),\n",
" (108, [Decimal('7.3'), Decimal('2.9'), Decimal('6.3'), Decimal('1.8')], u'Iris-virginica'),\n",
" (109, [Decimal('6.7'), Decimal('2.5'), Decimal('5.8'), Decimal('1.8')], u'Iris-virginica'),\n",
" (110, [Decimal('7.2'), Decimal('3.6'), Decimal('6.1'), Decimal('2.5')], u'Iris-virginica'),\n",
" (111, [Decimal('6.5'), Decimal('3.2'), Decimal('5.1'), Decimal('2.0')], u'Iris-virginica'),\n",
" (112, [Decimal('6.4'), Decimal('2.7'), Decimal('5.3'), Decimal('1.9')], u'Iris-virginica'),\n",
" (113, [Decimal('6.8'), Decimal('3.0'), Decimal('5.5'), Decimal('2.1')], u'Iris-virginica'),\n",
" (114, [Decimal('5.7'), Decimal('2.5'), Decimal('5.0'), Decimal('2.0')], u'Iris-virginica'),\n",
" (115, [Decimal('5.8'), Decimal('2.8'), Decimal('5.1'), Decimal('2.4')], u'Iris-virginica'),\n",
" (116, [Decimal('6.4'), Decimal('3.2'), Decimal('5.3'), Decimal('2.3')], u'Iris-virginica'),\n",
" (117, [Decimal('6.5'), Decimal('3.0'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
" (118, [Decimal('7.7'), Decimal('3.8'), Decimal('6.7'), Decimal('2.2')], u'Iris-virginica'),\n",
" (119, [Decimal('7.7'), Decimal('2.6'), Decimal('6.9'), Decimal('2.3')], u'Iris-virginica'),\n",
" (120, [Decimal('6.0'), Decimal('2.2'), Decimal('5.0'), Decimal('1.5')], u'Iris-virginica'),\n",
" (121, [Decimal('6.9'), Decimal('3.2'), Decimal('5.7'), Decimal('2.3')], u'Iris-virginica'),\n",
" (122, [Decimal('5.6'), Decimal('2.8'), Decimal('4.9'), Decimal('2.0')], u'Iris-virginica'),\n",
" (123, [Decimal('7.7'), Decimal('2.8'), Decimal('6.7'), Decimal('2.0')], u'Iris-virginica'),\n",
" (124, [Decimal('6.3'), Decimal('2.7'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
" (125, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.1')], u'Iris-virginica'),\n",
" (126, [Decimal('7.2'), Decimal('3.2'), Decimal('6.0'), Decimal('1.8')], u'Iris-virginica'),\n",
" (127, [Decimal('6.2'), Decimal('2.8'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
" (128, [Decimal('6.1'), Decimal('3.0'), Decimal('4.9'), Decimal('1.8')], u'Iris-virginica'),\n",
" (129, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.1')], u'Iris-virginica'),\n",
" (130, [Decimal('7.2'), Decimal('3.0'), Decimal('5.8'), Decimal('1.6')], u'Iris-virginica'),\n",
" (131, [Decimal('7.4'), Decimal('2.8'), Decimal('6.1'), Decimal('1.9')], u'Iris-virginica'),\n",
" (132, [Decimal('7.9'), Decimal('3.8'), Decimal('6.4'), Decimal('2.0')], u'Iris-virginica'),\n",
" (133, [Decimal('6.4'), Decimal('2.8'), Decimal('5.6'), Decimal('2.2')], u'Iris-virginica'),\n",
" (134, [Decimal('6.3'), Decimal('2.8'), Decimal('5.1'), Decimal('1.5')], u'Iris-virginica'),\n",
" (135, [Decimal('6.1'), Decimal('2.6'), Decimal('5.6'), Decimal('1.4')], u'Iris-virginica'),\n",
" (136, [Decimal('7.7'), Decimal('3.0'), Decimal('6.1'), Decimal('2.3')], u'Iris-virginica'),\n",
" (137, [Decimal('6.3'), Decimal('3.4'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
" (138, [Decimal('6.4'), Decimal('3.1'), Decimal('5.5'), Decimal('1.8')], u'Iris-virginica'),\n",
" (139, [Decimal('6.0'), Decimal('3.0'), Decimal('4.8'), Decimal('1.8')], u'Iris-virginica'),\n",
" (140, [Decimal('6.9'), Decimal('3.1'), Decimal('5.4'), Decimal('2.1')], u'Iris-virginica'),\n",
" (141, [Decimal('6.7'), Decimal('3.1'), Decimal('5.6'), Decimal('2.4')], u'Iris-virginica'),\n",
" (142, [Decimal('6.9'), Decimal('3.1'), Decimal('5.1'), Decimal('2.3')], u'Iris-virginica'),\n",
" (143, [Decimal('5.8'), Decimal('2.7'), Decimal('5.1'), Decimal('1.9')], u'Iris-virginica'),\n",
" (144, [Decimal('6.8'), Decimal('3.2'), Decimal('5.9'), Decimal('2.3')], u'Iris-virginica'),\n",
" (145, [Decimal('6.7'), Decimal('3.3'), Decimal('5.7'), Decimal('2.5')], u'Iris-virginica'),\n",
" (146, [Decimal('6.7'), Decimal('3.0'), Decimal('5.2'), Decimal('2.3')], u'Iris-virginica'),\n",
" (147, [Decimal('6.3'), Decimal('2.5'), Decimal('5.0'), Decimal('1.9')], u'Iris-virginica'),\n",
" (148, [Decimal('6.5'), Decimal('3.0'), Decimal('5.2'), Decimal('2.0')], u'Iris-virginica'),\n",
" (149, [Decimal('6.2'), Decimal('3.4'), Decimal('5.4'), Decimal('2.3')], u'Iris-virginica'),\n",
" (150, [Decimal('5.9'), Decimal('3.0'), Decimal('5.1'), Decimal('1.8')], u'Iris-virginica')]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql \n",
"DROP TABLE IF EXISTS iris_data;\n",
"\n",
"CREATE TABLE iris_data(\n",
" id serial,\n",
" attributes numeric[],\n",
" class_text varchar\n",
");\n",
"\n",
"INSERT INTO iris_data(id, attributes, class_text) VALUES\n",
"(1,ARRAY[5.1,3.5,1.4,0.2],'Iris-setosa'),\n",
"(2,ARRAY[4.9,3.0,1.4,0.2],'Iris-setosa'),\n",
"(3,ARRAY[4.7,3.2,1.3,0.2],'Iris-setosa'),\n",
"(4,ARRAY[4.6,3.1,1.5,0.2],'Iris-setosa'),\n",
"(5,ARRAY[5.0,3.6,1.4,0.2],'Iris-setosa'),\n",
"(6,ARRAY[5.4,3.9,1.7,0.4],'Iris-setosa'),\n",
"(7,ARRAY[4.6,3.4,1.4,0.3],'Iris-setosa'),\n",
"(8,ARRAY[5.0,3.4,1.5,0.2],'Iris-setosa'),\n",
"(9,ARRAY[4.4,2.9,1.4,0.2],'Iris-setosa'),\n",
"(10,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
"(11,ARRAY[5.4,3.7,1.5,0.2],'Iris-setosa'),\n",
"(12,ARRAY[4.8,3.4,1.6,0.2],'Iris-setosa'),\n",
"(13,ARRAY[4.8,3.0,1.4,0.1],'Iris-setosa'),\n",
"(14,ARRAY[4.3,3.0,1.1,0.1],'Iris-setosa'),\n",
"(15,ARRAY[5.8,4.0,1.2,0.2],'Iris-setosa'),\n",
"(16,ARRAY[5.7,4.4,1.5,0.4],'Iris-setosa'),\n",
"(17,ARRAY[5.4,3.9,1.3,0.4],'Iris-setosa'),\n",
"(18,ARRAY[5.1,3.5,1.4,0.3],'Iris-setosa'),\n",
"(19,ARRAY[5.7,3.8,1.7,0.3],'Iris-setosa'),\n",
"(20,ARRAY[5.1,3.8,1.5,0.3],'Iris-setosa'),\n",
"(21,ARRAY[5.4,3.4,1.7,0.2],'Iris-setosa'),\n",
"(22,ARRAY[5.1,3.7,1.5,0.4],'Iris-setosa'),\n",
"(23,ARRAY[4.6,3.6,1.0,0.2],'Iris-setosa'),\n",
"(24,ARRAY[5.1,3.3,1.7,0.5],'Iris-setosa'),\n",
"(25,ARRAY[4.8,3.4,1.9,0.2],'Iris-setosa'),\n",
"(26,ARRAY[5.0,3.0,1.6,0.2],'Iris-setosa'),\n",
"(27,ARRAY[5.0,3.4,1.6,0.4],'Iris-setosa'),\n",
"(28,ARRAY[5.2,3.5,1.5,0.2],'Iris-setosa'),\n",
"(29,ARRAY[5.2,3.4,1.4,0.2],'Iris-setosa'),\n",
"(30,ARRAY[4.7,3.2,1.6,0.2],'Iris-setosa'),\n",
"(31,ARRAY[4.8,3.1,1.6,0.2],'Iris-setosa'),\n",
"(32,ARRAY[5.4,3.4,1.5,0.4],'Iris-setosa'),\n",
"(33,ARRAY[5.2,4.1,1.5,0.1],'Iris-setosa'),\n",
"(34,ARRAY[5.5,4.2,1.4,0.2],'Iris-setosa'),\n",
"(35,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
"(36,ARRAY[5.0,3.2,1.2,0.2],'Iris-setosa'),\n",
"(37,ARRAY[5.5,3.5,1.3,0.2],'Iris-setosa'),\n",
"(38,ARRAY[4.9,3.1,1.5,0.1],'Iris-setosa'),\n",
"(39,ARRAY[4.4,3.0,1.3,0.2],'Iris-setosa'),\n",
"(40,ARRAY[5.1,3.4,1.5,0.2],'Iris-setosa'),\n",
"(41,ARRAY[5.0,3.5,1.3,0.3],'Iris-setosa'),\n",
"(42,ARRAY[4.5,2.3,1.3,0.3],'Iris-setosa'),\n",
"(43,ARRAY[4.4,3.2,1.3,0.2],'Iris-setosa'),\n",
"(44,ARRAY[5.0,3.5,1.6,0.6],'Iris-setosa'),\n",
"(45,ARRAY[5.1,3.8,1.9,0.4],'Iris-setosa'),\n",
"(46,ARRAY[4.8,3.0,1.4,0.3],'Iris-setosa'),\n",
"(47,ARRAY[5.1,3.8,1.6,0.2],'Iris-setosa'),\n",
"(48,ARRAY[4.6,3.2,1.4,0.2],'Iris-setosa'),\n",
"(49,ARRAY[5.3,3.7,1.5,0.2],'Iris-setosa'),\n",
"(50,ARRAY[5.0,3.3,1.4,0.2],'Iris-setosa'),\n",
"(51,ARRAY[7.0,3.2,4.7,1.4],'Iris-versicolor'),\n",
"(52,ARRAY[6.4,3.2,4.5,1.5],'Iris-versicolor'),\n",
"(53,ARRAY[6.9,3.1,4.9,1.5],'Iris-versicolor'),\n",
"(54,ARRAY[5.5,2.3,4.0,1.3],'Iris-versicolor'),\n",
"(55,ARRAY[6.5,2.8,4.6,1.5],'Iris-versicolor'),\n",
"(56,ARRAY[5.7,2.8,4.5,1.3],'Iris-versicolor'),\n",
"(57,ARRAY[6.3,3.3,4.7,1.6],'Iris-versicolor'),\n",
"(58,ARRAY[4.9,2.4,3.3,1.0],'Iris-versicolor'),\n",
"(59,ARRAY[6.6,2.9,4.6,1.3],'Iris-versicolor'),\n",
"(60,ARRAY[5.2,2.7,3.9,1.4],'Iris-versicolor'),\n",
"(61,ARRAY[5.0,2.0,3.5,1.0],'Iris-versicolor'),\n",
"(62,ARRAY[5.9,3.0,4.2,1.5],'Iris-versicolor'),\n",
"(63,ARRAY[6.0,2.2,4.0,1.0],'Iris-versicolor'),\n",
"(64,ARRAY[6.1,2.9,4.7,1.4],'Iris-versicolor'),\n",
"(65,ARRAY[5.6,2.9,3.6,1.3],'Iris-versicolor'),\n",
"(66,ARRAY[6.7,3.1,4.4,1.4],'Iris-versicolor'),\n",
"(67,ARRAY[5.6,3.0,4.5,1.5],'Iris-versicolor'),\n",
"(68,ARRAY[5.8,2.7,4.1,1.0],'Iris-versicolor'),\n",
"(69,ARRAY[6.2,2.2,4.5,1.5],'Iris-versicolor'),\n",
"(70,ARRAY[5.6,2.5,3.9,1.1],'Iris-versicolor'),\n",
"(71,ARRAY[5.9,3.2,4.8,1.8],'Iris-versicolor'),\n",
"(72,ARRAY[6.1,2.8,4.0,1.3],'Iris-versicolor'),\n",
"(73,ARRAY[6.3,2.5,4.9,1.5],'Iris-versicolor'),\n",
"(74,ARRAY[6.1,2.8,4.7,1.2],'Iris-versicolor'),\n",
"(75,ARRAY[6.4,2.9,4.3,1.3],'Iris-versicolor'),\n",
"(76,ARRAY[6.6,3.0,4.4,1.4],'Iris-versicolor'),\n",
"(77,ARRAY[6.8,2.8,4.8,1.4],'Iris-versicolor'),\n",
"(78,ARRAY[6.7,3.0,5.0,1.7],'Iris-versicolor'),\n",
"(79,ARRAY[6.0,2.9,4.5,1.5],'Iris-versicolor'),\n",
"(80,ARRAY[5.7,2.6,3.5,1.0],'Iris-versicolor'),\n",
"(81,ARRAY[5.5,2.4,3.8,1.1],'Iris-versicolor'),\n",
"(82,ARRAY[5.5,2.4,3.7,1.0],'Iris-versicolor'),\n",
"(83,ARRAY[5.8,2.7,3.9,1.2],'Iris-versicolor'),\n",
"(84,ARRAY[6.0,2.7,5.1,1.6],'Iris-versicolor'),\n",
"(85,ARRAY[5.4,3.0,4.5,1.5],'Iris-versicolor'),\n",
"(86,ARRAY[6.0,3.4,4.5,1.6],'Iris-versicolor'),\n",
"(87,ARRAY[6.7,3.1,4.7,1.5],'Iris-versicolor'),\n",
"(88,ARRAY[6.3,2.3,4.4,1.3],'Iris-versicolor'),\n",
"(89,ARRAY[5.6,3.0,4.1,1.3],'Iris-versicolor'),\n",
"(90,ARRAY[5.5,2.5,4.0,1.3],'Iris-versicolor'),\n",
"(91,ARRAY[5.5,2.6,4.4,1.2],'Iris-versicolor'),\n",
"(92,ARRAY[6.1,3.0,4.6,1.4],'Iris-versicolor'),\n",
"(93,ARRAY[5.8,2.6,4.0,1.2],'Iris-versicolor'),\n",
"(94,ARRAY[5.0,2.3,3.3,1.0],'Iris-versicolor'),\n",
"(95,ARRAY[5.6,2.7,4.2,1.3],'Iris-versicolor'),\n",
"(96,ARRAY[5.7,3.0,4.2,1.2],'Iris-versicolor'),\n",
"(97,ARRAY[5.7,2.9,4.2,1.3],'Iris-versicolor'),\n",
"(98,ARRAY[6.2,2.9,4.3,1.3],'Iris-versicolor'),\n",
"(99,ARRAY[5.1,2.5,3.0,1.1],'Iris-versicolor'),\n",
"(100,ARRAY[5.7,2.8,4.1,1.3],'Iris-versicolor'),\n",
"(101,ARRAY[6.3,3.3,6.0,2.5],'Iris-virginica'),\n",
"(102,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
"(103,ARRAY[7.1,3.0,5.9,2.1],'Iris-virginica'),\n",
"(104,ARRAY[6.3,2.9,5.6,1.8],'Iris-virginica'),\n",
"(105,ARRAY[6.5,3.0,5.8,2.2],'Iris-virginica'),\n",
"(106,ARRAY[7.6,3.0,6.6,2.1],'Iris-virginica'),\n",
"(107,ARRAY[4.9,2.5,4.5,1.7],'Iris-virginica'),\n",
"(108,ARRAY[7.3,2.9,6.3,1.8],'Iris-virginica'),\n",
"(109,ARRAY[6.7,2.5,5.8,1.8],'Iris-virginica'),\n",
"(110,ARRAY[7.2,3.6,6.1,2.5],'Iris-virginica'),\n",
"(111,ARRAY[6.5,3.2,5.1,2.0],'Iris-virginica'),\n",
"(112,ARRAY[6.4,2.7,5.3,1.9],'Iris-virginica'),\n",
"(113,ARRAY[6.8,3.0,5.5,2.1],'Iris-virginica'),\n",
"(114,ARRAY[5.7,2.5,5.0,2.0],'Iris-virginica'),\n",
"(115,ARRAY[5.8,2.8,5.1,2.4],'Iris-virginica'),\n",
"(116,ARRAY[6.4,3.2,5.3,2.3],'Iris-virginica'),\n",
"(117,ARRAY[6.5,3.0,5.5,1.8],'Iris-virginica'),\n",
"(118,ARRAY[7.7,3.8,6.7,2.2],'Iris-virginica'),\n",
"(119,ARRAY[7.7,2.6,6.9,2.3],'Iris-virginica'),\n",
"(120,ARRAY[6.0,2.2,5.0,1.5],'Iris-virginica'),\n",
"(121,ARRAY[6.9,3.2,5.7,2.3],'Iris-virginica'),\n",
"(122,ARRAY[5.6,2.8,4.9,2.0],'Iris-virginica'),\n",
"(123,ARRAY[7.7,2.8,6.7,2.0],'Iris-virginica'),\n",
"(124,ARRAY[6.3,2.7,4.9,1.8],'Iris-virginica'),\n",
"(125,ARRAY[6.7,3.3,5.7,2.1],'Iris-virginica'),\n",
"(126,ARRAY[7.2,3.2,6.0,1.8],'Iris-virginica'),\n",
"(127,ARRAY[6.2,2.8,4.8,1.8],'Iris-virginica'),\n",
"(128,ARRAY[6.1,3.0,4.9,1.8],'Iris-virginica'),\n",
"(129,ARRAY[6.4,2.8,5.6,2.1],'Iris-virginica'),\n",
"(130,ARRAY[7.2,3.0,5.8,1.6],'Iris-virginica'),\n",
"(131,ARRAY[7.4,2.8,6.1,1.9],'Iris-virginica'),\n",
"(132,ARRAY[7.9,3.8,6.4,2.0],'Iris-virginica'),\n",
"(133,ARRAY[6.4,2.8,5.6,2.2],'Iris-virginica'),\n",
"(134,ARRAY[6.3,2.8,5.1,1.5],'Iris-virginica'),\n",
"(135,ARRAY[6.1,2.6,5.6,1.4],'Iris-virginica'),\n",
"(136,ARRAY[7.7,3.0,6.1,2.3],'Iris-virginica'),\n",
"(137,ARRAY[6.3,3.4,5.6,2.4],'Iris-virginica'),\n",
"(138,ARRAY[6.4,3.1,5.5,1.8],'Iris-virginica'),\n",
"(139,ARRAY[6.0,3.0,4.8,1.8],'Iris-virginica'),\n",
"(140,ARRAY[6.9,3.1,5.4,2.1],'Iris-virginica'),\n",
"(141,ARRAY[6.7,3.1,5.6,2.4],'Iris-virginica'),\n",
"(142,ARRAY[6.9,3.1,5.1,2.3],'Iris-virginica'),\n",
"(143,ARRAY[5.8,2.7,5.1,1.9],'Iris-virginica'),\n",
"(144,ARRAY[6.8,3.2,5.9,2.3],'Iris-virginica'),\n",
"(145,ARRAY[6.7,3.3,5.7,2.5],'Iris-virginica'),\n",
"(146,ARRAY[6.7,3.0,5.2,2.3],'Iris-virginica'),\n",
"(147,ARRAY[6.3,2.5,5.0,1.9],'Iris-virginica'),\n",
"(148,ARRAY[6.5,3.0,5.2,2.0],'Iris-virginica'),\n",
"(149,ARRAY[6.2,3.4,5.4,2.3],'Iris-virginica'),\n",
"(150,ARRAY[5.9,3.0,5.1,1.8],'Iris-virginica');\n",
"\n",
"SELECT * FROM iris_data ORDER BY id;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a test/validation dataset from the training data"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>count</th>\n",
" </tr>\n",
" <tr>\n",
" <td>120</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(120L,)]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS iris_train, iris_test;\n",
"\n",
"-- Set seed so results are reproducible\n",
"SELECT setseed(0);\n",
"\n",
"SELECT madlib.train_test_split('iris_data', -- Source table\n",
" 'iris', -- Output table root name\n",
" 0.8, -- Train proportion\n",
" NULL, -- Test proportion (0.2)\n",
" NULL, -- Strata definition\n",
" NULL, -- Output all columns\n",
" NULL, -- Sample without replacement\n",
" TRUE -- Separate output tables\n",
" );\n",
"\n",
"SELECT COUNT(*) FROM iris_train;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"pp\"></a>\n",
"# 2. Call preprocessor for deep learning\n",
"Training dataset (uses training preprocessor):"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n",
"2 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>independent_var_shape</th>\n",
" <th>dependent_var_shape</th>\n",
" <th>buffer_id</th>\n",
" </tr>\n",
" <tr>\n",
" <td>[60, 4]</td>\n",
" <td>[60, 3]</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>[60, 4]</td>\n",
" <td>[60, 3]</td>\n",
" <td>1</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[([60, 4], [60, 3], 0), ([60, 4], [60, 3], 1)]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS iris_train_packed, iris_train_packed_summary;\n",
"\n",
"SELECT madlib.training_preprocessor_dl('iris_train', -- Source table\n",
" 'iris_train_packed', -- Output table\n",
" 'class_text', -- Dependent variable\n",
" 'attributes' -- Independent variable\n",
" ); \n",
"\n",
"SELECT independent_var_shape, dependent_var_shape, buffer_id FROM iris_train_packed ORDER BY buffer_id;"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>source_table</th>\n",
" <th>output_table</th>\n",
" <th>dependent_varname</th>\n",
" <th>independent_varname</th>\n",
" <th>dependent_vartype</th>\n",
" <th>class_values</th>\n",
" <th>buffer_size</th>\n",
" <th>normalizing_const</th>\n",
" <th>num_classes</th>\n",
" <th>distribution_rules</th>\n",
" <th>__internal_gpu_config__</th>\n",
" </tr>\n",
" <tr>\n",
" <td>iris_train</td>\n",
" <td>iris_train_packed</td>\n",
" <td>class_text</td>\n",
" <td>attributes</td>\n",
" <td>character varying</td>\n",
" <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
" <td>60</td>\n",
" <td>1.0</td>\n",
" <td>3</td>\n",
" <td>all_segments</td>\n",
" <td>all_segments</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(u'iris_train', u'iris_train_packed', u'class_text', u'attributes', u'character varying', [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 60, 1.0, 3, 'all_segments', 'all_segments')]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM iris_train_packed_summary;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Validation dataset (uses validation preprocessor):"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n",
"2 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>independent_var_shape</th>\n",
" <th>dependent_var_shape</th>\n",
" <th>buffer_id</th>\n",
" </tr>\n",
" <tr>\n",
" <td>[15, 4]</td>\n",
" <td>[15, 3]</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>[15, 4]</td>\n",
" <td>[15, 3]</td>\n",
" <td>1</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[([15, 4], [15, 3], 0), ([15, 4], [15, 3], 1)]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS iris_test_packed, iris_test_packed_summary;\n",
"\n",
"SELECT madlib.validation_preprocessor_dl('iris_test', -- Source table\n",
" 'iris_test_packed', -- Output table\n",
" 'class_text', -- Dependent variable\n",
" 'attributes', -- Independent variable\n",
" 'iris_train_packed' -- From training preprocessor step\n",
" ); \n",
"\n",
"SELECT independent_var_shape, dependent_var_shape, buffer_id FROM iris_test_packed ORDER BY buffer_id;"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>source_table</th>\n",
" <th>output_table</th>\n",
" <th>dependent_varname</th>\n",
" <th>independent_varname</th>\n",
" <th>dependent_vartype</th>\n",
" <th>class_values</th>\n",
" <th>buffer_size</th>\n",
" <th>normalizing_const</th>\n",
" <th>num_classes</th>\n",
" <th>distribution_rules</th>\n",
" <th>__internal_gpu_config__</th>\n",
" </tr>\n",
" <tr>\n",
" <td>iris_test</td>\n",
" <td>iris_test_packed</td>\n",
" <td>class_text</td>\n",
" <td>attributes</td>\n",
" <td>character varying</td>\n",
" <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
" <td>15</td>\n",
" <td>1.0</td>\n",
" <td>3</td>\n",
" <td>all_segments</td>\n",
" <td>all_segments</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(u'iris_test', u'iris_test_packed', u'class_text', u'attributes', u'character varying', [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], 15, 1.0, 3, 'all_segments', 'all_segments')]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM iris_test_packed_summary;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"load\"></a>\n",
"# 3. Define and load model architecture\n",
"Import Keras libraries"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Couldn't import dot_parser, loading of dot files will not be possible.\n"
]
}
],
"source": [
"import keras\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Define model architecture with 1 hidden layer:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"dense_1 (Dense) (None, 10) 50 \n",
"_________________________________________________________________\n",
"dense_2 (Dense) (None, 10) 110 \n",
"_________________________________________________________________\n",
"dense_3 (Dense) (None, 3) 33 \n",
"=================================================================\n",
"Total params: 193\n",
"Trainable params: 193\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"model1 = Sequential()\n",
"model1.add(Dense(10, activation='relu', input_shape=(4,)))\n",
"model1.add(Dense(10, activation='relu'))\n",
"model1.add(Dense(3, activation='softmax'))\n",
" \n",
"model1.summary()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model1.to_json()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Define model architecture with 2 hidden layers:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"dense_4 (Dense) (None, 10) 50 \n",
"_________________________________________________________________\n",
"dense_5 (Dense) (None, 10) 110 \n",
"_________________________________________________________________\n",
"dense_6 (Dense) (None, 10) 110 \n",
"_________________________________________________________________\n",
"dense_7 (Dense) (None, 3) 33 \n",
"=================================================================\n",
"Total params: 303\n",
"Trainable params: 303\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"model2 = Sequential()\n",
"model2.add(Dense(10, activation='relu', input_shape=(4,)))\n",
"model2.add(Dense(10, activation='relu'))\n",
"model2.add(Dense(10, activation='relu'))\n",
"model2.add(Dense(3, activation='softmax'))\n",
" \n",
"model2.summary()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}'"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model2.to_json()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Load into model architecture table"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"2 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>model_id</th>\n",
" <th>model_arch</th>\n",
" <th>model_weights</th>\n",
" <th>name</th>\n",
" <th>description</th>\n",
" <th>__internal_madlib_id__</th>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
" <td>None</td>\n",
" <td>Sophie</td>\n",
" <td>MLP with 1 hidden layer</td>\n",
" <td>__madlib_temp_96702431_1576708421_6956281__</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>{u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}</td>\n",
" <td>None</td>\n",
" <td>Maria</td>\n",
" <td>MLP with 2 hidden layers</td>\n",
" <td>__madlib_temp_85244704_1576708422_1853942__</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(1, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_1', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_2', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_3', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Sophie', u'MLP with 1 hidden layer', u'__madlib_temp_96702431_1576708421_6956281__'),\n",
" (2, {u'class_name': u'Sequential', u'keras_version': u'2.1.6', u'config': [{u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_4', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'dtype': u'float32', u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'batch_input_shape': [None, 4], u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_5', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_6', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'relu', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 10, u'use_bias': True, u'activity_regularizer': None}}, {u'class_name': u'Dense', u'config': {u'kernel_initializer': {u'class_name': u'VarianceScaling', u'config': {u'distribution': u'uniform', u'scale': 1.0, u'seed': None, u'mode': u'fan_avg'}}, u'name': u'dense_7', u'kernel_constraint': None, u'bias_regularizer': None, u'bias_constraint': None, u'activation': u'softmax', u'trainable': True, u'kernel_regularizer': None, u'bias_initializer': {u'class_name': u'Zeros', u'config': {}}, u'units': 3, u'use_bias': True, u'activity_regularizer': None}}], u'backend': u'tensorflow'}, None, u'Maria', u'MLP with 2 hidden layers', u'__madlib_temp_85244704_1576708422_1853942__')]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS model_arch_library;\n",
"\n",
"SELECT madlib.load_keras_model('model_arch_library', -- Output table,\n",
" \n",
"$$\n",
"{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_1\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_2\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_3\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
"$$\n",
"::json, -- JSON blob\n",
" NULL, -- Weights\n",
" 'Sophie', -- Name\n",
" 'MLP with 1 hidden layer' -- Descr\n",
");\n",
"\n",
"SELECT madlib.load_keras_model('model_arch_library', -- Output table,\n",
" \n",
"$$\n",
"{\"class_name\": \"Sequential\", \"keras_version\": \"2.1.6\", \"config\": [{\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_4\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"dtype\": \"float32\", \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"batch_input_shape\": [null, 4], \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_5\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_6\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"relu\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 10, \"use_bias\": true, \"activity_regularizer\": null}}, {\"class_name\": \"Dense\", \"config\": {\"kernel_initializer\": {\"class_name\": \"VarianceScaling\", \"config\": {\"distribution\": \"uniform\", \"scale\": 1.0, \"seed\": null, \"mode\": \"fan_avg\"}}, \"name\": \"dense_7\", \"kernel_constraint\": null, \"bias_regularizer\": null, \"bias_constraint\": null, \"activation\": \"softmax\", \"trainable\": true, \"kernel_regularizer\": null, \"bias_initializer\": {\"class_name\": \"Zeros\", \"config\": {}}, \"units\": 3, \"use_bias\": true, \"activity_regularizer\": null}}], \"backend\": \"tensorflow\"}\n",
"$$\n",
"::json, -- JSON blob\n",
" NULL, -- Weights\n",
" 'Maria', -- Name\n",
" 'MLP with 2 hidden layers' -- Descr\n",
");\n",
"\n",
"SELECT * FROM model_arch_library ORDER BY model_id;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"def_mst\"></a>\n",
"# 4. Define and load model selection tuples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Select the model(s) from the model architecture table that you want to run, along with the compile and fit parameters. Permutations will be created for the set of model selection parameters will be loaded:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n",
"12 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>mst_key</th>\n",
" <th>model_id</th>\n",
" <th>compile_params</th>\n",
" <th>fit_params</th>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>11</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" </tr>\n",
" <tr>\n",
" <td>12</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
" (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
" (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
" (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
" (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
" (6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
" (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
" (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
" (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
" (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1'),\n",
" (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1'),\n",
" (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1')]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS mst_table, mst_table_summary;\n",
"\n",
"SELECT madlib.load_model_selection_table('model_arch_library', -- model architecture table\n",
" 'mst_table', -- model selection table output\n",
" ARRAY[1,2], -- model ids from model architecture table\n",
" ARRAY[ -- compile params\n",
" $$loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']$$,\n",
" $$loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']$$,\n",
" $$loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']$$\n",
" ],\n",
" ARRAY[ -- fit params\n",
" $$batch_size=4,epochs=1$$,\n",
" $$batch_size=8,epochs=1$$\n",
" ]\n",
" );\n",
" \n",
"SELECT * FROM mst_table ORDER BY mst_key;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is the name of the model architecture table that corresponds to the model selection table:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>model_arch_table</th>\n",
" </tr>\n",
" <tr>\n",
" <td>model_arch_library</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(u'model_arch_library',)]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM mst_table_summary;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"train\"></a>\n",
"# 5. Train\n",
"Train multiple models:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>madlib_keras_fit_multiple_model</th>\n",
" </tr>\n",
" <tr>\n",
" <td></td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[('',)]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
"\n",
"SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed', -- source_table\n",
" 'iris_multi_model', -- model_output_table\n",
" 'mst_table', -- model_selection_table\n",
" 10, -- num_iterations\n",
" FALSE -- use gpus\n",
" );"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"View the model summary:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>source_table</th>\n",
" <th>validation_table</th>\n",
" <th>model</th>\n",
" <th>model_info</th>\n",
" <th>dependent_varname</th>\n",
" <th>independent_varname</th>\n",
" <th>model_arch_table</th>\n",
" <th>num_iterations</th>\n",
" <th>metrics_compute_frequency</th>\n",
" <th>warm_start</th>\n",
" <th>name</th>\n",
" <th>description</th>\n",
" <th>start_training_time</th>\n",
" <th>end_training_time</th>\n",
" <th>madlib_version</th>\n",
" <th>num_classes</th>\n",
" <th>class_values</th>\n",
" <th>dependent_vartype</th>\n",
" <th>normalizing_const</th>\n",
" <th>metrics_iters</th>\n",
" </tr>\n",
" <tr>\n",
" <td>iris_train_packed</td>\n",
" <td>None</td>\n",
" <td>iris_multi_model</td>\n",
" <td>iris_multi_model_info</td>\n",
" <td>class_text</td>\n",
" <td>attributes</td>\n",
" <td>model_arch_library</td>\n",
" <td>10</td>\n",
" <td>10</td>\n",
" <td>False</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>2019-12-18 22:33:49.706384</td>\n",
" <td>2019-12-18 22:35:34.547961</td>\n",
" <td>1.17-dev</td>\n",
" <td>3</td>\n",
" <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
" <td>character varying</td>\n",
" <td>1.0</td>\n",
" <td>[10]</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(u'iris_train_packed', None, u'iris_multi_model', u'iris_multi_model_info', u'class_text', u'attributes', u'model_arch_library', 10, 10, False, None, None, datetime.datetime(2019, 12, 18, 22, 33, 49, 706384), datetime.datetime(2019, 12, 18, 22, 35, 34, 547961), u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [10])]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM iris_multi_model_summary;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"View results for each model:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"12 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>mst_key</th>\n",
" <th>model_id</th>\n",
" <th>compile_params</th>\n",
" <th>fit_params</th>\n",
" <th>model_type</th>\n",
" <th>model_size</th>\n",
" <th>metrics_elapsed_time</th>\n",
" <th>metrics_type</th>\n",
" <th>training_metrics_final</th>\n",
" <th>training_loss_final</th>\n",
" <th>training_metrics</th>\n",
" <th>training_loss</th>\n",
" <th>validation_metrics_final</th>\n",
" <th>validation_loss_final</th>\n",
" <th>validation_metrics</th>\n",
" <th>validation_loss</th>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.148514986038208]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.975000023842</td>\n",
" <td>0.12241948396</td>\n",
" <td>[0.975000023841858]</td>\n",
" <td>[0.122419483959675]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.172315120697021]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.975000023842</td>\n",
" <td>0.123081341386</td>\n",
" <td>[0.975000023841858]</td>\n",
" <td>[0.123081341385841]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.274233102798462]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.925000011921</td>\n",
" <td>0.171397775412</td>\n",
" <td>[0.925000011920929]</td>\n",
" <td>[0.171397775411606]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.155992984771729]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.925000011921</td>\n",
" <td>0.51177251339</td>\n",
" <td>[0.925000011920929]</td>\n",
" <td>[0.511772513389587]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.220170021057129]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.908333361149</td>\n",
" <td>0.214677110314</td>\n",
" <td>[0.908333361148834]</td>\n",
" <td>[0.214677110314369]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>12</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.191344022750854]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.833333313465</td>\n",
" <td>0.524632036686</td>\n",
" <td>[0.833333313465118]</td>\n",
" <td>[0.524632036685944]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.181636810302734]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.758333325386</td>\n",
" <td>0.393412530422</td>\n",
" <td>[0.758333325386047]</td>\n",
" <td>[0.393412530422211]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.181061029434204]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.658333361149</td>\n",
" <td>0.474381148815</td>\n",
" <td>[0.658333361148834]</td>\n",
" <td>[0.474381148815155]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.20294713973999]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.658333361149</td>\n",
" <td>0.475430130959</td>\n",
" <td>[0.658333361148834]</td>\n",
" <td>[0.475430130958557]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.207202911376953]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.574999988079</td>\n",
" <td>0.885546028614</td>\n",
" <td>[0.574999988079071]</td>\n",
" <td>[0.885546028614044]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>11</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.374184846878052]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.433333337307</td>\n",
" <td>0.82793289423</td>\n",
" <td>[0.433333337306976]</td>\n",
" <td>[0.827932894229889]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.216787099838257]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.316666662693</td>\n",
" <td>1.10255157948</td>\n",
" <td>[0.316666662693024]</td>\n",
" <td>[1.1025515794754]</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.148514986038208], [u'accuracy'], 0.975000023842, 0.12241948396, [0.975000023841858], [0.122419483959675], None, None, None, None),\n",
" (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.172315120697021], [u'accuracy'], 0.975000023842, 0.123081341386, [0.975000023841858], [0.123081341385841], None, None, None, None),\n",
" (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.274233102798462], [u'accuracy'], 0.925000011921, 0.171397775412, [0.925000011920929], [0.171397775411606], None, None, None, None),\n",
" (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.155992984771729], [u'accuracy'], 0.925000011921, 0.51177251339, [0.925000011920929], [0.511772513389587], None, None, None, None),\n",
" (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.220170021057129], [u'accuracy'], 0.908333361149, 0.214677110314, [0.908333361148834], [0.214677110314369], None, None, None, None),\n",
" (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.191344022750854], [u'accuracy'], 0.833333313465, 0.524632036686, [0.833333313465118], [0.524632036685944], None, None, None, None),\n",
" (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.181636810302734], [u'accuracy'], 0.758333325386, 0.393412530422, [0.758333325386047], [0.393412530422211], None, None, None, None),\n",
" (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.181061029434204], [u'accuracy'], 0.658333361149, 0.474381148815, [0.658333361148834], [0.474381148815155], None, None, None, None),\n",
" (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.20294713973999], [u'accuracy'], 0.658333361149, 0.475430130959, [0.658333361148834], [0.475430130958557], None, None, None, None),\n",
" (6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.207202911376953], [u'accuracy'], 0.574999988079, 0.885546028614, [0.574999988079071], [0.885546028614044], None, None, None, None),\n",
" (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.374184846878052], [u'accuracy'], 0.433333337307, 0.82793289423, [0.433333337306976], [0.827932894229889], None, None, None, None),\n",
" (1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.216787099838257], [u'accuracy'], 0.316666662693, 1.10255157948, [0.316666662693024], [1.1025515794754], None, None, None, None)]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM iris_multi_model_info ORDER BY training_metrics_final DESC, training_loss_final;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"eval\"></a>\n",
"# 6. Evaluate\n",
"\n",
"Now run evaluate using model we built above:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n",
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>loss</th>\n",
" <th>metric</th>\n",
" <th>metrics_type</th>\n",
" </tr>\n",
" <tr>\n",
" <td>0.15500420332</td>\n",
" <td>0.966666638851</td>\n",
" <td>[u'accuracy']</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(0.15500420331955, 0.966666638851166, [u'accuracy'])]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS iris_validate;\n",
"SELECT madlib.madlib_keras_evaluate('iris_multi_model', -- model\n",
" 'iris_test_packed', -- test table\n",
" 'iris_validate', -- output table\n",
" NULL, -- use gpus\n",
" 3 -- mst_key to use\n",
" );\n",
"\n",
"SELECT * FROM iris_validate;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"pred\"></a>\n",
"# 7. Predict\n",
"\n",
"Now predict using model we built. We will use the validation data set for prediction as well, which is not usual but serves to show the syntax. The prediction is in the estimated_class_text column:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n",
"30 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>id</th>\n",
" <th>estimated_class_text</th>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>19</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>25</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>26</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>28</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>38</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>44</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>45</td>\n",
" <td>Iris-setosa</td>\n",
" </tr>\n",
" <tr>\n",
" <td>51</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>53</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>57</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>59</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>62</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>69</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>75</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>77</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>97</td>\n",
" <td>Iris-versicolor</td>\n",
" </tr>\n",
" <tr>\n",
" <td>102</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>107</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>114</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>118</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>120</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>122</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>132</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>146</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
" <tr>\n",
" <td>147</td>\n",
" <td>Iris-virginica</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(3, u'Iris-setosa'),\n",
" (5, u'Iris-setosa'),\n",
" (7, u'Iris-setosa'),\n",
" (8, u'Iris-setosa'),\n",
" (10, u'Iris-setosa'),\n",
" (19, u'Iris-setosa'),\n",
" (25, u'Iris-setosa'),\n",
" (26, u'Iris-setosa'),\n",
" (28, u'Iris-setosa'),\n",
" (38, u'Iris-setosa'),\n",
" (44, u'Iris-setosa'),\n",
" (45, u'Iris-setosa'),\n",
" (51, u'Iris-versicolor'),\n",
" (53, u'Iris-versicolor'),\n",
" (57, u'Iris-versicolor'),\n",
" (59, u'Iris-versicolor'),\n",
" (62, u'Iris-versicolor'),\n",
" (69, u'Iris-virginica'),\n",
" (75, u'Iris-versicolor'),\n",
" (77, u'Iris-versicolor'),\n",
" (97, u'Iris-versicolor'),\n",
" (102, u'Iris-virginica'),\n",
" (107, u'Iris-virginica'),\n",
" (114, u'Iris-virginica'),\n",
" (118, u'Iris-virginica'),\n",
" (120, u'Iris-virginica'),\n",
" (122, u'Iris-virginica'),\n",
" (132, u'Iris-virginica'),\n",
" (146, u'Iris-virginica'),\n",
" (147, u'Iris-virginica')]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS iris_predict;\n",
"\n",
"SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
" 'iris_test', -- test_table\n",
" 'id', -- id column\n",
" 'attributes', -- independent var\n",
" 'iris_predict', -- output table\n",
" 'response', -- prediction type\n",
" FALSE, -- use gpus\n",
" 3 -- mst_key to use\n",
" );\n",
"\n",
"SELECT * FROM iris_predict ORDER BY id;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Count missclassifications"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>count</th>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(1L,)]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT COUNT(*) FROM iris_predict JOIN iris_test USING (id) \n",
"WHERE iris_predict.estimated_class_text != iris_test.class_text;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Percent missclassifications"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>test_accuracy_percent</th>\n",
" </tr>\n",
" <tr>\n",
" <td>96.67</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(Decimal('96.67'),)]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT round(count(*)*100/(150*0.2),2) as test_accuracy_percent from\n",
" (select iris_test.class_text as actual, iris_predict.estimated_class_text as estimated\n",
" from iris_predict inner join iris_test\n",
" on iris_test.id=iris_predict.id) q\n",
"WHERE q.actual=q.estimated;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"class2\"></a>\n",
"# Classification with Other Parameters\n",
"\n",
"<a id=\"val_dataset\"></a>\n",
"# 1. Validation dataset\n",
"\n",
"Now use a validation dataset and compute metrics every 2nd iteration using the 'metrics_compute_frequency' parameter. This can help reduce run time if you do not need metrics computed at every iteration."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>madlib_keras_fit_multiple_model</th>\n",
" </tr>\n",
" <tr>\n",
" <td></td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[('',)]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;\n",
"\n",
"SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed', -- source_table\n",
" 'iris_multi_model', -- model_output_table\n",
" 'mst_table', -- model_selection_table\n",
" 10, -- num_iterations\n",
" FALSE, -- use gpus\n",
" 'iris_test_packed', -- validation dataset\n",
" 3, -- metrics compute frequency\n",
" FALSE, -- warm start\n",
" 'Sophie L.', -- name\n",
" 'Model selection for iris dataset' -- description\n",
" );"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"View the model summary:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>source_table</th>\n",
" <th>validation_table</th>\n",
" <th>model</th>\n",
" <th>model_info</th>\n",
" <th>dependent_varname</th>\n",
" <th>independent_varname</th>\n",
" <th>model_arch_table</th>\n",
" <th>num_iterations</th>\n",
" <th>metrics_compute_frequency</th>\n",
" <th>warm_start</th>\n",
" <th>name</th>\n",
" <th>description</th>\n",
" <th>start_training_time</th>\n",
" <th>end_training_time</th>\n",
" <th>madlib_version</th>\n",
" <th>num_classes</th>\n",
" <th>class_values</th>\n",
" <th>dependent_vartype</th>\n",
" <th>normalizing_const</th>\n",
" <th>metrics_iters</th>\n",
" </tr>\n",
" <tr>\n",
" <td>iris_train_packed</td>\n",
" <td>iris_test_packed</td>\n",
" <td>iris_multi_model</td>\n",
" <td>iris_multi_model_info</td>\n",
" <td>class_text</td>\n",
" <td>attributes</td>\n",
" <td>model_arch_library</td>\n",
" <td>10</td>\n",
" <td>3</td>\n",
" <td>False</td>\n",
" <td>Sophie L.</td>\n",
" <td>Model selection for iris dataset</td>\n",
" <td>2019-12-18 22:35:49.962345</td>\n",
" <td>2019-12-18 22:37:51.230499</td>\n",
" <td>1.17-dev</td>\n",
" <td>3</td>\n",
" <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
" <td>character varying</td>\n",
" <td>1.0</td>\n",
" <td>[3, 6, 9, 10]</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', u'class_text', u'attributes', u'model_arch_library', 10, 3, False, u'Sophie L.', u'Model selection for iris dataset', datetime.datetime(2019, 12, 18, 22, 35, 49, 962345), datetime.datetime(2019, 12, 18, 22, 37, 51, 230499), u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [3, 6, 9, 10])]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM iris_multi_model_summary;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"View performance of each model:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"12 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>mst_key</th>\n",
" <th>model_id</th>\n",
" <th>compile_params</th>\n",
" <th>fit_params</th>\n",
" <th>model_type</th>\n",
" <th>model_size</th>\n",
" <th>metrics_elapsed_time</th>\n",
" <th>metrics_type</th>\n",
" <th>training_metrics_final</th>\n",
" <th>training_loss_final</th>\n",
" <th>training_metrics</th>\n",
" <th>training_loss</th>\n",
" <th>validation_metrics_final</th>\n",
" <th>validation_loss_final</th>\n",
" <th>validation_metrics</th>\n",
" <th>validation_loss</th>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.400555849075317, 0.175060987472534, 0.161082029342651, 0.159379005432129]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.958333313465</td>\n",
" <td>0.370426625013</td>\n",
" <td>[0.841666638851166, 0.875, 0.958333313465118, 0.958333313465118]</td>\n",
" <td>[0.597030103206635, 0.467845916748047, 0.394165992736816, 0.370426625013351]</td>\n",
" <td>1.0</td>\n",
" <td>0.32715767622</td>\n",
" <td>[0.866666674613953, 0.933333337306976, 1.0, 1.0]</td>\n",
" <td>[0.587784588336945, 0.432697623968124, 0.352933287620544, 0.32715767621994]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.157984018325806, 0.146160840988159, 0.446839094161987, 0.217149972915649]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.916666686535</td>\n",
" <td>0.176682218909</td>\n",
" <td>[0.958333313465118, 0.891666650772095, 0.841666638851166, 0.916666686534882]</td>\n",
" <td>[0.340974450111389, 0.224177747964859, 0.315857976675034, 0.176682218909264]</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.146555349231</td>\n",
" <td>[0.966666638851166, 0.933333337306976, 0.866666674613953, 0.966666638851166]</td>\n",
" <td>[0.306026995182037, 0.204480707645416, 0.291850447654724, 0.146555349230766]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.158334016799927, 0.492121934890747, 0.168816804885864, 0.160614013671875]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.949999988079</td>\n",
" <td>0.137093007565</td>\n",
" <td>[0.75, 0.808333337306976, 0.941666662693024, 0.949999988079071]</td>\n",
" <td>[0.861838400363922, 0.306531131267548, 0.267581582069397, 0.137093007564545]</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.0812632590532</td>\n",
" <td>[0.533333361148834, 0.733333349227905, 1.0, 0.966666638851166]</td>\n",
" <td>[1.17265951633453, 0.347328811883926, 0.0795030668377876, 0.0812632590532303]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.206979990005493, 0.175852060317993, 0.18351411819458, 0.173283100128174]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.841666638851</td>\n",
" <td>0.319059103727</td>\n",
" <td>[0.833333313465118, 0.916666686534882, 0.958333313465118, 0.841666638851166]</td>\n",
" <td>[0.375581055879593, 0.235803470015526, 0.119093284010887, 0.319059103727341]</td>\n",
" <td>0.866666674614</td>\n",
" <td>0.294114112854</td>\n",
" <td>[0.866666674613953, 0.966666638851166, 0.933333337306976, 0.866666674613953]</td>\n",
" <td>[0.332203418016434, 0.206457450985909, 0.09817935526371, 0.294114112854004]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.154335021972656, 0.14276385307312, 0.160094022750854, 0.147177934646606]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.833333313465</td>\n",
" <td>0.315035998821</td>\n",
" <td>[0.850000023841858, 0.966666638851166, 0.966666638851166, 0.833333313465118]</td>\n",
" <td>[0.39260533452034, 0.207864001393318, 0.14202418923378, 0.315035998821259]</td>\n",
" <td>0.833333313465</td>\n",
" <td>0.287047833204</td>\n",
" <td>[0.833333313465118, 0.966666638851166, 0.933333337306976, 0.833333313465118]</td>\n",
" <td>[0.350265830755234, 0.179627984762192, 0.119969591498375, 0.287047833204269]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.183771848678589, 0.442173957824707, 0.196517944335938, 0.183962106704712]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.683333337307</td>\n",
" <td>0.773626208305</td>\n",
" <td>[0.983333349227905, 0.783333361148834, 0.841666638851166, 0.683333337306976]</td>\n",
" <td>[0.323956668376923, 0.355609774589539, 0.289077579975128, 0.773626208305359]</td>\n",
" <td>0.733333349228</td>\n",
" <td>0.598832905293</td>\n",
" <td>[0.966666638851166, 0.733333349227905, 0.866666674613953, 0.733333349227905]</td>\n",
" <td>[0.292185336351395, 0.310099214315414, 0.278687566518784, 0.598832905292511]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>11</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.215842962265015, 0.183883190155029, 0.181258201599121, 0.233398914337158]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.658333361149</td>\n",
" <td>0.501300632954</td>\n",
" <td>[0.341666668653488, 0.658333361148834, 0.658333361148834, 0.658333361148834]</td>\n",
" <td>[0.947986364364624, 0.807084918022156, 0.549242556095123, 0.501300632953644]</td>\n",
" <td>0.699999988079</td>\n",
" <td>0.459856539965</td>\n",
" <td>[0.300000011920929, 0.699999988079071, 0.699999988079071, 0.699999988079071]</td>\n",
" <td>[0.971994161605835, 0.821518063545227, 0.513974606990814, 0.459856539964676]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.181059837341309, 0.156504154205322, 0.154800891876221, 0.165037870407104]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.675000011921</td>\n",
" <td>0.500130057335</td>\n",
" <td>[0.658333361148834, 0.908333361148834, 0.908333361148834, 0.675000011920929]</td>\n",
" <td>[0.822371363639832, 0.354260504245758, 0.206746637821198, 0.5001300573349]</td>\n",
" <td>0.699999988079</td>\n",
" <td>0.511800050735</td>\n",
" <td>[0.699999988079071, 0.933333337306976, 0.966666638851166, 0.699999988079071]</td>\n",
" <td>[0.784473180770874, 0.314396589994431, 0.171932756900787, 0.511800050735474]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.16503119468689, 0.165420055389404, 0.163087844848633, 0.157285213470459]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.600000023842</td>\n",
" <td>0.536593079567</td>\n",
" <td>[0.625, 0.491666674613953, 0.508333325386047, 0.600000023841858]</td>\n",
" <td>[0.877406716346741, 0.665770947933197, 0.563206613063812, 0.536593079566956]</td>\n",
" <td>0.600000023842</td>\n",
" <td>0.50565046072</td>\n",
" <td>[0.566666662693024, 0.533333361148834, 0.600000023841858, 0.600000023841858]</td>\n",
" <td>[0.898801684379578, 0.642534494400024, 0.529698371887207, 0.505650460720062]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>12</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.180193901062012, 0.230684041976929, 0.202606916427612, 0.182677030563354]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.5</td>\n",
" <td>1.01774513721</td>\n",
" <td>[0.341666668653488, 0.491666674613953, 0.524999976158142, 0.5]</td>\n",
" <td>[1.10608339309692, 1.06158423423767, 1.02908384799957, 1.01774513721466]</td>\n",
" <td>0.5</td>\n",
" <td>1.01636135578</td>\n",
" <td>[0.300000011920929, 0.466666668653488, 0.466666668653488, 0.5]</td>\n",
" <td>[1.10331404209137, 1.05365967750549, 1.02413082122803, 1.01636135578156]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.181950092315674, 0.197594881057739, 0.187069177627563, 0.183701992034912]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.316666662693</td>\n",
" <td>1.10080897808</td>\n",
" <td>[0.316666662693024, 0.341666668653488, 0.341666668653488, 0.316666662693024]</td>\n",
" <td>[1.1043815612793, 1.11140048503876, 1.09834468364716, 1.10080897808075]</td>\n",
" <td>0.40000000596</td>\n",
" <td>1.09380173683</td>\n",
" <td>[0.400000005960464, 0.300000011920929, 0.300000011920929, 0.400000005960464]</td>\n",
" <td>[1.09075009822845, 1.09998726844788, 1.10155093669891, 1.09380173683167]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.182392835617065, 0.206873893737793, 0.192094087600708, 0.185320854187012]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.341666668653</td>\n",
" <td>1.10410153866</td>\n",
" <td>[0.341666668653488, 0.316666662693024, 0.341666668653488, 0.341666668653488]</td>\n",
" <td>[1.10291886329651, 1.10132431983948, 1.10635650157928, 1.10410153865814]</td>\n",
" <td>0.300000011921</td>\n",
" <td>1.10918176174</td>\n",
" <td>[0.300000011920929, 0.400000005960464, 0.300000011920929, 0.300000011920929]</td>\n",
" <td>[1.10382485389709, 1.09316170215607, 1.1332186460495, 1.10918176174164]</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.400555849075317, 0.175060987472534, 0.161082029342651, 0.159379005432129], [u'accuracy'], 0.958333313465, 0.370426625013, [0.841666638851166, 0.875, 0.958333313465118, 0.958333313465118], [0.597030103206635, 0.467845916748047, 0.394165992736816, 0.370426625013351], 1.0, 0.32715767622, [0.866666674613953, 0.933333337306976, 1.0, 1.0], [0.587784588336945, 0.432697623968124, 0.352933287620544, 0.32715767621994]),\n",
" (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.157984018325806, 0.146160840988159, 0.446839094161987, 0.217149972915649], [u'accuracy'], 0.916666686535, 0.176682218909, [0.958333313465118, 0.891666650772095, 0.841666638851166, 0.916666686534882], [0.340974450111389, 0.224177747964859, 0.315857976675034, 0.176682218909264], 0.966666638851, 0.146555349231, [0.966666638851166, 0.933333337306976, 0.866666674613953, 0.966666638851166], [0.306026995182037, 0.204480707645416, 0.291850447654724, 0.146555349230766]),\n",
" (1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.158334016799927, 0.492121934890747, 0.168816804885864, 0.160614013671875], [u'accuracy'], 0.949999988079, 0.137093007565, [0.75, 0.808333337306976, 0.941666662693024, 0.949999988079071], [0.861838400363922, 0.306531131267548, 0.267581582069397, 0.137093007564545], 0.966666638851, 0.0812632590532, [0.533333361148834, 0.733333349227905, 1.0, 0.966666638851166], [1.17265951633453, 0.347328811883926, 0.0795030668377876, 0.0812632590532303]),\n",
" (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.206979990005493, 0.175852060317993, 0.18351411819458, 0.173283100128174], [u'accuracy'], 0.841666638851, 0.319059103727, [0.833333313465118, 0.916666686534882, 0.958333313465118, 0.841666638851166], [0.375581055879593, 0.235803470015526, 0.119093284010887, 0.319059103727341], 0.866666674614, 0.294114112854, [0.866666674613953, 0.966666638851166, 0.933333337306976, 0.866666674613953], [0.332203418016434, 0.206457450985909, 0.09817935526371, 0.294114112854004]),\n",
" (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.154335021972656, 0.14276385307312, 0.160094022750854, 0.147177934646606], [u'accuracy'], 0.833333313465, 0.315035998821, [0.850000023841858, 0.966666638851166, 0.966666638851166, 0.833333313465118], [0.39260533452034, 0.207864001393318, 0.14202418923378, 0.315035998821259], 0.833333313465, 0.287047833204, [0.833333313465118, 0.966666638851166, 0.933333337306976, 0.833333313465118], [0.350265830755234, 0.179627984762192, 0.119969591498375, 0.287047833204269]),\n",
" (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.183771848678589, 0.442173957824707, 0.196517944335938, 0.183962106704712], [u'accuracy'], 0.683333337307, 0.773626208305, [0.983333349227905, 0.783333361148834, 0.841666638851166, 0.683333337306976], [0.323956668376923, 0.355609774589539, 0.289077579975128, 0.773626208305359], 0.733333349228, 0.598832905293, [0.966666638851166, 0.733333349227905, 0.866666674613953, 0.733333349227905], [0.292185336351395, 0.310099214315414, 0.278687566518784, 0.598832905292511]),\n",
" (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.215842962265015, 0.183883190155029, 0.181258201599121, 0.233398914337158], [u'accuracy'], 0.658333361149, 0.501300632954, [0.341666668653488, 0.658333361148834, 0.658333361148834, 0.658333361148834], [0.947986364364624, 0.807084918022156, 0.549242556095123, 0.501300632953644], 0.699999988079, 0.459856539965, [0.300000011920929, 0.699999988079071, 0.699999988079071, 0.699999988079071], [0.971994161605835, 0.821518063545227, 0.513974606990814, 0.459856539964676]),\n",
" (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.181059837341309, 0.156504154205322, 0.154800891876221, 0.165037870407104], [u'accuracy'], 0.675000011921, 0.500130057335, [0.658333361148834, 0.908333361148834, 0.908333361148834, 0.675000011920929], [0.822371363639832, 0.354260504245758, 0.206746637821198, 0.5001300573349], 0.699999988079, 0.511800050735, [0.699999988079071, 0.933333337306976, 0.966666638851166, 0.699999988079071], [0.784473180770874, 0.314396589994431, 0.171932756900787, 0.511800050735474]),\n",
" (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.16503119468689, 0.165420055389404, 0.163087844848633, 0.157285213470459], [u'accuracy'], 0.600000023842, 0.536593079567, [0.625, 0.491666674613953, 0.508333325386047, 0.600000023841858], [0.877406716346741, 0.665770947933197, 0.563206613063812, 0.536593079566956], 0.600000023842, 0.50565046072, [0.566666662693024, 0.533333361148834, 0.600000023841858, 0.600000023841858], [0.898801684379578, 0.642534494400024, 0.529698371887207, 0.505650460720062]),\n",
" (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.180193901062012, 0.230684041976929, 0.202606916427612, 0.182677030563354], [u'accuracy'], 0.5, 1.01774513721, [0.341666668653488, 0.491666674613953, 0.524999976158142, 0.5], [1.10608339309692, 1.06158423423767, 1.02908384799957, 1.01774513721466], 0.5, 1.01636135578, [0.300000011920929, 0.466666668653488, 0.466666668653488, 0.5], [1.10331404209137, 1.05365967750549, 1.02413082122803, 1.01636135578156]),\n",
" (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.181950092315674, 0.197594881057739, 0.187069177627563, 0.183701992034912], [u'accuracy'], 0.316666662693, 1.10080897808, [0.316666662693024, 0.341666668653488, 0.341666668653488, 0.316666662693024], [1.1043815612793, 1.11140048503876, 1.09834468364716, 1.10080897808075], 0.40000000596, 1.09380173683, [0.400000005960464, 0.300000011920929, 0.300000011920929, 0.400000005960464], [1.09075009822845, 1.09998726844788, 1.10155093669891, 1.09380173683167]),\n",
" (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.182392835617065, 0.206873893737793, 0.192094087600708, 0.185320854187012], [u'accuracy'], 0.341666668653, 1.10410153866, [0.341666668653488, 0.316666662693024, 0.341666668653488, 0.341666668653488], [1.10291886329651, 1.10132431983948, 1.10635650157928, 1.10410153865814], 0.300000011921, 1.10918176174, [0.300000011920929, 0.400000005960464, 0.300000011920929, 0.300000011920929], [1.10382485389709, 1.09316170215607, 1.1332186460495, 1.10918176174164])]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot validation results"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib notebook\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.ticker import MaxNLocator\n",
"from collections import defaultdict\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"sns.set_palette(sns.color_palette(\"hls\", 20))\n",
"plt.rcParams.update({'font.size': 12})\n",
"pd.set_option('display.max_colwidth', -1)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"7 rows affected.\n",
"1 rows affected.\n"
]
},
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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kWhnxOw/5zPCZ0TLM8BzwnPCc6KFAD/jRaPEdwnfJRTioj0lcfw5H0C+pKMdL54RvqSjnREKcR0T4rPD92u0Z4dnJBohc/2c54G/b7WceJ4TnhOeEy0EaINEo8R3Cd8lFOKiPSVx/HlpaSkee+wxXHrppcjNzY3jnYwxNHlE7hOZkImWp5fnhOck2jnhGeEZiXZGzP5zPiN8RrQ8AzwnPCc8J1oItO3D54bPjZZTY/ZzwtBULaeEfUiABEiABEiABEiABEiABEiABEiABEiABEiglwQoxPUSIC8nARIgARIgARIgARIgARIgARIgARIgARIgAS0EKMRpocQ+JEACJEACJEACJEACJEACJEACJEACJEACJNBLAhTiegmQl5MACZAACZAACZAACZAACZAACZAACZAACZCAFgIU4rRQYh8SIAESIAESIAESIAESIAESIAESIAESIAES6CUBCnG9BBjt8vvuuw+rVq3Cli1bUFFRgaamJuTk5GDOnDm4+uqrcdRRR0UbIqF/Xl1djXHjxqGyshKjRo3Cjh07Enq9HS3uhBNOwMqVKztd99tvv4358+ebjossWM7FnXfeiX/84x/YvXs3kpOTMWLECJx00km4++67TcNkxYoVOPHEE6Ou9+abb8bixYuj9kuUDuvWrVPnQN6xclbcbrd6p1500UW48MILYbFYEmWpmtfx5Zdf4tZbb8UHH3yAvXv3qgrdZ555JpYsWYLMzEzN4xip44YNG/Dee+9h7dq16mvPnj1q+sFgsMtlPP3003j44YexdetWOJ1OHH300bjhhhswe/ZsIy2fc+0GAdpk0WHRLgNol3V+TmiXhdjQLuv4jNAui+RCu4x2WWdvVApx0W2SXvWQDz719fWYMGEChg4dqsb64osvsH37djgcDrz66qvqQ5JZm3xYfvbZZ9UHJrMLceeccw5SU1MjjsKiRYtMKdjKh+tTTz0V8qFg/PjxOPLII3HgwAH1obm4uBjNzc2meWy2bduGO+64o8P1+v1+LF++XP1MxBctgl0igHvllVfwP//zP5D1T5kyBYcffrgS4z766CN1Nn7yk5/g+eefT4Slal6D7P9ZZ52FhoYGjB07FkcccQQ+//xz9fsmPz8fq1evVv8mWvv+97+PN954I2JZXQlxV1xxBR588EEl7p9yyinqj2Tvv/+++l308ssvQ8ZkSzwC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13IoxSNOqg2ZuZnZ4AufEcmHJ0le5YOfeDpt2LABkjtP8jt98MEHKim92VrYO0GYzJ49W7kui3ApIWWS60pCE83YLrnkEpXj6+qrr1bVQs3aZP3itSRNnhPJGyhVU0VMCQQCEE6PPfaYqfDIMyP54eRdIuK1iPyrVq1Sz0wi5yJ96623IHkDw01ER/FQCOcclf8v65dCFuEmfwh78MEHVX5FEeUk36QIt3Ldyy+/rPJUsiUWAdpk2veTdtnPVJ5i2mVtzwztso6fIdplIS60yyLPB+2yEBPaZRTitFsgMeopf1GXROISOvXtt98qEU5CgyT3mYTVXX755cp7wezNzAafJHf94x//qIpVSMjYvn374Ha7MW7cOOXtJRUfEz2MrLPzLx+I5fkRMUU4Sc64CRMmqHBDM3j1dMRFBBURWOScSOiu8DBzE9FJvItFuK6pqUFaWhokfEaEWrMUN2m9/6+//rriIWejurpa5UKTKqkiOiVy1eWwwNLVsyD5v8Qgbt3kuoceeki9X+R389FHH60EOxH+2RKPAG0y7XtKu4x2WUenhXZZJBXaZW2Z0C5ry4N2Wee/d2iXAfSI026XsCcJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJ9JgAhbgeo+OFJEACJEACJEACJEACJEACJEACJEACJEACJKCdAIU47azYkwRIgARIgARIgARIgARIgARIgARIgARIgAR6TIBCXI/R8UISIAESIAESIAESIAESIAESIAESIAESIAES0E6AQpx2VuxJAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAj0mQCGux+h4IQmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAloJ0AhTjsr9iQBEiABEiABEiABEiABEiABEiABEiABEiCBHhOgENdjdLyQBEiABEiABEiABEiABEiABEiABEiABEiABLQToBCnnRV7kgAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkECPCVCI6zE6XkgCJEACJEACJEACJEACJEACJEACJEACJEAC2glQiNPOij1JgARIgARIgARIgARIgARIgARIgARIgARIoMcEKMT1GB0vJAESiBUBi8WihgoGg7EaUlfjLFmyBDfffDOeeuopXHjhhbqaGydDAiRAAiRAAiRAAq0J0C7jeSABEiCB+BKgEBdfvhydBEhAA4GODL5du3bhsMMOw5w5c7BixQoNo/RflxNOOAErV67Ezp07MWLEiIiJUIjrv73hnUmABEiABEiABLpHgHZZ93ixNwmQAAl0lwCFuO4SY38SIIGYE0h0g6+qqgrylZubi/T09Jjz44AkQAIkQAIkQAIkECsCtMtiRZLjkAAJkEDHBCjE8WSQAAn0O4FEN/j6HTAnQAIkQAIkQAIkQAIaCdAu0wiK3UiABEighwQoxPUQHC8jARKIHYH2Bl84lLOjOyxcuBBPP/10y4/27t2Lu+++G2+88YYKDXU6nZg6dSquuuoqnHnmmW2GaB3u+ve//x1yn9deew3FxcX49a9/jQceeAD79+/Hc889hzfffBPbtm1DWVkZUlNTMX36dCxatAjz5s1rGTM8XmckwjnvugpNra6uxh133IHXX38dRUVFSElJwYwZM9T8TznllIihhdXw4cPxzTff4J577sGTTz6JwsJCZGdn4yc/+QluueUWuFyu2G0ORyIBEiABEiABEjAVAdpltMtMdeC5WBLoBwIU4voBOm9JAiTQlkB7g09EqeXLl+OVV17BkCFDMH/+/JYLjj32WFx88cXqv7dv346TTz5ZCViSm23ixImora3FmjVr0NDQoAS63/3udxHCmQhdXq9XCViSg85qtWLChAm46aab8K9//QunnXaaGm/06NHIyMjA7t271ZjSnnjiCVx00UXqewk3lfHlmvLycpxzzjlKtAu3sGDYmRC3Z88eHH/88fj2228xbNgwzJo1C5WVlSrfnN/vx3333Ycrr7yyDaywEDdz5kz885//hOSnk/bRRx+hpqYG559/vmLHRgIkQAIkQAIkQAI9IUC7jHZZT84NryEBEtBOgEKcdlbsSQIkECcCPQmBEKFq8uTJ2LJlC+666y7lrSaCmrQdO3YobzIR0DZt2oQjjzxS/f/WHmwieomQNXDgwDarEq86EdWOPvroNv9/48aNmDt3LgKBAERAay249bRYw1lnnaU878STTSqqijeftFWrVuHUU0+Fx+PB+vXrMWnSpJa5hFmNGzcOH3zwAXJyctTPZN5TpkxRHn2y/lGjRsVptzgsCZAACZAACZBAIhOgXUa7LJHPN9dGAnogQCFOD7vAOZCAyQn0xOATr7mzzz5beaG9/PLLEQQl5PQHP/gBLr/8cjz44IMRQty6deswbdq0bpG/4YYbcNttt0HCWkVEC7eeCHHiBSdimQh64pknnnetmwiL4hEn3n+PP/54hBD33nvvKW/A1u03v/kNHnroISXqXXjhhd1aGzuTAAmQAAmQAAmQgBCgXUa7jE8CCZBAfAlQiIsvX45OAiSggUBPDL5f/epXeOSRR/D8888rj7L2TcJGs7KylGfb6tWr2whxUr20pKSk05mJt93777+Pjz/+GKWlpcozTdrXX3+t/t+9996rcrj1Roh79tlnIfnuzj33XLz00ksRcxFPPvH4GzNmjMpVF27CyuFwoLGxETabrc11f/zjH5XwePvtt+O6667TQJ5dSIAESIAESIAESKAtAdpltMv4TJAACcSXAIW4+PLl6CRAAhoI9MTgO/300/H2229HHf3www9XApq0cGiq5FcL53xrP4AUbpAiD5s3b+50bMn5JvnkeiPESYEGEcskx5zksmvfJMR00KBBymNO8t61FuIKCgpU2G37Jjnpfvazn6m5yRzZSIAESIAESIAESKC7BGiX0S7r7plhfxIgge4RoBDXPV7sTQIkEAcCPTH4pIDDO++8owo5SEGHzlpmZqaqLiqtddXUFStWdHhJeFwJeb3mmmuUR1paWprKP/fnP/8Zl156aYTQ1ZPQ1GhCnBRekPx1HQlxUjVV1kIhLg6HkUOSAAmQAAmQgMkJ0C6LFOJol5n8oeDySSDGBCjExRgohyMBEug+gZ4YfJI77cknn1T54UQ009KiCXH19fUYMGCACmmVggztQz+vvfZa3HnnnTER4sKhqeeddx5efPHFiOmLR54UaegoNJVCnJbdZh8SIAESIAESIIGeEKBdRrusJ+eG15AACWgnQCFOOyv2JAESiBOBjgw+yeE2dOhQHHPMMaqKaPv2t7/9DT/60Y9w/vnnY/ny5ZpmFk2IC99TBDCpktq6+Xw+VX11+/btEUKcVGiV4gkSAiuhsO2bhInefPPNbYoohIs1iLedhJm2r9569dVXK0++joo1UIjTtN3sRAIkQAIkQAIk0AMCtMtol/Xg2PASEiCBbhCgENcNWOxKAiQQHwIdGXxer1eFZQ4ePBiSt629d1pzczMmTpyIrVu34pZbblFhpC6Xq2WCwWBQFVaQJmKetGhCnIwpoaziGSehq+HrpHiDCGP333+/Gqd9DjapUPrMM8/gzTffxBlnnKFJiJNOkovurbfewgUXXIAnnnhCFWGQJsUl5s2bh6amJqxfv155xoWbsKIQF59zyFFJgARIgARIgAQ6rppKu4x2GZ8NEiCB2BGgEBc7lhyJBEighwQ6EuJkqO9+97v4xz/+gfHjx2PKlClwOp1KHJOCBNLEA+3UU0/Fzp07kZ2djQkTJqh/pWKqVB2tqKhQ4tkVV1yhSYiTTlJx9Prrr1fC39y5c5GRkYFPPvkE5eXluOiii/CnP/0pQoh79dVXVXishLWKd1x6erq6n4hr0jryiJP/L+Gvxx13nJq/iGuzZs1CZWWlEgFF/GtfnVWuoRDXw0PGy0iABEiABEiABDQRoF1Gu0zTQWEnEiCBHhOgENdjdLyQBEggVgQ6M/hESJOqohL2KQKViFMLFy6EVAcNN0me+9BDD0HEMAkbFa+2nJwclVtNhLwf/vCHystNWjSPuPCYkr/tgQcewFdffYXk5GQce+yxyuvu008/7bQqqfR//PHH8c0338Dj8aihxCuvKyFOflZdXY1ly5bh9ddfR1FREVJSUjBjxgwsWrRIiXrtG4W4WJ06jkMCJEACJEACJNARAdpltMv4ZJAACcSXAIW4+PLl6CRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSgCFCI40EgARIgARIgARIgARIgARIgARIgARIgARIggT4g8P8B+DQNM7Wx1zcAAAAASUVORK5CYII=\" width=\"1000\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x12e9ae7d0>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
"df_results = df_results.DataFrame()\n",
"\n",
"df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
"df_summary = df_summary.DataFrame()\n",
"\n",
"#set up plots\n",
"fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
"fig.legend(ncol=4)\n",
"fig.tight_layout()\n",
"\n",
"ax_metric = axs[0]\n",
"ax_loss = axs[1]\n",
"\n",
"ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
"ax_metric.set_xlabel('Iteration')\n",
"ax_metric.set_ylabel('Metric')\n",
"ax_metric.set_title('Validation metric curve')\n",
"\n",
"ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
"ax_loss.set_xlabel('Iteration')\n",
"ax_loss.set_ylabel('Loss')\n",
"ax_loss.set_title('Validation loss curve')\n",
"\n",
"iters = df_summary['metrics_iters'][0]\n",
"\n",
"for mst_key in df_results['mst_key']:\n",
" df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
" df_output_info = df_output_info.DataFrame()\n",
" validation_metrics = df_output_info['validation_metrics'][0]\n",
" validation_loss = df_output_info['validation_loss'][0]\n",
" \n",
" ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
" ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
"\n",
"plt.legend()\n",
"# fig.savefig('./lc_keras_fit.png', dpi = 300)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"pred_prob\"></a>\n",
"# 2. Predict probabilities\n",
"\n",
"Predict with probabilities for each class:"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done.\n",
"1 rows affected.\n",
"30 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>id</th>\n",
" <th>prob_Iris-setosa</th>\n",
" <th>prob_Iris-versicolor</th>\n",
" <th>prob_Iris-virginica</th>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.9999416</td>\n",
" <td>5.8360623e-05</td>\n",
" <td>3.9093355e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.99998116</td>\n",
" <td>1.8880675e-05</td>\n",
" <td>2.5342377e-13</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.99994814</td>\n",
" <td>5.1881765e-05</td>\n",
" <td>2.5964983e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>0.99996114</td>\n",
" <td>3.8810744e-05</td>\n",
" <td>1.176443e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>0.99992573</td>\n",
" <td>7.4317446e-05</td>\n",
" <td>5.4237942e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>19</td>\n",
" <td>0.9999845</td>\n",
" <td>1.5514812e-05</td>\n",
" <td>1.034207e-13</td>\n",
" </tr>\n",
" <tr>\n",
" <td>25</td>\n",
" <td>0.99992156</td>\n",
" <td>7.845682e-05</td>\n",
" <td>3.7364413e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>26</td>\n",
" <td>0.9998591</td>\n",
" <td>0.00014085071</td>\n",
" <td>2.0146884e-11</td>\n",
" </tr>\n",
" <tr>\n",
" <td>28</td>\n",
" <td>0.9999734</td>\n",
" <td>2.6542659e-05</td>\n",
" <td>4.8342347e-13</td>\n",
" </tr>\n",
" <tr>\n",
" <td>38</td>\n",
" <td>0.99992573</td>\n",
" <td>7.4317446e-05</td>\n",
" <td>5.4237942e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>44</td>\n",
" <td>0.99990726</td>\n",
" <td>9.278052e-05</td>\n",
" <td>6.9040372e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>45</td>\n",
" <td>0.999964</td>\n",
" <td>3.6013742e-05</td>\n",
" <td>5.7615945e-13</td>\n",
" </tr>\n",
" <tr>\n",
" <td>51</td>\n",
" <td>0.00025041687</td>\n",
" <td>0.99780566</td>\n",
" <td>0.0019439155</td>\n",
" </tr>\n",
" <tr>\n",
" <td>53</td>\n",
" <td>1.843269e-05</td>\n",
" <td>0.9889865</td>\n",
" <td>0.010995116</td>\n",
" </tr>\n",
" <tr>\n",
" <td>57</td>\n",
" <td>2.4158675e-05</td>\n",
" <td>0.99005336</td>\n",
" <td>0.00992243</td>\n",
" </tr>\n",
" <tr>\n",
" <td>59</td>\n",
" <td>0.00011159414</td>\n",
" <td>0.9942708</td>\n",
" <td>0.0056176083</td>\n",
" </tr>\n",
" <tr>\n",
" <td>62</td>\n",
" <td>0.00014697485</td>\n",
" <td>0.99189115</td>\n",
" <td>0.007961868</td>\n",
" </tr>\n",
" <tr>\n",
" <td>69</td>\n",
" <td>8.6406266e-07</td>\n",
" <td>0.6961896</td>\n",
" <td>0.30380967</td>\n",
" </tr>\n",
" <tr>\n",
" <td>75</td>\n",
" <td>0.0005239165</td>\n",
" <td>0.9965855</td>\n",
" <td>0.0028905326</td>\n",
" </tr>\n",
" <tr>\n",
" <td>77</td>\n",
" <td>1.5155997e-05</td>\n",
" <td>0.97978914</td>\n",
" <td>0.020195633</td>\n",
" </tr>\n",
" <tr>\n",
" <td>97</td>\n",
" <td>0.00023696794</td>\n",
" <td>0.9938279</td>\n",
" <td>0.005935215</td>\n",
" </tr>\n",
" <tr>\n",
" <td>102</td>\n",
" <td>1.3247301e-09</td>\n",
" <td>0.18419608</td>\n",
" <td>0.8158039</td>\n",
" </tr>\n",
" <tr>\n",
" <td>107</td>\n",
" <td>2.5100556e-08</td>\n",
" <td>0.30281228</td>\n",
" <td>0.69718766</td>\n",
" </tr>\n",
" <tr>\n",
" <td>114</td>\n",
" <td>3.2222575e-10</td>\n",
" <td>0.08682407</td>\n",
" <td>0.913176</td>\n",
" </tr>\n",
" <tr>\n",
" <td>118</td>\n",
" <td>5.33606e-11</td>\n",
" <td>0.34179842</td>\n",
" <td>0.6582016</td>\n",
" </tr>\n",
" <tr>\n",
" <td>120</td>\n",
" <td>9.134116e-09</td>\n",
" <td>0.27099058</td>\n",
" <td>0.72900945</td>\n",
" </tr>\n",
" <tr>\n",
" <td>122</td>\n",
" <td>2.9710499e-09</td>\n",
" <td>0.21993305</td>\n",
" <td>0.7800669</td>\n",
" </tr>\n",
" <tr>\n",
" <td>132</td>\n",
" <td>5.2177818e-09</td>\n",
" <td>0.8370931</td>\n",
" <td>0.16290687</td>\n",
" </tr>\n",
" <tr>\n",
" <td>146</td>\n",
" <td>1.4404147e-09</td>\n",
" <td>0.2293714</td>\n",
" <td>0.7706286</td>\n",
" </tr>\n",
" <tr>\n",
" <td>147</td>\n",
" <td>3.8019614e-09</td>\n",
" <td>0.2240861</td>\n",
" <td>0.77591395</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(3, 0.9999416, 5.8360623e-05, 3.9093355e-12),\n",
" (5, 0.99998116, 1.8880675e-05, 2.5342377e-13),\n",
" (7, 0.99994814, 5.1881765e-05, 2.5964983e-12),\n",
" (8, 0.99996114, 3.8810744e-05, 1.176443e-12),\n",
" (10, 0.99992573, 7.4317446e-05, 5.4237942e-12),\n",
" (19, 0.9999845, 1.5514812e-05, 1.034207e-13),\n",
" (25, 0.99992156, 7.845682e-05, 3.7364413e-12),\n",
" (26, 0.9998591, 0.00014085071, 2.0146884e-11),\n",
" (28, 0.9999734, 2.6542659e-05, 4.8342347e-13),\n",
" (38, 0.99992573, 7.4317446e-05, 5.4237942e-12),\n",
" (44, 0.99990726, 9.278052e-05, 6.9040372e-12),\n",
" (45, 0.999964, 3.6013742e-05, 5.7615945e-13),\n",
" (51, 0.00025041687, 0.99780566, 0.0019439155),\n",
" (53, 1.843269e-05, 0.9889865, 0.010995116),\n",
" (57, 2.4158675e-05, 0.99005336, 0.00992243),\n",
" (59, 0.00011159414, 0.9942708, 0.0056176083),\n",
" (62, 0.00014697485, 0.99189115, 0.007961868),\n",
" (69, 8.6406266e-07, 0.6961896, 0.30380967),\n",
" (75, 0.0005239165, 0.9965855, 0.0028905326),\n",
" (77, 1.5155997e-05, 0.97978914, 0.020195633),\n",
" (97, 0.00023696794, 0.9938279, 0.005935215),\n",
" (102, 1.3247301e-09, 0.18419608, 0.8158039),\n",
" (107, 2.5100556e-08, 0.30281228, 0.69718766),\n",
" (114, 3.2222575e-10, 0.08682407, 0.913176),\n",
" (118, 5.33606e-11, 0.34179842, 0.6582016),\n",
" (120, 9.134116e-09, 0.27099058, 0.72900945),\n",
" (122, 2.9710499e-09, 0.21993305, 0.7800669),\n",
" (132, 5.2177818e-09, 0.8370931, 0.16290687),\n",
" (146, 1.4404147e-09, 0.2293714, 0.7706286),\n",
" (147, 3.8019614e-09, 0.2240861, 0.77591395)]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"DROP TABLE IF EXISTS iris_predict;\n",
"\n",
"SELECT madlib.madlib_keras_predict('iris_multi_model', -- model\n",
" 'iris_test', -- test_table\n",
" 'id', -- id column\n",
" 'attributes', -- independent var\n",
" 'iris_predict', -- output table\n",
" 'prob', -- prediction type\n",
" FALSE, -- use gpus\n",
" 3 -- mst_key to use\n",
" );\n",
"\n",
"SELECT * FROM iris_predict ORDER BY id;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"warm_start\"></a>\n",
"# 3. Warm start\n",
"\n",
"Next, use the warm_start parameter to continue learning, using the coefficients from the run above. Note that we don't drop the model table or model summary table:"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>madlib_keras_fit_multiple_model</th>\n",
" </tr>\n",
" <tr>\n",
" <td></td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[('',)]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed', -- source_table\n",
" 'iris_multi_model', -- model_output_table\n",
" 'mst_table', -- model_selection_table\n",
" 3, -- num_iterations\n",
" FALSE, -- use gpus\n",
" 'iris_test_packed', -- validation dataset\n",
" 1, -- metrics compute frequency\n",
" TRUE, -- warm start\n",
" 'Sophie L.', -- name\n",
" 'Simple MLP for iris dataset' -- description\n",
" );"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"View summary:"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>source_table</th>\n",
" <th>validation_table</th>\n",
" <th>model</th>\n",
" <th>model_info</th>\n",
" <th>dependent_varname</th>\n",
" <th>independent_varname</th>\n",
" <th>model_arch_table</th>\n",
" <th>num_iterations</th>\n",
" <th>metrics_compute_frequency</th>\n",
" <th>warm_start</th>\n",
" <th>name</th>\n",
" <th>description</th>\n",
" <th>start_training_time</th>\n",
" <th>end_training_time</th>\n",
" <th>madlib_version</th>\n",
" <th>num_classes</th>\n",
" <th>class_values</th>\n",
" <th>dependent_vartype</th>\n",
" <th>normalizing_const</th>\n",
" <th>metrics_iters</th>\n",
" </tr>\n",
" <tr>\n",
" <td>iris_train_packed</td>\n",
" <td>iris_test_packed</td>\n",
" <td>iris_multi_model</td>\n",
" <td>iris_multi_model_info</td>\n",
" <td>class_text</td>\n",
" <td>attributes</td>\n",
" <td>model_arch_library</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>Sophie L.</td>\n",
" <td>Simple MLP for iris dataset</td>\n",
" <td>2019-12-18 22:37:57.948805</td>\n",
" <td>2019-12-18 22:38:43.967187</td>\n",
" <td>1.17-dev</td>\n",
" <td>3</td>\n",
" <td>[u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica']</td>\n",
" <td>character varying</td>\n",
" <td>1.0</td>\n",
" <td>[1, 2, 3]</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(u'iris_train_packed', u'iris_test_packed', u'iris_multi_model', u'iris_multi_model_info', u'class_text', u'attributes', u'model_arch_library', 3, 1, True, u'Sophie L.', u'Simple MLP for iris dataset', datetime.datetime(2019, 12, 18, 22, 37, 57, 948805), datetime.datetime(2019, 12, 18, 22, 38, 43, 967187), u'1.17-dev', 3, [u'Iris-setosa', u'Iris-versicolor', u'Iris-virginica'], u'character varying', 1.0, [1, 2, 3])]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM iris_multi_model_summary;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"View performance of each model:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"12 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th>mst_key</th>\n",
" <th>model_id</th>\n",
" <th>compile_params</th>\n",
" <th>fit_params</th>\n",
" <th>model_type</th>\n",
" <th>model_size</th>\n",
" <th>metrics_elapsed_time</th>\n",
" <th>metrics_type</th>\n",
" <th>training_metrics_final</th>\n",
" <th>training_loss_final</th>\n",
" <th>training_metrics</th>\n",
" <th>training_loss</th>\n",
" <th>validation_metrics_final</th>\n",
" <th>validation_loss_final</th>\n",
" <th>validation_metrics</th>\n",
" <th>validation_loss</th>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.17091703414917, 0.163390159606934, 0.155634164810181]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.958333313465</td>\n",
" <td>0.31917694211</td>\n",
" <td>[0.958333313465118, 0.958333313465118, 0.958333313465118]</td>\n",
" <td>[0.348434448242188, 0.334388434886932, 0.319176942110062]</td>\n",
" <td>1.0</td>\n",
" <td>0.272621482611</td>\n",
" <td>[1.0, 1.0, 1.0]</td>\n",
" <td>[0.306039541959763, 0.28966349363327, 0.272621482610703]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.172316074371338, 0.188217163085938, 0.503840208053589]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.899999976158</td>\n",
" <td>0.193531006575</td>\n",
" <td>[0.958333313465118, 0.925000011920929, 0.899999976158142]</td>\n",
" <td>[0.147025644779205, 0.144938006997108, 0.193531006574631]</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.153077676892</td>\n",
" <td>[0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
" <td>[0.132363379001617, 0.116448685526848, 0.153077676892281]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.147105932235718, 0.158121824264526, 0.174723863601685]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.100400544703</td>\n",
" <td>[0.966666638851166, 0.908333361148834, 0.966666638851166]</td>\n",
" <td>[0.112152323126793, 0.197978660464287, 0.100400544703007]</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.0844493880868</td>\n",
" <td>[0.933333337306976, 0.966666638851166, 0.966666638851166]</td>\n",
" <td>[0.0945712551474571, 0.170254677534103, 0.0844493880867958]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.224463939666748, 0.412797927856445, 0.193319797515869]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.958333313465</td>\n",
" <td>0.139601364732</td>\n",
" <td>[0.966666638851166, 0.966666638851166, 0.958333313465118]</td>\n",
" <td>[0.122705578804016, 0.0809410735964775, 0.139601364731789]</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.131209135056</td>\n",
" <td>[0.966666638851166, 0.966666638851166, 0.966666638851166]</td>\n",
" <td>[0.115778811275959, 0.0698963403701782, 0.131209135055542]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.160850048065186, 0.224483013153076, 0.163106918334961]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.0839553326368</td>\n",
" <td>[0.966666638851166, 0.908333361148834, 0.966666638851166]</td>\n",
" <td>[0.124577566981316, 0.196399554610252, 0.0839553326368332]</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.074150800705</td>\n",
" <td>[0.966666638851166, 0.866666674613953, 0.966666638851166]</td>\n",
" <td>[0.137340381741524, 0.232466518878937, 0.0741508007049561]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.14374303817749, 0.154287099838257, 0.17367696762085]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.966666638851</td>\n",
" <td>0.0860244855285</td>\n",
" <td>[0.966666638851166, 0.841666638851166, 0.966666638851166]</td>\n",
" <td>[0.0824147835373878, 0.337884455919266, 0.0860244855284691]</td>\n",
" <td>0.933333337307</td>\n",
" <td>0.0704526007175</td>\n",
" <td>[0.966666638851166, 0.866666674613953, 0.933333337306976]</td>\n",
" <td>[0.0690516456961632, 0.295713990926743, 0.0704526007175446]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.155812978744507, 0.158360004425049, 0.159363031387329]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.833333313465</td>\n",
" <td>0.344228476286</td>\n",
" <td>[0.666666686534882, 0.675000011920929, 0.833333313465118]</td>\n",
" <td>[1.01126325130463, 1.33927237987518, 0.344228476285934]</td>\n",
" <td>0.800000011921</td>\n",
" <td>0.305708706379</td>\n",
" <td>[0.699999988079071, 0.699999988079071, 0.800000011920929]</td>\n",
" <td>[1.02303433418274, 1.36952638626099, 0.305708706378937]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>11</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.187958955764771, 0.186024904251099, 0.501762866973877]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.725000023842</td>\n",
" <td>0.423261642456</td>\n",
" <td>[0.658333361148834, 0.658333361148834, 0.725000023841858]</td>\n",
" <td>[0.46866175532341, 0.445532470941544, 0.423261642456055]</td>\n",
" <td>0.699999988079</td>\n",
" <td>0.378630697727</td>\n",
" <td>[0.699999988079071, 0.699999988079071, 0.699999988079071]</td>\n",
" <td>[0.422465175390244, 0.398104608058929, 0.378630697727203]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>0.7900390625</td>\n",
" <td>[0.176413059234619, 0.169157981872559, 0.15624213218689]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.675000011921</td>\n",
" <td>0.470171242952</td>\n",
" <td>[0.641666650772095, 0.658333361148834, 0.675000011920929]</td>\n",
" <td>[0.504463493824005, 0.486825525760651, 0.470171242952347]</td>\n",
" <td>0.699999988079</td>\n",
" <td>0.436036229134</td>\n",
" <td>[0.699999988079071, 0.699999988079071, 0.699999988079071]</td>\n",
" <td>[0.470719456672668, 0.452698260545731, 0.436036229133606]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>12</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.164397954940796, 0.486438035964966, 0.192479133605957]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.550000011921</td>\n",
" <td>0.975017726421</td>\n",
" <td>[0.508333325386047, 0.533333361148834, 0.550000011920929]</td>\n",
" <td>[1.00239539146423, 0.986684203147888, 0.975017726421356]</td>\n",
" <td>0.466666668653</td>\n",
" <td>0.981434583664</td>\n",
" <td>[0.5, 0.466666668653488, 0.466666668653488]</td>\n",
" <td>[1.00223970413208, 0.989481270313263, 0.98143458366394]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=8,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.467766046524048, 0.198179006576538, 0.186810970306396]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.341666668653</td>\n",
" <td>1.10613942146</td>\n",
" <td>[0.316666662693024, 0.316666662693024, 0.341666668653488]</td>\n",
" <td>[1.1275190114975, 1.10920584201813, 1.10613942146301]</td>\n",
" <td>0.300000011921</td>\n",
" <td>1.10817503929</td>\n",
" <td>[0.400000005960464, 0.400000005960464, 0.300000011920929]</td>\n",
" <td>[1.10070872306824, 1.09047472476959, 1.10817503929138]</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']</td>\n",
" <td>batch_size=4,epochs=1</td>\n",
" <td>madlib_keras</td>\n",
" <td>1.2197265625</td>\n",
" <td>[0.467660903930664, 0.195011138916016, 0.185934066772461]</td>\n",
" <td>[u'accuracy']</td>\n",
" <td>0.341666668653</td>\n",
" <td>1.10524618626</td>\n",
" <td>[0.316666662693024, 0.341666668653488, 0.341666668653488]</td>\n",
" <td>[1.10246300697327, 1.09976887702942, 1.10524618625641]</td>\n",
" <td>0.300000011921</td>\n",
" <td>1.10809886456</td>\n",
" <td>[0.400000005960464, 0.300000011920929, 0.300000011920929]</td>\n",
" <td>[1.09229254722595, 1.09808218479156, 1.10809886455536]</td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"[(6, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.17091703414917, 0.163390159606934, 0.155634164810181], [u'accuracy'], 0.958333313465, 0.31917694211, [0.958333313465118, 0.958333313465118, 0.958333313465118], [0.348434448242188, 0.334388434886932, 0.319176942110062], 1.0, 0.272621482611, [1.0, 1.0, 1.0], [0.306039541959763, 0.28966349363327, 0.272621482610703]),\n",
" (10, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.172316074371338, 0.188217163085938, 0.503840208053589], [u'accuracy'], 0.899999976158, 0.193531006575, [0.958333313465118, 0.925000011920929, 0.899999976158142], [0.147025644779205, 0.144938006997108, 0.193531006574631], 0.966666638851, 0.153077676892, [0.966666638851166, 0.966666638851166, 0.966666638851166], [0.132363379001617, 0.116448685526848, 0.153077676892281]),\n",
" (4, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.147105932235718, 0.158121824264526, 0.174723863601685], [u'accuracy'], 0.966666638851, 0.100400544703, [0.966666638851166, 0.908333361148834, 0.966666638851166], [0.112152323126793, 0.197978660464287, 0.100400544703007], 0.966666638851, 0.0844493880868, [0.933333337306976, 0.966666638851166, 0.966666638851166], [0.0945712551474571, 0.170254677534103, 0.0844493880867958]),\n",
" (9, 2, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.224463939666748, 0.412797927856445, 0.193319797515869], [u'accuracy'], 0.958333313465, 0.139601364732, [0.966666638851166, 0.966666638851166, 0.958333313465118], [0.122705578804016, 0.0809410735964775, 0.139601364731789], 0.966666638851, 0.131209135056, [0.966666638851166, 0.966666638851166, 0.966666638851166], [0.115778811275959, 0.0698963403701782, 0.131209135055542]),\n",
" (1, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.160850048065186, 0.224483013153076, 0.163106918334961], [u'accuracy'], 0.966666638851, 0.0839553326368, [0.966666638851166, 0.908333361148834, 0.966666638851166], [0.124577566981316, 0.196399554610252, 0.0839553326368332], 0.966666638851, 0.074150800705, [0.966666638851166, 0.866666674613953, 0.966666638851166], [0.137340381741524, 0.232466518878937, 0.0741508007049561]),\n",
" (3, 1, u\"loss='categorical_crossentropy', optimizer='Adam(lr=0.01)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.14374303817749, 0.154287099838257, 0.17367696762085], [u'accuracy'], 0.966666638851, 0.0860244855285, [0.966666638851166, 0.841666638851166, 0.966666638851166], [0.0824147835373878, 0.337884455919266, 0.0860244855284691], 0.933333337307, 0.0704526007175, [0.966666638851166, 0.866666674613953, 0.933333337306976], [0.0690516456961632, 0.295713990926743, 0.0704526007175446]),\n",
" (2, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 0.7900390625, [0.155812978744507, 0.158360004425049, 0.159363031387329], [u'accuracy'], 0.833333313465, 0.344228476286, [0.666666686534882, 0.675000011920929, 0.833333313465118], [1.01126325130463, 1.33927237987518, 0.344228476285934], 0.800000011921, 0.305708706379, [0.699999988079071, 0.699999988079071, 0.800000011920929], [1.02303433418274, 1.36952638626099, 0.305708706378937]),\n",
" (11, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.187958955764771, 0.186024904251099, 0.501762866973877], [u'accuracy'], 0.725000023842, 0.423261642456, [0.658333361148834, 0.658333361148834, 0.725000023841858], [0.46866175532341, 0.445532470941544, 0.423261642456055], 0.699999988079, 0.378630697727, [0.699999988079071, 0.699999988079071, 0.699999988079071], [0.422465175390244, 0.398104608058929, 0.378630697727203]),\n",
" (5, 1, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 0.7900390625, [0.176413059234619, 0.169157981872559, 0.15624213218689], [u'accuracy'], 0.675000011921, 0.470171242952, [0.641666650772095, 0.658333361148834, 0.675000011920929], [0.504463493824005, 0.486825525760651, 0.470171242952347], 0.699999988079, 0.436036229134, [0.699999988079071, 0.699999988079071, 0.699999988079071], [0.470719456672668, 0.452698260545731, 0.436036229133606]),\n",
" (12, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.001)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.164397954940796, 0.486438035964966, 0.192479133605957], [u'accuracy'], 0.550000011921, 0.975017726421, [0.508333325386047, 0.533333361148834, 0.550000011920929], [1.00239539146423, 0.986684203147888, 0.975017726421356], 0.466666668653, 0.981434583664, [0.5, 0.466666668653488, 0.466666668653488], [1.00223970413208, 0.989481270313263, 0.98143458366394]),\n",
" (8, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=8,epochs=1', u'madlib_keras', 1.2197265625, [0.467766046524048, 0.198179006576538, 0.186810970306396], [u'accuracy'], 0.341666668653, 1.10613942146, [0.316666662693024, 0.316666662693024, 0.341666668653488], [1.1275190114975, 1.10920584201813, 1.10613942146301], 0.300000011921, 1.10817503929, [0.400000005960464, 0.400000005960464, 0.300000011920929], [1.10070872306824, 1.09047472476959, 1.10817503929138]),\n",
" (7, 2, u\"loss='categorical_crossentropy',optimizer='Adam(lr=0.1)',metrics=['accuracy']\", u'batch_size=4,epochs=1', u'madlib_keras', 1.2197265625, [0.467660903930664, 0.195011138916016, 0.185934066772461], [u'accuracy'], 0.341666668653, 1.10524618626, [0.316666662693024, 0.341666668653488, 0.341666668653488], [1.10246300697327, 1.09976887702942, 1.10524618625641], 0.300000011921, 1.10809886456, [0.400000005960464, 0.300000011920929, 0.300000011920929], [1.09229254722595, 1.09808218479156, 1.10809886455536])]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%sql\n",
"SELECT * FROM iris_multi_model_info ORDER BY validation_metrics_final DESC;"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot validation results:"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"7 rows affected.\n",
"1 rows affected.\n"
]
},
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support.' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option)\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>')\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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\" width=\"1000\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n",
"1 rows affected.\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x130da4150>"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_results = %sql SELECT * FROM iris_multi_model_info ORDER BY validation_loss ASC LIMIT 7;\n",
"df_results = df_results.DataFrame()\n",
"\n",
"df_summary = %sql SELECT * FROM iris_multi_model_summary;\n",
"df_summary = df_summary.DataFrame()\n",
"\n",
"#set up plots\n",
"fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n",
"fig.legend(ncol=4)\n",
"fig.tight_layout()\n",
"\n",
"ax_metric = axs[0]\n",
"ax_loss = axs[1]\n",
"\n",
"ax_metric.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
"ax_metric.set_xlabel('Iteration')\n",
"ax_metric.set_ylabel('Metric')\n",
"ax_metric.set_title('Validation metric curve')\n",
"\n",
"ax_loss.xaxis.set_major_locator(MaxNLocator(integer=True))\n",
"ax_loss.set_xlabel('Iteration')\n",
"ax_loss.set_ylabel('Loss')\n",
"ax_loss.set_title('Validation loss curve')\n",
"\n",
"iters = df_summary['metrics_iters'][0]\n",
"\n",
"for mst_key in df_results['mst_key']:\n",
" df_output_info = %sql SELECT validation_metrics,validation_loss FROM iris_multi_model_info WHERE mst_key = $mst_key\n",
" df_output_info = df_output_info.DataFrame()\n",
" validation_metrics = df_output_info['validation_metrics'][0]\n",
" validation_loss = df_output_info['validation_loss'][0]\n",
" \n",
" ax_metric.plot(iters, validation_metrics, label=mst_key, marker='o')\n",
" ax_loss.plot(iters, validation_loss, label=mst_key, marker='o')\n",
"\n",
"plt.legend()\n",
"# fig.savefig('./lc_keras_fit.png', dpi = 300)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.16"
}
},
"nbformat": 4,
"nbformat_minor": 1
}