You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sitc/ml21/visualization/05_Relational_Charts.ipynb

501 lines
695 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"![](images/EscUpmPolit_p.gif \"UPM\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"# Course Notes for Learning Intelligent Systems"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"Department of Telematic Engineering Systems, Universidad Politécnica de Madrid, © Carlos A. Iglesias"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## [Introduction to Visualization](00_Intro_Visualization.ipynb)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"# Relational charts\n",
"Charts for showing correlations.\n",
"\n",
"We have already seen correlation charts in the distribution charts (**lmplot**)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"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>year</th>\n",
" <th>month</th>\n",
" <th>passengers</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1949</td>\n",
" <td>Jan</td>\n",
" <td>112</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1949</td>\n",
" <td>Feb</td>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1949</td>\n",
" <td>Mar</td>\n",
" <td>132</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1949</td>\n",
" <td>Apr</td>\n",
" <td>129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1949</td>\n",
" <td>May</td>\n",
" <td>121</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1949</td>\n",
" <td>Jun</td>\n",
" <td>135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1949</td>\n",
" <td>Jul</td>\n",
" <td>148</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1949</td>\n",
" <td>Aug</td>\n",
" <td>148</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1949</td>\n",
" <td>Sep</td>\n",
" <td>136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1949</td>\n",
" <td>Oct</td>\n",
" <td>119</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" year month passengers\n",
"0 1949 Jan 112\n",
"1 1949 Feb 118\n",
"2 1949 Mar 132\n",
"3 1949 Apr 129\n",
"4 1949 May 121\n",
"5 1949 Jun 135\n",
"6 1949 Jul 148\n",
"7 1949 Aug 148\n",
"8 1949 Sep 136\n",
"9 1949 Oct 119"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"from matplotlib import pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"flights = sns.load_dataset('flights')\n",
"flights.head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Heatmaps"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='year', ylabel='month'>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df = flights.pivot(index=\"month\", columns=\"year\", values=\"passengers\")\n",
"sns.heatmap(df)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='year', ylabel='month'>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.heatmap(df, annot=True, fmt=\"d\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Parallel coordinates"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"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>total_bill</th>\n",
" <th>tip</th>\n",
" <th>sex</th>\n",
" <th>smoker</th>\n",
" <th>day</th>\n",
" <th>time</th>\n",
" <th>size</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>16.99</td>\n",
" <td>1.01</td>\n",
" <td>Female</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>10.34</td>\n",
" <td>1.66</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>21.01</td>\n",
" <td>3.50</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>23.68</td>\n",
" <td>3.31</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>24.59</td>\n",
" <td>3.61</td>\n",
" <td>Female</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" total_bill tip sex smoker day time size\n",
"0 16.99 1.01 Female No Sun Dinner 2\n",
"1 10.34 1.66 Male No Sun Dinner 3\n",
"2 21.01 3.50 Male No Sun Dinner 3\n",
"3 23.68 3.31 Male No Sun Dinner 2\n",
"4 24.59 3.61 Female No Sun Dinner 4"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pandas.plotting import parallel_coordinates\n",
"\n",
"df = sns.load_dataset('tips')\n",
"df.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA+EAAAORCAYAAACdm6MnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3iUVfr/8fczPWXSCCQESELvNRQVO/aCBbvrT3ftShMUxIIoiIpKt2Dbdb9rWXtbCxasKCVUKdICgUACCSGZ1MmU3x8TBmJIUJgJBj6v6+KSzDzPOWcm47r3nHPft+H3+/2IiIiIiIiISNiZjvQCRERERERERI4VCsJFREREREREGoiCcBEREREREZEGoiBcREREREREpIEoCBcRERERERFpIArCRURERERERBqIgnARERERERGRBqIgXERERERERKSBKAgXERERERERaSAKwkVE5C/l1FNPxTAMJkyY8KeeOxzffvsthmFgGEZIxz3WTJgwAcMwOPXUU2s9d8MNN2AYBjfccEODr0tEROSvREG4iEgjtDfY+f0fh8NBy5YtGTx4MG+99RZ+v/9IL/WYs2LFCsaOHUv//v1JSkrCZrMRGxtLly5duP766/nwww+pqqo60suUah988AETJkzggw8+ONJLERGRY4TlSC9AREQOT1JSUvDvRUVF5OTkkJOTw8cff8y//vUv3n//fex2+xFc4bHB5XJx22238cYbbwS//DAMg9jYWMrLy1mzZg1r1qzh3//+N23btuW1115jwIABR3jVDad58+Z07NiR5s2bH+ml1PDBBx/w6quvcv3113PxxRcf6eWIiMgxQDvhIiKNXG5ubvBPaWkpv/76K2eeeSYAn332GQ888MARXuHRr7CwkOOPP57XX38dgKuuuorvvvuOiooKCgsLqaioICcnh5deeokePXqwceNGfv755yO86ob12GOPsXbtWh577LEjvRQREZEjSkG4iMhRxGQy0bVrVz766CPatWsHwJw5c/B4PEd4ZUe3a6+9llWrVmGxWPjvf//LG2+8wcknn4zNZgtek5KSwo033siyZct49tlncTgcR3DFIiIicqQoCBcROQo5HA4uv/xyIHBMeu3atUDguPqbb77JtddeS/fu3UlISMDhcJCWlsY111zDL7/8UueYvy+69e6773LWWWfRrFkzTCZTjWJpv/32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
"text/plain": [
"<Figure size 1200x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(12, 10))\n",
"title = fig.suptitle(\"Parallel Coordinates\", fontsize=18)\n",
"fig.subplots_adjust(top=0.93, wspace=0)\n",
"\n",
"pc = parallel_coordinates(df, \n",
" 'smoker', # class name \n",
" ['total_bill', 'tip', 'size'],# numeric columns to show\n",
" color=('skyblue', 'firebrick'))"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"# References\n",
"* [Data Preprocessing for Machine learning in Python, GeeksForGeeks](https://www.geeksforgeeks.org/data-preprocessing-machine-learning-python/)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## Licence\n",
"The notebook is freely licensed under under the [Creative Commons Attribution Share-Alike license](https://creativecommons.org/licenses/by/2.0/). \n",
"\n",
"© Carlos A. Iglesias, Universidad Politécnica de Madrid."
]
}
],
"metadata": {
"datacleaner": {
"position": {
"top": "50px"
},
"python": {
"varRefreshCmd": "try:\n print(_datacleaner.dataframe_metadata())\nexcept:\n print([])"
},
"window_display": false
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.13"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
"autocomplete": true,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}