You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/2-Regression/3-Linear/solution/notebook.ipynb

1105 lines
128 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Linear and Polynomial Regression for Pumpkin Pricing - Lesson 3\n",
"\n",
"Load up required libraries and dataset. Convert the data to a dataframe containing a subset of the data: \n",
"\n",
"- Only get pumpkins priced by the bushel\n",
"- Convert the date to a month\n",
"- Calculate the price to be an average of high and low prices\n",
"- Convert the price to reflect the pricing by bushel quantity"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>City Name</th>\n",
" <th>Type</th>\n",
" <th>Package</th>\n",
" <th>Variety</th>\n",
" <th>Sub Variety</th>\n",
" <th>Grade</th>\n",
" <th>Date</th>\n",
" <th>Low Price</th>\n",
" <th>High Price</th>\n",
" <th>Mostly Low</th>\n",
" <th>...</th>\n",
" <th>Unit of Sale</th>\n",
" <th>Quality</th>\n",
" <th>Condition</th>\n",
" <th>Appearance</th>\n",
" <th>Storage</th>\n",
" <th>Crop</th>\n",
" <th>Repack</th>\n",
" <th>Trans Mode</th>\n",
" <th>Unnamed: 24</th>\n",
" <th>Unnamed: 25</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>BALTIMORE</td>\n",
" <td>NaN</td>\n",
" <td>24 inch bins</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4/29/17</td>\n",
" <td>270.0</td>\n",
" <td>280.0</td>\n",
" <td>270.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>E</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>BALTIMORE</td>\n",
" <td>NaN</td>\n",
" <td>24 inch bins</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5/6/17</td>\n",
" <td>270.0</td>\n",
" <td>280.0</td>\n",
" <td>270.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>E</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>BALTIMORE</td>\n",
" <td>NaN</td>\n",
" <td>24 inch bins</td>\n",
" <td>HOWDEN TYPE</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>9/24/16</td>\n",
" <td>160.0</td>\n",
" <td>160.0</td>\n",
" <td>160.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>BALTIMORE</td>\n",
" <td>NaN</td>\n",
" <td>24 inch bins</td>\n",
" <td>HOWDEN TYPE</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>9/24/16</td>\n",
" <td>160.0</td>\n",
" <td>160.0</td>\n",
" <td>160.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>BALTIMORE</td>\n",
" <td>NaN</td>\n",
" <td>24 inch bins</td>\n",
" <td>HOWDEN TYPE</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>11/5/16</td>\n",
" <td>90.0</td>\n",
" <td>100.0</td>\n",
" <td>90.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 26 columns</p>\n",
"</div>"
],
"text/plain": [
" City Name Type Package Variety Sub Variety Grade Date \\\n",
"0 BALTIMORE NaN 24 inch bins NaN NaN NaN 4/29/17 \n",
"1 BALTIMORE NaN 24 inch bins NaN NaN NaN 5/6/17 \n",
"2 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n",
"3 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n",
"4 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 11/5/16 \n",
"\n",
" Low Price High Price Mostly Low ... Unit of Sale Quality Condition \\\n",
"0 270.0 280.0 270.0 ... NaN NaN NaN \n",
"1 270.0 280.0 270.0 ... NaN NaN NaN \n",
"2 160.0 160.0 160.0 ... NaN NaN NaN \n",
"3 160.0 160.0 160.0 ... NaN NaN NaN \n",
"4 90.0 100.0 90.0 ... NaN NaN NaN \n",
"\n",
" Appearance Storage Crop Repack Trans Mode Unnamed: 24 Unnamed: 25 \n",
"0 NaN NaN NaN E NaN NaN NaN \n",
"1 NaN NaN NaN E NaN NaN NaN \n",
"2 NaN NaN NaN N NaN NaN NaN \n",
"3 NaN NaN NaN N NaN NaN NaN \n",
"4 NaN NaN NaN N NaN NaN NaN \n",
"\n",
"[5 rows x 26 columns]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from datetime import datetime\n",
"\n",
"pumpkins = pd.read_csv('../../data/US-pumpkins.csv')\n",
"pumpkins.head()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Month</th>\n",
" <th>DayOfYear</th>\n",
" <th>Variety</th>\n",
" <th>City</th>\n",
" <th>Package</th>\n",
" <th>Low Price</th>\n",
" <th>High Price</th>\n",
" <th>Price</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>9</td>\n",
" <td>267</td>\n",
" <td>PIE TYPE</td>\n",
" <td>BALTIMORE</td>\n",
" <td>1 1/9 bushel cartons</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>13.636364</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>9</td>\n",
" <td>267</td>\n",
" <td>PIE TYPE</td>\n",
" <td>BALTIMORE</td>\n",
" <td>1 1/9 bushel cartons</td>\n",
" <td>18.0</td>\n",
" <td>18.0</td>\n",
" <td>16.363636</td>\n",
" </tr>\n",
" <tr>\n",
" <th>72</th>\n",
" <td>10</td>\n",
" <td>274</td>\n",
" <td>PIE TYPE</td>\n",
" <td>BALTIMORE</td>\n",
" <td>1 1/9 bushel cartons</td>\n",
" <td>18.0</td>\n",
" <td>18.0</td>\n",
" <td>16.363636</td>\n",
" </tr>\n",
" <tr>\n",
" <th>73</th>\n",
" <td>10</td>\n",
" <td>274</td>\n",
" <td>PIE TYPE</td>\n",
" <td>BALTIMORE</td>\n",
" <td>1 1/9 bushel cartons</td>\n",
" <td>17.0</td>\n",
" <td>17.0</td>\n",
" <td>15.454545</td>\n",
" </tr>\n",
" <tr>\n",
" <th>74</th>\n",
" <td>10</td>\n",
" <td>281</td>\n",
" <td>PIE TYPE</td>\n",
" <td>BALTIMORE</td>\n",
" <td>1 1/9 bushel cartons</td>\n",
" <td>15.0</td>\n",
" <td>15.0</td>\n",
" <td>13.636364</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Month DayOfYear Variety City Package Low Price \\\n",
"70 9 267 PIE TYPE BALTIMORE 1 1/9 bushel cartons 15.0 \n",
"71 9 267 PIE TYPE BALTIMORE 1 1/9 bushel cartons 18.0 \n",
"72 10 274 PIE TYPE BALTIMORE 1 1/9 bushel cartons 18.0 \n",
"73 10 274 PIE TYPE BALTIMORE 1 1/9 bushel cartons 17.0 \n",
"74 10 281 PIE TYPE BALTIMORE 1 1/9 bushel cartons 15.0 \n",
"\n",
" High Price Price \n",
"70 15.0 13.636364 \n",
"71 18.0 16.363636 \n",
"72 18.0 16.363636 \n",
"73 17.0 15.454545 \n",
"74 15.0 13.636364 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]\n",
"\n",
"new_columns = ['Package', 'Variety', 'City Name', 'Month', 'Low Price', 'High Price', 'Date']\n",
"pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1)\n",
"\n",
"price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2\n",
"\n",
"month = pd.DatetimeIndex(pumpkins['Date']).month\n",
"day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)\n",
"\n",
"new_pumpkins = pd.DataFrame(\n",
" {'Month': month, \n",
" 'DayOfYear' : day_of_year, \n",
" 'Variety': pumpkins['Variety'], \n",
" 'City': pumpkins['City Name'], \n",
" 'Package': pumpkins['Package'], \n",
" 'Low Price': pumpkins['Low Price'],\n",
" 'High Price': pumpkins['High Price'], \n",
" 'Price': price})\n",
"\n",
"new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/1.1\n",
"new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price*2\n",
"\n",
"new_pumpkins.head()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A scatterplot reminds us that we only have month data from August through December. We probably need more data to be able to draw conclusions in a linear fashion."
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='Month', ylabel='Price'>"
]
},
"execution_count": 169,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"new_pumpkins.plot.scatter('Month','Price')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: xlabel='DayOfYear', ylabel='Price'>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"new_pumpkins.plot.scatter('DayOfYear','Price')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if there is correlation:"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-0.14878293554077535\n",
"-0.16673322492745407\n"
]
}
],
"source": [
"print(new_pumpkins['Month'].corr(new_pumpkins['Price']))\n",
"print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Looks like correlation is pretty small, but there is some other more important relationship - because price points in the plot above seem to have several distinct clusters. Let's make a plot that will show different pumpkin varieties: "
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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5sxSZs68nu9975ccemg3RBzH3RbOOOMMrr32Wh577DHASb8sEnpOPGmZVRv1hg8/kZqaLyPqff755yxbtozbbrutwTZt2jSWLl3KF198wbx58zj55JMZP348AB07duThhx9ueNIAOPXUU1m8eDH79u1jx44dfP755xQWFja7V5cuXTjttNNYsGBBg+2pp55q+Fs/99xznHfeeVxyySURZ0kfffTRdOzYkc2bN0f7Z4mJDRs20KdPn4bjEfE+ymKO30gCBQXN/+H37XPsXjF5cnT21ojUqnfs5UB/YJy7bz1u1bKeQ72z2b17NytWrOCEE06IqHfZZcVs27aZnTu3ce65TohI1Vl0/eabb24IF0yZMiWixvHHH88nn3wCOD/MwZP4y8vv55JLCjnpJEdn/fr1De8Fp5AuLCxk/vz5zbRFGvXee+9VvvnNyRHTPK9evbohDFJPfUhk1apVrFq1ilGjRoVcM3DgQHbs2MG2bdvc+wljx47ltdde48UXX2TixIkR611cXNzg1NevX8+aNWsa0krX/+AWFxdHXAPhgw8+4Oijj+awww4L+/6UKVMa/jY333xzxHKEI9xnd/3111NSUsIZZ5zBHXfcEfJZxIqFeoyEk5/vxN1LSpyW/r59zrGXyyxMmODE+INWG2T48NjCPOA45EAgNDwTCEC3bjVACVDnbrjHY4HIFYqs13g8YsQIKisrKS8vbzWOu3HjOrZu/TcHDgh79uwgEOhM//6O448U6mlKcLqW3Fyn76WqynHal156I7fddhM9ezrvFwT9Src11HPDDWfw739vpEePw7j++hkR0zyrKtL0cSPIHul9IMR+ySWX8OCDD7J161buvfdefv3rX4e9ZsKECVx33XVs27aNp59+mosuuoicnBw2btzI559/zimnnIKI0L59e1auXMmwYcMAJzfR448/zj/+8Q9effXViPUOF+ppK+E+u29961sN93zllVc47rjjWLlyJfGsU2ItfiMpFBc7TmXhQmcfIYoRFytWwIIFzg/MggXOcTwceywMGuQsjj5okHMMlUDTZmuua49FL5SJEydy0003RQzz1DN16lR++cvpFBdfzDPP/BfDh9PgpNvKhx9+GJLbpWdPGnR6945eryl//esiKiurGDnyWJ59dlpEvWOPPZYPP/yQg0FxqoMHD/LRRx8xZMgQjj32WJrm6vrHP/5B586dOfTQxrTRY8aMYeXKlWzatIljjjkmYrkCgQBnn302zz//fEiYZ/78+WzevJkBAwZQUFBAZWVlSLjnxhtv5NNPP2X+/PlcccUV7N69O5Y/S0z06NGDSy+9lCeffJLRo0fz17/+NS49c/xG0sjPh9GjvW3pN2XCBPj972Nv6TelWzcnJNXYMi8Amgaq97n2WPRCufrqq5k2bRrDhw+PqPHKK69QXV3NFVdcwfTpt/Hyy8/z2Wer23T/ev7yl7/w2GOP8R//8R8h9txcJxwTFHWJiy5dAjz88APMmfMEX331VdhzBg0axHHHHceMGTMabDNmzOD4449n0KBBTJkyhXfeeYeFCxcCTqjphz/8Ibfcckszrf/+7/+O2NIPpri4mPvuu4+NGzfyjW98A3DCPK+++mpDKuxly5aFjfNfcMEFFBUVMXv27Db9DeLl//7v/9i1axcA27dv54svvqBfv35xaZrjN4yoyAfKgADQxd2X0VKYJxr69OnTMHojHLt37+ZHP/oRjzzyCCJCp06dmDlzZsNQTwiNExcWFrLX7WCZP38+hYWFHHPMMfz617/mueeeizorKTSP8d96660tnt+7d2+Ki4v57W9/C4RP81xWVsaaNWsYNGgQAwcOZM2aNZSVlQFOC/3FF19kxowZDB48mOHDhzN69OiQOtdzzjnntGkZyPHjx7N+/Xq++93vIiLuOgRrG34EAAYMGECXLl14//33m10/bdo07rvvvpCnlHqCY/xjx45ttSzBhPvsli1bRlFRESNGjODEE0/kmmuuYfTo0VHpNiXhaZlFJAdYCnypqhNEpAcwH6eJVAlcrKotdo9bWmZ/UVPjjMgpKIi/9T53Ljz9NFx8MbTQD5nQssWSltkZzVOJ8zVOXZbOHTtg61bo2hXCDI9PuV5dnTOBq1Mnp0/DSBzRpGVORot/KlARdHwr8KaqHg286R4baYKXE7H69oXLLoOXXnL2cT69JmWSWCP5wGhS6fTXrIFPPoENG5z9mjX+0lu71pmkVlnp7NeujU/P8I6EOn4R6QN8G/h9kHkSUB8cmw1MTmQZDO8Inoi1dauzLymJLQXD3Lmwbl2o7V//cuypLls6sGMHuCMZG9i2zbH7Qa+uDqqrQ23V1c0nsRmpIdEt/geAW4DgQNjh9cstuvuwg2FF5FoRWSoiS2sy9b83zfByItbTT0dnb414y5YOK9EFE5TNoE32ZOvt3Bmd3YiPaL+/CXP8IjIBqFbVZbFcr6qPqWqRqhbFM17V8A4vJ2JdfHF09taIp2x5eXnU1tamlfPv2jU6e7L1OnWKzm7EjqpSW1tLXl5em69J5ASuk4GJInIukAd0EZE5wEYR6a2qG0SkN1DdoorhG7yciDVlCvz0p054p56+fWPv4I2nbH369GHdunWk25Pljh0QPJQ8Ly/075lqvT17IHjN90MP9TZNh9FIXl5eSFqH1kjKYusicjpwkzuq526gVlXvFJFbgR6q2nxAbhA2qsdfZNqonnTm3Xfh9ddh/Hg4+WT/6VVUwOLFMGYMxDBy1IiTSKN6UuH4ewJPA/2AtcB3VDX8zA4Xc/yGYRjRE8nxJyVXj6q+Bbzlvq4FzkrGfQ3DMIzm2MxdwzCMLCOjHX8ylvqLB6/LV1EBs2c7+2zQSwZef0Z+/04aWYKq+n4bNWqURsu8eaqBgGrXrs5+3ryoJRKK1+UrLa1fN8nZSkszWy8ZeP0Z+f07aWQewFIN41OT0rkbL9F27tbUOFP2m+Y+r6ryx0gPr8tXUQFDhza3r14d20gKv+slA68/I79/J43MJJW5epJOMpb6iwevy7d4cXT2dNdLBl5/Rn7/ThrZRUY6/mQs9RcPXpdvzJjo7Omulwy8/oz8/p00souMdPz1szgDAejSxdl7vdRfPHhdviFDoGlq8tLS2MMoftdLBl5/Rn7/ThrZRUbG+Ovx+yxOr8vn9SxJv+slA68/I79/J43MIqUzd+PFZu4abcUcq2E0klWdu0Z2ktyFWAwjfTHHb2QE2bYQi2HEgzn+FOL1LM6XX4ZrrnH2idSL9T7hrps7FyZNin3lrXoSNVzy3Xfh9tudvRd4ref1Z24zi7OEcLO6/LbFMnPX73g9i3PYsNCZscOHJ0Yv1vuEu65Pn1Bb376xl7e6WlUkVE/EscfKuHGheuPHx66VCD2vP3ObWZx5EGHmbsqdelu2THP81dXOP1bwP20gELuTWrAgVKt+W7DAW73bbovtPpH0wm1z5nhb5lj/Bu+8E17vnXf8oed1fb3+Thr+IJLjt1BPCvA6LPHCC9HZY9WbPz+2+0RTjljX3PX6b/D669HZk63ndX1tZnF2kcg1d/NEZLGIfCQiq0Tkv1z7dBH5UkSWu9u5iSqDX/F6FufkydHZY9X77ndju0805Yh1zV2v/wbjx0dnT7ae1/W1mcVZRrjHAC82QIDO7utc4H3gG8B0nNW4sjbUo9oYT+3SxZt46vDhoY/p8cZ7I+nFep9w1/XtG2qLJ8YfT9kiMX58qF68MXmv9byur9ffSVUnVLR4sXchI6/1Mh2SHepx77vDPcx1N//PFksSxcVOZsaFC519cXF8eitWwIIFzhDGBQuc40ToHXFE6Hm9e8eupx5/G7zWW78+9HjDhvj0XnsN3nkHpk1z9q+9Fp+e15+5199Jr+dV2DwNDwn3a+DVBuQAy4EdwF2ubTpQCawA/gB0b00nE1v86YiXHZRz5oTX8kvnrtd62YbXncXW+RwbpKJzV1UPqGoh0AcYIyLDgN8BA4FCYANwb7hrReRaEVkqIktrbFCxL/CygzJSJ65fOne91ss2LK21v0nKqB5V3YKz2PrZqrrR/UE4CDwOhE3Oq6qPqWqRqhbl+yTpit8n83hN08k88XZQButF6sT1S+eu13r1/O53cNppzt4LvNbzakKdpbX2OeEeA7zYgHygm/s6ALwNTAB6B51zI/BUa1p+CPX4fTKP10SazNO9e2i5e/SIXa9Hj9i0IuF1Z7HXerH+7ZKl5+WEOlXvO5+9nrCWDZDsCVzACOBDnFj+SmCaa38S+Ni1vxT8QxBpS7Xj9/tkHq+JFE+NFPdurdyR9PLymtv8EgP2Wu+RR8L/7R55xB96Xve5ZNv/jF+J5PgTOapnhaoep6ojVHWYqv7StV+uqsNd+0RVjXOsROLx+2Qer4kUT40U326t3OH02rWDnJzm9/BLDNhrvUgjUGIdmeK1ntd9Ltn2P5Nu2MzdNuD3yTxeEymeGim+3Vq5w+kdPAgHDjS/h19iwF7rRRoaGeuQSa/1vO5zybb/mbQj3GOA37ZUh3pU/T+Zx2siTeaJtdzz5jmhnU6dnP28ec7Wvr1qTo6zj3fCUL1eu3be6eXkOMnecnLi1/O6T8PvfSTZ9j/jR4gQ6rEVuKLg3XedR8vx4+Hkk/2n5zXhVrPq2xfWrWs8p29fWLu2da3ycmeiUbt2Tmu/rAxuuSU2rUj06AGbN4ce19bGrtepE+zaFXq8Y0fk85Ndvlg/i2TpQfb9z/iNSCtwpbw135bNDy1+I/YOwHAdpR06xKYVCa87O++6K7zeXXf5o3xed8Z6rWf4A+Lp3BWRY0TkTRFZ6R6PEJFfePvbZPidWDsAw3WUHjwYm1Yk/N556vfOWK/1DH/T1s7dx4GfAvvAGbEDXJKoQhn+JNYOwHAdpe0ifPNi7Uz0e+ep3ztjvdYzfE64x4CmG7DE3X8YZFvelmu92DI11JOOmQtj7QAM11nsdWei152dnTqF6nXq5K/y+X3CmpF6iHMc/yYRGQhOdk0RuQgnz44RI+mauXDtWpgzByZOdPZt7fwLl/kxVq1I1NbCI4/Aqac6+3g6TsHpyL3rLigsdPbxdOwmonx33QXt2zvzIdq3d47jwevPw/AvbRrVIyJHAY8BJwGbgX8Cl6lqZUJL5+KXUT1eUVPjOOe6ukZbIOA4xFjSEnmtZ/gf+8yNthBpVE+bWvyq+g9VHYuTf+frqnpKspx+JuL3Waax0DShm5FY/PCZG+lLW0f1/FpEuqnqTlXdLiLdRWRGoguXqfh9lmm02AIZySfVn7mR3rQ1xn+OOqmVAVDVzUDWrZXrFfn5zgSmQAC6dHH2ZWWxP6J7rVdPpFZ8zc4alny5hJqdNdTUOBOz6upg61ZnX1LS9pZ/sJYXZIte/Wd+SPca8gYu4ZDuNZ585hVra5j9xhIq1tqjWybTvo3n5YjIIaq6B0BEAsAhiStW5lNcDGPHNp8Z6xe9+pm2HTo4LcuyMuce5R+XU/JSCR1yOrD3wF5+NqyMDh2KQ2LNOTnw5z/DuW7TIFKZmmqVTSqjeFjs6/1lm97ftpWz57oSONABcvbyt21lFBO73g2PlvPwv0rgYAf4y15K+5bx0PfiXH/R8CVt7dy9BZgI/C/OyJ6rgZdUdWZii+eQaZ27fidSx+GyT2oY9WR/6vY3vhFoH0Dvq2L3V6Fe/dBDYfduEHGuDf7xAKfl2/+B5lpVP6oiv1P0v1rZplextoahj/WH3KAPaV+A1ddWMaRf6vUMfxBv5+5M4A5gCHAs8KtkOX0j+UTqOFz8aSUdckLfyM3J5ef3VBIIQOfOjfbt252Y89694UNAlVvCa1VuqYytzFmmt/jTSqdlHszBXMfuAz3D37Q5LbOqvqKqN6nqf6rqa4kslJFaInUcjhlcwN4DoW/sO7CP711cQFUVPPyw09KPRPCok4Ju4bUKuhXEVuYs0xszuADaNZ0Ovc+x+0DP8DctOn4RecfdbxeRbUHbdhHZ1sq1eSKyWEQ+EpFVIvJfrr2HiLwhIp+5++7eVSe78WoN34aOw0Mat7IyGNIvn7JJZeTlBAhIF/JyApRNKiO/Uz6bNsG2bc4PRCTq6mDaNGc9101r87myWxkdJMAh2oVD2jVqxVTmTk7ZOkiA3INd6CDe6B3SztvyeaU3pF8+pX3LYF8AdneBfQFK+5bFHJYJ0dsTv57hc8JN5/ViAwTo7L7OBd4HvgHMBG517bcCd7WmlakpG7wkWWsCl5aq0rFa+dpipWO1lpa6tjCZHdu0BWnFW+Zhw0L14l2Tddw4b8vntV64zyJeVldV66zXF+vqqgTm/TCSBrGuuYvzVLCytfNa0egIfACcAHyKu84u0Bv4tLXrzfG3TLLWN42UutfLLdYyR1oPeMECb/8GflkzdvXq8HqrV8emZ2QmkRx/qzF+VT0IfCQi/aJ9mhCRHBFZDlQDb6jq+8Dh6q6z6+4Pi3DttSKyVESW1th00BZJ1vqmyUjRG2uZI60HHMkeazn8smbs4sXR2Q0jmLZ27vYGVrk5+V+q31q7SFUPqGoh0AcYIyLD2lowVX1MVYtUtSjfko+0SLLWN01Git5YyxxpPeBI9ljL4Zc1Y8eMic5uGCGEewxougHfDLe15dogjduBm7BQT0JI1vqmTeP5ccf4PSzz8OGhevHG+P2+Zmy4z8IwgiGWNXdFJA/4PjAI+BgoU9X9bflBEZF8YJ+qbnFn+r4O3OX+aNSq6p0icivQQ1VvaUnLJnC1jWStb1pR4YQUxoyBIUOa2yD867fecmYEFxfDiBGO9hFHwL//7V2ZX37ZCe9MngwTJsSv5/c1Y8N9FoZRT6QJXK05/vk4q269DZwDVKnq1DbecAQwG8jBCSk9raq/FJGewNNAP2At8B1V/aolLXP86U9wCohduyLP6DUMwztidfwfq+pw93V7YLGqHp+4YobHHH96Ey4FRDCWR94wEkOsKRsapuO0NcRjGE0JlwIiGMsjbxjJpTXHPzJ4ti4woq0zd43MpaICZs929m0hXAqIYHbvbvn9aIi2bKZnZCXhenz9ttmoHv8Q60iS4MXWc3NVO3RwNi9HpXg9yiXb9IzMg1hG9fgFi/H7g4oKGDq0uX316tARJTU1jTn4IfzrNWvglFNa1/K6bKZnZBNxpWU2DGjbbNHgZRiPPBL69GlcknHhQhg92unE/fzz6O7hRdlMzzAczPEbbaa12aJNl2FsKR+/1zNPTS8+PSO7MMdvtJkhQ6C0NNRWWtoYWohm9E5rWl6XzfQMoxGL8RtRE2m2aCzj9b2eeWp6htFITBO4/II5/vShfoZubq7zAyACeXlO2Mdm6BpGconk+NunojBG5lJcDGPHhh/JYzNzDcMfmOM3PCc/P9TJm8M3DH9hnbuGYRhZhrX4jaQRaWKXPREYRnIxx28kBUvLbBj+wUI9RsKJZmKXYRiJJ2GOX0T6isgiEakQkVUiMtW1TxeRL0Vkubudm6gyGMmjpgaWLAnvwC0ts2H4i0S2+PcD/6mqQ4BvANeLSH1aqftVtdDd/pzAMhhJIDg/T//+znEwraVl3revMe5vGEbiSZjjV9UNqvqB+3o7UAEcmaj7GamhaRgnXOgmP9+J4wcC0KWL08Lv0MF5HQg471kHr2Ekj6TE+EWkADgOeN81lYrIChH5g4h0j3DNtSKyVESW1lgA2LeEC+OEC90UFzvpGhYuhC+/hHXrnNdVVdaxaxjJJuEpG0SkM/AX4A5V/aOIHA5sAhT4FdBbVa9uScNSNviXcPl5bA1dw/AHKcnHLyK5wHPAXFX9I4CqblTVA6p6EHgcsESyaUzTME5LoZvgZQJtyUDDSB0JG8cvIgKUARWqel+QvbeqbnAPzwdWJqoMRnJomp8nnNO/4QZ4+OHw15eWwkMPJbKEhmEEk7BQj4icArwNfAwcdM0/A4qBQpxQTyXwvaAfgrBYqCe9ibRMYDC2ZKBheE/Ss3Oq6juAhHnLhm9mGW1ZDnDxYnP8hpEsbOaukXDashygLRloGMnDHL+RcMItExiMLRloGMnFkrQZSeGhh+C66xqXCQRbMtAwUoU5fiNpDBkS6uTN4RtGarBQj2EYRpZhjt8wDCPLMMdvRKalXMt+0DMMIybM8RvhaS3Xcqr1DMOImYQnafMCm7mbZLzOvGaZ3AwjJaQkSZuRprQ113Kq9AzDiAtz/EZzwi2ZFc8yWV7rGYYRF+b4jeZEk2s5FXqGYcSFxfiNyNTUtJxrOdV6hmG0SNKzcxoZQH6+tw7aa71w+P3HyvRMzw+oqu+3UaNGqWG0yrx5qoGAateuzn7ePNMzvfTV8wBgqYbxqQlz1kBfYBFQAawCprr2HsAbwGfuvntrWub4jVaprnb+2aBxCwQcu+mZXrrpeUQkx5/Izt39wH+q6hDgG8D1IjIUuBV4U1WPBt50j7MTv8+MTaeZtn4fgmp6pucjEub4VXWDqn7gvt6O0/I/EpgEzHZPmw1MTlQZfI3fZ8am20xbvw9BNT3T8xPhHgO83oACYC3QBdjS5L3NrV2fcaEevz9m+vSxtVXqY6xdungbszU900uFngcQIdST8OGcItIZ+Atwh6r+UUS2qGq3oPc3q2r3MNddC1wL0K9fv1FVVVUJLWdSWbLEaUlv3dpo69IFFi6E0aMzTy+Z+H2UhumZXhKJNJwzoY5fRHKBl4HXVPU+1/YpcLqqbhCR3sBbqjq4JZ2MG8fv91w4llvHMDKCpOfqEREByoCKeqfv8hJwpfv6SuDFRJXBtwTPZO3UyduZsV7q5eU5enl5oXqxdvqGu87vHdKmZ2QgiRzVczJwOXCmiCx3t3OBO4FxIvIZMM49zk7qn7a8euryWk8kdA+xd/qGu87vHdKmF5+e4V/CBf79tlnnrk/0Vq+O7T6R9PLy0u9vYHpGGkEKxvGnHr8+BidqDHEvoAhnnwi9xYtjK3e4+rZrBzk50WtFcw/TS52e4Wsy1/H7+TG4oCC04xRg9+74xhBP2A5VOHOhq4AJO7zXGzMmtrHK4eq7dy8cOBC9Vkv38PO47GzTM/xNuMcAv21Rh3r8/hhcXa2amxuql5sbu17NatWdTf5sO3HsXuvFMlY5Un3/53/8PY7a9OLTM1IOEUI9mZmds/6xNbiVWf/YGstIl0TodewYOk4+EIhdr3qxMyc6mH2uvdcQb/WKr4SxY6Mbqxypvscf7wwR9Wrcc3Fx9GUzvcTpGb4lMx2/3x+DvdY7bAzkNrHluvZE6EWbXrml+vo99bPpGRlIZsb4WxuHHqueX1ek6jUEPiyFXcBWnP2HpbG19hOh5/U8A8Mw4iIzHX894cahx0pxsROWWLjQ2RcX+0tv7Ukw+BA4L8/Zrz3JX3rg/TyDZODXkWHZqmd4Q7jAv9+2lHfu+p106MxOx8/D7wt1ZJueETUkeyEWL7eoHf/ixc6XLdjRdOni2DMRr+vrd71k4Pcfv2zTM2IikuPPzFBPosYk+/UxONmdz9GWuyU9j/+mL8/dzDWTqnl57ub4hNyRXBUMZjZXUMFgf02QyjY9w1vC/Rr4bYspZUOixjj79TF42LDQ1tXw4fHpjRsXqjd+fHzlLi0N1Sst9fxvMKxPrcLBhm1439rYxaqrtbTdb0P0Sts97J8WcLbpGTFBVoV66qmudsIJ8X7Z/P5P8c47oVr12zvvxKa3enVkPZ/m6lkw5yvXQQdLHtQFc76KSc/5EzTXWx3jnDhVDf/jFw9+n8BlE8JSTiTHn5mhnnry852FQ+IdNuj3x+DXX4/O3hqLF0fW82munhfm7IjK3hqLF26Lyt4qNTXOENZgysriC3H5faSZ13qGZ2S24/cKv0/gGj8+OntrjIkw8Wv8eNi1K9RWV9e2XD1791JDL5ZQRA294OBB2Lkz9Lxt22L+G0w+aWNU9tYYc3j4Fd8i2VslUTFvrxo36aJneII5/rbg9wlcJ5/c3MmPH+/YY6FXL2jfZFJ3+/bQo0fzORFtmSORn095yRv0p4pxLKQ/VZSf+0T4c9esianIE477N8NZDmjDNpzlTDju3zHpDelYRSkPhuiV8iBDOsbo+BM14GDuXJg0ydl7wcsvwzXXOHsvePdduP12Z+9HvYoKmD3b2WeDXj3h4j9+23yTj9+rPoNE6b3zjuq0abHH9uuJNPxy1izVnJxQe05Oq8Myw4b42+/Rano170eYNi22Mk+bpgq6gLO1hEd1AWd7oreawTqLK3Q1g+PTU1Xt3j20rj16xK6lqtqnT6he377x6SVrgIBf9Lzuc/GhHsnu3AX+AFQDK4Ns04EvgeXudm5btHzj+LOFSJ2xc+Y0d9SgumBBi3Jhf0cCe3QxRc215syJrcyRymZ6bWPBgpg+24h4PeAgWQMYYu2996leJMefyFDPLODsMPb7VbXQ3f6cwPsbsRIpFBUpDLNkSYtyYaMcB9pRQGXzk/fvj6nIEa/zi97TT0dnT7beCy9EZ28NrwccJGsAQyR7uus1IWGOX1X/CnyVKH0jwRQXwxtvwI9+5OyLi2PuRG74Hck7SJfAXgJ5Bym749/ks6n5yZE6llsj0nV+0bv44ujsrXF2uDZVC/bWmDw5OntreD3gIFkDGPzyffFarynhHgO82oACmod6KoEVOKGg7i1cey2wFFjar1+/6B6TjPiJFF8cPz7U3tY4a2mpVtNLF1PkxPZLS30ZE02oXt++oXrxxOQXLw4fCognDcbw4aFa8cb4Y/2uJEvP79+XdIzxa3jHfziQg/OkcQfwh7boWIw/ybQWX5wzR3XixLbHk1vSW7BAtaQk9lhyU/yud9ddqoWFzj4eEjUz9pFHVE891dl7QbTflWTr+f37EueADV84/ra+13Qzx59kZs0K76hnzYqtFRJJ76yzfNdCSis9G+WS2XoepDTxheMHege9vhF4qi065viTTKQWeqSRH62NNIik58NREKZner7Q8+iJLpLjT1jnroiUA+8Bg0VknYiUADNF5GMRWQGc4Tp/w28MGQKlpaG20lKorQ1/fmsjDcLpnXVWbFqR8PuoCtMzvWhIcHbThK25q6rhEnOUhbEZfuShh+C665wv7pgxjvOONHuwLSMNTjoJfv97Z6avqjP65M03Y9OKpgymZ3rpqJeomd71hHsM8NtmoR6fUF2t2q5d6ONnu3axZ+csKQm1xRMTjbVspteI30fh+F3Ph9lXycrsnIa3VFbCoYeG2jp3ji07Z24ufO97sHo1zJrl7B96KPllMz2Hmhp4++1Q29tvx549NNv0wPn+evV9hoRmN01YqMfIQGJ9/Gzpuvx8J4yUqrKZnkP9j3NdXaOtPqYcS/LAbNOrZ8gQb77P9eTnJySzqbX4jbYTa1ZRr7ORJuMe2abn9x8mv+ulG+HiP37bLMbvM2LNKup1NtJk3COb9Py+Apff9XwIEWL84rznb4qKinTp0qWpLoZhZD41NU64oz4MZ3ppjYgsU9WipnaL8RtGS2S4Y2iG1zHlbNNLEyzGbxiRKC+H/v1h3DhnX16e6hIZhieY4zeMcNTUQEmJM+pj61ZnX1IS33A/w/AJ5vgNIxwJnjJvGKnEHL9hhCPbh/sZGY05fsMIR6LmHlRUwOzZkfMepVqvpsZZStNCWhmNOX7DiITXU+ZvuAGGDoWrrnL2N9zgLz3rzM4abBy/YSSDigrHOTdl9erYpvh7rVdT4zj74BQGgYDzg5eFwx0zhUjj+K3FbxjJIMvzvxv+IpELsfxBRKpFZGWQrYeIvCEin7n77om6v2H4imzP/274ikS2+GcBZzex3Qq8qapHA2+6x4aR+URa1SzWTI5e6yUjkZ7hGxIa4xeRAuBlVR3mHn8KnK6qG0SkN/CWqg5uTcdi/EbGUFERuqqZ3/SyLUVFhhMpxp9sx79FVbsFvb9ZVcOGe0TkWuBagH79+o2qqqpKWDkNwzAykbTr3FXVx1S1SFWL8q3lYRiG4RnJdvwb3RAP7r46yfc3DMPIepLt+F8CrnRfXwm8mOT7G4ZhZD2JHM5ZDrwHDBaRdSJSAtwJjBORz4Bx7rFhGIaRRBK2EIuqRprfflai7mkYhmG0TlqkbBCRGiCRw3p6AZsSqO8HMr2OmV4/sDpmCsmsY39VbTY6Ji0cf6IRkaXhhjxlEplex0yvH1gdMwU/1NG3wzkNwzCMxGCO3zAMI8swx+/wWKoLkAQyvY6ZXj+wOmYKKa+jxfgNwzCyDGvxG4ZhZBnm+A3DMLKMjHf8ItJXRBaJSIWIrBKRqU3ev0lEVER6Bdl+KiKfi8inIvKt5Jc6Olqqo4jc4NZjlYjMDLJnRB1FpFBE/i4iy0VkqYiMCbom3eqYJyKLReQjt47/5dojLmCUTnVsoX53i8gnIrJCRJ4XkW5B16RN/SByHYPe94e/UdWM3oDewPHu60OBNcBQ97gv8BrO5LBerm0o8BFwCDAA+ALISXU9YqkjcAawEDjEfe+wDKzj68A5rv1cnDUe0rWOAnR2X+cC7wPfAGYCt7r2W4G70rGOLdRvPNDetd+VrvVrqY7usW/8Tca3+FV1g6p+4L7eDlQAR7pv3w/cAgT3cE8CnlLVPar6T+BzIMb17JJDC3X8AXCnqu5x36vPhppJdVSgi3taV2C9+zod66iqusM9zHU3xanLbNc+G5jsvk6rOkaqn6q+rqr7XfvfgT7u67SqH7T4GYKP/E3GO/5g3IVhjgPeF5GJwJeq+lGT044E/hV0vI7GHwrfE1xH4BjgVBF5X0T+IiKj3dMyqY4/Au4WkX8B9wA/dU9LyzqKSI6ILMdJWf6Gqr4PHK6qG8D5AQQOc09PuzpGqF8wVwOvuK/Trn4Qvo5+8zdZ4/hFpDPwHI6j2A/8HJgW7tQwtrQY8xpcR1XdhpOErzvO4/TNwNMiImRWHX8A3KiqfYEbgbL6U8Nc7vs6quoBVS3EafWOEZFhLZyednVsqX4i8nOc/8259aZwEgkvZJyEqeMIfOZvssLxi0gujrOYq6p/BAbixNM+EpFKnA/oAxE5AucXt2/Q5X1oDB/4ljB1BKcuf3QfPxcDB3ESRGVSHa8E6l8/Q+NjclrWsR5V3QK8BZxN5AWM0raOTeqHiFwJTACmqBv8Jo3rByF1nITf/E0qO0KSseH8oj4BPNDCOZU0drYcS2hnyz9Ijw6lZnUEvg/80n19DM4jpWRYHSuA093XZwHL0vhzzAe6ua8DwNs4zvBuQjt3Z6ZjHVuo39nAaiC/yflpVb+W6tjknJT7m4Tl4/cRJwOXAx+7cTeAn6nqn8OdrKqrRORpnC/ifuB6VT2QlJLGTtg6An8A/iAiK4G9wJXqfNsyqY7/AfxGRNoDu4FrIW0/x97AbBHJwXkaf1pVXxaR93DCdCXAWuA7kJZ1jFS/z3Ec3xtOJJK/q+r307B+EKGOkU5OVR0tZYNhGEaWkRUxfsMwDKMRc/yGYRhZhjl+wzCMLMMcv2EYRpZhjt8wDCPLMMdvZCwicsDN2rnKzZb4YxGJ+TsvIqe4mRc/cbdrg97Ld1NjfChOFtEfBL13gpt5MhuGTxtpgH0RjUymTp2p84jIYcA8nERut0cr5M6ynAdMVtUP3LS6r4nIl6r6J5zJY5+o6pUicjjwnog8C9QCDwPXaWMismjvLThDrw/Gcr1hNMXG8RsZi4jsUNXOQcdHAUtw0lb0B54EOrlvl6rq30TkSeBZVX3RvWYuMB8YjZN8cVqQ3lnAdOAG4CWcmZpfAicC/8+9ZgkwCmdi2Z3A6TiTlX6rqo+6uYdexMmplAv8QlVfdBPRvQIscvUmq2qVl38fI3sxx29kLE0dv2vbDHwd2A4cVNXdInI0UK6qRSLyTZykb5NFpCuwHDgaeBqYXf+D4Gp1Bf6pqj1E5CqgSFVL3ffaAe/hZNIsAi7EWQ9hhogcAryLMwP3X0BHVd3mPkX83b1ff5zp+yep6t8T8gcyshYL9RjZRn02xFzgYREpBA7g5DJCVf8iIr91Q0MXAM+p6n433BKulRS25aSqB0XkUZwfg1oRGQ+MEJGL3FO64jj4dcCvReQ0nCR6RwKHu+dUmdM3EoE5fiNrcEM9B3CyW94ObARG4gxy2B106pPAFOASnPzwAKtwWu4vBZ03CifHSiQOuhs4Pzg3qOprTcp0FU5ir1Gqus/N3pjnvr2z7bUzjLZjo3qMrEBE8oH/AR52E9V1BTa4HaaXAzlBp8/CWbcBVV3l2n4LXOU+ISAiPXGWCZxJ23gN+IGbWhoROUZEOrnlqHad/hk4IR7DSCjW4jcymYCbyTMXJ/Phk8B97nuPAM+JyHdwOlAbWtequlFEKoAXgmwbROQy4HERORSnBf+Aqi5oY1l+DxTg5GEXoAZnCcW5wAIRWYrTn/BJLBU1jGiwzl3DaIKIdAQ+xlncfWuqy2MYXmOhHsMIQkTG4rS6HzKnb2Qq1uI3DMPIMqzFbxiGkWWY4zcMw8gyzPEbhmFkGeb4DcMwsgxz/IZhGFnG/wfSVo6szTyIxgAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"ax=None\n",
"colors = ['red','blue','green','yellow']\n",
"for i,var in enumerate(new_pumpkins['Variety'].unique()):\n",
" ax = new_pumpkins[new_pumpkins['Variety']==var].plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='Variety'>"
]
},
"execution_count": 173,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the time being, let's concentrate only on one variety - **pie type**."
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-0.2669192282197318\n"
]
},
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='DayOfYear', ylabel='Price'>"
]
},
"execution_count": 174,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']\n",
"print(pie_pumpkins['DayOfYear'].corr(pie_pumpkins['Price']))\n",
"pie_pumpkins.plot.scatter('DayOfYear','Price')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Linear Regression\n",
"\n",
"We will use Scikit Learn to train linear regression model:"
]
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean error: 2.77 (17.2%)\n"
]
}
],
"source": [
"X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)\n",
"y = pie_pumpkins['Price']\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n",
"lin_reg = LinearRegression()\n",
"lin_reg.fit(X_train,y_train)\n",
"\n",
"pred = lin_reg.predict(X_test)\n",
"\n",
"mse = np.sqrt(mean_squared_error(y_test,pred))\n",
"print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1a3232f8dc0>]"
]
},
"execution_count": 177,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(X_test,y_test)\n",
"plt.plot(X_test,pred)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The slope of the line can be determined from linear regression coefficients:"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([-0.01751876]), 21.133734359909326)"
]
},
"execution_count": 178,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lin_reg.coef_, lin_reg.intercept_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can use the trained model to predict price:"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([16.64893156])"
]
},
"execution_count": 179,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Pumpkin price on programmer's day\n",
"\n",
"lin_reg.predict([[256]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Polynomial Regression\n",
"\n",
"Sometimes the relationship between features and the results is inherently non-linear. For example, pumpkin prices might be high in winter (months=1,2), then drop over summer (months=5-7), and then rise again. Linear regression is unable to fin this relationship accurately.\n",
"\n",
"In this case, we may consider adding extra features. Simple way is to use polynomials from input features, which would result in **polynomial regression**. In Scikit Learn, we can automatically pre-compute polynomial features using pipelines: "
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean error: 2.73 (17.0%)\n",
"Model determination: 0.07639977655280217\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1a323368ac0>]"
]
},
"execution_count": 180,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.pipeline import make_pipeline\n",
"\n",
"pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())\n",
"\n",
"pipeline.fit(X_train,y_train)\n",
"\n",
"pred = pipeline.predict(X_test)\n",
"\n",
"mse = np.sqrt(mean_squared_error(y_test,pred))\n",
"print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n",
"\n",
"score = pipeline.score(X_train,y_train)\n",
"print('Model determination: ', score)\n",
"\n",
"plt.scatter(X_test,y_test)\n",
"plt.plot(sorted(X_test),pipeline.predict(sorted(X_test)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Encoding varieties\n",
"\n",
"In the ideal world, we want to be able to predict prices for different pumpkin varieties using the same model. To take variety into account, we first need to convert it to numeric form, or **encode**. There are several way we can do it:\n",
"\n",
"* Simple numeric encoding that will build a table of different varieties, and then replace variety name by an index in that table. This is not the best idea for linear regression, because linear regression takes the numeric value of the index into account, and the numeric value is likely not to correlate numerically with the price.\n",
"* One-hot encoding, which will replace `Variety` column by 4 different columns, one for each variety, that will contain 1 if the corresponding row is of given variety, and 0 otherwise.\n",
"\n",
"The code below shows how we can can one-hot encode a variety:"
]
},
{
"cell_type": "code",
"execution_count": 181,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>FAIRYTALE</th>\n",
" <th>MINIATURE</th>\n",
" <th>MIXED HEIRLOOM VARIETIES</th>\n",
" <th>PIE TYPE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>72</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>73</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>74</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1738</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1739</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1740</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1741</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1742</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>415 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" FAIRYTALE MINIATURE MIXED HEIRLOOM VARIETIES PIE TYPE\n",
"70 0 0 0 1\n",
"71 0 0 0 1\n",
"72 0 0 0 1\n",
"73 0 0 0 1\n",
"74 0 0 0 1\n",
"... ... ... ... ...\n",
"1738 0 1 0 0\n",
"1739 0 1 0 0\n",
"1740 0 1 0 0\n",
"1741 0 1 0 0\n",
"1742 0 1 0 0\n",
"\n",
"[415 rows x 4 columns]"
]
},
"execution_count": 181,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.get_dummies(new_pumpkins['Variety'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Linear Regression on Variety \n",
"\n",
"We will now use the same code as above, but instead of `DayOfYear` we will use our one-hot-encoded variety as input:"
]
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {},
"outputs": [],
"source": [
"X = pd.get_dummies(new_pumpkins['Variety'])\n",
"y = new_pumpkins['Price']"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean error: 5.24 (19.7%)\n",
"Model determination: 0.774085281105197\n"
]
}
],
"source": [
"def run_linear_regression(X,y):\n",
" X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n",
" lin_reg = LinearRegression()\n",
" lin_reg.fit(X_train,y_train)\n",
"\n",
" pred = lin_reg.predict(X_test)\n",
"\n",
" mse = np.sqrt(mean_squared_error(y_test,pred))\n",
" print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n",
"\n",
" score = lin_reg.score(X_train,y_train)\n",
" print('Model determination: ', score)\n",
"\n",
"run_linear_regression(X,y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also try using other features in the same manner, and combining them with numerical features, such as `Month` or `DayOfYear`:"
]
},
{
"cell_type": "code",
"execution_count": 184,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean error: 2.84 (10.5%)\n",
"Model determination: 0.9401096672643048\n"
]
}
],
"source": [
"X = pd.get_dummies(new_pumpkins['Variety']) \\\n",
" .join(new_pumpkins['Month']) \\\n",
" .join(pd.get_dummies(new_pumpkins['City'])) \\\n",
" .join(pd.get_dummies(new_pumpkins['Package']))\n",
"y = new_pumpkins['Price']\n",
"\n",
"run_linear_regression(X,y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Polynomial Regression\n",
"\n",
"Polynomial regression can also be used with categorical features that are one-hot-encoded. The code to train polynomial regression would essentially be the same as we have seen above."
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean error: 2.23 (8.25%)\n",
"Model determination: 0.9652870784724543\n"
]
}
],
"source": [
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.pipeline import make_pipeline\n",
"\n",
"pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n",
"\n",
"pipeline.fit(X_train,y_train)\n",
"\n",
"pred = pipeline.predict(X_test)\n",
"\n",
"mse = np.sqrt(mean_squared_error(y_test,pred))\n",
"print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n",
"\n",
"score = pipeline.score(X_train,y_train)\n",
"print('Model determination: ', score)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.1"
},
"metadata": {
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"orig_nbformat": 2,
"vscode": {
"interpreter": {
"hash": "72b2382ece9768098284d92bbc69d35954e75b60d1e25897d1389c232f4796f0"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}