You are on page 1of 27

refill_booking

To predict the no of refill bookings for a given date or a week in an year.

https://github.com/SwethaRavi30/refill_booking.git

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from sklearn.linear_model import LinearRegression\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.metrics import mean_squared_error, r2_score\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['august-20.csv', 'july-20.csv', 'Nov-20.csv', 'oct-20.csv', 'sep-
20.csv']\n"
]
}
],
"source": [
"import os\n",
"import glob\n",
"import pandas as pd\n",
"os.chdir(\"D:/ml project/refill_booking\")\n",
"extension = 'csv'\n",
"all_filenames = [i for i in glob.glob('*.{}'.format(extension))]\n",
"print(all_filenames)\n",
"#combine all files in the list\n",
"final_csv = pd.concat([pd.read_csv(f) for f in all_filenames ])\n",
"#export to csv\n",
"final_csv.to_csv( \"final_csv.csv\", index=False, encoding='utf-8-
sig')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# print(final_csv.columns)\n",
"# print(final_csv.shape)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(106171, 32)\n"
]
}
],
"source": [
"final_csv.dropna(subset = [\"Book Date\"], inplace=True)\n",
"print(final_csv.shape)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Book Date freq\n",
"0 7/27/2020 759\n",
"1 7/31/2020 572\n",
"2 7/31/2020 572\n",
"3 7/29/2020 682\n",
"4 7/31/2020 572\n",
"... ... ...\n",
"21196 9/29/2020 709\n",
"21197 9/29/2020 709\n",
"21198 9/29/2020 709\n",
"21199 9/30/2020 704\n",
"21200 9/30/2020 704\n",
"\n",
"[106171 rows x 2 columns]\n",
" Book Date freq\n",
"0 7/27/2020 759\n",
"1 7/31/2020 572\n",
"3 7/29/2020 682\n",
"10 7/30/2020 603\n",
"21 8/1/2020 678\n",
"... ... ...\n",
"12253 9/18/2020 733\n",
"13048 9/19/2020 662\n",
"13785 9/20/2020 454\n",
"16294 9/24/2020 671\n",
"17024 9/25/2020 611\n",
"\n",
"[164 rows x 2 columns]\n"
]
}
],
"source": [
"final_csv['freq'] = final_csv.groupby('Book Date')['Book
Date'].transform('count')\n",
"# final_csv['Book Date'] = pd.to_datetime(final_csv['Book Date'])\n",
"print(final_csv[['Book Date','freq']])\n",
"\n",
"data = [final_csv[\"Book Date\"], final_csv[\"freq\"]]\n",
"headers = [\"Book Date\", \"freq\"]\n",
"reg_df = pd.concat(data, axis=1, keys=headers)\n",
"reg_df=reg_df.drop_duplicates()\n",
"print(reg_df)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"jan=pd.read_csv('D:/jan-20.csv')\n",
"# print(type(jan['Book Date']))\n",
"# print(type(jan['freq']))\n",
"# jan['Book Date'] = pd.to_datetime(jan['Book Date'])\n",
"# print(jan.loc[jan['Book Date']=='01-02-2020'])\n",
"reg_df=pd.concat([reg_df, jan], ignore_index=True, sort=True)\n",
"# print(reg_df.loc[reg_df['Book Date']=='01-02-2020'])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Book Date freq\n",
"0 737633 759\n",
"1 737637 572\n",
"2 737635 682\n",
"3 737636 603\n",
"4 737638 678\n",
".. ... ...\n",
"328 737601 723\n",
"329 737602 720\n",
"330 737603 634\n",
"331 737605 702\n",
"332 737606 845\n",
"\n",
"[333 rows x 2 columns]\n"
]
}
],
"source": [
"daily_df=reg_df.copy()\n",
"\n",
"import datetime as dt\n",
"daily_df['Book Date'] = pd.to_datetime(daily_df['Book Date'])\n",
"# print(\"oooooooooooo\")\n",
"# print(reg_df)\n",
"daily_df['Book Date']=daily_df['Book
Date'].map(dt.datetime.toordinal)\n",
"# print(\"iiiiiiiiiiii\")\n",
"print(daily_df)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"x=np.array(daily_df['Book Date']).reshape(-1,1)\n",
"y=np.array(daily_df['freq']).reshape(-1,1)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x21917e1cd30>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png":
"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\n"
,
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(x,y)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(333, 1) (333, 1)\n",
"(266, 1) (266, 1)\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x2191825ee50>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png":
"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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from sklearn.metrics import mean_absolute_error\n",
"from sklearn.neighbors import LocalOutlierFactor\n",
"# print(x_train.shape, y_train.shape)\n",
"# identify outliers in the training dataset\n",
"print(x.shape,y.shape)\n",
"lof = LocalOutlierFactor(n_neighbors=7,contamination=0.5)\n",
"yhat = lof.fit_predict(x)\n",
"# select all rows that are not outliers\n",
"mask = yhat != -1\n",
"x,y=x[mask],y[mask]\n",
"print(x.shape,y.shape)\n",
"plt.scatter(x,y)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(178, 1)\n"
]
}
],
"source": [

"x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.33,random_sta
te=1)\n",
"print(x_train.shape)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MAE: 126.642\n"
]
}
],
"source": [
"# fit the model\n",
"model1 = LinearRegression()\n",
"model1.fit(x_train, y_train)\n",
"# evaluate the model\n",
"ypred= model1.predict(x_test)\n",
"# evaluate predictions\n",
"mae1 = mean_absolute_error(y_test, ypred)\n",
"print('MAE: %.3f' % mae1)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png":
"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
L5/zAeF2qiaNR/AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.026636810376199582\n"
]
}
],
"source": [
"y_pred=model1.predict(x_test)\n",
"plt.scatter(x_test,y_test)\n",
"plt.plot(x_test,ypred,color='red')\n",
"plt.show()\n",
"print(model1.score(x_test,y_test))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# d=np.array(737603).reshape(-1,1)\n",
"# print(model1.predict(d))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"# pd.set_option(\"display.max_rows\", None, \"display.max_columns\",
None)\n",
"# print(daily_df.sort_values(by=['Book Date']))\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"filename='refill_booking_prediction_model.sav'\n",
"pickle.dump(model1,open(filename,'wb'))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[767.42371588]]\n"
]
}
],
"source": [
"loaded_model = pickle.load(open(filename, 'rb'))\n",
"d=np.array(737900).reshape(-1,1)\n",
"print(loaded_model.predict(d)+119)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Book Date freq\n",
"0 7/27/2020 759\n",
"1 7/31/2020 572\n",
"2 7/29/2020 682\n",
"3 7/30/2020 603\n",
"4 8/1/2020 678\n",
".. ... ...\n",
"328 6/25/2020 723\n",
"329 6/26/2020 720\n",
"330 6/27/2020 634\n",
"331 6/29/2020 702\n",
"332 6/30/2020 845\n",
"\n",
"[333 rows x 2 columns]\n"
]
}
],
"source": [
"print(reg_df)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"week_df=reg_df.copy()\n",
"week_df['Book Date'] = pd.to_datetime(week_df['Book Date'])\n",
"# print(week_df)\n",
"# week_df=reg_df.groupby('Book Date').resample('W-Mon',on='Book
Date').sum().reset_index().sort_values(by='Book Date)')\n",
"# print(week_df)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"week_df['WeekDate'] = week_df.apply(lambda row: row['Book Date'] -
dt.timedelta(days=row['Book Date'].weekday()), axis=1)\n",
"\n",
"perweek = week_df['WeekDate'].groupby(week_df['WeekDate']).count()\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" WeekDate freq\n",
"0 737423 3322\n",
"1 737430 4513\n",
"2 737437 2838\n",
"3 737444 5154\n",
"4 737451 4812\n",
"5 737458 6178\n",
"6 737465 5801\n",
"7 737472 6705\n",
"8 737479 5556\n",
"9 737486 5389\n",
"10 737493 5124\n",
"11 737500 5323\n",
"12 737507 4169\n",
"13 737514 6339\n",
"14 737521 5776\n",
"15 737528 5302\n",
"16 737535 4124\n",
"17 737542 4272\n",
"18 737549 6540\n",
"19 737556 4096\n",
"20 737563 3840\n",
"21 737570 4080\n",
"22 737577 4516\n",
"23 737584 4557\n",
"24 737591 3967\n",
"25 737598 4520\n",
"26 737605 5737\n",
"27 737612 4395\n",
"28 737619 4423\n",
"29 737626 4291\n",
"30 737633 4519\n",
"31 737640 5367\n",
"32 737647 4727\n",
"33 737654 4489\n",
"34 737661 4459\n",
"35 737668 5245\n",
"36 737675 4997\n",
"37 737682 4610\n",
"38 737689 4416\n",
"39 737696 5281\n",
"40 737703 5549\n",
"41 737710 4946\n",
"42 737717 4820\n",
"43 737724 4730\n",
"44 737731 5443\n",
"45 737738 4428\n",
"46 737745 5780\n",
"47 737752 4837\n",
"48 737759 29\n"
]
}
],
"source": [
"#
print(week_df.loc[week_df['WeekDate']==pd.to_datetime('1/27/2020')])\n",
"week_df1=week_df.groupby(['WeekDate'])['freq'].sum().reset_index()\n",
"\n",
"week_df1['WeekDate']=week_df1['WeekDate'].map(dt.datetime.toordinal)\n",
"# print(week_df1)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x2191854ebb0>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png":
"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
\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"week_x=np.array(week_df1['WeekDate']).reshape(-1,1)\n",
"week_y=np.array(week_df1['freq']).reshape(-1,1)\n",
"\n",
"plt.scatter(week_x,week_y)\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MAE: 708.111\n"
]
}
],
"source": [
"# fit the model\n",
"model2 = LinearRegression()\n",
"model2.fit(week_x, week_y)\n",
"# evaluate the model\n",
"ypred= model2.predict(week_x)\n",
"# evaluate predictions\n",
"mae = mean_absolute_error(week_y, ypred)\n",
"print('MAE: %.3f' % mae)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png":
"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
zGzktuwT4lgo74XTgqxHxPUk/AjZLugV4BbgJICJ2S9oMPAucAG5Leu4A3MrpLpuP0KlG3A7ruTxh
abrq0ktbf59iuqrZg8f4+Onpt96q/znTpzfXtuF0VWZ1u52p2kHnYx8c6uo+3M0Yok51k2+XkZGRG
B0d7XY1znDNhscqnj0Mzx7giXXXdaFGPeTkydPpqkYayKultKaarmrk4DE4WGgvsZ5W6Yz6rkf3dH
UfTiOGSNoRESPl5U7AtsB5wimYNg1mzy48WhUB77zTeK+qYnkxXVV83Ui6amBgam0cg4OF98houqr
bKY40VLpp7PcefKbivMV9uNPrpZsxxEG/Bd1unMo9Cc4/v/CYarqqmcbx4vSBA62lq1o9cHQoXdVz
aco2qpfr7/R66WYMcdBvQbcbp6xNZs2CoaHCo1XV0lX1DiAvv3xm2cmTtT+nNF3VzD0c5dMl6ao8d
2estQ+nsV66GUMc9FvQ7cYpy5C00lWVpicmYO/e02V/8zf1P+vcc987ANwzGRyZWRhe5K1Z5zGZDD
UyOet8mPdS9YNHG9NV3Uov1dqH66V+Ov35neaGXLN+UZ6uqtPT6sln9jHzrUkuPPYOFx57mwuOv8O
FxxsIbNOnN96eUe1vF17Ilp8crHi22+2fIOyXjhpuyDVrUs81cjaZrjpUlrsGOH8a/Nfli7nx/ec3
nqo6cqT5dBVww6zzWDbzvPeuLiZnncdbM8/j5PcH4R9eXv/gMTgIM2e2vLqq6ff0ba6Cfs/txNZx1
baJVhrzur19Nfv51VIMN061zuXpqipXGw9+55nC1UVypTH3nSO8//WDXLj/Hfjp9qbTVU13xy1Ol6
Wr+j19m5v0TvlODNm4lLTuqbVNNNuPu9vbV7s/P40DWN00Sr3eVY38bXKyfkUqpauaSVUl6aqs3Qy
Y+/ROnnsqWGW1tolm+1F3e/tq5+fXu8pp1wGhbhqlE72rGklVvfkmvPLKma8bSFedcTNgs72qOpiu
KpeboO8bqqxcrW2i2X7U7d6+mg2s7fz8WgcQoG192GulUdp2pdGp3lVlB4nnn9/PT57dj468ybxTx
7j8RDDv1VfhxRdPL9NKuurxxwvjWbVRboK+b6iycrW2iWYb81rdvioFN2g+sLZz+651AGn3FU2lu2
Uzd9NYnZsBt+wcZ/3ruzg6t05q7fjx5lNV557b9q+Tm6Df7y3y1rxa20SzjXmtbF/Vgtu5M85pOrC
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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.02862886680747012\n"
]
}
],
"source": [
"y_pred=model2.predict(week_x)\n",
"plt.scatter(week_x,week_y)\n",
"plt.plot(week_x,ypred,color='red')\n",
"plt.show()\n",
"print(model2.score(week_x,week_y))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"filename2='refill_booking_prediction_model_week.sav'\n",
"pickle.dump(model2,open(filename2,'wb'))"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[5767.55106414]]\n"
]
}
],
"source": [
"# loaded_model = pickle.load(open(filename2, 'rb'))\n",
"# d=np.array(737100).reshape(-1,1)\n",
"# print(loaded_model.predict(d)+119)"
]
},
{
"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.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

You might also like