Last active
September 12, 2018 10:26
-
-
Save krishna247/f4afaac8feb4d9e3e17ed5fdae0cae42 to your computer and use it in GitHub Desktop.
Power pred/Data Exploration.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "%reset -sf\nimport pandas as pd\n%matplotlib inline\nfrom sklearn.preprocessing import Imputer,LabelEncoder, StandardScaler\nfrom sklearn.cluster import KMeans \n", | |
| "execution_count": 92, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "data = pd.read_csv(\"consumption_train.csv\")\nmeta = pd.read_csv(\"meta.csv\")\ntest = pd.read_csv(\"cold_start_test.csv\")", | |
| "execution_count": 93, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.drop(columns=\"Unnamed: 0\",inplace=True)\ntest.drop(columns=\"Unnamed: 0\",inplace=True)", | |
| "execution_count": 94, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.shape", | |
| "execution_count": 95, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "(509376, 4)" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 95 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.head()", | |
| "execution_count": 96, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>series_id</th>\n <th>timestamp</th>\n <th>consumption</th>\n <th>temperature</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>103088</td>\n <td>2014-12-24 00:00:00</td>\n <td>101842.233424</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>1</th>\n <td>103088</td>\n <td>2014-12-24 01:00:00</td>\n <td>105878.048906</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>2</th>\n <td>103088</td>\n <td>2014-12-24 02:00:00</td>\n <td>91619.105008</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>3</th>\n <td>103088</td>\n <td>2014-12-24 03:00:00</td>\n <td>94473.706203</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>4</th>\n <td>103088</td>\n <td>2014-12-24 04:00:00</td>\n <td>96976.755526</td>\n <td>NaN</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
| "text/plain": " series_id timestamp consumption temperature\n0 103088 2014-12-24 00:00:00 101842.233424 NaN\n1 103088 2014-12-24 01:00:00 105878.048906 NaN\n2 103088 2014-12-24 02:00:00 91619.105008 NaN\n3 103088 2014-12-24 03:00:00 94473.706203 NaN\n4 103088 2014-12-24 04:00:00 96976.755526 NaN" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 96 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "data = pd.merge(data,meta,how='left')", | |
| "execution_count": 97, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.timestamp = pd.to_datetime(data.timestamp)\ndata[\"day_of_week\"] = data.timestamp.dt.day_name().str.lower()", | |
| "execution_count": 98, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "def is_day_holiday(row):\n day = row[\"day_of_week\"]\n if row[day+\"_is_day_off\"]:\n return 1\n else:\n return 0\ndata[\"is_holiday\"] = data.apply(is_day_holiday,axis=1)", | |
| "execution_count": 99, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "day_off_cols = [ col for col in data.columns if \"_is_day_off\" in col ]\n#day_off_cols\ndata.drop(columns=day_off_cols,inplace=True)", | |
| "execution_count": 100, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.head()", | |
| "execution_count": 101, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>series_id</th>\n <th>timestamp</th>\n <th>consumption</th>\n <th>temperature</th>\n <th>surface</th>\n <th>base_temperature</th>\n <th>day_of_week</th>\n <th>is_holiday</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>103088</td>\n <td>2014-12-24 00:00:00</td>\n <td>101842.233424</td>\n <td>NaN</td>\n <td>x-small</td>\n <td>low</td>\n <td>wednesday</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>103088</td>\n <td>2014-12-24 01:00:00</td>\n <td>105878.048906</td>\n <td>NaN</td>\n <td>x-small</td>\n <td>low</td>\n <td>wednesday</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>103088</td>\n <td>2014-12-24 02:00:00</td>\n <td>91619.105008</td>\n <td>NaN</td>\n <td>x-small</td>\n <td>low</td>\n <td>wednesday</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>103088</td>\n <td>2014-12-24 03:00:00</td>\n <td>94473.706203</td>\n <td>NaN</td>\n <td>x-small</td>\n <td>low</td>\n <td>wednesday</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>103088</td>\n <td>2014-12-24 04:00:00</td>\n <td>96976.755526</td>\n <td>NaN</td>\n <td>x-small</td>\n <td>low</td>\n <td>wednesday</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
| "text/plain": " series_id timestamp consumption temperature surface \\\n0 103088 2014-12-24 00:00:00 101842.233424 NaN x-small \n1 103088 2014-12-24 01:00:00 105878.048906 NaN x-small \n2 103088 2014-12-24 02:00:00 91619.105008 NaN x-small \n3 103088 2014-12-24 03:00:00 94473.706203 NaN x-small \n4 103088 2014-12-24 04:00:00 96976.755526 NaN x-small \n\n base_temperature day_of_week is_holiday \n0 low wednesday 0 \n1 low wednesday 0 \n2 low wednesday 0 \n3 low wednesday 0 \n4 low wednesday 0 " | |
| }, | |
| "metadata": {}, | |
| "execution_count": 101 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.shape", | |
| "execution_count": 102, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "(509376, 8)" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 102 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.temperature.isna().sum()", | |
| "execution_count": 103, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "228689" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 103 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "### Increasing consumption with time\n\ndata.groupby([data.timestamp.dt.year])[\"consumption\"].sum().plot()\n#data.groupby([data.timestamp.dt.year,data.timestamp.dt.month])[\"consumption\"].sum().plot()", | |
| "execution_count": 104, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "<matplotlib.axes._subplots.AxesSubplot at 0x1faef668>" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 104 | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": "<Figure size 600x400 with 1 Axes>", | |
| "image/png": "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\nT1KMDCMAAAAASUVORK5CYII=\n" | |
| }, | |
| "metadata": {} | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false, | |
| "scrolled": true | |
| }, | |
| "cell_type": "code", | |
| "source": "# No significant variation of consumption with week number\ndata.groupby([data.timestamp.dt.week])[\"consumption\"].mean().plot.bar()", | |
| "execution_count": 105, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "<matplotlib.axes._subplots.AxesSubplot at 0x26b93b00>" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 105 | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": "<Figure size 600x400 with 1 Axes>", | |
| "image/png": "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\nnwB+ImkPYA1wPikRXS9pCvAIcHYuOw84DWgHnslliYj1kr4CLM7lLo6I9Xn+o8BVwF7Ar/JkZmYt\n0lTSiIhlwJiSReNLygZwQZ12ZgGzSuJLgGOa6aOZmfUdfyPczMwqc9IwM7PKnDTMzKwyJw0zM6vM\nScPMzCpz0jAzs8qcNMzMrDInDTMzq8xJw8zMKnPSMDOzypw0zMysMicNMzOrzEnDzMwqc9IwM7PK\nnDTMzKwyJw0zM6vMScPMzCpz0jAzs8qcNMzMrDInDTMzq8xJw8zMKms6aUgaJGmppF/m94dLukvS\naknXSdojx/fM79vz8pGFNi7K8QclnVKIT8yxdknTmu2rmZk1py/OND4FrCq8/zpwaUSMAjYAU3J8\nCrAhIo4ELs3lkDQaOAd4LTAR+H5ORIOA7wGnAqOBc3NZMzNrkaaShqThwOnAD/N7AScBN+Qis4Ez\n8/yk/J68fHwuPwm4NiKei4iHgXZgbJ7aI2JNRPwduDaXNTOzFmn2TOM7wBeAF/P7A4AnI2Jzft8B\nDMvzw4C1AHn5xlx+S7ymTr34diRNlbRE0pLOzs4mN8nMzOppOGlIehewLiLuLoZLikYPy3ob3z4Y\ncUVEjImIMW1tbd302szMmjG4ibpvBs6QdBrwMmBf0pnHEEmD89nEcODRXL4DGAF0SBoM7AesL8S7\nFOvUi5uZWQs0fKYRERdFxPCIGEm6kX1LRLwPWASclYtNBm7K83Pze/LyWyIicvycPLrqcGAU8Dtg\nMTAqj8baI69jbqP9NTOz5jVzplHPhcC1kr4KLAWuzPErgasltZPOMM4BiIj7JF0P3A9sBi6IiBcA\nJH0cmA8MAmZFxH07oL9mZlZRnySNiLgVuDXPryGNfKot8yxwdp36lwCXlMTnAfP6oo9mZtY8fyPc\nzMwqc9IwM7PKnDTMzKwyJw0zM6vMScPMzCpz0jAzs8qcNMzMrDInDTMzq8xJw8zMKnPSMDOzypw0\nzMysMicNMzOrzEnDzMwqc9IwM7PKnDTMzKwyJw0zM6vMScPMzCpz0jAzs8qcNMzMrDInDTMzq6zh\npCFphKRFklZJuk/Sp3J8f0kLJK3Or0NzXJIuk9Quabmk4wttTc7lV0uaXIi/QdKKXOcySWpmY83M\nrDnNnGlsBj4XEUcD44ALJI0GpgELI2IUsDC/BzgVGJWnqcDlkJIMMB04ARgLTO9KNLnM1EK9iU30\n18zMmtRw0oiIxyLinjy/CVgFDAMmAbNzsdnAmXl+EjAnkjuBIZIOBU4BFkTE+ojYACwAJuZl+0bE\nHRERwJxCW2Zm1gJ9ck9D0kjgH4G7gIMj4jFIiQU4KBcbBqwtVOvIse7iHSVxMzNrkaaThqR9gJ8B\nn46Ip7orWhKLBuJlfZgqaYmkJZ2dnT112czMGtRU0pD0UlLC+ElE3JjDf86Xlsiv63K8AxhRqD4c\neLSH+PCS+HYi4oqIGBMRY9ra2prZJDMz60Yzo6cEXAmsiohvFxbNBbpGQE0GbirEz8ujqMYBG/Pl\nq/nABElD8w3wCcD8vGyTpHF5XecV2jIzsxYY3ETdNwPvB1ZIWpZjXwRmAtdLmgI8Apydl80DTgPa\ngWeA8wEiYr2krwCLc7mLI2J9nv8ocBWwF/CrPJmZWYs0nDQi4r8ov+8AML6kfAAX1GlrFjCrJL4E\nOKbRPpqZWd/yN8LNzKwyJw0zM6vMScPMzCpz0jAzs8qcNMzMrDInDTMzq8xJw8zMKnPSMDOzypw0\nzMysMicNMzOrzEnDzMwqc9IwM7PKnDTMzKwyJw0zM6vMScPMzCpz0jAzs8qcNMzMrDInDTMzq8xJ\nw8zMKnPSMDOzypw0zMyssn6fNCRNlPSgpHZJ01rdHzOzgaxfJw1Jg4DvAacCo4FzJY1uba/MzAau\nfp00gLFAe0SsiYi/A9cCk1rcJzOzAau/J41hwNrC+44cMzOzFlBEtLoPdUk6GzglIj6U378fGBsR\nn6gpNxWYmt++Bngwzx8I/KWk6XrxRuq4rb5pa1frr9vyZ2V3a+sfIqKtTrmtIqLfTsCbgPmF9xcB\nF/Wi/pLexBup47b6pq1drb9uy5+V3bmt7qb+fnlqMTBK0uGS9gDOAea2uE9mZgPW4FZ3oDsRsVnS\nx4H5wCBgVkTc1+JumZkNWP06aQBExDxgXoPVr+hlvJE6bmvXWYfb2j3a2tX6uyu2VVe/vhFuZmb9\nS3+/p2FmZv2Ik4aZmVU2oJOGpLGS3pjnR0v6rKTTSsrN2QHr3kPSeZJOzu/fK+m7ki6Q9NK+Xp+Z\nWV8YEPc0JB1F+ib5XRHx1xybThrC+zSwADgBuBX4FLAOWN1VHXgHcAtARJxRaPdE0qNOngdmR8RT\nkvYCpgHHA/cDTwDXRETxm+1I+glpIMLewJPAPsCNwHjgFcAdwAhgc+7LNRGxsa9+JlaNpIMiYl0v\n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\nSUVORK5CYII=\n" | |
| }, | |
| "metadata": {} | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.loc[data[\"is_holiday\"]==1,\"day_of_week\"].value_counts()", | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data.groupby(\"is_holiday\")[\"consumption\"].mean().round()", | |
| "execution_count": 106, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "is_holiday\n0 115594.0\n1 84477.0\nName: consumption, dtype: float64" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 106 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "## Temperature is missing at random\ndata.groupby(data.temperature.isna())[\"consumption\"].mean().round()", | |
| "execution_count": 107, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "temperature\nFalse 102113.0\nTrue 114388.0\nName: consumption, dtype: float64" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 107 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "## Corr between temp and consumption\ndata.dropna()[[\"consumption\",\"temperature\"]].corr()", | |
| "execution_count": 108, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>consumption</th>\n <th>temperature</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>consumption</th>\n <td>1.000000</td>\n <td>0.099456</td>\n </tr>\n <tr>\n <th>temperature</th>\n <td>0.099456</td>\n <td>1.000000</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
| "text/plain": " consumption temperature\nconsumption 1.000000 0.099456\ntemperature 0.099456 1.000000" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 108 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data[data[\"base_temperature\"]==\"high\"].dropna()[[\"consumption\",\"temperature\"]].corr()", | |
| "execution_count": 109, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>consumption</th>\n <th>temperature</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>consumption</th>\n <td>1.000000</td>\n <td>0.764711</td>\n </tr>\n <tr>\n <th>temperature</th>\n <td>0.764711</td>\n <td>1.000000</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
| "text/plain": " consumption temperature\nconsumption 1.000000 0.764711\ntemperature 0.764711 1.000000" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 109 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data[data[\"surface\"]==\"x-small\"].dropna()[[\"consumption\",\"temperature\"]].corr()", | |
| "execution_count": 110, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>consumption</th>\n <th>temperature</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>consumption</th>\n <td>1.00000</td>\n <td>0.41472</td>\n </tr>\n <tr>\n <th>temperature</th>\n <td>0.41472</td>\n <td>1.00000</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
| "text/plain": " consumption temperature\nconsumption 1.00000 0.41472\ntemperature 0.41472 1.00000" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 110 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data_temp = data[[\"series_id\",\"consumption\",\"temperature\"]]\ndata_temp = data_temp.groupby(\"series_id\")[\"temperature\"].agg(('std','mean')).reset_index()", | |
| "execution_count": 111, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data_temp.merge(meta,how='left').iloc[:,:5].shape", | |
| "execution_count": 112, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "(758, 5)" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 112 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data_temp = data_temp.merge(meta,how='left').iloc[:,:5]\ntemp_imp=data_temp.groupby(['surface','base_temperature'])[['std','mean']].mean().reset_index()", | |
| "execution_count": 113, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "temp_imp['std']=temp_imp['std'].fillna(temp_imp['std'].mean())\ntemp_imp['mean']=temp_imp['mean'].fillna(temp_imp['mean'].mean())", | |
| "execution_count": 114, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data_pre=data_temp.merge(temp_imp,how='left',on=['surface','base_temperature'])", | |
| "execution_count": 131, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data_pre['std_x']=data_pre['std_x'].fillna(data_pre['std_y'])\ndata_pre['mean_x']=data_pre['mean_x'].fillna(data_pre['mean_y'])", | |
| "execution_count": 132, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data_pre = data_pre.drop(columns=['std_y','mean_y']).rename({'std_x':'std','mean_x':'mean'})", | |
| "execution_count": 133, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false, | |
| "scrolled": true | |
| }, | |
| "cell_type": "code", | |
| "source": "data_pre.head()", | |
| "execution_count": 154, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>series_id</th>\n <th>std_x</th>\n <th>mean_x</th>\n <th>surface</th>\n <th>base_temperature</th>\n <th>clusters</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>100003</td>\n <td>-1.103091</td>\n <td>-0.988388</td>\n <td>3</td>\n <td>1</td>\n <td>1</td>\n </tr>\n <tr>\n <th>1</th>\n <td>100006</td>\n <td>-0.505079</td>\n <td>0.282882</td>\n <td>4</td>\n <td>1</td>\n <td>1</td>\n </tr>\n <tr>\n <th>2</th>\n <td>100008</td>\n <td>-0.505079</td>\n <td>0.282882</td>\n <td>4</td>\n <td>1</td>\n <td>1</td>\n </tr>\n <tr>\n <th>3</th>\n <td>100017</td>\n <td>0.502686</td>\n <td>-0.582433</td>\n <td>1</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>100021</td>\n <td>-0.505079</td>\n <td>0.282882</td>\n <td>4</td>\n <td>1</td>\n <td>1</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
| "text/plain": " series_id std_x mean_x surface base_temperature clusters\n0 100003 -1.103091 -0.988388 3 1 1\n1 100006 -0.505079 0.282882 4 1 1\n2 100008 -0.505079 0.282882 4 1 1\n3 100017 0.502686 -0.582433 1 1 0\n4 100021 -0.505079 0.282882 4 1 1" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 154 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "label_encoder = LabelEncoder()\ndata_pre[\"surface\"] = label_encoder.fit_transform(data_pre[\"surface\"])\ndata_pre[\"base_temperature\"] = label_encoder.fit_transform(data_pre[\"base_temperature\"])", | |
| "execution_count": 135, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "standard_scaler = StandardScaler()\ndata_pre[\"std_x\"] = standard_scaler.fit_transform(data_pre[\"std_x\"].to_frame())\ndata_pre[\"mean_x\"] = standard_scaler.fit_transform(data_pre[\"mean_x\"].to_frame())", | |
| "execution_count": 144, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false, | |
| "scrolled": true | |
| }, | |
| "cell_type": "code", | |
| "source": "data_pre.head()", | |
| "execution_count": 153, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>series_id</th>\n <th>std_x</th>\n <th>mean_x</th>\n <th>surface</th>\n <th>base_temperature</th>\n <th>clusters</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>100003</td>\n <td>-1.103091</td>\n <td>-0.988388</td>\n <td>3</td>\n <td>1</td>\n <td>1</td>\n </tr>\n <tr>\n <th>1</th>\n <td>100006</td>\n <td>-0.505079</td>\n <td>0.282882</td>\n <td>4</td>\n <td>1</td>\n <td>1</td>\n </tr>\n <tr>\n <th>2</th>\n <td>100008</td>\n <td>-0.505079</td>\n <td>0.282882</td>\n <td>4</td>\n <td>1</td>\n <td>1</td>\n </tr>\n <tr>\n <th>3</th>\n <td>100017</td>\n <td>0.502686</td>\n <td>-0.582433</td>\n <td>1</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>100021</td>\n <td>-0.505079</td>\n <td>0.282882</td>\n <td>4</td>\n <td>1</td>\n <td>1</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
| "text/plain": " series_id std_x mean_x surface base_temperature clusters\n0 100003 -1.103091 -0.988388 3 1 1\n1 100006 -0.505079 0.282882 4 1 1\n2 100008 -0.505079 0.282882 4 1 1\n3 100017 0.502686 -0.582433 1 1 0\n4 100021 -0.505079 0.282882 4 1 1" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 153 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "kmeans = KMeans(n_clusters=3)", | |
| "execution_count": 146, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "kmeans.fit(data_pre[[\"std_x\",\"mean_x\",\"surface\",\"base_temperature\"]])", | |
| "execution_count": 147, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n n_clusters=3, n_init=10, n_jobs=1, precompute_distances='auto',\n random_state=None, tol=0.0001, verbose=0)" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 147 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "kmeans.cluster_centers_", | |
| "execution_count": 148, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "array([[ 0.31845609, 0.19206268, 1.09047619, 0.97619048],\n [-0.33208922, -0.17377026, 3.44221106, 0.98743719],\n [ 0.43530487, 0.19218267, 5.57333333, 0.93333333]])" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 148 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data_pre[\"clusters\"] = kmeans.labels_", | |
| "execution_count": 150, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "data_pre.clusters.value_counts()", | |
| "execution_count": 151, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "1 398\n0 210\n2 150\nName: clusters, dtype: int64" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 151 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "import scipy.cluster.hierarchy as sch\nfrom sklearn.cluster import AgglomerativeClustering", | |
| "execution_count": 152, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "", | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "", | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "", | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "", | |
| "execution_count": null, | |
| "outputs": [] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "name": "Python [Anaconda3]", | |
| "display_name": "Python [Anaconda3]", | |
| "language": "python" | |
| }, | |
| "anaconda-cloud": {}, | |
| "language_info": { | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "version": "3.5.5", | |
| "pygments_lexer": "ipython3", | |
| "nbconvert_exporter": "python", | |
| "codemirror_mode": { | |
| "version": 3, | |
| "name": "ipython" | |
| } | |
| }, | |
| "varInspector": { | |
| "window_display": false, | |
| "cols": { | |
| "lenName": 16, | |
| "lenType": 16, | |
| "lenVar": 40 | |
| }, | |
| "kernels_config": { | |
| "python": { | |
| "library": "var_list.py", | |
| "delete_cmd_prefix": "del ", | |
| "delete_cmd_postfix": "", | |
| "varRefreshCmd": "print(var_dic_list())" | |
| }, | |
| "r": { | |
| "library": "var_list.r", | |
| "delete_cmd_prefix": "rm(", | |
| "delete_cmd_postfix": ") ", | |
| "varRefreshCmd": "cat(var_dic_list()) " | |
| } | |
| }, | |
| "types_to_exclude": [ | |
| "module", | |
| "function", | |
| "builtin_function_or_method", | |
| "instance", | |
| "_Feature" | |
| ] | |
| }, | |
| "notify_time": "5", | |
| "gist": { | |
| "id": "f4afaac8feb4d9e3e17ed5fdae0cae42", | |
| "data": { | |
| "description": "Power pred/Data Exploration.ipynb", | |
| "public": true | |
| } | |
| }, | |
| "_draft": { | |
| "nbviewer_url": "https://gist.github.com/f4afaac8feb4d9e3e17ed5fdae0cae42" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment