From 458803c010c6ffb6811e945d3375b1bf59bfb4c4 Mon Sep 17 00:00:00 2001 From: Guilherme Pereira Date: Tue, 20 Jul 2021 00:24:48 +0100 Subject: [PATCH] 75% --- your-code/main.ipynb | 700 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 675 insertions(+), 25 deletions(-) diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 9a2d1ae..37c59a6 100755 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 76, "metadata": {}, "outputs": [], "source": [ @@ -22,7 +22,8 @@ "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", - "import pandas as pd" + "import pandas as pd\n", + "import seaborn as sns" ] }, { @@ -38,12 +39,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# loading the data:\n", - "customers = pd.read_csv('../Wholesale customers data.csv')" + "customers = pd.read_csv('../Wholesale customers data.csv')\n" ] }, { @@ -67,20 +68,431 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ChannelRegionFreshMilkGroceryFrozenDetergents_PaperDelicassen
023126699656756121426741338
123705798109568176232931776
223635388087684240535167844
313132651196422164045071788
4232261554107198391517775185
\n", + "
" + ], + "text/plain": [ + " Channel Region Fresh Milk Grocery Frozen Detergents_Paper Delicassen\n", + "0 2 3 12669 9656 7561 214 2674 1338\n", + "1 2 3 7057 9810 9568 1762 3293 1776\n", + "2 2 3 6353 8808 7684 2405 3516 7844\n", + "3 1 3 13265 1196 4221 6404 507 1788\n", + "4 2 3 22615 5410 7198 3915 1777 5185" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "#What does each column mean?\n", + "customers.head()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Channel int64\n", + "Region int64\n", + "Fresh int64\n", + "Milk int64\n", + "Grocery int64\n", + "Frozen int64\n", + "Detergents_Paper int64\n", + "Delicassen int64\n", + "dtype: object" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Your observations here" + "#Any categorical data to convert?\n", + "customers.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Channel 0\n", + "Region 0\n", + "Fresh 0\n", + "Milk 0\n", + "Grocery 0\n", + "Frozen 0\n", + "Detergents_Paper 0\n", + "Delicassen 0\n", + "dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Any missing data to remove?\n", + "customers.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#Column collinearity - any high correlations?\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sn\n", + "import numpy as np\n", + "\n", + "corr=np.abs(customers.corr())\n", + "\n", + "#Set up mask for triangle representation\n", + "mask = np.zeros_like(corr, dtype=np.bool)\n", + "mask[np.triu_indices_from(mask)] = True\n", + "\n", + "# Set up the matplotlib figure\n", + "f, ax = plt.subplots(figsize=(14, 14))\n", + "# Generate a custom diverging colormap\n", + "cmap = sn.diverging_palette(220, 10, as_cmap=True)\n", + "# Draw the heatmap with the mask and correct aspect ratio\n", + "sn.heatmap(corr, mask=mask, vmax=1,square=True, linewidths=.5, cbar_kws={\"shrink\": .5},annot = corr)\n", + "\n", + "plt.show()\n", + "\n", + "#there is a high correlation between Grocery and Detergents_Paper, Grocery and Milk, and Milk and Detergents_Paper" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ycNJfjxJqqr6TCnlN5M8kGQ2yU9VVTVX39XVmV8R7wVJPlK/JclEkl8vpXw28yNHb6jv68ullH+Z5L/Xt/vFqqqOXCwCAADglDluQKqqqv0sX9r8LLcfTzJ+lPZPJBk+SvvTqQPWUb62K8mu49UIAABwKjzfKXYAAAB9R0ACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAKCHdbvdDA8PZ/PmzRkeHk632226JIC+Nth0AQDA0XW73XQ6nUxMTGRubi4DAwMZHR1NkrTb7YarA+hPRpAAoEeNj49nYmIirVYrg4ODabVamZiYyPj4eNOlAfQtAQkAetTMzExGRkYWtY2MjGRmZqahigD6n4AEAD1qaGgo09PTi9qmp6czNDTUUEUA/U9AAoAe1el0Mjo6msnJyczOzmZycjKjo6PpdDpNlwbQtyzSAAA9amEhhrGxsczMzGRoaCjj4+MWaABYRgISAPSwdruddrudqampbNq0qelyAPqeKXYAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAAgJqABAAAUBOQAAAAagISAABATUACAACoCUgAAAA1AQkAAKAmIAEAANQEJAAA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78+DDz6YO++809SuBnS73QwPD2fz5s0ZHh5Ot9ttuiSAviYgAbCERRp6Q7fbzTXXXJN9+/alqqrs27cv11xzjZAEsIwEJACWWFik4XAWaVh527Zty8DAQHbt2pV77703u3btysDAQLZt29Z0aQB9S0ACYIlOp5PR0dFF+++Mjo6m0+k0Xdqqsnfv3nzwgx9ctB/VBz/4wezdu7fp0gD6lkUaAFjC6mlArxkbG8v73ve+7N+/P2vXrs2b3/zm7Ny5s+my6EMCEgBHZfW05m3YsCH/5J/8k7z0pS/NQw89lAsvvDCPPfZYNmzY0HRpsKLGxsZy6623ZseOHdm4cWMeeOCBbN++PUmEJE45U+wAoEddeuml+cpXvpKnn346pZQ8/fTT+cpXvpJLL7206dJgRb3vfe/Ljh07cu2112bdunW59tprs2PHjrzvfe9rujT6kIAEAD1qcnIy119/fc4555wkyTnnnJPrr78+k5OTDVcGK2v//v256qqrFrVdddVV2b9/f0MV0c8EJACOyv47zZuZmcmrXvWqRW2vetWrLLfOqrN27drceuuti9puvfXWrF27tqGK6GeuQQJgiW63m06nk4mJiczNzWVgYCCjo6NJYqGGFXT++edn+/btuf322w/1wxVXXJHzzz+/6dJgRb35zW8+dM3Rxo0b8653vSvbt29fMqoEp4KABMAS4+PjmZiYSKvVOrRIw8TERMbGxgSkFVZV1TE/h9VgYSGGt7/97YdWsbvqqqss0MCyMMUOgCVmZmayd+/eRVPs9u7da2rXCnvkkUdy0003ZWxsLFu2bMnY2FhuuummPPLII02XBitu586defrppzM5OZmnn35aOGLZGEECYInzzz8/27Ztyx133HFoatfll19uatcKGxoayoYNG7Jnz55DI3mTk5MZGhpqujSAvmUECYCjKqUc83OWX6fTyejoaCYnJzM7O5vJycmMjo6m0+k0XRpA3zKCBMASjzzySD7wgQ9kbGwsMzMzGRoayo4dO3LllVc2XVrfeC6B8wd+4AcWfX755Zfn8ssvP+5xrlcCeO6MIAGwxOFTu3bv3p09e/Zkw4YNpnadQlVVPae3C7f/7nM+BoDnTkACYAlTuwBYrUyxA2CJhaW8D59iNz4+bolvAPqeESQAAICagATAEt1uN9dcc0327duXJNm3b1+uueaadLvdhisD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PPTQQ7nwwguzb9++3HzzzU2Xdkq5BgkA4AScddZZWbNmTc4666ymS4HGPZfl2U83AhIAwAl44QtfmGeeeSYvfOELmy4FGjE+Pp4777wzDz74YHbv3p0HH3wwd955Z98t0iAgAQCcgC9+8YuL3sNqs1oWaRCQAIBVqZRyQm8LFjYcPXzj0edyPJzuFhZpOFw/LtIgIAEAq1JVVSf0dskllyRJrr766mz46d/I1VdfnSS55JJLTuh46BedTiejo6OZnJzM7OxsJicnMzo6mk6n03Rpp5RV7AAAjuGee+7Jli1bcuutt6aq3pNbS8kll1ySe+65p+nSYEW12+0kydjYWGZmZjI0NJTx8fFD7f1CQAI4zX37O+7N408t78aVy70c+ktecEb+5BcuWdbvASdjIQxddN2Hln17A6BZAhLAae7xpw4u6wnbcu9FldiPCuB00O120+l0MjExkbm5uQwMDGR0dDRJ+moUSUACAACOa3x8PJdffvmiKXaXX355302zE5AAAIDjeuCBB/KFL3whL3rRi5Ik+/bty6/+6q/mr//6rxuu7NSyih0AAHBcAwMDefrpp5N8bbn7p59+OgMDA02WdcoJSAAAwHHNzs7mySefzNjYWD784Q9nbGwsTz75ZGZnZ5su7ZQyxQ4AADgh3/u935u3v/3t2b9/f9auXZvv/d7vzUc/+tGmyzqljCABAAAn5KMf/Whe+tKXJkle+tKX9l04SgQkAADgBKxZMx8dvvSlLy16v9DeL/rrpwEAAJbFM888k1JKXvayly16/8wzzzRd2iklIAEAACfk+7//+/PYY4+lqqo89thj+f7v//6mSzrlLNIAAACckD/4gz849PH+/fsXfd4vjCABAADUBCQAAOCELWwM228bxC4QkAAAgBNyxhlnHFq1bs2aNTnjjDMarujUE5AAAIATcvDgwZx99tlJkrPPPjsHDx5suKJTzyINAHCSzhq6Lt9223XL/41uW767PmsoSV67fN8A6Btf+MIXFr3vNwISAJykr87cmM/duLzhYmpqKps2bVq2+7/oug8t230DnE5MsQMAAE7IwMDAoeuOzjjjjL5cqEFAAgAATsjc3FzOOeecrFmzJuecc07m5uaaLumUE5AAAIATcsYZZ2TdunVJknXr1lnFDgAAWL0OHjyYxx9/PM8880wef/xxq9gBAMCxfPs77s3j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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#Descriptive statistics - any outliers to remove?\n", + "#Exploratory data analysis (EDA)\n", + "\n", + "#i'm using a boxplot to detect outliers\n", + "customers.boxplot(figsize= (14,15))\n", + "\n", + "# we can see in the graph that there are sevarl outliers in the columns Fresh,Milk,Grocery,Frozen,Detergents and Delicassen" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Channel', 'Region', 'Fresh', 'Milk', 'Grocery', 'Frozen',\n", + " 'Detergents_Paper', 'Delicassen'],\n", + " dtype='object')" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "customers.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\distributions.py:2551: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#Column-wise data distribution - is the distribution skewed?\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "# in subplot is defined 3rows and 2 columns to display each plot\n", + "plt.subplot(3,2,1)\n", + "sns.distplot(customers['Milk'], hist=True, kde=False, \n", + " bins=int(180/5), color = 'blue',\n", + " hist_kws={'edgecolor':'black'})\n", + "\n", + "plt.subplot(3,2,2)\n", + "sns.distplot(customers['Milk'], hist=True, kde=False, \n", + " bins=int(180/5), color = 'blue',\n", + " hist_kws={'edgecolor':'black'})\n", + "\n", + "plt.subplot(3,2,3)\n", + "sns.distplot(customers['Milk'], hist=True, kde=False, \n", + " bins=int(180/5), color = 'blue',\n", + " hist_kws={'edgecolor':'black'})\n", + "\n", + "plt.subplot(3,2,4)\n", + "sns.distplot(customers['Grocery'], hist=True, kde=False, \n", + " bins=int(180/5), color = 'red',\n", + " hist_kws={'edgecolor':'black'})\n", + "\n", + "plt.subplot(3,2,5)\n", + "sns.distplot(customers['Frozen'], hist=True, kde=False, \n", + " bins=int(180/5), color = 'yellow',\n", + " hist_kws={'edgecolor':'black'})\n", + "\n", + "plt.subplot(3,2,6)\n", + "sns.distplot(customers['Detergents_Paper'], hist=True, kde=False, \n", + " bins=int(180/5), color = 'green',\n", + " hist_kws={'edgecolor':'black'})\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEGCAYAAACKB4k+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAARl0lEQVR4nO3df6zddX3H8edrgOjEKYzSdNCsaOq2srnqKmpYFqZO0M2hm5qaTIlhq2Ow6HRZQDPFZSRu/lqMikNFiVORTQ1o3JRVjdE/wFtAbAudVZnUNm2domZsuNb3/jiffjiW297Lvefc23vP85HcnO/5fL/fc97vk/a+7vf7PedzUlVIkgTwM4tdgCTp2GEoSJI6Q0GS1BkKkqTOUJAkdccvdgEAp556aq1Zs2axy5CkJWXLli3fraoVo3zMYyIU1qxZw9TU1GKXIUlLSpL/HPVjevpIktQZCpKkzlCQJHWGgiSpMxQkSZ2hIEnqDAVJUmcoSJI6Q0GS1B0Tn2ier/dfdRX37t17xPWPWbmSl1188QJWJElL07IIhXv37uW569Ydcf0nt29fwGokaeny9JEkqTMUJEmdoSBJ6gwFSVJnKEiSOkNBktQZCpKkzlCQJHWGgiSpMxQkSZ2hIEnqDAVJUmcoSJI6Q0GS1M0YCklWJ/l8kjuTbEvyijZ+RZLvJLm9/TxnaJ/Lk+xMsiPJeeNsQJI0OrP5PoUDwKur6tYkjwK2JLmprXtbVb15eOMk64CNwFnALwD/nuTxVXVwlIVLkkZvxiOFqtpTVbe25R8BdwKnH2WXC4Drqur+qvoWsBM4exTFSpLG6yFdU0iyBngicHMbujTJHUmuSXJyGzsduGdot11MEyJJNiWZSjK1f//+h165JGnkZh0KSU4CPga8sqp+CFwFPA5YD+wB3nJo02l2rwcNVF1dVRuqasOKFSseat2SpDGYVSgkOYFBIHyoqj4OUFV7q+pgVf0EeA8PnCLaBawe2v0MYPfoSpYkjcts3n0U4H3AnVX11qHxVUObPR/Y2pZvBDYmOTHJmcBa4JbRlSxJGpfZvPvoHOAlwNeS3N7GXgO8OMl6BqeG7gZeDlBV25JcD2xn8M6lS3znkSQtDTOGQlV9iemvE3z6KPtcCVw5j7okSYvATzRLkjpDQZLUGQqSpM5QkCR1hoIkqTMUJEmdoSBJ6gwFSVJnKEiSOkNBktQZCpKkzlCQJHWGgiSpMxQkSZ2hIEnqDAVJUmcoSJI6Q0GS1BkKkqTOUJAkdYaCJKkzFCRJnaEgSeoMBUlSZyhIkjpDQZLUGQqSpM5QkCR1hoIkqZsxFJKsTvL5JHcm2ZbkFW38lCQ3Jfl6uz15aJ/Lk+xMsiPJeeNsQJI0OrM5UjgAvLqqfgV4KnBJknXAZcDmqloLbG73aes2AmcB5wPvSnLcOIqXJI3WjKFQVXuq6ta2/CPgTuB04ALg2rbZtcDz2vIFwHVVdX9VfQvYCZw94rolSWPwkK4pJFkDPBG4GVhZVXtgEBzAaW2z04F7hnbb1cYOf6xNSaaSTO3fv38OpUuSRm3WoZDkJOBjwCur6odH23SasXrQQNXVVbWhqjasWLFitmVIksZoVqGQ5AQGgfChqvp4G96bZFVbvwrY18Z3AauHdj8D2D2aciVJ4zSbdx8FeB9wZ1W9dWjVjcCFbflC4Iah8Y1JTkxyJrAWuGV0JUuSxuX4WWxzDvAS4GtJbm9jrwHeCFyf5CLg28ALAapqW5Lrge0M3rl0SVUdHHXhkqTRmzEUqupLTH+dAOAZR9jnSuDKedQlSVoEfqJZktQZCpKkzlCQJHWGgiSpMxQkSZ2hIEnqDAVJUmcoSJI6Q0GS1BkKkqTOUJAkdYaCJKkzFCRJnaEgSeoMBUlSZyhIkjpDQZLUGQqSpM5QkCR1hoIkqTMUJEmdoSBJ6gwFSVJnKEiSOkNBktQZCpKkzlCQJHWGgiSpmzEUklyTZF+SrUNjVyT5TpLb289zhtZdnmRnkh1JzhtX4ZKk0ZvNkcIHgPOnGX9bVa1vP58GSLIO2Aic1fZ5V5LjRlWsJGm8ZgyFqvoi8L1ZPt4FwHVVdX9VfQvYCZw9j/okSQtoPtcULk1yRzu9dHIbOx24Z2ibXW3sQZJsSjKVZGr//v3zKEOSNCpzDYWrgMcB64E9wFvaeKbZtqZ7gKq6uqo2VNWGFStWzLEMSdIozSkUqmpvVR2sqp8A7+GBU0S7gNVDm54B7J5fiZKkhTKnUEiyauju84FD70y6EdiY5MQkZwJrgVvmV6IkaaEcP9MGST4CnAucmmQX8Hrg3CTrGZwauht4OUBVbUtyPbAdOABcUlUHx1K5JGnkZgyFqnrxNMPvO8r2VwJXzqcoSdLi8BPNkqTOUJAkdYaCJKkzFCRJnaEgSeoMBUlSZyhIkjpDQZLUGQqSpM5QkCR1hoIkqTMUJEmdoSBJ6gwFSVJnKEiSOkNBktQZCpKkzlCQJHWGgiSpMxQkSZ2hIEnqDAVJUmcoSJI6Q0GS1BkKkqTOUJAkdccvdgEL4bYtW3jbFVcccf1jVq7kZRdfvHAFSdIxaiJC4cf33cdz16074vpPbt++gNVI0rHL00eSpG7GUEhyTZJ9SbYOjZ2S5KYkX2+3Jw+tuzzJziQ7kpw3rsIlSaM3myOFDwDnHzZ2GbC5qtYCm9t9kqwDNgJntX3eleS4kVUrSRqrGUOhqr4IfO+w4QuAa9vytcDzhsavq6r7q+pbwE7g7NGUKkkat7leU1hZVXsA2u1pbfx04J6h7Xa1sQdJsinJVJKp/fv3z7EMSdIojfpCc6YZq+k2rKqrq2pDVW1YsWLFiMuQJM3FXENhb5JVAO12XxvfBawe2u4MYPfcy5MkLaS5hsKNwIVt+ULghqHxjUlOTHImsBa4ZX4lSpIWyowfXkvyEeBc4NQku4DXA28Erk9yEfBt4IUAVbUtyfXAduAAcElVHRxT7ZKkEZsxFKrqxUdY9YwjbH8lcOV8ipIkLQ4/0SxJ6gwFSVJnKEiSOkNBktQZCpKkzlCQJHWGgiSpMxQkSZ2hIEnqDAVJUmcoSJI6Q0GS1BkKkqTOUJAkdYaCJKkzFCRJnaEgSeoMBUlSZyhIkjpDQZLUGQqSpM5QkCR1hoIkqTMUJEmdoSBJ6gwFSVJnKEiSOkNBktQdP5+dk9wN/Ag4CByoqg1JTgE+CqwB7gZeVFXfn1+ZkqSFMIojhd+uqvVVtaHdvwzYXFVrgc3tviRpCRjH6aMLgGvb8rXA88bwHJKkMZhvKBTw2SRbkmxqYyurag9Auz1tuh2TbEoylWRq//798yxDkjQK87qmAJxTVbuTnAbclOSu2e5YVVcDVwNs2LCh5lmHJGkE5nWkUFW72+0+4BPA2cDeJKsA2u2++RYpSVoYcw6FJI9M8qhDy8CzgK3AjcCFbbMLgRvmW6QkaWHM5/TRSuATSQ49zoer6t+SfAW4PslFwLeBF86/TEnSQphzKFTVN4Ffn2b8v4BnzKcoSdLi8BPNkqTOUJAkdYaCJKkzFCRJnaEgSeoMBUlSZyhIkjpDQZLUGQqSpM5QkCR18506e1m4bcsW3nbFFUfd5jErV/Kyiy9emIIkaZEYCsCP77uP565bd9RtPrl9+wJVI0mLx9NHkqTOUJAkdYaCJKkzFCRJnaEgSeoMBUlSZyhIkjpDQZLUGQqSpM5PNM/STFNhOA2GpOXAUJilmabCcBoMScuBp48kSZ2hIEnqDAVJUmcoSJI6LzSPiF/UI2k5MBRGxC/qkbQcjO30UZLzk+xIsjPJZeN6HknS6IzlSCHJccA7gd8BdgFfSXJjVU30n8pL5QNw77/qKu7du/eo2xwrtUoarXGdPjob2FlV3wRIch1wATDRoTDTKaa/+eAHj4lfxvfu3TvvU2EzBYuhokmwFP/ASlWN/kGTFwDnV9Uft/svAZ5SVZcObbMJ2NTu/hKwYx5PeSrw3Xnsv5RNcu8w2f3b++Q61P8vVtWKUT7wuI4UMs3YT6VPVV0NXD2SJ0umqmrDKB5rqZnk3mGy+7f3yewdxtv/uC407wJWD90/A9g9pueSJI3IuELhK8DaJGcmeRiwEbhxTM8lSRqRsZw+qqoDSS4FPgMcB1xTVdvG8VzNSE5DLVGT3DtMdv/2PrnG1v9YLjRLkpYm5z6SJHWGgiSpW9KhsFym0khyTZJ9SbYOjZ2S5KYkX2+3Jw+tu7z1vCPJeUPjv5Hka23d25OkjZ+Y5KNt/OYkaxa0waNIsjrJ55PcmWRbkle08Unp/+FJbkny1db/G9r4RPQPgxkQktyW5FPt/iT1fner+/YkU21scfuvqiX5w+AC9jeAxwIPA74KrFvsuubYy28BTwK2Do39PXBZW74M+Lu2vK71eiJwZnsNjmvrbgGexuBzIv8KPLuN/xnw7ra8EfjoYvc81Ocq4Elt+VHAf7QeJ6X/ACe15ROAm4GnTkr/raZXAR8GPjVJ//ZbTXcDpx42tqj9L/qLMo8X82nAZ4buXw5cvth1zaOfNfx0KOwAVrXlVcCO6fpk8A6vp7Vt7hoafzHwj8PbtOXjGXwSMovd8xFehxsYzJk1cf0DPwvcCjxlUvpn8BmmzcDTeSAUJqL3VtPdPDgUFrX/pXz66HTgnqH7u9rYcrGyqvYAtNvT2viR+j69LR8+/lP7VNUB4AfAz4+t8jlqh7ZPZPDX8sT0306f3A7sA26qqknq/x+AvwJ+MjQ2Kb3DYKaHzybZksHUP7DI/S/l71OYcSqNZepIfR/t9TjmX6skJwEfA15ZVT9sp0Sn3XSasSXdf1UdBNYneQzwiSS/epTNl03/SX4P2FdVW5KcO5tdphlbkr0POaeqdic5DbgpyV1H2XZB+l/KRwrLfSqNvUlWAbTbfW38SH3vasuHj//UPkmOBx4NfG9slT9ESU5gEAgfqqqPt+GJ6f+QqroX+AJwPpPR/znA7ye5G7gOeHqSf2Iyegegqna3233AJxjMML2o/S/lUFjuU2ncCFzYli9kcK790PjG9q6CM4G1wC3tMPNHSZ7a3nnw0sP2OfRYLwA+V+0k42Jrtb4PuLOq3jq0alL6X9GOEEjyCOCZwF1MQP9VdXlVnVFVaxj8//1cVf0RE9A7QJJHJnnUoWXgWcBWFrv/xb7QMs+LNM9h8G6VbwCvXex65tHHR4A9wP8xSPaLGJz32wx8vd2eMrT9a1vPO2jvMmjjG9o/qm8A7+CBT6w/HPhnYCeDdyk8drF7Hqr5Nxkczt4B3N5+njNB/T8BuK31vxV4XRufiP6Haj+XBy40T0TvDN45+dX2s+3Q77DF7t9pLiRJ3VI+fSRJGjFDQZLUGQqSpM5QkCR1hoIkqTMUtGQlOdhml9yWwSyjr0py1H/TSdakzUabZEOSty9MtdLSsJSnuZD+p6rWA7RpAj7M4BObr5/NzlU1BUyNrTppCfJIQctCDaYJ2ARcmoHjkrwpyVeS3JHk5Yfvk+TcPDCH/0lJ3t/mpL8jyR+28auSTGXouw7a+BuTbG/bvrmNvTDJ1nbU8sU2Nm0d7bm/kORfktyV5EOH5sCXFpNHClo2quqb7fTRacAFwA+q6slJTgS+nOSzHHkysL9u2/8aQB74YpPXVtX3khwHbE7yBAafOn8+8MtVVYemqQBeB5xXVd8ZGrvoCHXAYEbYsxjMU/NlBnMBfWkEL4U0Zx4paLk59Nf2s4CXtimpb2YwdcDao+z3TOCdh+5U1ffb4ouS3MpgKoqzGHzRyQ+B/wXem+QPgPvatl8GPpDkTxh8CdRMddxSVbuq6icMpvdY89DblUbLIwUtG0keCxxkMKtkgD+vqs8cts2aI+3OYUcRbdKxvwSeXFXfT/IB4OFVdSDJ2cAzGEzkdinw9Kr60yRPAX4XuD3J+qPUcS5w/9DQQfz/qGOARwpaFpKsAN4NvKMGE3p9Bri4TctNkse3mSiP5LMMfrkferyTgZ8D/hv4QZKVwLPbupOAR1fVp4FXAuvb+OOq6uaqeh2Db7haPYc6pEXlXyZayh7RTsucABwAPggcmn77vQxOx9zaLuDuB553lMf6W+Cd7e2qB4E3VNXHk9zGYAbLbzI4PQSD75K+IcnDGRwJ/EUbf1OStW1sM4PZL+94iHVIi8pZUiVJnaePJEmdoSBJ6gwFSVJnKEiSOkNBktQZCpKkzlCQJHX/D11gTXjyvr9XAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "sns.distplot(customers['Delicassen'], hist=True, kde=False, \n", + " bins=int(180/5), color = 'brown',\n", + " hist_kws={'edgecolor':'black'})" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "unmatched ')' (, line 3)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m3\u001b[0m\n\u001b[1;33m 1) FRESH: annual spending (m.u.) on fresh products (Continuous);\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m unmatched ')'\n" + ] + } + ], + "source": [ + "# Your observations here\n", + "#What does each column mean? \n", + "1) FRESH: annual spending (m.u.) on fresh products (Continuous);\n", + "2) MILK: annual spending (m.u.) on milk products (Continuous);\n", + "3) GROCERY: annual spending (m.u.)on grocery products (Continuous);\n", + "4) FROZEN: annual spending (m.u.)on frozen products (Continuous)\n", + "5) DETERGENTS_PAPER: annual spending (m.u.) on detergents and paper products (Continuous)\n", + "6) DELICATESSEN: annual spending (m.u.)on and delicatessen products (Continuous);\n", + "7) CHANNEL: customers’ Channel - Horeca (Hotel/Restaurant/Café) or Retail channel (Nominal)\n", + "8) REGION: customers’ Region – Lisnon, Oporto or Other (Nominal)\n", + "\n", + "#Any categorical data to convert?\n", + "all data of the type int64 no need for convertion\n", + "#Any missing data to remove?\n", + "no missing data\n", + "\n", + "#Column collinearity - any high correlations?\n", + "there is a high correlation between Grocery and Detergents_Paper, Grocery and Milk, and Milk and Detergents_Paper\n", + "\n", + "#Descriptive statistics - any outliers to remove? \n", + "\n", + "there are sevarl outliers in the columns Fresh,Milk,Grocery,Frozen,Detergents and Delicassen\n", + "\n", + "#Column-wise data distribution - is the distribution skewed?\n", + "The distributions is positively skewed" ] }, { @@ -94,20 +506,220 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 82, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1.44865163 0.59066829 0.05293319 ... 0.58936716 0.04356873 0.06633906]\n", + " [1.44865163 0.59066829 0.39130197 ... 0.27013618 0.08640684 0.08915105]\n", + " [1.44865163 0.59066829 0.44702926 ... 0.13753572 0.13323164 2.24329255]\n", + " ...\n", + " [1.44865163 0.59066829 0.20032554 ... 0.54337975 2.51121768 0.12145607]\n", + " [0.69029709 0.59066829 0.13538389 ... 0.41944059 0.56977032 0.21304614]\n", + " [0.69029709 0.59066829 0.72930698 ... 0.62009417 0.50488752 0.52286938]]\n" + ] + } + ], "source": [ - "# Your code here" + "# Your code here\n", + "\n", + "#i detected outliners and i'm going to do some cleaning\n", + "\n", + "#Outliers badly affect mean and standard deviation of the dataset. \n", + "#These may statistically give erroneous results.\n", + "#Most machine learning algorithms do not work well in the presence of outlier.\n", + "#So it is desirable to detect and remove outliers\n", + "\n", + "#-score function defined in scipy library to detect the outliers any point far from zero data points which are far from zero will be treated as the outliers\n", + "# if the Z-score value is greater than or less than 3 or -3 respectively, that data point will be identified as outliers\n", + "from scipy import stats\n", + "import numpy as np\n", + "z = np.abs(stats.zscore(customers))\n", + "print(z)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 83, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(array([ 23, 23, 39, 47, 47, 47, 56, 56, 61, 61, 61, 65, 65,\n", + " 71, 85, 85, 85, 86, 86, 87, 92, 93, 103, 103, 125, 181,\n", + " 181, 183, 183, 183, 196, 211, 211, 211, 216, 251, 258, 259, 284,\n", + " 325, 333, 333, 413], dtype=int64), array([3, 7, 2, 3, 4, 6, 3, 6, 3, 4, 6, 4, 6, 7, 3, 4, 6, 3, 6, 7, 6, 5,\n", + " 2, 5, 2, 2, 3, 3, 5, 7, 5, 3, 4, 6, 4, 6, 2, 2, 2, 5, 4, 6, 5],\n", + " dtype=int64))\n" + ] + } + ], "source": [ - "# Your comment here" + "#threshold to identify the outliner because the output above is not so clear\n", + "#the output means that the first array contains the list of row numbers and second array respective column numbers\n", + "threshold = 3\n", + "print(np.where(z > 3))" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.154475565223423\n" + ] + } + ], + "source": [ + "#by example the column number 3 and row 23 have the z score of:4.154475565223423 \n", + "#So, the data point — 23th record on column MILK (column nº3) is an outlier\n", + "print(z[23][3])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(368, 8)\n", + "(440, 8)\n" + ] + } + ], + "source": [ + "#removing the outliers\n", + "customers_no_outliners = customers_no_outliners[(z < 3).all(axis=1)]\n", + "\n", + "#checking that the outliers where removed\n", + "print(customers_no_outliners.shape)\n", + "print(customers.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ChannelRegionFreshMilkGroceryFrozenDetergents_PaperDelicassen
023126699656756121426741338
123705798109568176232931776
313132651196422164045071788
52394138259512666617951451
62312126319969754803140545
\n", + "
" + ], + "text/plain": [ + " Channel Region Fresh Milk Grocery Frozen Detergents_Paper Delicassen\n", + "0 2 3 12669 9656 7561 214 2674 1338\n", + "1 2 3 7057 9810 9568 1762 3293 1776\n", + "3 1 3 13265 1196 4221 6404 507 1788\n", + "5 2 3 9413 8259 5126 666 1795 1451\n", + "6 2 3 12126 3199 6975 480 3140 545" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your comment here\n" ] }, { @@ -127,7 +739,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 98, "metadata": {}, "outputs": [], "source": [ @@ -135,7 +747,14 @@ "\n", "from sklearn.preprocessing import StandardScaler\n", "\n", - "# Your code here:\n" + "# Your code here:\n", + "# standardize the data\n", + "# create object\n", + "scaler = StandardScaler()\n", + "# Compute the mean and std to be used for later scaling\n", + "scaler.fit(customers_no_outliners)\n", + "# Fit to data, then transform it.\n", + "customers_scale = scaler.transform(customers_no_outliners)" ] }, { @@ -149,13 +768,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 102, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model 1 Silhouette Score: 0.3976121803103088\n" + ] + } + ], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "# K-means\n", + "\n", + "from sklearn.metrics import silhouette_score\n", + "\n", + "kmeans = cluster.KMeans(n_clusters=3)\n", + "kmeans.fit(customers_no_outliners)\n", + "pred = kmeans.predict(customers_no_outliners)\n", + "\n", + "\n", + "print(\"Model 1 Silhouette Score: {}\".format(silhouette_score(customers_no_outliners, pred, metric='euclidean')))" ] }, { @@ -167,11 +804,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 104, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'model' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Your code here:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mcustomers\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'labels'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlabels_\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mNameError\u001b[0m: name 'model' is not defined" + ] + } + ], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "\n" ] }, { @@ -378,7 +1028,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.8.5" } }, "nbformat": 4,