4ma-ml/notebook/project/starter_py.ipynb

389 lines
43 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data analysis: Velib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Author: O. Roustant, INSA Toulouse. February 2022.\n",
"\n",
"We consider the Vélib data set, related to the bike sharing system of Paris. The data are loading profiles of the bike stations over one week, collected every hour, from the period Monday 2nd Sept. - Sunday 7th Sept., 2014. The loading profile of a station, or simply loading, is defined as the ratio of number of available bikes divided by the number of bike docks. A loading of 1 means that the station is fully loaded, i.e. all bikes are available. A loading of 0 means that the station is empty, all bikes have been rent.\n",
"\n",
"From the viewpoint of data analysis, the individuals are the stations. The variables are the 168 time steps (hours in the week). The aim is to detect clusters in the data, corresponding to common customer usages. This clustering should then be used to predict the loading profile.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Lun-00</th>\n",
" <th>Lun-01</th>\n",
" <th>Lun-02</th>\n",
" <th>Lun-03</th>\n",
" <th>Lun-04</th>\n",
" <th>Lun-05</th>\n",
" <th>Lun-06</th>\n",
" <th>Lun-07</th>\n",
" <th>Lun-08</th>\n",
" <th>Lun-09</th>\n",
" <th>...</th>\n",
" <th>Dim-14</th>\n",
" <th>Dim-15</th>\n",
" <th>Dim-16</th>\n",
" <th>Dim-17</th>\n",
" <th>Dim-18</th>\n",
" <th>Dim-19</th>\n",
" <th>Dim-20</th>\n",
" <th>Dim-21</th>\n",
" <th>Dim-22</th>\n",
" <th>Dim-23</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.038462</td>\n",
" <td>0.038462</td>\n",
" <td>0.076923</td>\n",
" <td>0.038462</td>\n",
" <td>0.038462</td>\n",
" <td>0.038462</td>\n",
" <td>0.038462</td>\n",
" <td>0.038462</td>\n",
" <td>0.107143</td>\n",
" <td>0.000000</td>\n",
" <td>...</td>\n",
" <td>0.296296</td>\n",
" <td>0.111111</td>\n",
" <td>0.111111</td>\n",
" <td>0.148148</td>\n",
" <td>0.307692</td>\n",
" <td>0.076923</td>\n",
" <td>0.115385</td>\n",
" <td>0.076923</td>\n",
" <td>0.153846</td>\n",
" <td>0.153846</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.478261</td>\n",
" <td>0.478261</td>\n",
" <td>0.478261</td>\n",
" <td>0.434783</td>\n",
" <td>0.434783</td>\n",
" <td>0.434783</td>\n",
" <td>0.434783</td>\n",
" <td>0.434783</td>\n",
" <td>0.260870</td>\n",
" <td>0.043478</td>\n",
" <td>...</td>\n",
" <td>0.043478</td>\n",
" <td>0.000000</td>\n",
" <td>0.217391</td>\n",
" <td>0.130435</td>\n",
" <td>0.045455</td>\n",
" <td>0.173913</td>\n",
" <td>0.173913</td>\n",
" <td>0.173913</td>\n",
" <td>0.260870</td>\n",
" <td>0.391304</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.218182</td>\n",
" <td>0.145455</td>\n",
" <td>0.127273</td>\n",
" <td>0.109091</td>\n",
" <td>0.109091</td>\n",
" <td>0.109091</td>\n",
" <td>0.090909</td>\n",
" <td>0.090909</td>\n",
" <td>0.054545</td>\n",
" <td>0.109091</td>\n",
" <td>...</td>\n",
" <td>0.259259</td>\n",
" <td>0.259259</td>\n",
" <td>0.203704</td>\n",
" <td>0.129630</td>\n",
" <td>0.148148</td>\n",
" <td>0.296296</td>\n",
" <td>0.314815</td>\n",
" <td>0.370370</td>\n",
" <td>0.370370</td>\n",
" <td>0.407407</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.952381</td>\n",
" <td>0.952381</td>\n",
" <td>0.952381</td>\n",
" <td>0.952381</td>\n",
" <td>0.952381</td>\n",
" <td>0.952381</td>\n",
" <td>0.952381</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>...</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.904762</td>\n",
" <td>0.857143</td>\n",
" <td>0.857143</td>\n",
" <td>0.857143</td>\n",
" <td>0.761905</td>\n",
" <td>0.761905</td>\n",
" <td>0.761905</td>\n",
" <td>0.761905</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.927536</td>\n",
" <td>0.811594</td>\n",
" <td>0.739130</td>\n",
" <td>0.724638</td>\n",
" <td>0.724638</td>\n",
" <td>0.724638</td>\n",
" <td>0.724638</td>\n",
" <td>0.724638</td>\n",
" <td>0.753623</td>\n",
" <td>0.971014</td>\n",
" <td>...</td>\n",
" <td>0.227273</td>\n",
" <td>0.454545</td>\n",
" <td>0.590909</td>\n",
" <td>0.833333</td>\n",
" <td>1.000000</td>\n",
" <td>0.818182</td>\n",
" <td>0.636364</td>\n",
" <td>0.712121</td>\n",
" <td>0.621212</td>\n",
" <td>0.575758</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 168 columns</p>\n",
"</div>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"path='' # si les données sont déjà dans le répertoire courant\n",
"loading = pd.read_csv(path+'velibLoading.csv', sep = \" \")\n",
"loading.head()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>longitude</th>\n",
" <th>latitude</th>\n",
" <th>bonus</th>\n",
" <th>names</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2.377389</td>\n",
" <td>48.886300</td>\n",
" <td>0</td>\n",
" <td>EURYALE DEHAYNIN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2.317591</td>\n",
" <td>48.890020</td>\n",
" <td>0</td>\n",
" <td>LEMERCIER</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2.330447</td>\n",
" <td>48.850297</td>\n",
" <td>0</td>\n",
" <td>MEZIERES RENNES</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2.271396</td>\n",
" <td>48.833734</td>\n",
" <td>0</td>\n",
" <td>FARMAN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2.366897</td>\n",
" <td>48.845887</td>\n",
" <td>0</td>\n",
" <td>QUAI DE LA RAPEE</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"velibAdds = pd.read_csv(path+'velibAdds.csv', sep = \" \")\n",
"velibAdds.head()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">Figure</span><span style=\"color: #000000; text-decoration-color: #000000\"> size 432x288 with </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span><span style=\"color: #000000; text-decoration-color: #000000\"> Axes</span><span style=\"font-weight: bold\">&gt;</span>\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 432x288 with \u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Plot the loading of the first station\n",
"%matplotlib inline\n",
"from pylab import * \n",
"import numpy as np\n",
"\n",
"p = loading.columns.size\n",
"Time = np.linspace(1, p, p)\n",
"plot(Time, loading.transpose()[1], linewidth = 2, color = 'blue')\n",
"xlabel('Time'); ylabel('Laoding'); title(velibAdds.names[1])\n",
"vlines(x = np.linspace(1, p, 8), ymin = 0, ymax = 1, colors = \"black\", linestyle = \"dotted\")\n",
"show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Descriptive statistics.\n",
"\n",
"Some ideas : \n",
"\n",
"1. Draw a matrix of plots of size 4*4, corresponding to the first 16 stations. (Do not forget the vertical lines corresponding to days).\n",
"2. Draw the boxplot of the variables, sorted in time order. \n",
"What can you say about the distribution of the variables? \n",
"Position, dispersion, symmetry? Can you see a difference between days?\n",
"3. Plot the average hourly loading for each day (on a single graph).\n",
"Comments? \n",
"4. Plot the stations coordinates on a 2D map (latitude versus longitude). Use the package ggmap (function 'qmplot') to visualize the average loading for a given hour (6h, 12h, 23h) as a color scale.\n",
"Comments ?\n",
"5. Use a different color for stations which are located on a hill. (Use the basis 'plot' function, and the function 'qmplot' of R package ggmap).\n",
"6. Redo questions 1-3 for the subset of stations which are located on a hill. Same questions for those who are not. Comment?"
]
}
],
"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.10"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}