Skip to content

Instantly share code, notes, and snippets.

@deepnarainsingh
Created March 26, 2016 22:47
Show Gist options
  • Save deepnarainsingh/7ca31f0eaeded23abd68 to your computer and use it in GitHub Desktop.
Save deepnarainsingh/7ca31f0eaeded23abd68 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 142,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn import linear_model\n",
"from sklearn.cross_validation import train_test_split\n",
"from sklearn.metrics import mean_squared_error\n",
"import matplotlib.pyplot as plt\n",
"from datetime import datetime\n",
"from sklearn.grid_search import GridSearchCV\n",
"from sklearn.ensemble import RandomForestRegressor\n",
"from sklearn.svm import SVR\n",
"from sklearn.ensemble import GradientBoostingRegressor\n",
"import csv\n",
"from sklearn import cross_validation\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def agg_competitor(data, index_start, index_end, skip):\n",
" copy = data.copy()\n",
" copy['Competitor'] = copy.iloc[:,1].map(lambda x: 0)\n",
" i=index_start\n",
" while i < index_end:\n",
" copy.ix[:,i] = ~copy.ix[:,i].isnull()*1\n",
" copy['Competitor'] = copy.iloc[:,i] + copy['Competitor']\n",
" i=i+skip\n",
" return copy['Competitor']\n",
"\n",
"p_mol_mean_price_pre_loe = {}\n",
"\n",
"def max_price_per_presentation():\n",
" data = pd.read_csv('data/data.csv')\n",
" return data['Winning_price_per_standard_unit'].max() \n",
"\n",
"def days_since_loe(molecule_name, start_date):\n",
" if molecule_name =='Molecule3':\n",
" return float((start_date - datetime(2009,3,1,0,0,0)).days)\n",
" else:\n",
" return float((start_date - datetime(2011,1,1,0,0,0)).days)\n",
"\n",
"def build_presentation_price_dict():\n",
" data = pd.read_csv('data/data.csv')\n",
" p_presentation_dict_train = {}\n",
" for item in data['Presentation'].unique():\n",
" row = data.ix[data[data['Presentation'] == item]['Winning_price_per_standard_unit'].idxmax()]\n",
" p_presentation_dict_train[row['Presentation']] = row['Winning_price_per_standard_unit']\n",
" return p_presentation_dict_train\n",
"\n",
"def transform_length_of_contract(row):\n",
" value = 0\n",
" if(row['Length_of_contract_in_Months'] < 12):\n",
" value = np.log(row['Length_of_contract_in_Months'])\n",
" return value\n",
"\n",
"def apply_featur_for_no_competition(row):\n",
" value = 0\n",
" if(row['Competitor'] == 0):\n",
" value = p_presentation_dict_train[row['Presentation']]\n",
" return value\n",
"\n",
"def impute_competitor_price(row):\n",
" if pd.isnull(row['Competitor_2nd_Lowest_Price_per_standard_unit']):\n",
" return 0\n",
" return row['Competitor_2nd_Lowest_Price_per_standard_unit']\n",
"\n",
"def process_df(file, cols, is_test):\n",
" copy =pd.read_csv(file)\n",
" copy['Start_date'] = pd.to_datetime(copy['Start_date'])\n",
" copy['End_date_including_extension'] = pd.to_datetime(copy['End_date_including_extension'])\n",
" if is_test == False:\n",
" copy = copy[copy['ID'] != 680]\n",
" copy['Competitor'] = agg_competitor(copy, 16, 34, 2)\n",
" copy = copy[cols]\n",
" copy['Competitor_2nd_Lowest_Price_per_standard_unit'] = copy.apply(lambda row: impute_competitor_price(row), axis=1)\n",
"#only drop for train data\n",
" if is_test == False:\n",
" copy = copy.dropna()\n",
" copy.loc[:,'Tenure'] = copy.apply(lambda row: days_since_loe(row['Molecule'], row['Start_date'])/30, axis=1)\n",
" copy['Feature_No_Competition'] = copy.apply(lambda x: apply_featur_for_no_competition(x),axis=1)\n",
" copy.loc[:,'Presentation'] = copy.apply(lambda row: p_presentation_dict_train[row['Presentation']], axis=1)\n",
"# copy['Feature_Small_Contract'] = copy.apply(lambda x: transform_length_of_contract(x),axis=1)\n",
" copy.loc[:,'Contract_Length'] = copy.apply(lambda row: (row['End_date_including_extension'] - row['Start_date']).days/30 , axis=1)\n",
" copy.loc[:,'Length_of_contract_in_Months'] = copy.apply(lambda row: np.log(1./row['Length_of_contract_in_Months']), axis=1)\n",
" copy.loc[:,'Tender_Standard_Unit_per_year'] = copy.apply(lambda row: np.log(row['Tender_Standard_Unit_per_year']), axis=1)\n",
"#only drop for train data\n",
" if is_test == False:\n",
" copy=copy[copy['Tenure'] >= 0]\n",
" copy.loc[:,'Tenure'] = copy.apply(lambda row: np.log(row['Tenure']), axis=1)\n",
" copy = copy.drop(['Molecule', 'Start_date', 'End_date_including_extension', 'Account','Province', 'Tender_Type', 'Contract_Length'],1)\n",
" return copy\n",
"\n",
"def generate_feature(is_test):\n",
" col=['Molecule','Account','Winning_price_per_standard_unit','Province','Region','Tender_Type', 'Tender_Standard_Unit_per_year', 'Length_of_contract_in_Months', 'Presentation', 'Start_date', 'End_date_including_extension', 'Competitor', 'Competitor_2nd_Lowest_Price_per_standard_unit']\n",
" file_location = 'data/data.csv'\n",
" if is_test:\n",
" col=['Molecule','Account','Province','Region','Tender_Type', 'Tender_Standard_Unit_per_year', 'Length_of_contract_in_Months', 'Presentation', 'Start_date', 'End_date_including_extension', 'Competitor','Competitor_2nd_Lowest_Price_per_standard_unit']\n",
" file_location = 'data/CAX_Bidding_TEST_Molecule_6_Post_LOE.csv'\n",
" data = process_df(file_location, col, is_test)\n",
" return data.copy()\n",
"\n",
"def prepare_model_X(data):\n",
" data=pd.get_dummies(data)\n",
" y=data.as_matrix()[:,0]\n",
" X=data.as_matrix()[:,1:]\n",
" return X,y\n",
"\n",
"def run_linear_reg(X_train, X_test, y_train, y_test):\n",
" reg=linear_model.LinearRegression()\n",
" reg.fit(X_train,y_train)\n",
" print \"Score:\" , reg.score(X_test,y_test)\n",
" print \"MSE:\", mean_squared_error(y_test,reg.predict(X_test))\n",
" plot_scatter(y_test, reg.predict(X_test))\n",
" return reg\n",
"\n",
"def run_gradient_boost(X_train, X_test, y_train, y_test):\n",
" # Fit regression model\n",
" params = {'n_estimators': 500, 'max_depth': 6, 'min_samples_split': 3,\n",
" 'learning_rate': 0.01, 'loss': 'ls'}\n",
" clf = GradientBoostingRegressor(**params)\n",
" clf.fit(X_train, y_train)\n",
"\n",
" print \"mse:\", mean_squared_error(y_test, clf.predict(X_test))\n",
" print \"score:\", clf.score(X_test, y_test)\n",
" plot_scatter(y_test, clf.predict(X_test))\n",
" plot_gb(params, clf)\n",
" return clf\n",
"\n",
"def plot_gb(params, clf):\n",
" test_score = np.zeros((params['n_estimators'],), dtype=np.float64)\n",
" for i, y_pred in enumerate(clf.staged_predict(X_test)):\n",
" test_score[i] = clf.loss_(y_test, y_pred)\n",
" plt.figure(figsize=(12, 6))\n",
" plt.subplot(1, 2, 1)\n",
" plt.title('Deviance')\n",
" plt.plot(np.arange(params['n_estimators']) + 1, clf.train_score_, 'b-',\n",
" label='Training Set Deviance')\n",
" plt.plot(np.arange(params['n_estimators']) + 1, test_score, 'r-',\n",
" label='Test Set Deviance')\n",
" plt.legend(loc='upper right')\n",
" plt.xlabel('Boosting Iterations')\n",
" plt.ylabel('Deviance')\n",
" \n",
"def plot_scatter(y_test, y_pred):\n",
" fig, ax = plt.subplots()\n",
" ax.scatter(y_test, y_pred)\n",
" ax.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=4)\n",
" ax.set_xlabel('Measured')\n",
" ax.set_ylabel('Predicted')\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#prepare some globals.\n",
"p_presentation_dict_train = build_presentation_price_dict()\n",
"max_presentation_train = max_price_per_presentation()"
]
},
{
"cell_type": "code",
"execution_count": 145,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"639 9\n",
"152 9\n"
]
}
],
"source": [
"#generate features\n",
"features = generate_feature(False)\n",
"print features.shape[0], len(features.columns)\n",
"feature_test = generate_feature(True)\n",
"print feature_test.shape[0], len(features.columns)"
]
},
{
"cell_type": "code",
"execution_count": 146,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Shape Y: (639,)\n",
"Shape X: (639, 27)\n"
]
}
],
"source": [
"train_input = prepare_model_X(features)\n",
"print \"Shape Y:\", train_input[1].shape\n",
"print \"Shape X:\", train_input[0].shape\n",
"X_train,X_test,y_train,y_test=train_test_split(train_input[0], train_input[1], test_size=0.33, random_state=42)\n",
"\n",
"feature_test=pd.get_dummies(feature_test)\n",
"X_test_mtx=feature_test.as_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Score: 0.780837017382\n",
"MSE: 1.54125793516\n"
]
},
{
"data": {
"image/png": "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\n5f4//O/z6YHkPukAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c8aae10>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"mse: 0.665170480174\n",
"score: 0.905414439038\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10dcbe090>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n48aNWb16NWvXrmXt2rWsW7eOWbNmATXPv/HNN98wffr0spESXbt25Y033ii7xtq1a9m4cWNZ0B81\nahRjx45l8uTJbN68mSOOOKLSckePHs3JJ5/M0qVL+eGHH7jssssoKSmJqk5dunRhwYIFu+zv2rUr\nhx9++E51Kyoq2qUfOpGSH3xBD90kraxfv54mTZrQvHlz1qxZs9MDoETp1q0bgwYNYsyYMWzbto3J\nkyfzyiuvVBkon3rqKV577TWKioooKSnh9ddfZ/bs2Rx88MG0b9+e4cOHc91115V9v3DhQiZOnAiE\nh3NLly5l27Zt1dap9D+bjRs3MmHCBE466SQOPvjgshEPl112GbfcckvZfxKrVq1i/PjxZecfe+yx\nLF68mDvuuKPaYXDr16+nRYsWNGrUiClTpvD8889H/R/ERRddxG233caCBQtwdz777DPWrFnD8ccf\nz/z583n22WfZtm0b27Zt45NPPmHevHlRlRsPCr4iu1HxH/o111zDpk2baN26NUOHDuWYY46pMhhU\nfKBWWXnRHvvcc88xefJkWrVqxW233cZZZ521U3dIeXl5edx1111069aNFi1acNNNN/Hggw8ydOhQ\nAJ5++mm2bt1Kv379aNmyJWeccQbLly8H4Kc//Sn77rsv7du3r7RrpNSVV15JXl4e7du359prr+WM\nM87YaXTG1VdfzYknnsjw4cPJy8tjyJAhTJkypez7Ro0aceqpp/LOO+8wevToKu/7b3/7G7fffjt5\neXn87ne/46yzzorq5wlw3XXXceaZZzJ8+HCaN2/OxRdfzObNm2nWrBlvvfUW48aNo1OnTnTo0IGb\nb745buOUo5H8rGbucPHFcOCBcNllSauL1A1lNYufs846i379+nHHHXckuyoZLzOzmgF06qThZiK7\nMXXqVBYuXFjWjTB+/HhOPvnkZFdLaij5ox0AOnfWahYiu7F8+XJOPfVUVq9eTZcuXXjwwQfp379/\nsqslNZQa3Q5vvAF//CO89VbS6iJ1Q90Oko4yu9shMuVPRKQ+SI3g27mz+nxFpF5JjeC7556wfTsU\nFia7JiIidSI1gq+ZWr8iUq+kRvAFDTcTkXoldYJv58566CaSJvbbb7+y6chSMwq+IsR3GSHYOUl6\nVR577DH69u1bNkX3uOOOK8vGVZ2CggK6dOlS7THnn38+jRs3Ji8vj7y8PPbff39uueUWCuP0XOXz\n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\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ccf0dd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"linear_reg = run_linear_reg(X_train, X_test, y_train, y_test)\n",
"gradient_boost = run_gradient_boost(X_train, X_test, y_train, y_test)"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEPCAYAAABP1MOPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VPW9//HXJ4FIZLkYZSuKImqrBgX1QVut1/TWgNdi\nKsWr1fY2tVZ6f7WiNbagYEWBq13ApXurQrDautBUlltCbA1VrFIX1qt1Qe3VAhWJVgrI9vn9cc6E\nyWSAJMzMmZN5Px+PeTDne87MfDLG88l3N3dHREQKV1HUAYiISLSUCERECpwSgYhIgVMiEBEpcEoE\nIiIFTolARKTAZT0RmFk3M3vazJab2WozmxKWl5lZg5m9ZGaLzax3tmMREZHWLBfzCMzsYHffYmZd\ngCeAq4CxwEZ3/66ZTQAOcfeJWQ9GRERayEnTkLtvCZ+WAF0BB6qA2rC8Fjg/F7GIiEhLOUkEZlZk\nZsuBDcBid18G9HP3DeElG4B+uYhFRERaylWNYLe7DwMOBz5qZuUp552gliAiIjnWJZcf5u7vmdlj\nwChgg5n1d/f1ZjYA+Hvq9Wam5CAi0gHubm29Nhejhg5LjAgys1KgEngBmAdUh5dVA79N93p3j+3j\nxhtvjDyGQo0/zrEr/ugfcY+/vXJRIxgA1JpZMUHiecDd/8fMngIeNLPLgNeBC3MQi4iIpMh6InD3\nVcApaco3AWdn+/NFRGTfNLM4iyoqKqIO4YDEOf44xw6KP2pxj7+9cjKhrKPMzPM5PhGRfGRmeD51\nFouISH5TIhARKXBKBCIiBU6JQESkwCkRiIgUOCUCEZECp0QgIlLglAhERAqcEoGISIFTIhARKXBK\nBCIiBU6JQESkwCkRiIgUOCUCEZECp0QgIlLglAhERAqcEoGISIFTIhARKXBKBCIiBU6JQESkwCkR\niIgUuKwnAjM7wsweM7M1ZrbazMaH5VPM7E0zez58nJPtWEREpDVz9+x+gFl/oL+7LzezHsCzwPnA\nhcD77j5zH6/1bMcnItLZmBnubm29vks2gwFw9/XA+vD5ZjN7ARgYnm5zoCIikh057SMws6OA4cBT\nYdGVZrbCzO42s965jEVERAJZrxEkhM1CDwNXhTWDnwA3h6enAjOAy1JfN2XKlObnFRUVVFRUZD1W\nEZE4aWxspLGxscOvz3ofAYCZdQUWAL9z99vTnD8KmO/uQ1PK1UcgItJO7e0jyMWoIQPuBv43OQmY\n2YCky8YAq7Idi4iItJaLUUOfAP4IrAQSH3Y9cDEwLCx7Dfiqu29Iea1qBCIi7dTeGkFOmoY6SolA\nRKT98q5pSEQkSvX19YwcOZaRI8dSX18fdTh5STUCEem06uvrGTOmmq1bvwNAaekE6upqGTVqVMSR\nZZeahkREQiNHjqWhoQqoDktqqaycx+LFc6MMK+vUNCQiBa2pqYmlS5dGHUas5GxCmYhIti1YsIBx\n48bxwQcfsGbNGmpqxvHEE9Vs3RqcLy2dQE1NbbRB5iE1DYlI7DU1NXH11VczZ86c5rLPfOYz1NXV\nsXjxYmbM+DkANTXjOn3/AKiPQEQKzB/+8Ae+8IUvsG7dulbnfvOb3zBmzJgIoopW3q0+KiKSTT16\n9GDDhhZzUSkuLua6667j3HPPjSiqeFFnsYjE2ogRI/jWt77VfFxeXs7TTz/N1KlTOeiggyKMLD7U\nNCQisffBBx8wYsQIqqqqmDx5csEnAPURiEintGDBAp566immTZuW9vz27dspKSnJcVT5SX0EItKp\npI4IOuuss6isrGx1nZJAx6lGICJ5KzEvIHlE0KBBg1i1ahW9evWKMLL8ppnFItIp3HPPPZx33nmt\nhoW+9dZbB7Qbl7SmGoGI5KV3332X8vJy3nrrreay8vJyZs+ezamnnhphZPlPNQIR6RSefvpp+vY9\nEoCioiImT57MM888oySQBeosFpHIbd68mR49ejQft1w+uj9duzbyiU98ouCHhWaLagQiEpmmpiaq\nq6s5/fTT2b59e3P5jBk/D5NANTCXDz6Y2bxekGSeEoGIRGL+/PmceOKJzJkzh1WrVu11foBknzqL\nRSSnmpqauOqqq7j33ntblBcXF7Ns2TJOOeWUgt1ZLFM0oUxE8trChQtbJQGA448/nuLiYgBGjRpF\nXV1t0vLRSgLZpBqBiOREfX09M2b8HHfnvffe5M9//jOwZ6VQrRGUOVprSETyTmpTT7du11JcvJWj\njz6a2bNnc8opp0QcYeeSd/MIzOwIM3vMzNaY2WozGx+Wl5lZg5m9ZGaLzax3tmMRkdxpamri0Ucf\nBVJHAVWzbVs1xcWH0LfvEN5+++1I45TcjBraAXzD3U8EPgZcYWbHAxOBBnc/Dvh9eCwiMVdfX8/w\n4afTv/+HOO+881i7dm3qFUAt//jHNH7/+/MZM6aa+vr6KEKVUNY7i919PbA+fL7ZzF4ABgJVwFnh\nZbVAI0oGIrH28MMP87nP/Se7dm1rLhszZgy33norTzxxabiJ/E+B7xPUDmDr1qDGoM7g6OR0HoGZ\nHQUMB54G+rl7Yn+5DUC/XMYiIpm1ZMkSPv/5lkkAYOXKlWzcuJG6uloqK+dRVqamoHyTs+GjZtYD\nmAtc5e7vm+3px3B3N7O0vcJTpkxpfl5RUUFFRUV2AxWRDunbty87d25PKS1i8OBjueiiiygpKWHU\nqFFJHcfBFaWlE6ipqc15vJ1JY2PjAa3ImpNRQ2bWFVgA/M7dbw/LXgQq3H29mQ0AHnP3j6S8TqOG\nRGLksssu45577gmPDuegg7bwyCP3t2r2SQwlBaipGadmoQzLu+GjFvzpXwu84+7fSCr/blj2HTOb\nCPR294kpr1UiEImRnTt3cvLJJ7N16y6OPvp4vvnN/9JNPgL5mAg+AfwRWAkkPuw6YBnwIDAIeB24\n0N3fTXmtEoFInpk/fz4NDQ3ceeedac/v3LmTLl20aEGU8i4RHAglApH8kbpG0EMPPcQFF1wQcVSS\njhKBiGTc/Pnz+epXv9pi28g+ffqwZs0a+vTpE2Fkkk7ezSwWkXi7//77qaqqarV38KZNm7R3cCeh\nGoGI7NOWLVsYNmwYL7/8cnPZ0KFDtUZQHlONQEQy6uCDD2bWrFmYGcXFxc17BysJdB6qEYhIs3ff\nfZfevdOv/3jHHXdw5plnKgHEgDqL84Amy0jcJEYELV26lJUrV9K9e/eoQ5IDoKahiCWmzzc0VNHQ\nUKWVFSXvJfYOvvfee1m7di0TJ2rtx0KjGkGGjRw5loaGKhIrK0Kw0NbixXOjDEuklb3tHQzB2jVn\nnXVWmldJHKhGICJtsnTp0rRJYOjQofzLv/xLBBFJVJQIMqymZhylpRMIlleqDVdWHBd1WCKtjB49\nms9//vPNx8kjgoYNGxZhZJJrahrKAnUWS1xs2rSJE044gb59+2peQCeiUUMi0kJTUxOPP/44VVVV\nac+vWbOGY489lpKSkhxHJtmiPgIRaZYYEXTBBRewcuXKtNeceOKJSgIFTolApBNqamrii1/8YvMa\nQTt27ODSSy9lx44dUYcmeUiJQKSTWbp0afO8gGTPPfccv/jFLyKKSvKZdo8Q6WSOOOIINm/e3KKs\nuLiY6667jq985SsRRSX5TDUCkU5m0KBBzJgxo/l46NChLFu2jKlTp6ovQNLSqCGRTsjdGT16NKec\ncgo33HCDEkCB0fBRkQIxf/58HnroIWprazFr/f/87t27KSpSpb8QafioSCeXPCLo3nvv5a677kp7\nnZKAtJVqBCIxkm7v4J49e7J69WoGDRoUYWSSTzJWIzCzsn09MhOuiLTVI488knbv4C1btrBkyZKI\nopLOYK81AjN7HXDAgEFAU3jqEOANdx+c9eBUIxBptmPHDj72sY/x3HPPNZdp72BJJ2M1Anc/KrzZ\nNwCj3f1Qdz8U+HRY1taA7jGzDWa2Kqlsipm9aWbPh49z2vp+IoWqa9euzJ49m65du2rvYMmo/fYR\nmNlqdy/fX9k+Xn8msBmY4+5Dw7IbgffdfeZ+XqsagRSkt99+mz59+qQ9d8899zBs2DAlANmrbIwa\n+puZTTazo8xssJlNAt5q6we4++PsaVZqEWtb30OkUCRGBJ100kls2rQp7TVf/vKXlQTaqL6+npEj\nxzJy5FhtGbsPbUkEFwN9gTrgN+HzizPw2Vea2Qozu9vMemfg/URibcGCBc1rBK1fv56rrroq6pBi\nTfuHt12bh4+aWXd3/2eHPsTsKGB+UtNQX+Dt8PRUYIC7X5bmdX7jjTc2H1dUVFBRUdGREETyVlNT\nE1dffTVz5sxpdS4xUkjar5D2D29sbKSxsbH5+KabbmpX09B+F50zs9OBu4CewBFmdjLwVXf/WvvD\nDbj735Pe/y5g/t6unTJlSkc/RiQWVq1alTYJlJeXc/jhh0cQkcRN6h/JN910U7te35amoduBc4CN\nAO6+AjirXZ+SwswGJB2OAVbt7VqRzu5f//Vf+frXv958XFxczKRJkzQi6ABp//C2a8uooWXuPsLM\nnnf34WHZCnc/uU0fYPYrgsRxGLABuBGoAIYRzFN4jaCGsSHNazVqSArC5s2bOemkk+jevTuzZs3i\ntNNOizqkTqFQ9w/P+KJzZvYwcBvwQ+CjwHjgNHf/3IEE2qbglAikE2lqamLx4sVcdNFFac+/8sor\nHHHEERx00EE5jkw6m2wMH/1/wBXAQIJho8PDYxFpo4ULF1JeXs7FF1/Mk08+mfaaY445RklAItGW\nGsEZ7r50f2XZoBqBxF26EUHHHXccy5cvp7S0NMLIpDPLRo3gh20sE5Eky5Yto7y8vNWIoJdeeok7\n77wzoqhEWtvr8FEz+zhwOtDHzK5hz0zgnmgfA5H9Gjx4MNu3b29RVlxczMSJE7n66qsjikqktX3d\n0EsIbvrF4b89wsc/gAuyH5pIvPXp04cf//jHzcfl5eU89dRTTJs2TX0Bklfa0kdwpLu/kaN4Uj9b\nfQQSe5dccglHH300N9xwgxKA5EQ2ho82AP/h7u+Gx2XAr9w96wNylQgkDhYuXMjdd9/Ngw8+SJcu\nrVtb3T3tnsIi2ZKNzuI+iSQA4O6bgH4dCU6kM2lqaqK6uprRo0dTV1fHzJnpV1VXEpB815ZEsMvM\njkwchAvI7c5WQCJxkJgXkDwi6Nvf/jYvvPBChFGJdMx+F50DJgGPm9kfw+N/BbRghxSshoYGRo8e\n3ap8586dLF26lOOPPz6CqEQ6rk3LUJtZH+BjBGsDPeXuG7MdWPi56iOQvLN7924+9alPtVj2t7y8\nXGsESd7IWGexmR3v7i+Y2ans2cSe8Dnu/lzaF2aQEoHkq7Vr13LSSSexbds2Jk6cqBFBklcymQh+\n4e6Xm1kj4c0/mbt/ssNRtpESgURt3bp1DBgwIO25Bx54gCFDhqgWIHkn48NHo6REIFFJrBE0b948\nVq9ezcCBA6MOSaTNMlkjGEuamkCCu/+m/eG1jxKBRGHhwoWMGzeOv/3tbwCce+65LFiwQMNAJTYy\nmQhmEySCvgRrDv0hPPVJ4El3bz1sIsOUCCSX9rV38OzZs6murk7zKpH8k7EJZe7+JXe/lGDNoRPc\nfay7jwVODMtkL+rr6xk5ciwjR46lvr4+6nCkjV5//XXuu+++VuXl5eWUl5dHEJFIbrRlQtkRwPqk\n4w3AoOyEE3/19fWMGVNNQ0MVDQ1VjBlTrWQQE8OHD+f6669vPk7eO/jUU0+NMDKR7GrLWkM/BI4D\n7icYQnoR8LK7X5n14GLYNDRy5FgaGqqARDNCLZWV81i8eG6UYUkbbd++ndNOOw1317wAia32Ng21\nZWbxlcAY4Mzw+GfuXteR4ETyQVNTE3V1dXz5y19uda6kpIQFCxbQr18/zQuQgrHfRODubmbPAe+7\ne4OZHWxmPd39/RzEFzs1NeN44olqtm4NjktLJ1BTUxttUNIseURQ//79Offcc1tdM2iQWj6lsLSl\naWgccDlQ5u5DzOw44Cfu/qmsBxfDpiEI+glmzPg5ECSGUaOyvmK37Ee6EUEDBw5k9erV9O7dO8LI\nRDIvG/sRrABGEKwxNDwsW+XuQw8o0rYEF9NEIPll+fLlfPrTn26eF5Bs8uTJTJ06NYKoRLInG/sR\nfODuHyR9QBf2MdEsTUD3mNkGM1uVVFZmZg1m9pKZLTYz/UkmWXP00Ue32jAmMSJo8uTJEUUlkj/a\nkgiWmNkk4GAzqwQeAua34zNmAeeklE0EGtz9OOD34bFIVvTq1Yu77767+Vh7B4u01JamoSLgK8DI\nsKgeuKs9bTbhZjbzE81JZvYicJa7bzCz/kCju38kzevUNCQZc8UVV3DIIYdopVDp9DLaRxA2A61O\nd5NuZ1BH0TIRNLn7IeFzAzYljlNep0QgbbZw4UJuv/125s+fT7du3Vqd197BUigyOo/A3Xea2V/M\n7Eh3f+PAw0v7GW5me73bT5kypfl5RUUFFRUV2QhDYix1RNBNN93ELbfc0uq6XCYBjRyTXGpsbGyx\nUVJ7taVp6HFgOLAM+GdY7O5e1eYPSd80VOHu681sAPCYmoakI1JXCgUoKiriT3/6EyNGjIgkpsQy\nI1u3fgcI5pLU1dUqGUjOZGNmcWJYRfKbHujdeR7BGgzfCf/97QG+nxSgJ598Mu3ewWbGM888E1ki\nmDHj52ESCJYZ2bo1KFMikHy111FDZlZqZt8ALgQ+Aix198bwsaStH2BmvwKeBD5sZv9nZpcCtwKV\nZvYS8G/hsUi7fPzjH+f8889vUZYYEfS1r30toqhE4mdf+xE8CGwHHgfOBV5396tyGJuahmS/1q9f\nz4knnsh7772XN3sHq2lIopbJjWlWJbXpdwH+nJhZnCtKBJLw17/+da9rAC1cuJB+/frl1Uqh6iyW\nKGUyETyffONPPc4FJQJJjAh66KGHWLFiBccee2zUIYnkvUwmgl3AlqSiUiBcUxN3914djrKNlAgK\nW+qIoDPOOIMlS5ZQXFwccWQi+S2TW1UWu3vPpEeXpOdZTwJxNn36dA499BgOPfQYpk+fHnU4sdPU\n1ER1dTWjR49uMSx06dKl3HnnnR16T20fKrJ3bRk+Ku0wffp0Jk/+LhDcsCZPHg/ApEmTIowqXjZu\n3MiDDz7Yqry8vJwzzzwzzSv2LbXz9oknqtV5K5LM3fP2EYQXL2VlQxxmO3j4mO1lZUOiDit2Zs6c\n6QTzVby4uNgnTZrk27Zt69B7VVZ+ttV/k8rKz2Y4YpH8Ed4723yvVY1A8tL48eOZO3cu7733nvYO\nFsmytixDLe1wzTWXAuOB2vAxPiyTVE1NTfzgBz9I1P5aKC4u5uGHH+aZZ5454CRQUzOO0tIJJP6b\nBNuHjjug9xTpTPa71lCU4jpqaPr06cycOQsIEoP6B1pLHhF03333cckll2T18zSuXwpJxreqjFJc\nE4HsXbq9g8vKylizZg39+/cHdNMWOVBKBJK31qxZw8iRI9PuHXz11Vdz2223aXkGkQzIxp7FIhkx\nZMgQevduuT11Yu/gW28N1h1suXJnkBAStQMRyQ4lAsmZbt26MWvWLIqKgl877R0skh80fFSywvey\nLeSIESO4/vrrcfe0K4XW1IzjiSeq2RouZhKM8KnNRcgiBUt9BJJxCxcuZPr06SxatIhevdq/Gok6\ni0UOjDqLJTKpI4LGjRvHz372s4ijEik8SgQSiXR7BwM0NDRw9tlnRxSVSGFSIpCcW7lyJSeffHKr\n8qKiIo45ppwjjzxGTTwiOaTho5JzJ510Epde2nIZjaOOOoquXXvz0kvX0NBQxZgx1Vr+WSRPKRFI\nRsycOZOBAwc2zwsYMuRkPvhgJqnzAbQvgEj+USLIgs58s3vllVfSlvfu3Zv77ruveV5AUVHrXcQ2\nbnyHMWOqaWioUi1BJJ+0Z83qXD+I4X4EixYt8tLSfuH697O9tLSfL1q0KOqwDtimTZv8i1/8onfp\n0sWfffbZ/V6f7nsYPvwM7QsgkgO0cz8C1QgyrDMukbBw4ULKy8uZM2cOO3fu5Etf+hLbt2/f52tG\njRpFXV0tlZXzqKycR11dLYcd1i9HEYtIe0Q6s9jMXgf+AewCdrj7iCjjkZbSrRQKsGrVKqZNm8bN\nN9+8z9ePGjWq1UghzRoWyT9RLzHhQIW7b4o4jozpTEskbNmyhUceeaRVeXl5OVVVVe1+v0QtYc+s\nYa0qKpIPIp1HYGavAae5+zt7Oe9RxtdRcd2YJnVpB4Bx467kr399ufmawYM/zB13fI/zzjsvkhhF\nZP9iNaHMzNYC7xE0Df3M3X+Rcj52iSCu6+mnxl1S8k12797Czp3dgMOBdwha8S6ntPSXsfiZRApV\nexNB1E1DZ7j7OjPrAzSY2Yvu/njyBVOmTGl+XlFRQUVFRW4jbKeWncWwdWtQls83zaamJr7+9Rq2\nbr2FRNxBX/BkYBowGugB/BqY19wB3pafKd0CclpUTiSzGhsbaWxs7PDrI00E7r4u/PdtM6sDRgB7\nTQSSeS3XCPoDcGmaqw7t0Hun1jKeeKKaSZOuZPr0H7QoU+1C5MCk/pF80003te8N2jPWNJMP4GCg\nZ/i8O7AUGJlyTSaG1OZUXOYRbNq0yc8++2wn6LBPenzXYbaXlPTxLl26OxzW/LNAmUNNm3+mysrP\ntpo3UFY2RHMJRLKMds4jiLJG0A+oCzcv6QLc5+6LI4wnI+IwMuaaa67httvuAHa3Ojdw4I854YRT\nqKm5F4DrrpvKG29M5ZBDetKr1/EcdthrefkziUjHafXRApFol1+79mVeffV1oA+wNukKY/Dg43jh\nhRUZ2zYyXcd5atNQXDrTReIkVqOG9keJIDNa3pB/CvwXQXfMcOADoBToS8+eu+natYQjj+zPLbfc\nkJGbszqLRXJPiSAmcnUzdHdGjbqAhoYqghFBY4HE85lAI/AXYD1wZ/iqaykp2cm8eb/WTVokhpQI\nYiBXcw1uvvlmbr31u2zfXsquXYcBt4dnLiFIAgDXAjvDc9VhWS3wUyorP8TixXMzGpOIZF/c5hEU\npEzPNUitXYwYMYILL7yQRx99NLziBOA14ELgcrp02UXXrhPZsWM3Rx45gF69ynj++QP9qUQkrpQI\nYi61dvHYYxcCW9m5c0fSVX8GjgWKKSv7Lfff/0CLpFNfX09V1X+yZ0HRoGmopmZKTn4GEYmWmoay\noLi4mN27ewNQVPQuu3btanE+k01DI0eOpaFhMPB7gr/630tzVRHwH8AihgwZyCuvrGl1RX19Pddd\ndwtvvPFmRjuLRST31EcQsSAJ9GBPx+t4ioo2p00GmegsPuaYE3n11beAO8KS/wK2JV1xOPBb4FSg\nFrNr+N3v7tdNXqQTUx9BxIKaQGKv3kTZNa2uS7dW//6kJo9nnnmGV19dBxwP9AdGEQwHrQG2AAcB\nNxIkgYD7cS36IzSUU0SUCPJc4ka9ceMG1qx5ie3bvwdAQ8P5QAl7ah7VBKN9DgJOAyqA7xOMCuoa\nXnM1cDjPPruiea/g1LWANLlLpPCoaSjDgiUzepHcNAT/oCM/R/qJYN0J/uL/K8EooAfCq2vDa14E\nLgN+AQylS5fl7Np1EO59gb+TGDZaWjqBj3zkGJ5//nKSh41WVs7TkFGRmGtv05D2LM6wRYsWEazb\nf034+EdY1n4th5luI2jrv4ggCQA8DCTvIPYSsJMuXWoZMuRwKiv7sWDBXH73u/spK9vBniarILm8\n8cb6DsUlIp2LmoYybNSoUUybNi1ph7JrOtzUsnHjBoJkMp6gzX95yhW7CWoJ7xI0AW3j7LNPp6Gh\nodV7nXrqyaQWH3nk4WzdOqFTbKspIh2nRJBh9fX1LRZVmz59Aqeddto+k0G6LSKvuOKbvPrqGwRN\nTMuAn6R55eHAdmAe8EtgPWbz0n5Gur2Ub7kluOnn80qpIpJ96iPIsGBcv7Hnr/dhVFb6XtvdU+cU\ndOlyBTt3lhD0BUwjGA1UTdAklOh3MIJdwxqBcQSdwrC/Nv7khHPWWaewZMlzgEYLiXQ2Gj4asbVr\nXwT+FygLS+aydu0Je72+ZT/AdHbudIIb/ZbwiqnAYOBN4JPAywR9EH9k+PBjePHFX7J161Bg3007\nqUlAu4SJSIJqBBnW3lFDp5xSwfPPXwo8BvyKIAn8CHiBoDmohD2LxX2TYMG4p4FXKCnZybe/fe1+\n/7JPrXUUFdWwe/cMNFpIpHNSjSByZaROKAs6fFurr69n1arlwNeAXcAOgh0j1xE099QTdAInv1cN\ncB+wnu3bf8qSJc/t9waeusjd7t0/bfdPJSKdlxJBxqX7y79l2fTp05k5cxabNr1DcPP/gCARJNwM\nfAbokea9yglmEB/I6J4zKCr6BrvDnSo1WkiksCkRZFwTQXNQQtA0lDB9+nQmT/5vgtm+DmyldfLY\nAXwVWAl8I+W9LidIAm1fIbT1iKFfMmlSDUuWzAvP12rnMJECpj6CDCst7cW2be+zp7N4E9269WTr\n1iAZmBUR/KW/GziKoBM4ecVQAz4EbCboMC4l2F94U3juEKCJIUMG8qMffa/NN+v93eRztVmOiGSf\nVh+NmFlX4GBadhZvwX1HUkdy4q/67wPvEPQDOHAYMJTgZj8YuJugxnBQ8/uZXc3UqdcyadKkdse2\nr2QQDHtNbGEJ6kAWiS91FkeuJ3AbLTt4v4FZT6AbQSJ4kMRSD4HVwK+BW4CvhGVBm71Zd9z3dD67\nw9y5s9qdCFL/4teQURFJUCLIie0Ef9knlnZygiGilQQdv2cBc4EJ7Fkp9FqgP+5/b/Vub7zxZrsj\n2N/2mOlmHqsDWaQwRJoIzOwcgkHyxcBd7v6dKOPJjPcIVv/8fwRzALYQdP4mTCVo6x8PnE/QX/Ae\nQV/ApQTLRUBww34tfH5t0uuv5cgjP5zxqEeNGkVdXa2WmxApQJH1EZhZMfAX4GzgLYKNdS929xeS\nrolhH0GiWa47QRJIjf8qgtxXS7A/QA/gn8C7FBf3Zteu28LrJoTXNGD2M9zLASgpeZF5837doU1t\n1BksUhji1EcwAnjF3V8HMLNfEwyef2FfL4qHHqQfFloEPJpSNi38dzxf+EIVK1fOYsWK1eze/SVg\nfTjUc2IUsPQwAAAIFElEQVTS7OEpHbp56y9+EdmbKGsEFwCj3P3y8PgLwEfd/cqka2JYIygj6Cz+\nP+CGpDPF4fEigqWjE3MC9iwYV1Y2lXfeeUXj+UXkgMSpRtCmO/yUKVOan1dUVFBRUZGlcDJtAlBH\nsAppCUFtYCbB8NCfEswjGJr2lR3Zz1hECldjYyONjY0dfn2UNYKPAVPc/Zzw+Dpgd3KHcTxrBMmL\nzr0F/DdBH0ARcCjwPWA8AwZ0Z926f5I832DatG91aH6AiEiy2EwoM7MuBJ3FnwL+RrD7Suw7iyGR\nDA4Jj5rCf4soLj6Ugw8uZcKEcUyaNKl5zSGAa665VElARDIiNokAwMz+nT3DR+9291tSzscyEYiI\nRClWiWB/lAhERNqvvYmgaP+XiIhIZ6ZEICJS4JQIREQKnBKBiEiBUyIQESlwSgQiIgVOiUBEpMAp\nEYiIFDglAhGRAqdEICJS4JQIREQKnBKBiEiBUyIQESlwSgQiIgVOiUBEpMApEYiIFDglAhGRAqdE\nICJS4JQIREQKnBKBiEiBUyIQESlwSgQiIgUukkRgZlPM7E0zez58nBNFHCIiEl2NwIGZ7j48fCyK\nKI6samxsjDqEAxLn+OMcOyj+qMU9/vaKsmnIIvzsnIj7L1Oc449z7KD4oxb3+NsrykRwpZmtMLO7\nzax3hHGIiBS0rCUCM2sws1VpHlXAT4DBwDBgHTAjW3GIiMi+mbtHG4DZUcB8dx+a5ly0wYmIxJS7\nt7n5vUs2A9kbMxvg7uvCwzHAqnTXtecHERGRjokkEQDfMbNhBKOHXgO+GlEcIiIFL/KmIRERiVbe\nzyyO4+QzMzvHzF40s5fNbELU8bSXmb1uZivD73tZ1PHsj5ndY2YbzGxVUllZOGDhJTNbnM8j0/YS\nfyx+783sCDN7zMzWmNlqMxsflsfi+99H/HH5/ruZ2dNmtjyMf0pY3q7vP+9rBGZ2I/C+u8+MOpa2\nMLNi4C/A2cBbwJ+Bi939hUgDawczew041d03RR1LW5jZmcBmYE5i0IGZfRfY6O7fDZPxIe4+Mco4\n92Yv8cfi997M+gP93X25mfUAngXOBy4lBt//PuK/kBh8/wBmdrC7bzGzLsATwFXAWNrx/ed9jSAU\np07jEcAr7v66u+8Afg18JuKYOiI237m7Pw40pRRXAbXh81qC/7nz0l7ihxj8N3D39e6+PHy+GXgB\nGEhMvv99xA8x+P4B3H1L+LQE6ErQ99qu7z8uiSBOk88GAv+XdPwme36x4sKBR83sGTO7POpgOqif\nu28In28A+kUZTAfF6fc+MRR8OPA0Mfz+k+J/KiyKxfdvZkVmtpzge17s7sto5/efF4mgk00+y++2\ntrY5w92HA/8OXBE2XcSWB+2fcfvvEqvf+7BZZS5wlbu/n3wuDt9/GP/DBPFvJkbfv7vvdvdhwOHA\nR82sPOX8fr//qIaPtuDulW25zszuAuZnOZwD9RZwRNLxEQS1gthIzPFw97fNrI6guevxaKNqtw1m\n1t/d15vZAODvUQfUHu7eHG++/96bWVeCJHCvu/82LI7N958U/y8T8cfp+09w9/fM7DFgFO38/vOi\nRrAv4Q+RsNfJZ3nkGeBYMzvKzEqAi4B5EcfUZmZ2sJn1DJ93B0aS/995OvOA6vB5NfDbfVybd+Ly\ne29mBtwN/K+73550Khbf/97ij9H3f1ii2crMSoFKgn6Odn3/cRg1NIegetY8+Syp7Ssvmdm/A7cD\nxcDd7n5LxCG1mZkNBurCwy7Affkev5n9CjgLOIygPfTbwCPAg8Ag4HXgQnd/N6oY9yVN/DcCFcTg\n997MPgH8EVjJnuaH64BlxOD730v81wMXE4/vfyhBZ3AxwR/2D7j7NDMrox3ff94nAhERya68bxoS\nEZHsUiIQESlwSgQiIgVOiUBEpMApEYiIFDglAhGRAqdEIJ2Wme02s3uTjruY2dtmltezRM1sc9Qx\nSGFRIpDO7J/AiWbWLTyuJFjuI+eTZ8LlydtKk3skp5QIpLP7H+DT4fOLgV8RLi9sZt3DTWGeNrPn\nwkUOCZcH+aOZPRs+Ph6WDwjLnw8XRTwjLG/+C97MLjCzWeHz2Wb2UzN7imB71iFm9rtwVdc/mtmH\nw+sGm9mfLNgMaFqOvheRZkoE0tk9AHzOzA4ChhIskZwwCfi9u38U+Dfge2Z2MMEyD5XufirwOeDO\n8PpLgEXhyqwnAyvC8uS/4FP/mv8Q8HF3vxb4OXClu58GfBP4cXjNHcCP3P0k4G8H+gOLtFderD4q\nki3uvipcZ/5iYGHK6ZHAeWZ2bXh8EMFqseuBH5rZycAu4Njw/DLgnnC1yt+6+wr2zYGH3N3DZY4/\nDjwUrHMGBBuJAJxOsLAZwC+B77TrhxQ5QEoEUgjmAd8nWNitT8q5z7r7y8kFFuz7us7d/zNs298G\nwU5i4d4Mo4HZZjbT3e+lZS2gNOX9E7tHFQHvhrUJkbyipiEpBPcAU9x9TUp5PTA+cWBmiZt0L4Ja\nAcAXCVZ2xMwGAW+7+10ESxcnrt9gZh8xsyKCv+xbdfa6+z+A18zsgvC9zMxOCk8vJWiCAvh8h39K\nkQ5SIpDOzAHc/S13/2FSWeJGPRXoGnbSrgZuCst/DFSH2/99mGBjeYBPAsvN7DngPwja9gEmAgsI\nbuipbfzJSeHzwGXh+64m2FcWgs3GrzCzlQR9Cho1JDmlZahFRAqcagQiIgVOiUBEpMApEYiIFDgl\nAhGRAqdEICJS4JQIREQKnBKBiEiBUyIQESlw/x+GKjehdApeJQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x102329c90>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Actual/Competitor\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEPCAYAAABP1MOPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8FPXV+PHPCUk0EVACiILcxOINtCD156U2aTUJxRar\naGutLWANXlAsCYiIrVGgCgoV5bGtSITHG14qPmgtIVWDgrQKUkTQipcS8IIoUkCBBHJ+f8zssrvZ\nwG7I7sxmz/v1mhc735mdPQkwZ+d7FVXFGGNM+srwOgBjjDHeskRgjDFpzhKBMcakOUsExhiT5iwR\nGGNMmrNEYIwxaS7hiUBEKkRkk4isjnKsTETqRSQv0XEYY4yJLhlPBA8BAyMLRaQrUAisT0IMxhhj\nGpHwRKCqrwJfRTk0Hbgx0Z9vjDFm/zxpIxCRC4CNqvqWF59vjDFmn8xkf6CI5AI341QLBYuTHYcx\nxhhH0hMB0AvoAawSEYBjgBUicrqqfh56oojYREjGGNMEqhrzF+ykVw2p6mpV7aSqPVW1J7AR6B+Z\nBELO9/126623eh5DS4kzFWK0OC1Ov2/xSkb30ceB14DeIrJBRIZHnGLf+o0xxkMJrxpS1Z8f4Pix\niY7BGGNM42xkcTMoKCjwOoSYpEKcqRAjWJzNzeL0ljSlPilZRET9HJ8xxviRiKB+biw2xhjjL5YI\njDEmzVkiMMaYNGeJwBhj0pwlAmOMSXOWCIwxJs1ZIjDGmDRnicAYY9KcJQJjjElzlgiMMSbNWSIw\nxpg0Z4nAGGPSnCUCY4xJc5YIjDGmGdTU1DBw4EBeeuklr0OJmyUCY4xpBnfeeSeVlZWcf/6P+cEP\nLqCystLrkGJmicAYY5rBueeeC2Swa9c3vPzyDi68cGjKJANLBMYY0wz+/OfHgN+4e8rOnZOZNu0B\nL0OKWTIWr68QkU0isjqk7C4ReUdEVonIMyJyeKLjMMaY5lBTU8PatWsbOXoK8Hd3S/iS8M0mGU8E\nDwEDI8oWASer6qnAe8D4JMRhjDFNpqrMmjWLPn36cOmll1JbWxt2vKxsBDk544CNwMPk5IyjrGyE\nJ7HGK+GJQFVfBb6KKKtS1Xp395/AMYmOwxhjmirQI2jEiBFs376d1atXM2nSpLBziouLmT9/LoWF\nCygsXMD8+XMpLi72KOL4JGXxehHpATynqn2jHHsOeFxVH4tyzBavN8Z46uGHH2bkyJFs3749rLxV\nq1asXr2aE0880aPIGpdSi9eLyASgNloSMMYYP6ivr2+QBA477DBmzJjB8ccf71FUzcuz1gwRGQYM\nAs7d33nl5eXB1wUFBRQUFCQyLGOMCdOpUycyMrKpr3faBDIyspg5cybDhg3zNrAQ1dXVVFdXN/n9\nnlQNichAYBqQr6pf7Od9VjVkjPFUUdEQqqrOAe7G6deSS2Hh8yxa9BePI2uc76qGRORx4DXgeBHZ\nICJXAPcBrYEqEVkpIvcnOg5jjGlMoEfQ7NmzGzmjHfABMJKWOPwqKU8ETWVPBMaYRKupqaGkpIRF\nixaRm5vL6tWrOfbYY4PHKysrufDCoezcOQWAnJxxvu8RFO8TgSUCY0xaUlUefPBBysrKwhqD8/Pz\neemll8jI2PfNv7KyMjhKuKxshK+TAFgiMMaYmIwdO5a77767Qflhhx3GsmXL6Nu3QW/3lOG7NgJj\njPGjK664gkMOOSSsrKCggLfeeiulk0BTWCIwxqSlE088kdtvvx1wngJmzpzJiy++GNY+EFBZWUlR\n0RCKioakzIyi8bCqIWNMi6aq7Ny5k9zc3AbH9u7dS2lpKTfccEPUBADWWOw5SwTGmIMR6BF0+OGH\n8+STTzbpGs44gsHAULfEmU+oJY0jSJ15Uo0xJgaVlZXcffef+fjj/7B+/b/55ptvAHjqqae45JJL\nPI7On+yJwBjTYlRWVnLBBZeze/dRwNthxzp06MDatWvp2LFj3Nds6VVD9kRgjGkxpk17gN27/x/w\n1wbH+vTpw65du+K+ZmB66X3jCPydBJrCngiMMS1G//4FrFzZDicR1AGQkZHBvffeyzXXXBM2SKwl\ns8ZiY0za6ty5O59+uhW4Hvg9kEHHjp34/POPPY4suWxAmTEmLWzYsIE333wzrGzz5l3AvcAk4BVg\nFl99tceD6FKLJQJjTEpRVWbPnk2fPn245JJL+Prrr4PHcnIODTnzu0BGRJmJxhKBMSZlbNiwgR/+\n8IdceeWVbNu2jQ8//JCbbropeHzcuBHAKGCuu41yy8z+WBuBMSYlzJs3j6uuuopt27Y1OPbGG28w\nYMAAACZPnsz06Q8BUFo6nAkTJiQ1Tj+wxmJjTItTWVnJuHHlrFr1j7Dy3NxcpkyZwrXXXps2PYJi\nYeMIjDEtSviALgGWAc66AbNnz6ZXr16extcS2BOBMcbXwuf62QKcyPHHH83atW/G9RSQaovLHAx7\nIjDGpCxVpaKigm3btjF69OgoZ+QBv6dbtxfiTgKh00QsWTLU99NEJJWqJnQDKoBNwOqQsjygCngP\nWAQc0ch71RiTHmpqarS4uFgBzcrK0lWrVqmq6sKFCzUnp5PCHIU5mpPTSRcuXBjXtQsLL3Lfr+42\nRwsLL0rEj+EL7r0z5vt0MlpXHgIGRpTdBFSpam/gRXffGJOGNGRcQGDRl7q6OoYPH05dXV1wrp/C\nwgUUFi6wb/IJkJQ2AhHpATynqn3d/XeBfFXdJCJHAdWqekKU92ky4jPGeOd3v/sdEydObFCem5tL\ndXU13/nOdw76M1JxBtGD4cvuo1ESwVeq2s59LcCWwH7E+ywRGNPC1dTU0KdPH7Zv3x4sS0SPIGss\nbpznjcWqqiLS6N2+vLw8+LqgoICCgoIkRGWMSZZu3boxbdo0RowYkdBxAcXFxS325l9dXU11dXWT\n3+9l1VCBqn4mIkcDL1vVkDEtm6qyY8cO2rRpE/XYzTffzJVXXmnjAppBqlQNTQW+VNUpInITTq+h\nBg3GlgiMaRk2bNhASUkJ9fX1VFZW4tQIm0Tx3TTUIvI48BpwvIhsEJHhwJ1AoYi8B/zA3TfGtDCR\nPYKqqqp48MEHvQ7LRLCRxcaYhAg8BQS6hAa0adOGt99+m27dunkUWcvnuycCY0x6euSRRxokAYAe\nPXpgX/D8xRKBMSYhxowZQ//+/UNKsoHLWbduE++++65XYZkoLBEYYxIiKyuLOXPmuA3DxwNrgYfZ\ntWtqsD+/8QdLBMaYg7JhwwaWLFkS9Vjfvn35zncKgHGAdQv1K0sExpgmCe0RdPHFF7Nly5ao591+\n+zhycsYTWD4yI2M0+fn9o55rvGGJwBgTt8i1gzdt2sSoUaOinltcXMyECdeTkVEG/In6+iuYPPm+\nqA3JxhuWCIwxcXn66afDZgoNePTRRxud5mDx4jepr5+Gs7rY3ezcOcXaCXzEEoExJi4dO3ZssIB8\nbm4u9913H9/73vc8isocDEsExpi45Ofnc91114Xtv/XWW1x33XWNThRXVjaCnJxxBNoJcnLGUVY2\nIjkBmwOykcXGmLh9/fXXnHXWWZSUlMQ8U2g6TQPtNV9OOtdUlgiM8Ya6awfX1NRw2223RT1n7969\ntGrVKsmRmVhYIjDGHJTQOYJEhFdffZWzzz7b67BMHGyuIWNMk0RbO1hVGT58ON98843H0ZlEskRg\njAFgypQpwXEBoT7++GNWrFhBZWUlRUVDKCoaEkwU0cpM6rGqIWMMAJs3b+bkk09m8+bNwbLA2sHv\nv/8+gwdfSm2ts5Bgdva7/O53Y5g8+b60WRA+lVgbgTGmyZ5++mkuueSSBmsH9+//XVau/Ddwt3vm\nGFq3zmLHjjuAoW7ZXAoLF7Bo0V+8Cd4Epdzi9caY5FJVtm7dSrt27Rocu/jii5k8eTI/+9nPwtYO\nXr/+M5wkMDRYtmvXjUmI1iSDJQJj0kigR9BXX33F0qVLycxseAu4+eabG5R1734MkXPKde/emU8+\nGcfOnc6+M0hsbiLCNglmVUPGpIHAuIDS0tJgY/Cdd97JuHHjYnp/ZWUlgwf/ktrauwDIzh7LggUP\nA9ggMR9KqTYCERkN/BpQYDUwXFV3hxy3RGDMQWps7eDs7GxWrlzJSSedFNN1Jk+ezPTpDwFQWjqc\nCRMmNHuspnmkzDgCEekCXA+cpqp9gVbApV7FY0xL9fzzz0ft2nnmmWeSk5MT0zUqKyu5/fa72bKl\nI1u2dOT22++27qItiNfjCDKBXBHJBHKBjz2Ox5gW56qrrqKgoCC4H5gp9KWXXqJnz54xXWP8+InU\n1mYCVwNXU1ubyfjxExMSr0k+zxqLVfVjEZkG1AA7gUpV/btX8RjTUmVkZFBRUUHfvn0ZMGAAs2fP\nDusRFItovYbWr7dE0FJ4lghEpB0wGOgB/Bd4SkR+oaqPhp5XXl4efF1QUBD2zcYYs8+GDRt45513\nKCoqanCsZ8+eLFu2jJNPPjmmmUIjRe81dExTQzXNrLq6utFFgWLhWWOxiFwCFKvqle7+L4EzVHVk\nyDnWWGzS3oGmbw7tESQirFmzhi5dujR7DNF6DVkvIX+Kt7EYVfVkA04H3gZyAMFZsWJkxDlqTDpb\nuHCh5uR0UpijMEdzcjrpwoULg8dramq0uLhYcXreKaCDBg3S+vr6hMRSWHiRFhZeFBaD8R/33hnz\n/djr7qPlwM+APcCbwJWqWhdyXL2MzxivFRUNoapqMNGmcXj22WcZOnRog0niABYsWMCPf/zjpMZq\n/COlpphQ1XKg3MsYjElV3bt3bzA9dGCOoPPPP9+jqEwq8rr7qDFmP/a31m+/fv3CpoOIZe1gY6Jp\ntGpIRPL290ZV3bK/483BqoaM2X9jcW1tLQUFBVx22WUxrx1sWr7mrBp6E6fxSYBuwFdueTtgPRDb\nSBRjTJOpKhs3buTEE49hxowZDY5nZ2ezZMmSBgnAFoo38Wg0EahqDwARmQXMV9UX3P0fAhcmJTpj\n0ljkHEHFxcUMGjSowXnRksCFFw4NLhizZMlQWzDG7Fcsz5FnBpIAgKr+DTgrcSEZ03LFsrSjRlk7\nGKCkpIStW7ce8DOmTXvATQJDASchBJ4OjIkmlkTwiYjcIiI9RKSniEzA5gQyJm6Bb+pVVYOpqhrM\nhRcOjZoM7rvvvqhrB2/dupXly5cnK1yTTg400ABoD9wLrHS3GUBePIMVmrphA8pMioo2+Kqw8CJ3\nYJi62xwtLLyowXu3bdum3bp1Cxsklp+fr++//37Mn52dfYTCGQpnaHb2ETYALM0Q54CyA44jUNUv\ngVEicpiqfp2YdGRMy9FYHX2s2rRpw+zZsyksLGywdnDssnBmCgUYG8f7TFo6UKbAaQ9YC2xw908F\n7o8n2zR1w54ITAqI/Pbf2Df/yOkiDj30SJ03b16j150xY0bMTwGhYn3yMC0Xzf1EANwDDAT+z70z\nrxKR/ATkJGNSTrRv/yeccALOgntD3LOcntbFxcXMnz+XadMeYNeub/jmm67cdtttXHDBBRx66KEN\nrj1q1Kjk/BAm7cU0xYSq1oiEjU3Yk5hwjPG3yP754T10YOdO2LZtKjALp2kNYBT5+TcCUFRUxMaN\nG8PWDi4vL+fOO+9sthjLykawZMlQW1TexO5AjwzA08DZOA3F2cAYYF48jx1N3bCqIeMj0WYC7dcv\nv0E1TF5er6hVM9FmCgU0IyND//GPfzR7rDZTaPoiAVVD1+D0FOqC0210ETByv+8wpgWK9u0fZpGT\nMy7s23f37ic0WMQFYMmSJVG7i55zzjl07NgxYXEbcyCxJILeqnpZaIGInA0sTUxIxvhZeN1/hw6d\nmD//tyHVRU4VjNNu4JwVqJopKiriySef5NlnnwU4iB5B+2cji03cDvTIAKyMpSwRG1Y1ZHxk0qRJ\nCm2DVUPQVidNmtTouXl5vTQvr1fYOZ9++qnm5eXFNS4gXtZryNBcVUMiciZO19GOIlKKM/kcQBts\n+mqThhYvfhOnAXhoSNkCJkwIP++RRx7h9tvvorbWmSRu8uRxDBgwgOLiYo466iiWLVvGcccdF3wK\nmDx5MtOnPwRAaelwJkRe0JgE21/VUDbOTb+V+2fANuDiRAZlTCpSddYOvvrqq9mzR4Azgd7s3Om0\nLwSqZnr37h18z+TJk7nllqkEehjdcovTZfRgkoH1GjLxOuBSlSLSXVXXJymeyM/WA8VnTLJE1r3n\n5IwL1r1HzhTqOAt4BXgkuLxkpPbtj2PLlp8AH7klPcnLe5Yvv3z/oGO1aajTV7zrEcSSCKqAS1R1\nq7ufBzyuqgn/l2WJwPhNtBvsX//6Vy677LKoawfD1eTkzG+0sbZNm87s2FEH3O2WjKF16yy2b/8k\nYT+DafkSsWZxx0ASAGdlMhHp1KToIojIEcCDwMk4faqvUNV/NMe1jYlHrN+gi4uLGxzr3bs3dXV1\nYWWHHHIIPXqcQNeumxgzpvEeO506dWLHjt8Q2u7QqdM9B/GTGBO/WBp994pI98COiPQA6pvp82cA\nL6jqicApwDvNdF1jYhbr9NCN+da3vsXvf//74H5+fj5r1qzh3Xf/RVXVM/utljn22GNjKjMmkWJ5\nIpgAvCoir7j73wNGHOwHi8jhwDmqOhRAVfcA/z3Y6xoTr2gDxUIbdxsT+hQxevSVFBcX86Mf/Siu\ncQHWsGv8IJZpqBeKyGnAGTjVN79R1S+a4bN7AptF5CGcGU1XADeo6jfNcG1jmpWqs2rYK6+8wty5\nc1m0aFHEoK3hPPPMHAYOHBjXdUMnogNnQJo17Jpk2984ghNV9R03CSgQaL3qJiLdVPXNZvjs/sB1\nqvqGiNwD3AT8LvSk8vLy4OuCggIKCgoO8mONCXegb+U1NTWUlJSwaNEiwLl5z537TIOniOnTZzWa\nCCLbIICw/Wg9ioyJVXV1NdXV1U2/QGMjzYBZ7p/VwMuRWzyj1hq5/lHARyH73wWejzjn4IbXGROj\naJO01dfX66xZs7RNmzZhk8S1a9dOv/e9QTGP3o2crC47u6O7gti+yetsYjjTnGiukcWqWuL+WdD0\nNNM4Vf1MRDaISG9VfQ84D1iTiM8y5kCi9QaaPXs2JSUlDc7dvXs35513Bm+8MS6muv3INojaWoA/\nEW+bhDGJ0miLlogMEZGLGtua6fOvBx4VkVU4vYZ+f4DzjUmayy+/nJNOOimsrF27DvTr911OP/10\nJky4nry8ieTlTeSnPx3ItGkPUFQ0JK4eR8b4QaMDykRkDs6j8JE4QyRfcg99H3hNVX+U8OBsQJnx\n2Ouvv86ZZ55JVlYW9fXZ1NXNADLIzh4L1FFbG+jzPwooAfqGjTiGhiOSI98beb4xBytRI4t/paqf\nuvtHA3NVteigIo0lOEsEJglUlU8++YQuXbpEPV5RUUFFxRMsXXoZ+wZ+zcWp3lkWsr8A+Aswt8GU\nEgdqLLYkYJpTIkYWdwU+C9nfBHSLNzBjki2W0cKBHkHvvvsuq1evZtmyZQ3ec8UVVzBv3l9j+MQv\nGz0SrQ3Cbv7GNw7UmgzMxFmVbBgwHFgI3BdPi3RTN6zXkGmiaMtKhvbMidYjaNCgQY2+J/J6Ikco\ntA5Zm6CDu1ZBmfUCMp4jzl5DsVQNCXAhcI5b9Iqqzk9ATor22Xqg+IyJpqhoCFVVgwmtyglU10SO\nCwg3FpgafE9m5o20bduG0tLhDBgwIPi08MUXm1i58kvgCKAzzmD7z8jLm8hjj/2Pfds3nmr2qiFV\nVRF5E9iuqlUikisibVR1+0FFaoxH1qxZEzUJtGvXga++Cl87eM+eY9my5WpuuWUUkybdGKz3r6ys\nZNCgX1BffxOhyea00061JGBSz4EeGXC+6rwBfODu9wZejOexo6kbPq8aamw5QuO9A1UNDR8+PFgl\nlJubqzNnztQXXngh7D1Odc/C4ICxvLxeYZ8xadIkzchoZwPDjO8QZ9VQLDfjVcAhhKxTDKyO50Oa\nuvk5EcSzfq3xRrTRwgFfffWVdunSRfPz8/WDDz5o8J7MzCMVysJGDkcmggN9hjFeiTcRxNJraLeq\n7naaCkBEMt1vUmnNWWM2fP3a6dMn2nqzPhDoLbRz5zecddYpTJkypcE5RxxxBEuWLKFbt25RZwrt\n3r0zH3zwR6CvWzKK0tIbG5wXrTeQMakmlkSwWEQmALkiUghcCzyX2LCMaZrKykp+8pNfsWvX+cAL\nLFmykK5du3Ldddc1OLdHjx4N3hs68Cszs4xDDx1PdnYupaU3WpI3LdeBHhlwpqEYATztbiW4A9ES\nvWFVQ2mhOatXvvvdgQp9wiaJa936cN29e/cB31tYeFHME8kZ42c0ZxsBzhPDu/FcsDk3PycCVdXz\nzjtPob1Cez3vvPO8DiclHahRN95rtWqVGZYEAtusWbPCzouWeCwRmJaiWROBcz3+D+gez0Wba/Nz\nIrAngubRnDffjRs36mGHHdYgCVx77bW6d+9eVd1/4mnOpGSMl+JNBLGsp5cHrBGRl0TkOXdbcHAV\nUqkvvLF4KHCvW2a80qVLF2bOnBncb936cE466TTWrfuMO+64g6KiIVx22Uh27rycwN/bzp1TgoPE\nAquFFRYuoLBwgU0EZ9JGLI3Ft7h/ho5SS/teQ3V1tTGVmf1r7jV7hw4dyt/+9jc6dOhARcXTrF17\nPWvXQlVVYHbQwcBvgHY4y3GHs15AJh3tb6nKHOBq4DjgLaBCVeuSFZjfHXnkEWzfPiakZAxHHnm0\nZ/GkqnjX7FV11g5+/vnneeaZZxp0/RQRnnjiCfr3L2DXrqmEdu91Zge9231dCnxFTs4jtli8SXv7\neyKYC9QCrwKDgJOAG5IRVCpo2zYPKMK5uQAMpW3b5R5GlLpi/RYeOUfQH//4R0aOHBk8Hhg/8Pbb\nb/Ppp58Au3FWRI127d60bv0Y3/rWCWFVQ8akpcYaDwgZPYyTMFbG0/jQHBs+bizu1+9sdwqCfdMR\n9Ot3ttdh+UJzj7ZtbO3gjIxW+tBDDwU/s+H0EGUhf7Z1/5yj0ElhiE0PYVosmnFk8Z6QZLEnMLLY\nODp06AScQegTQYcOH3kYkT9EDspasmToQTe6zps3L+rawfX1rbjqqt9w9NFHN1gX2BGoCroFZ5aU\npcATwOVkZMyhvv4P2LrBxuxnzWLgFBHZHtiAviH725IVoF+VlY0gO3s28AnwCdnZs4MrT6Wz8Bty\neK+cprrkkks4/fTTI0rzgXeorZ0Rw/W/BtqTnf0B/fp1p7DwI049tc9BxWRMS9LoE4GqtkpGACLS\nClgObFTVHyfjM5tLfb1GfW2aV2ZmJnPmzKFfv37U1dVRX38ZThNWBnA/K1asol27XJx1gwPG4CSj\nUcBO+vU7iTvuuCfKOsLO2QfbW8mYlBZPPVIiNpzuG48CC6Ica+aas+ZjbQTRHcygrPr6ev3www/D\nrhXa1nDzzTdrVlabkN97oO5/36A+yFf4tkI7hfbaq9dJjX6+zRxqWiqae2RxIjfgGODvwPeB56Ic\nT8CvqHnk5fVqMCI22jTF6agpN9j169drUVGRduzYUT///POoCcVJvnPUWSPgIoVjGvwdOOVq00OY\ntBZvIohlQFki/QFnbcC2HscRt3bt2rBlS8MyE9+gLFVnXEBpaSnbtzuL3o0cOZKtW/eGNf7u3Anr\n108MfIK7nRnlip8Ac62qx5g4eJYIRORHwOequlJECho7r7y8PPi6oKCAgoJGT02qtm0Pw6mHDhhD\n27bHexVOSmps7eCnnnqKU06JbByG7t2PYefOccF6/ezsd4Gx1NYG9sdy8sm96dBhwQEHphnTklRX\nV1NdXd3k9x9w8fpEEZHfA7/E6aZ6KM5TwV9U9Vch56hX8R2Iszh6TyDQZbQnhYUfBde0NQe2dOlS\nzjnnHCL/jvPz8xk2bBjXXntTsBtqTs445s93vuHvG4U8osG+3fyNiX/xes8SQVgQIvnAGI3oNeTn\nROAsXn4B9fVOdVBGxnZeeOH/7EYUITDaF6LfuBctWsT06dMByM3NZerUqVxzzTVkZGQ0eK/9bo2J\nTbyJwOs2glD+vOM34vHHH6e+/hACc9fU14/i8ccft5tViMjBZYsX/xKoo7b2HsAZbDZv3gM8//zz\nHH300VRUVHDssccG3798+XJWrFgVfG2/W2MSJJ6W5WRv+LjXkLO4eXiPlczMI70OyxcCvYacnlVl\nCusV/uT+vs5osPbAxx9/HFwvIMDWezCm6UjAegTGxCzwFFBVNZgtW24B/gyciDOR7TtR39O5c+fg\nLKKVlZUUFQ2hvPxebL0HY5LDT1VDKaWg4BT+/vfQkayjKCho2NMl3eybYuL7OPP/7wg5ehetWrVm\n716n0Tc7eyz5+TdQVDQEgPz8/kyefJ/7/k+SHLkx6csSQROJtMW50QUmnStBxCadc7wDXA9sjyiv\nZ+/eHQTWOtqzZxu33z6D2tq7AHjxxdHU11+B8wRwFHB5yHtHUVp6Y6IDNyYtWSI4KH3Zt9DJXPZ1\nJU1fZWUjqK7+KXV1uyKOZOPMDbQHZ0A51NfvcJPAUHcf4E/u+cXAUDIzb6Rt2zaUlt7IhAkNVxQz\nxhw8SwRNVFY2gsWLL6W21rlxZWe/S1nZPI+j8geRQ4DhwAy3JB+owFnjqBSnvQD3dbiMjHXU1ztV\nRzk5jzB//v9abyFjEswSwUHJYt9NbayXgXhGVQldq2LatAdCvuU/hLNGcGCm0FeBXPatGbCa0BlD\nc3LGMWHCaBYvdqrbbHSwMclhiaCJwm94UFvb8hc2CR3gVVpawsaNG3n00UdZtGgRWVlZUd5xIzAV\neNjdHwUUhhzvi7OIfCmwl5/+9CdMmDABqwEyJrksEZiYhA8O+5IXX7yA+npnkp8pU6Zwyy1OA3BZ\n2Qiqqn7mvusYYC9wE87y1zuBKpwnBHCeoh4GPgP+xHPPLUnWj2OMCeGLKSYa4/cpJgYPvpTa2hMA\np41gwYJ5LfaJwJlb6cc4jb2lhPYIysrKYvny5ZxyyikAdO7ck08/3Qb0Bs7GufEfDZQBtwLbgOOB\ncpxG4bnAn8jL28yXX76frB/JmBYr3ikmbEDZQQm0EVztvm7pVuF0mQ3vFpqVlcW///3v4P5RR3Vh\n35LXS3Fu32tbAAARQElEQVSeBgIzjZ8GXAGsxXkSmIszi+tblJYOT2DsxpjG2BNBEznfkAezr+Fz\nLoWFC1rs7KOVlZX88IcXolrHvps8QAYPPTSbYcOGBUv69y9g5coBhM7M6iSEj3Bu/J8B15GX155t\n23Zy6KGtuOmmkdY91JhmYk8EJmFUDwWmAG1wev9cDhzNY489B+ybHmLduvdwbviD3e1BnB5Cl+Mk\ngVFAMaeddhp1dZvYvv0TSwLGeMgSQROVlY0gM3Mk0BXoSmbmyOA0y6lOVcOqeiAwdfTxQHvgcZwb\n+3mA8MUXX4bNMbRjR3ecJ6UF7nale5UngIk4vYnCZhw3xnjIEkETLV++nD17WgGTgEns2dOK5cuX\nex3WQaupqWHgwIEMGDCA9evXRxw9GxgHfIEzJmAUsIV1695j/PiJIUtLlhP+RDAb+DZOI/FvgWPc\npSRbRuI0JtVZG0ETtW9/HFu2/JbQNoK8vIkp2+tFo6wdXFhYSGVlJSIS0n30cpz6/n/jVBFdAiwl\nI+Pf7jxBhcADwFratPma4447FthDhw6dyM/vz+LFbwK20IwxiRRvG4Hnaw7sb8PH6xE4c+2Hr0eQ\nl9fL67CapKamRouKihRncaCw7YEHHgiet3DhQu3XL18zMtq76wzMUeiksNB9fYRCh+AaAtnZHXXh\nwoUe/mTGpCdsPYLk6N+/J07VyFx3G+WWpZ6tW7fy8ssvNyjv27cv99zzZ9q3P47+/QsAePPNal54\n4VHy8p7FmSBuLs5YAABh3/oBQ6mtvSs4EtkY419WNdRETtXQt4F/uSXfJi/vXylbNTRp0iR++9vf\nAnDIIYfQsWNXNm78DGfWUGdN4czMMvr2PSFYzfO7302jvv4P7hXG4fQKWgosc8tadpdaY/wqJRev\nb4z/E0FqthFEWxS+rq6OM844g7q6Ot577xN2756G843/akJ/xkBZTs44OnduzwcftAU6AyOAz8jI\nKKO+fhrgTCI3f75NHGdMsqXMOAIR6SoiL4vIGhF5W0RGHfhd/uGMgi0BOrpbie9HxtbU1DBixIhg\nN8+qqsFceOFQKisrycrK4sYbb2Tjxq/ZvftbOAvDdI5ylc6AM+dQ27Ydycn5CKdn0Gfk5Izj9ttH\nU1i4gMLCBZYEjEkRXk46VweMVtV/iUhrYIWIVKlq9IVtfWbdunVADvsWphnllvmPNugRNIrAt/yd\nO2H8+DsYP34iq1atDanqGYqzytiYkCuVAo8F9zp0aM/8+XNDni6cG7+NDTMmtfimakhEngXuU9UX\nQ8p8WzWUldWJPXumElptkpl5I3V1m7wMq4GamhpKSkpYtGhRSGlb4EOcwWFjcNYNyMUZExFeDSTy\nNq1bt+PII9uzYcN/qK29B7BqH2P8LN6qIV9MQy0iPYB+wD+9jSR2qntjKvPSa6+9xsCBA4PjAvbZ\nhlOnL8DfccYD1DV4f17eZh577OngzT68bcGSgDEtheeJwK0Wehq4QVV3RB4vLy8Pvi4oKKCgoCBp\nse3PkUcezqefhlabjOHIIw/3LJ5oTj31VDp27BiWCHJzcxk2bBgLF77Mhx9+DNzrHrmOyNXCHnss\n/GZfXFxsN39jfKi6uprq6uomv9/TqiERyQKeB/6mqvdEOe7bqiFn9tGehM6wWVj4ke+6Si5evDiY\nPPPz86moqGDdunX88Ic/R/UPhFcF3Qpsp1+/vtxxx3i76RuTolKm+6g4C93OBb5U1dGNnOPbRBC+\nYpf3deb19fVkZETvBDZ+/Hi2bdvGe+99iojwxRebWLlyPfAzwqeKfoJevTrw/vsrkxS1MSYRUikR\nfBd4BXgLZzoDgPGqujDkHN8mAojeHz/ZAj2C/vznP7N48WJyc3MbxPfFF1+yZs2qYENvRsZo6utb\n4SwYE6gaGgXUsnDhs/YkYEyKS5lEEAu/JwKvRfYIGj16NNOnO6OAI59YnN5Bj7ivy3EmjbuCfd1f\n59Kr1z32NGBMC5AyA8pM06kqDz74IH369AnrFnrPPfewdOlSwFk/YN+00ENxbvh3uK+vBv6AUzNX\nGXz/sccem6wfwRjjI573GjLxW7x4MSUlJQ3Kc3JyeO6557jttumsWLEKp94/1Ac4K4wNDSkrJzAq\nuKxsbqJCNsb4mCWCFFRQUMBPf/pTnnzyyWBZfn4+w4YN46qrRlNbewLOtBd/dI/2JTt7LNnZmeyI\n6KCbl7eZ005bYOMCjElj1kaQojZv3szJJ5/M119/zdSpU7nmmmsYMOB7rFz5b/bV+4+hdesszjzz\nzOBqYH7q6WSMSQxrLG5BVJXVq1dzyimnRD3+8ssv071792Ddfiwzovqhp5MxJrFScooJ01CgR1B1\ndTUrV67kpJNOanDO97//fSorK7n66rEAtGvXhi1bws/p3v2YsH0bHWyMiWSJwGcazhQKw4cPZ+nS\npWRmhv91RXYRzc7+DZmZZezZg7s/ljvueDip8RtjUo9VDfnIxo0b+fWvfx0xU6hj6tSpjB07NqzM\nmeZiMKFVQf36zaJDh06AVf0Yk66saiiF1dXVBccBhMrPz2fIkCExXaNDh06+m+/IGONvNqDMR3r2\n7MnUqVOD+7m5ucycOZOXXnop6mCvsrIR5OSMwxkYNtcdCzAieQEbY1oEqxrymfr6es4991xUlYqK\nigOO9rVeQMaYSNZ9NAXU1NRQUVHBrbfeijMJa7itW7fStm3bRmcTNcaY/bE2Ah+L7BHUo0cPhg0b\n1uC8I444IvnBGWPSlj0RJEm0tYMPP/xw1qxZQ5cuXTyMzBjT0tjsoz60YsWKBjOFAvz3v//l/vvv\n9ygqY4xxWCJIgr59+9KzZ/hMoIEeQRMnTvQoKmOMcVjVUJKsXLmS008/nT179gTXDrb5/40xiWC9\nhjy2d+9eWrVqFfXYnXfeSZs2bbjmmmusR5AxJmEsEXgk0CNo+vTpvPbaa9bzxxjjmZRqLBaRgSLy\nroisE5FxXsZyMGpqahg4cCAlJSW88847jB492uuQjDEmZp49EYhIK5wV1M8DPgbeAH6uqu+EnOPr\nJ4JoM4UGPP/885x//vkeRWaMSWepNKDsdOB9Vf0PgIjMAy4A3tnfm/xkxYoVUdcOzs3N5csvv/Qg\nImOMiZ+XVUNdgA0h+xvdspQxYMAArrrqqrCy/Px8Vq9eza9+9SuPojLGmPh4+UQQU51PeXl58HVB\nQQEFBQUJCqdp7rrrLhYuXMjmzZuDawdbjyBjTDJVV1dTXV3d5Pd72UZwBlCuqgPd/fFAvapOCTnH\n120EAa+//jodOnSwcQHGGF9Ime6jIpKJ01h8LvAJ8Dop1lhsjDF+lDKNxaq6R0SuAyqBVsDs0CRg\njDEmOWxAmTHGtDApNaDMGGOM9ywRGGNMmrNEYIwxac4SgTHGpDlLBMYYk+YsERhjTJqzRGCMMWnO\nEoExxqQ5SwTGGJPmLBEYY0yas0RgjDFpzhKBMcakOUsExhiT5iwRGGNMmrNEYIwxac4SgTHGpDlL\nBMYYk+YsERhjTJrzJBGIyF0i8o6IrBKRZ0TkcC/iMMYY490TwSLgZFU9FXgPGO9RHM2iurra6xBi\nkgpxpkKMYHE2N4vTW54kAlWtUtV6d/efwDFexNFcUuUfRyrEmQoxgsXZ3CxOb/mhjeAK4AWvgzDG\nmHSVmagLi0gVcFSUQzer6nPuOROAWlV9LFFxGGOM2T9RVW8+WGQYUAKcq6q7GjnHm+CMMSbFqarE\nem7Cngj2R0QGAmOB/MaSAMT3gxhjjGkaT54IRGQdkA1scYuWqeq1SQ/EGGOMd1VDxhhj/MEPvYb2\ny8+Dz0RkoIi8KyLrRGSc1/FEIyJdReRlEVkjIm+LyCivY9ofEWklIitF5DmvY2mMiBwhIk+7/y7X\nisgZXscUjYiMdv/OV4vIYyJyiA9iqhCRTSKyOqQsT0SqROQ9EVkkIkd4GaMbU7Q4fXcvihZnyLEy\nEakXkbwDXcf3iQCfDj4TkVbATGAgcBLwcxE50duooqoDRqvqycAZwEifxhlwA7AW8POj6gzgBVU9\nETgFeMfjeBoQkS7A9cBpqtoXaAVc6m1UADyE838m1E1Alar2Bl50970WLU4/3ouixYmIdAUKgfWx\nXMT3icDHg89OB95X1f+oah0wD7jA45gaUNXPVPVf7usdODetzt5GFZ2IHAMMAh4EfNlRwP0WeI6q\nVgCo6h5V/a/HYTUmE8gVkUwgF/jY43hQ1VeBryKKBwNz3ddzgZ8kNagoosXpx3tRI79PgOnAjbFe\nx/eJIIKfBp91ATaE7G90y3xLRHoA/XD+EfvRH3B6k9Uf6EQP9QQ2i8hDIvKmiMwSkVyvg4qkqh8D\n04Aa4BNgq6r+3duoGtVJVTe5rzcBnbwMJkZ+uheFEZELgI2q+las7/FFInDrB1dH2X4cco7fBp/5\nueqiARFpDTwN3OA+GfiKiPwI+FxVV+LTpwFXJtAfuF9V+wNf44+qjDAi0g7nm3YPnCfA1iLyC0+D\nioE6vVd8/X/Lh/eiIPdLyc3AraHFB3qfJ+MIIqlq4f6Ou4PPBgHnJiWg2HwMdA3Z74rzVOA7IpIF\n/AV4RFWf9TqeRpwFDBaRQcChQFsR+V9V/ZXHcUXaiPNt6w13/2l8mAiA84CPVPVLABF5Bud3/Kin\nUUW3SUSOUtXPRORo4HOvA2qMT+9FoXrhJP9VIgJO9dUKETldVRv9vfriiWB/QgafXbC/wWceWA58\nS0R6iEg28DNggccxNSDOv4bZwFpVvcfreBqjqjeraldV7YnTqPmSD5MAqvoZsEFEertF5wFrPAyp\nMeuBM0Qkx/03cB5OI7wfLQCGuq+HAr78suLje1GQqq5W1U6q2tP9v7QR6L+/JAApkAiA+4DWQJXb\nrfB+rwMCp5EQuA6oxPkP9oSq+q73CHA2cDnwfff3t9L9B+13fq4euB54VERW4fQa+r3H8TSgqq/j\nPK28CQTqih/wLiKHiDwOvAYcLyIbRGQ4cCdQKCLvAT9w9z0VJc4r8OG9KCTO3iG/z1Ax/T+yAWXG\nGJPmUuGJwBhjTAJZIjDGmDRnicAYY9KcJQJjjElzlgiMMSbNWSIwxpg0Z4nAtFjuFLwPh+xnishm\nP09xDSAivpsCxLRslghMS/Y1cLKIHOruF+KMtEz64Bl32vJY2eAek1SWCExL9wJwvvv658DjuJNw\nichh7sIe/3RnEh3slvcQkVdEZIW7nemWH+2Wr3QnRTzbLQ9+gxeRi0XkIff1HBH5k4j8A5giIr1E\n5G8isty9zvHueT1FZJmIvCUik5L0ezEmyBKBaemeAC4VZ3WuvoRPwT0BeFFV/x/O1AZ3ubM3bgIK\nVfU0nHmP7nXPvwxYqKr9gFOBVW556Df4yG/znYEzVXUMzhQP16vqAJw5awJTFMwA/kdVT8GZMtqY\npPLF7KPGJIqqrnbXYfg58NeIw0XAj0VkjLt/CM4ssp8BM0XkVGAv8C33+OtAhTub67Oquor9U+Ap\nVVV3GvAzgafcWSEBst0/zwIudF8/AkyJ64c05iBZIjDpYAFwN5APdIw4dpGqrgstEJFy4FNV/aVb\nt78LnNWgROQc4EfAHBGZrqoPE/4UkBNx/W/cPzNwFofp1xw/kDHNyaqGTDqoAMpVNXK66EpgVGBH\nRAI36bY4TwUAv8JZ7xcR6QZsVtUHcab2Dpy/SUROEJEMnG/2DRp7VXUb8JGIXOxeS0TkFPfwUvat\nJ+z7xWNMy2OJwLRkCs6yjao6M6QscKOeCGS5jbRvA7e55fcDQ0XkX8DxQKAx+PvAv0TkTeASnLp9\ncBameR7nhh5Zxx+aFH4B/Nq97ts4K4gB3ACMFJG3cNoUrNeQSSqbhtoYY9KcPREYY0yas0RgjDFp\nzhKBMcakOUsExhiT5iwRGGNMmrNEYIwxac4SgTHGpDlLBMYYk+b+P9bk2Ftyx/2OAAAAAElFTkSu\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x102329790>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Linear_Predictor/Competitor\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x102329b90>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Gradient_Predictor/Competitor\n"
]
}
],
"source": [
"y_test_pred_reg = linear_reg.predict(X_test_mtx)\n",
"y_test_pred_gb = gradient_boost.predict(X_test_mtx)\n",
"zipped = zip(y_test_pred_reg, y_test_pred_gb)\n",
"plot_scatter(features['Competitor_2nd_Lowest_Price_per_standard_unit'], features['Winning_price_per_standard_unit'])\n",
"print \"Actual/Competitor\"\n",
"plot_scatter(feature_test['Competitor_2nd_Lowest_Price_per_standard_unit'], y_test_pred_reg)\n",
"print \"Linear_Predictor/Competitor\"\n",
"plot_scatter(feature_test['Competitor_2nd_Lowest_Price_per_standard_unit'], y_test_pred_gb)\n",
"print \"Gradient_Predictor/Competitor\"\n",
"\n",
"def merge_gb_linear(row):\n",
" if row['Competitor'] == 0:\n",
" return row['gb']\n",
" return row['linear']\n",
"\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nEoExxiS4/w/De+zHOX5JUwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e101e50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#lr = pd.DataFrame(y_test_pred_reg)\n",
"feature_test['linear'] = y_test_pred_reg\n",
"feature_test['gb'] = y_test_pred_gb\n",
"\n",
"feature_test['linear'] = feature_test.apply(lambda x: merge_gb_linear(x),axis=1)\n",
"y_test_merged = feature_test['linear'].as_matrix()\n",
"plot_scatter(feature_test['Competitor_2nd_Lowest_Price_per_standard_unit'], y_test_merged)"
]
},
{
"cell_type": "code",
"execution_count": 154,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(5.0934674468831194, 10.55893730683645, 10.55893730683645, 0.0)\n",
"(5.0580123570850031, 9.2173245606837124, 9.2173245606837124, 0.0)\n",
"(11.259013996137831, 8.1600254209296104, 11.259013996137831, 11.989000000000001)\n",
"(10.854125237292678, 8.1698161022943463, 10.854125237292678, 10.984999999999999)\n",
"(11.056023976904402, 5.9914015358868706, 11.056023976904402, 10.984999999999999)\n",
"(12.311061279332971, 10.447134612924641, 12.311061279332971, 12.49)\n",
"(4.7267841978458289, 8.9928558663564768, 8.9928558663564768, 0.0)\n",
"(10.851941854302201, 6.1009169688874545, 10.851941854302201, 11.0)\n",
"(10.223999735650818, 6.0441453692292324, 10.223999735650818, 11.289999999999999)\n",
"(8.4922151981544651, 5.8576409578219275, 8.4922151981544651, 9.25)\n",
"(4.4520995905834218, 8.4046257650491558, 8.4046257650491558, 0.0)\n",
"(10.364642216949306, 5.9663794088456648, 10.364642216949306, 10.484349999999999)\n",
"(11.792624893149039, 6.0922039535390118, 11.792624893149039, 11.989000000000001)\n",
"(10.846413301294049, 8.1583562640012346, 10.846413301294049, 10.984999999999999)\n",
"(4.6014968961509091, 8.8062508650662998, 8.8062508650662998, 0.0)\n",
"(4.7443229502013367, 9.0057792288738163, 9.0057792288738163, 0.0)\n",
"(9.1452530146690485, 5.9594100195697628, 9.1452530146690485, 9.75)\n",
"(7.7518967957965952, 5.7379931359697629, 7.7518967957965952, 7.3799999999999999)\n",
"(8.4903144612186985, 5.8601230998496012, 8.4903144612186985, 9.0)\n",
"(4.1345085146025538, 8.4320682546551549, 8.4320682546551549, 0.0)\n",
"(7.1673058477713223, 4.9442885769229656, 7.1673058477713223, 6.75)\n",
"(9.4632638749181961, 8.155797691145569, 9.4632638749181961, 9.6999999999999993)\n",
"(3.8996820900821865, 8.4014887441628865, 8.4014887441628865, 0.0)\n",
"(8.423610564630085, 5.8585971191579986, 8.423610564630085, 9.0)\n",
"(6.3932898327459569, 4.2262745025859401, 6.3932898327459569, 7.0)\n",
"(6.4045087845893143, 4.2316124588905009, 6.4045087845893143, 7.0)\n",
"(3.6490587372727816, 0.74177418570035025, 3.6490587372727816, 0.0)\n",
"(4.7434858919531528, 3.7782317829661793, 4.7434858919531528, 5.2750000000000004)\n",
"(5.4400181888438714, 4.2480445867135588, 5.4400181888438714, 6.1289999999999996)\n",
"(5.8033588952343171, 2.9973204761957266, 5.8033588952343171, 6.8499999999999996)\n",
"(8.1130144675198608, 4.3293949664706215, 8.1130144675198608, 9.0)\n",
"(7.2750911515022594, 4.3602141571228765, 7.2750911515022594, 8.0)\n",
"(5.5562819051872054, 4.3096440311681405, 5.5562819051872054, 6.2957999999999998)\n",
"(5.2137671097991607, 3.7285918886032867, 5.2137671097991607, 5.7539999999999996)\n",
"(5.223336054283938, 3.7322034138953577, 5.223336054283938, 5.7539999999999996)\n",
"(6.1948105070203905, 4.1729534609676495, 6.1948105070203905, 7.0)\n",
"(6.9876126418525324, 4.1988290109086126, 6.9876126418525324, 8.0)\n",
"(5.3400824961618909, 3.7876338598232739, 5.3400824961618909, 6.2000000000000002)\n",
"(4.4744509484479149, 3.8236491676017041, 4.4744509484479149, 5.1749999999999998)\n",
"(8.0024960387925965, 4.4520784290659305, 8.0024960387925965, 9.0)\n",
"(4.3822661825960063, 3.786667865382114, 4.3822661825960063, 5.3499999999999996)\n",
"(4.4380986495438499, 3.7872669787510524, 4.4380986495438499, 5.0099999999999998)\n",
"(3.2715361134995034, 3.5861583956678813, 3.5861583956678813, 3.5649999999999999)\n",
"(4.1264048215029518, 3.3230767170627478, 4.1264048215029518, 4.7999999999999998)\n",
"(4.5759809279591996, 3.4316693260351725, 4.5759809279591996, 5.1200000000000001)\n",
"(3.6521826158288668, 0.67820326537168507, 3.6521826158288668, 0.0)\n",
"(4.3526859432151719, 3.4226084523299996, 4.3526859432151719, 4.9500000000000002)\n",
"(4.3963555752430672, 2.7443649896784308, 4.3963555752430672, 4.8869999999999996)\n",
"(3.4569850384886225, 0.90975399966385551, 3.4569850384886225, 0.0)\n",
"(5.4019443566447993, 2.7227013391548893, 5.4019443566447993, 5.5899999999999999)\n",
"(4.4643543225198279, 2.6801747577745147, 4.4643543225198279, 4.9199999999999999)\n",
"(4.9433338336107244, 2.6625578702211858, 4.9433338336107244, 5.6200000000000001)\n",
"(3.5697308189094388, 2.4717872675957753, 3.5697308189094388, 4.2249999999999996)\n",
"(4.0940465821426333, 2.5915797073416327, 4.0940465821426333, 4.4500000000000002)\n",
"(3.6772117776064404, 0.67718093437204574, 3.6772117776064404, 0.0)\n",
"(5.7807464976747704, 2.9853874222502372, 5.7807464976747704, 6.6799999999999997)\n",
"(4.1055550794512108, 0.77134273397619935, 4.1055550794512108, 0.0)\n",
"(3.0814969410548274, 2.1563075492346768, 3.0814969410548274, 3.8180000000000001)\n",
"(2.9781793619168049, 2.1650830703028503, 2.9781793619168049, 3.6299999999999999)\n",
"(3.0503690579370346, 1.9938792239613685, 3.0503690579370346, 3.8199999999999998)\n",
"(3.4626555067935616, 2.0150843219580246, 3.4626555067935616, 4.0780000000000003)\n",
"(2.7876033937084226, 2.1284426242592676, 2.7876033937084226, 3.52)\n",
"(2.8320477400724213, 2.1281922833654296, 2.8320477400724213, 3.4700000000000002)\n",
"(2.6669433089698331, 2.0488668180744187, 2.6669433089698331, 3.2799999999999998)\n",
"(5.5538169073299191, 2.6130729386155407, 5.5538169073299191, 6.1320000000000006)\n",
"(4.5961003672302567, 2.3684072501250619, 4.5961003672302567, 5.0)\n",
"(2.7672465536823987, 1.9633325412929521, 2.7672465536823987, 3.6400000000000001)\n",
"(6.6124756427321651, 2.8533813500547351, 6.6124756427321651, 8.0)\n",
"(3.3009140989596903, 2.1772793767171463, 3.3009140989596903, 3.4500000000000002)\n",
"(2.4322584123613455, 2.1908401720520847, 2.4322584123613455, 3.2898000000000001)\n",
"(2.3705000794773121, 2.0630500527057674, 2.3705000794773121, 3.1299999999999999)\n",
"(2.515178622484683, 2.1368240312686235, 2.515178622484683, 3.0869999999999997)\n",
"(3.5588347289410702, 2.0418341039579588, 3.5588347289410702, 4.1984699999999995)\n",
"(2.9226670589128476, 2.0923142211778689, 2.9226670589128476, 3.6000000000000001)\n",
"(2.7607112562532357, 2.1140519768981165, 2.7607112562532357, 3.4100000000000001)\n",
"(4.3985833253801179, 2.2394864559641188, 4.3985833253801179, 4.9000000000000004)\n",
"(2.9592694419406618, 2.0452082697155824, 2.9592694419406618, 3.5800000000000001)\n",
"(2.2303784173347152, 2.1468170068554291, 2.2303784173347152, 2.8879999999999999)\n",
"(6.4592558014790731, 7.2542589721801098, 7.2542589721801098, 6.4770000000000003)\n",
"(6.7100969186296213, 4.9233358373563423, 6.7100969186296213, 5.9804599999999999)\n",
"(6.8806934009561376, 4.9284745524097104, 6.8806934009561376, 6.2450000000000001)\n",
"(3.1490685368781381, 9.2404399720798516, 9.2404399720798516, 0.0)\n",
"(6.4824850886350678, 5.0972342627526457, 6.4824850886350678, 6.0)\n",
"(5.5686538346462457, 5.093244198625591, 5.5686538346462457, 5.9299999999999997)\n",
"(2.886736111194804, 8.3249053159278841, 8.3249053159278841, 0.0)\n",
"(6.9988899021303315, 5.0517936015577805, 6.9988899021303315, 6.4770000000000003)\n",
"(6.0630365898314782, 7.1044150354091595, 7.1044150354091595, 5.4924999999999997)\n",
"(2.3677434377462783, 8.3054329034621386, 8.3054329034621386, 0.0)\n",
"(6.7858691688880137, 5.0972342627526457, 6.7858691688880137, 6.4770500000000002)\n",
"(4.783944729151103, 3.0265565958647058, 4.783944729151103, 3.9350000000000001)\n",
"(4.9204497155304772, 4.1254274512693572, 4.9204497155304772, 4.8700000000000001)\n",
"(4.2608207726991676, 2.9744213658888903, 4.2608207726991676, 3.375)\n",
"(5.3885345530314943, 6.9229522917788859, 6.9229522917788859, 5.0)\n",
"(2.3518589532123291, 8.3054329034621386, 8.3054329034621386, 0.0)\n",
"(5.9582264446350219, 5.0805657239209854, 5.9582264446350219, 6.1220000000000008)\n",
"(3.3621215468421162, 3.6099995984647468, 3.6099995984647468, 3.5)\n",
"(3.3733406891642868, 3.5922198311481481, 3.5922198311481481, 3.5)\n",
"(2.0779958102903593, 1.2084228098110952, 2.0779958102903593, 0.0)\n",
"(3.2374064171265857, 3.591859132052666, 3.591859132052666, 3.4900000000000002)\n",
"(3.189872667652089, 3.5845933575749975, 3.5845933575749975, 3.5)\n",
"(3.9998250735097156, 3.6698104941835554, 3.9998250735097156, 4.2000000000000002)\n",
"(4.2816921298849637, 3.65120985347904, 4.2816921298849637, 4.5)\n",
"(3.2830399063031499, 3.5675023793751812, 3.5675023793751812, 3.5)\n",
"(3.3017091584336291, 3.5675023793751812, 3.5675023793751812, 3.5)\n",
"(3.3313071229766678, 3.51409670745638, 3.51409670745638, 3.6800000000000002)\n",
"(4.0984511428826789, 3.5795796617042823, 4.0984511428826789, 4.6500000000000004)\n",
"(3.1675079207237395, 3.2674196733812111, 3.2674196733812111, 3.5)\n",
"(3.0332912902455389, 3.1949727791300755, 3.1949727791300755, 3.5)\n",
"(2.961463308215861, 3.3209001298617178, 3.3209001298617178, 3.3960000000000004)\n",
"(4.3695630276747348, 3.8766133682842616, 4.3695630276747348, 4.7999999999999998)\n",
"(3.0739707190261134, 3.5788682936328802, 3.5788682936328802, 3.7999999999999998)\n",
"(3.0763870886536888, 3.3294163192496433, 3.3294163192496433, 3.3900000000000001)\n",
"(3.318275577236907, 3.6567504358098684, 3.6567504358098684, 3.5649999999999999)\n",
"(2.0353409248784322, 2.3670167108705469, 2.3670167108705469, 2.3999999999999999)\n",
"(3.1204189300862288, 2.963119092207243, 3.1204189300862288, 3.3999999999999999)\n",
"(2.0835139192770837, 1.3175304429266448, 2.0835139192770837, 0.0)\n",
"(2.661288691193521, 2.9084248826608601, 2.9084248826608601, 3.0)\n",
"(2.7774202169417164, 2.7025667648486316, 2.7774202169417164, 2.968)\n",
"(3.6171068892412941, 2.6719002738749129, 3.6171068892412941, 3.7119999999999997)\n",
"(1.8965539553982116, 1.5676894579884164, 1.8965539553982116, 0.0)\n",
"(3.6191439573676512, 2.6093703177190126, 3.6191439573676512, 3.4900000000000002)\n",
"(2.7639879434231758, 2.7102504189340366, 2.7639879434231758, 2.9199999999999999)\n",
"(3.3161252606731551, 2.6123305470734137, 3.3161252606731551, 3.7000000000000002)\n",
"(2.2790031381160984, 2.5110330524002857, 2.5110330524002857, 2.6889999999999996)\n",
"(2.0947537267037646, 1.199420246597847, 2.0947537267037646, 0.0)\n",
"(3.2096673527340784, 2.5462021899082328, 3.2096673527340784, 3.7000000000000002)\n",
"(3.0190811717451913, 2.6825689637174484, 3.0190811717451913, 2.8900000000000001)\n",
"(2.1135567324449456, 2.313702862879043, 2.313702862879043, 2.218)\n",
"(3.5297067705449598, 2.4195116644252774, 3.5297067705449598, 3.3500000000000001)\n",
"(2.5673881379714176, 2.5663620379050176, 2.5673881379714176, 0.0)\n",
"(1.7795443826531976, 2.0845567626865589, 2.0845567626865589, 2.2719999999999998)\n",
"(1.903223165870555, 2.0902746307218938, 2.0902746307218938, 2.3369999999999997)\n",
"(3.2513803668814285, 2.4356623812468956, 3.2513803668814285, 3.3500000000000001)\n",
"(1.8256733704449501, 1.955711230423995, 1.955711230423995, 2.3599999999999999)\n",
"(2.2177419465031409, 2.0493995414610016, 2.2177419465031409, 2.5899999999999999)\n",
"(1.7839969750622175, 2.0845567626865589, 2.0845567626865589, 2.3100000000000001)\n",
"(1.878458216363293, 1.9725885035285, 1.9725885035285, 2.3119999999999998)\n",
"(2.5379869859511266, 2.6427907811887486, 2.6427907811887486, 0.0)\n",
"(3.3553097842929334, 2.2485302274717811, 3.3553097842929334, 3.8900000000000001)\n",
"(1.6390458635944281, 1.7789142859309071, 1.7789142859309071, 2.0499999999999998)\n",
"(3.3237729062558237, 2.3477752026362575, 3.3237729062558237, 3.5)\n",
"(3.2939308094652326, 2.253033080864741, 3.2939308094652326, 3.5)\n",
"(1.6363543965960063, 2.0504101882532435, 2.0504101882532435, 2.2999999999999998)\n",
"(1.5230184696531834, 2.0815090666735072, 2.0815090666735072, 2.1869999999999998)\n",
"(1.085235200413359, 1.3512460819221084, 1.3512460819221084, 1.6000000000000001)\n",
"(1.576361221569164, 1.7313967438093631, 1.7313967438093631, 1.95)\n",
"(2.3203056418906378, 2.116860693191807, 2.3203056418906378, 2.7168900000000002)\n",
"(1.386482537120469, 1.7849941780858307, 1.7849941780858307, 1.8)\n",
"(2.6962536887646698, 2.2394839878491921, 2.6962536887646698, 2.8999999999999999)\n",
"(2.0824435552176519, 1.9870971259804386, 2.0824435552176519, 2.5099999999999998)\n",
"(2.7987126850338075, 2.2950514486140516, 2.7987126850338075, 2.9500000000000002)\n",
"(1.3130252479058964, 1.5943638591856264, 1.5943638591856264, 1.78)\n"
]
}
],
"source": [
"zipped = zip(y_test_pred_reg, y_test_pred_gb, y_test_merged, feature_test['Competitor_2nd_Lowest_Price_per_standard_unit'])\n",
"for k in zipped:\n",
" print k"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"submission = pd.read_csv('/Users/ssing25/Desktop/CAX_Bidding_SubmissionFormat.csv')\n",
"submission['Winning_price_per_standard_unit'] = y_test_merged\n",
"submission.to_csv('/Users/ssing25/Desktop/CAX_Bidding_SubmissionFormat.csv', index=False)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#params = {'n_estimators': 500, 'max_depth': 4, 'min_samples_split': 1,\n",
"# 'learning_rate': 0.01, 'loss': 'ls'}\n",
"\n",
"gradient_boosting_grid = {'max_depth': [3, 6, 10],\n",
" 'min_samples_split': [1, 4, 8],\n",
" 'learning_rate': [0.01],\n",
" 'loss': ['ls'],\n",
" 'n_estimators': [100, 300, 500]}\n",
"\n",
"rf_gridsearch = GridSearchCV(GradientBoostingRegressor(),\n",
" gradient_boosting_grid,\n",
" n_jobs=-1,\n",
" verbose=True,\n",
" scoring='mean_squared_error')\n",
"#rf_gridsearch.fit(train_x, train_y)\n",
"k_fold = cross_validation.KFold(len(X), 10)\n",
"for k, (train, test) in enumerate(k_fold):\n",
" rf_gridsearch.fit(X[train], y[train])\n",
" print(\"[fold {0}] mse: {1:.5f}, score: {2:.5f}\".\n",
" format(k, mean_squared_error(y[test], rf_gridsearch.predict(X[test])), rf_gridsearch.score(X[test], y[test])))\n",
"\n",
"print \"best parameters:\", rf_gridsearch.best_params_\n",
"\n",
"#best_rf_model = rf_gridsearch.best_estimator_"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"\n",
"# Fit regression model\n",
"params = {'n_estimators': 500, 'max_depth': 6, 'min_samples_split': 3,\n",
" 'learning_rate': 0.01, 'loss': 'ls'}\n",
"clf2 = GradientBoostingRegressor(**params)\n",
"k_fold = cross_validation.KFold(len(X), 10)\n",
"print(\"Alpha parameters maximising the generalization score on different\")\n",
"print(\"subsets of the data:\")\n",
"for k, (train, test) in enumerate(k_fold):\n",
" clf2.fit(X[train], y[train])\n",
" print(\"[fold {0}] mse: {1:.5f}, score: {2:.5f}\".\n",
" format(k, mean_squared_error(y[test], clf2.predict(X[test])), clf2.score(X[test], y[test])))\n"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Plot feature importance\n",
"#feature_importance = clf.feature_importances_\n",
"# make importances relative to max importance\n",
"#feature_importance = 100.0 * (feature_importance / feature_importance.max())\n",
"#sorted_idx = np.argsort(feature_importance)\n",
"#pos = np.arange(sorted_idx.shape[0]) + .5\n",
"#plt.subplot(1, 2, 2)\n",
"#plt.barh(pos, feature_importance[sorted_idx], align='center')\n",
"#plt.yticks(pos, df2.feature_importance[sorted_idx])\n",
"#plt.xlabel('Relative Importance')\n",
"#plt.title('Variable Importance')\n",
"#plt.show()"
]
}
],
"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.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment