1
0
mirror of https://github.com/gsi-upm/sitc synced 2024-11-25 07:52:27 +00:00
sitc/ml1/2_3_0_Visualisation.ipynb
J. Fernando Sánchez 62f4fce1ed Review J
2016-03-28 12:26:20 +02:00

387 lines
81 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![](files/images/EscUpmPolit_p.gif \"UPM\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Course Notes for Learning Intelligent Systems"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Department of Telematic Engineering Systems, Universidad Politécnica de Madrid, © 2016 Carlos A. Iglesias"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## [Introduction to Machine Learning](2_0_0_Intro_ML.ipynb)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Table of Contents\n",
"* [Visualisation](#Visualisation)\n",
"* [Exploratory visualisation](#Exploratory-visualisation)\n",
"* [References](#References)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Visualisation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The goal of this notebook is to learn how to analyse a dataset. We will cover other tasks such as cleaning or munging (changing the format) the dataset in other sessions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exploratory visualisation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This section covers different ways to inspect the distribution of samples per feature.\n",
"\n",
"First of all, let's take a see how many samples of each class we have, using a [histogram](https://en.wikipedia.org/wiki/Histogram). \n",
"\n",
"A histogram is a graphical representation of the distribution of numerical data. It is an estimate of the probability distribution of a continuous variable (quantitative variable). \n",
"\n",
"For building a histogram, we need first to 'bin' the range of values—that is, divide the entire range of values into a series of intervals—and then count how many values fall into each interval. \n",
"\n",
"In our case, since the values are not continuous and we have only three values, we do not need to bin them."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn import datasets\n",
"iris = datasets.load_iris()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/lib/python3/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n",
"/usr/lib/python3/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n"
]
}
],
"source": [
"# library for displaying plots\n",
"import matplotlib.pyplot as plt\n",
"# display plots in the notebook\n",
"# if this is not set, you will not see the graphic here\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7f04f62a1a90>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f04f626b710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot histogram, the default is 10 bins\n",
"plt.hist(iris.target, bins=10)\n",
"plt.xlabel('iris class')\n",
"plt.ylabel('Number of species')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see we have the same distribution of samples for every class.\n",
"The next step is to see the distribution of the features"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']\n"
]
}
],
"source": [
"# This is a reminder of the name and index of each feature\n",
"print(iris.feature_names)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['setosa' 'versicolor' 'virginica']\n"
]
}
],
"source": [
"# A reminder of feature names and indexes\n",
"print(iris.target_names)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A [**scatter plot**](https://en.wikipedia.org/wiki/Scatter_plot) (*gráfico de dispersión*) displays the value of typically two variables for a set of data."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7f04f62a1630>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f05193cde10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# scatter makes a plot of x vs y\n",
"plt.scatter(iris.data[:,0], iris.target)\n",
"plt.ylabel(iris.feature_names[0])\n",
"plt.xlabel('species')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f05193a9c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot the distribution of the dataset\n",
"names = set(iris.target)\n",
"\n",
"# x and y are all the samples from column 0 (sepal_length) and 1 (sepal_width) respectively\n",
"x,y = iris.data[:,0], iris.data[:,1]\n",
"\n",
"for name in names:\n",
" cond = iris.target == name\n",
" plt.plot(x[cond], y[cond], linestyle='none', marker='o', label=iris.target_names[name])\n",
"\n",
"plt.legend(numpoints=1)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see, the Setosa class seems to be linearly separable with these two features.\n",
"\n",
"Another nice visualisation is given below."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7f04f5a176a0>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f04f5a9c4a8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x_index = 0\n",
"y_index = 1\n",
"formatter = plt.FuncFormatter(lambda i, *args: iris.target_names[int(i)])\n",
"plt.scatter(iris.data[:, x_index], iris.data[:, y_index], s=40,\n",
"c=iris.target)\n",
"plt.colorbar(ticks=[0, 1, 2], format=formatter)\n",
"plt.xlabel(iris.feature_names[x_index])\n",
"plt.ylabel(iris.feature_names[y_index])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This alternate visualisation also suggests that the Setosa class seems to be linearly separable.\n",
"\n",
"Students interested in practicing advanced visualisations can check [Advanced visualisation notebook](2_3_1_Advanced_Visualisation.ipynb).\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# References"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* [Feature selection](http://scikit-learn.org/stable/modules/feature_selection.html)\n",
"* [Classification probability](http://scikit-learn.org/stable/auto_examples/classification/plot_classification_probability.html)\n",
"* [Mastering Pandas](http://proquest.safaribooksonline.com/book/programming/python/9781783981960), Femi Anthony, Packt Publishing, 2015.\n",
"* [Matplotlib web page](http://matplotlib.org/index.html)\n",
"* [Using matlibplot in IPython](http://ipython.readthedocs.org/en/stable/interactive/plotting.html)\n",
"* [Seaborn Tutorial](https://stanford.edu/~mwaskom/software/seaborn/tutorial.html)\n",
"* [Iris dataset visualisation notebook](https://www.kaggle.com/benhamner/d/uciml/iris/python-data-visualizations/notebook)\n",
"* [Tutorial plotting with Seaborn](https://stanford.edu/~mwaskom/software/seaborn/tutorial/axis_grids.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Licence\n",
"\n",
"The notebook is freely licensed under under the [Creative Commons Attribution Share-Alike license](https://creativecommons.org/licenses/by/2.0/). \n",
"\n",
"© 2016 Carlos A. Iglesias, Universidad Politécnica de Madrid."
]
}
],
"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.5.1+"
}
},
"nbformat": 4,
"nbformat_minor": 0
}