From 3165eac23c262048e1aff5a16f8080a6b59f62ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 28 Mar 2016 14:03:08 +0200 Subject: [PATCH] Not done reviewing ml2 yet --- ml2/3_0_0_Intro_ML_2.ipynb | 114 + ml2/3_1_Read_Data.ipynb | 3846 ++++++++++++++++ ml2/3_2_Pandas.ipynb | 932 ++++ ml2/3_3_Data_Munging_with_Pandas.ipynb | 5411 +++++++++++++++++++++++ ml2/3_4_Visualisation_Pandas.ipynb | 4795 ++++++++++++++++++++ ml2/3_5_Exercise_1.ipynb | 539 +++ ml2/3_6_Machine_Learning.ipynb | 122 + ml2/3_7_SVM.ipynb | 1178 +++++ ml2/3_8_Exercise_2.ipynb | 89 + ml2/data-titanic/test.csv | 419 -- ml2/images/EscUpmPolit_p.gif | Bin 0 -> 3171 bytes ml2/images/machine-learning-process.jpg | Bin 0 -> 243101 bytes ml2/images/titanic.jpg | Bin 0 -> 155776 bytes ml2/plot_learning_curve.py | 109 + ml2/plot_svm.py | 80 + 15 files changed, 17215 insertions(+), 419 deletions(-) create mode 100644 ml2/3_0_0_Intro_ML_2.ipynb create mode 100644 ml2/3_1_Read_Data.ipynb create mode 100644 ml2/3_2_Pandas.ipynb create mode 100644 ml2/3_3_Data_Munging_with_Pandas.ipynb create mode 100644 ml2/3_4_Visualisation_Pandas.ipynb create mode 100644 ml2/3_5_Exercise_1.ipynb create mode 100644 ml2/3_6_Machine_Learning.ipynb create mode 100644 ml2/3_7_SVM.ipynb create mode 100644 ml2/3_8_Exercise_2.ipynb delete mode 100644 ml2/data-titanic/test.csv create mode 100644 ml2/images/EscUpmPolit_p.gif create mode 100644 ml2/images/machine-learning-process.jpg create mode 100644 ml2/images/titanic.jpg create mode 100644 ml2/plot_learning_curve.py create mode 100644 ml2/plot_svm.py diff --git a/ml2/3_0_0_Intro_ML_2.ipynb b/ml2/3_0_0_Intro_ML_2.ipynb new file mode 100644 index 0000000..9cdcbab --- /dev/null +++ b/ml2/3_0_0_Intro_ML_2.ipynb @@ -0,0 +1,114 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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 II\n", + " \n", + "In this lab session, we will go deeper in some aspects that were introduced in the previous session. This time we will delve into a little bit more detail about reading datasets, analysing data and selecting features. In addition, we will explore two additional machine learning algorithms: perceptron and SVM in a binary classification problem provided by the Titanic dataset.\n", + "\n", + "# Objectives\n", + "\n", + "In this lecture we are going to introduce some more details about machine learning aspects. \n", + "\n", + "The main objectives of this session are:\n", + "* Learn how to read data from a file or URL with pandas\n", + "* Learn how to use the pandas DataFrame data structure\n", + "* Learn how to select features\n", + "* Understand better the Perceptron and SVM machine learning algorithms" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Table of Contents" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. [Home](3_0_0_Intro_ML_2.ipynb)\n", + "1. [The Titanic Dataset. Reading Data](3_1_Read_Data.ipynb)\n", + "1. [Introduction to Pandas](3_2_Pandas.ipynb)\n", + "1. [Preprocessing: Data Munging with DataFrames](3_3_Data_Munging_with_Pandas.ipynb)\n", + "2. [Preprocessing: Visualisation and for DataFrames](3_4_Visualisation_Pandas.ipynb)\n", + "3. [Exercise 1](3_5_Exercise_1.ipynb)\n", + "1. [Machine Learning](3_6_Machine_Learning.ipynb)\n", + " 1. [SVM](3_7_SVM.ipynb)\n", + "5. [Exercise 2](3_8_Exercise_2.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [IPython Notebook Tutorial for Titanic: Machine Learning from Disaster](https://www.kaggle.com/c/titanic/forums/t/5105/ipython-notebook-tutorial-for-titanic-machine-learning-from-disaster)\n", + "* [Scikit-learn videos](http://blog.kaggle.com/author/kevin-markham/) and [notebooks](https://github.com/justmarkham/scikit-learn-videos) by Kevin Marham\n", + "* [Learning scikit-learn: Machine Learning in Python](http://proquest.safaribooksonline.com/book/programming/python/9781783281930/1dot-machine-learning-a-gentle-introduction/ch01s02_html), Raúl Garreta; Guillermo Moncecchi, Packt Publishing, 2013.\n", + "* [Python Machine Learning](http://proquest.safaribooksonline.com/book/programming/python/9781783555130), Sebastian Raschka, Packt Publishing, 2015." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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", + "© 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 +} diff --git a/ml2/3_1_Read_Data.ipynb b/ml2/3_1_Read_Data.ipynb new file mode 100644 index 0000000..77ff025 --- /dev/null +++ b/ml2/3_1_Read_Data.ipynb @@ -0,0 +1,3846 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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 II](3_0_0_Intro_ML_2.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Table of Contents\n", + "\n", + "* [The Titanic dataset](#The-Titanic-dataset)\n", + "* [Reading Data](#Reading-Data)\n", + "* [Reading Data from a File](#Reading-Data-from-a-File)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Titanic dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this session we will work with the Titanic dataset. This dataset is provided by [Kaggle](http://www.kaggle.com). Kaggle is a crowdsourcing platform that organizes competitions where researchers and companies post their data and users compete to obtain the best models.\n", + "\n", + "![Titanic](images/titanic.jpg)\n", + "\n", + "\n", + "The main objective is predicting which passengers survived the sinking of the Titanic.\n", + "\n", + "The data is available [here](https://www.kaggle.com/c/titanic/data). There are two files, one for training ([train.csv](files/data-titanic/train.csv)) and another file for testing [test.csv](files/data-titanic/test.csv). A local copy has been included in this notebook under the folder *data-titanic*.\n", + "\n", + "\n", + "Here follows a description of the variables.\n", + "\n", + "|Variable | Description| Values|\n", + "|-------------------------------|\n", + "| survival| Survival| (0 = No; 1 = Yes)|\n", + "|Pclass |Name | |\n", + "|Sex |Sex | male, female|\n", + "|Age |Age|\n", + "|SibSp |Number of Siblings/Spouses Aboard||\n", + "|Parch |Number of Parents/Children Aboard||\n", + "|Ticket|Ticket Number||\n", + "|Fare |Passenger Fare||\n", + "|Cabin |Cabin||\n", + "|Embarked |Port of Embarkation| (C = Cherbourg; Q = Queenstown; S = Southampton)|\n", + "\n", + "\n", + "The definitions used for SibSp and Parch are:\n", + "* *Sibling*: Brother, Sister, Stepbrother, or Stepsister of Passenger Aboard Titanic\n", + "* *Spouse*: Husband or Wife of Passenger Aboard Titanic (Mistresses and Fiances Ignored)\n", + "* *Parent*: Mother or Father of Passenger Aboard Titanic\n", + "* *Child*: Son, Daughter, Stepson, or Stepdaughter of Passenger Aboard Titanic" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading Data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the previous dataset we load a bundle dataset in scikit-learn. In this notebook we are going to learn how to read from a file or a url using the Pandas library." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reading Data from a File" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
6701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
8913Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female27.00234774211.1333NaNS
91012Nasser, Mrs. Nicholas (Adele Achem)female14.01023773630.0708NaNC
101113Sandstrom, Miss. Marguerite Rutfemale4.011PP 954916.7000G6S
111211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S
121303Saundercock, Mr. William Henrymale20.000A/5. 21518.0500NaNS
131403Andersson, Mr. Anders Johanmale39.01534708231.2750NaNS
141503Vestrom, Miss. Hulda Amanda Adolfinafemale14.0003504067.8542NaNS
151612Hewlett, Mrs. (Mary D Kingcome)female55.00024870616.0000NaNS
161703Rice, Master. Eugenemale2.04138265229.1250NaNQ
171812Williams, Mr. Charles EugenemaleNaN0024437313.0000NaNS
181903Vander Planke, Mrs. Julius (Emelia Maria Vande...female31.01034576318.0000NaNS
192013Masselmani, Mrs. FatimafemaleNaN0026497.2250NaNC
202102Fynney, Mr. Joseph Jmale35.00023986526.0000NaNS
212212Beesley, Mr. Lawrencemale34.00024869813.0000D56S
222313McGowan, Miss. Anna \"Annie\"female15.0003309238.0292NaNQ
232411Sloper, Mr. William Thompsonmale28.00011378835.5000A6S
242503Palsson, Miss. Torborg Danirafemale8.03134990921.0750NaNS
252613Asplund, Mrs. Carl Oscar (Selma Augusta Emilia...female38.01534707731.3875NaNS
262703Emir, Mr. Farred ChehabmaleNaN0026317.2250NaNC
272801Fortune, Mr. Charles Alexandermale19.03219950263.0000C23 C25 C27S
282913O'Dwyer, Miss. Ellen \"Nellie\"femaleNaN003309597.8792NaNQ
293003Todoroff, Mr. LaliomaleNaN003492167.8958NaNS
.......................................
86186202Giles, Mr. Frederick Edwardmale21.0102813411.5000NaNS
86286311Swift, Mrs. Frederick Joel (Margaret Welles Ba...female48.0001746625.9292D17S
86386403Sage, Miss. Dorothy Edith \"Dolly\"femaleNaN82CA. 234369.5500NaNS
86486502Gill, Mr. John Williammale24.00023386613.0000NaNS
86586612Bystrom, Mrs. (Karolina)female42.00023685213.0000NaNS
86686712Duran y More, Miss. Asuncionfemale27.010SC/PARIS 214913.8583NaNC
86786801Roebling, Mr. Washington Augustus IImale31.000PC 1759050.4958A24S
86886903van Melkebeke, Mr. PhilemonmaleNaN003457779.5000NaNS
86987013Johnson, Master. Harold Theodormale4.01134774211.1333NaNS
87087103Balkic, Mr. Cerinmale26.0003492487.8958NaNS
87187211Beckwith, Mrs. Richard Leonard (Sallie Monypeny)female47.0111175152.5542D35S
87287301Carlsson, Mr. Frans Olofmale33.0006955.0000B51 B53 B55S
87387403Vander Cruyssen, Mr. Victormale47.0003457659.0000NaNS
87487512Abelson, Mrs. Samuel (Hannah Wizosky)female28.010P/PP 338124.0000NaNC
87587613Najib, Miss. Adele Kiamie \"Jane\"female15.00026677.2250NaNC
87687703Gustafsson, Mr. Alfred Ossianmale20.00075349.8458NaNS
87787803Petroff, Mr. Nedeliomale19.0003492127.8958NaNS
87887903Laleff, Mr. KristomaleNaN003492177.8958NaNS
87988011Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)female56.0011176783.1583C50C
88088112Shelley, Mrs. William (Imanita Parrish Hall)female25.00123043326.0000NaNS
88188203Markun, Mr. Johannmale33.0003492577.8958NaNS
88288303Dahlberg, Miss. Gerda Ulrikafemale22.000755210.5167NaNS
88388402Banfield, Mr. Frederick Jamesmale28.000C.A./SOTON 3406810.5000NaNS
88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.0500NaNS
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
\n", + "

891 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "5 6 0 3 \n", + "6 7 0 1 \n", + "7 8 0 3 \n", + "8 9 1 3 \n", + "9 10 1 2 \n", + "10 11 1 3 \n", + "11 12 1 1 \n", + "12 13 0 3 \n", + "13 14 0 3 \n", + "14 15 0 3 \n", + "15 16 1 2 \n", + "16 17 0 3 \n", + "17 18 1 2 \n", + "18 19 0 3 \n", + "19 20 1 3 \n", + "20 21 0 2 \n", + "21 22 1 2 \n", + "22 23 1 3 \n", + "23 24 1 1 \n", + "24 25 0 3 \n", + "25 26 1 3 \n", + "26 27 0 3 \n", + "27 28 0 1 \n", + "28 29 1 3 \n", + "29 30 0 3 \n", + ".. ... ... ... \n", + "861 862 0 2 \n", + "862 863 1 1 \n", + "863 864 0 3 \n", + "864 865 0 2 \n", + "865 866 1 2 \n", + "866 867 1 2 \n", + "867 868 0 1 \n", + "868 869 0 3 \n", + "869 870 1 3 \n", + "870 871 0 3 \n", + "871 872 1 1 \n", + "872 873 0 1 \n", + "873 874 0 3 \n", + "874 875 1 2 \n", + "875 876 1 3 \n", + "876 877 0 3 \n", + "877 878 0 3 \n", + "878 879 0 3 \n", + "879 880 1 1 \n", + "880 881 1 2 \n", + "881 882 0 3 \n", + "882 883 0 3 \n", + "883 884 0 2 \n", + "884 885 0 3 \n", + "885 886 0 3 \n", + "886 887 0 2 \n", + "887 888 1 1 \n", + "888 889 0 3 \n", + "889 890 1 1 \n", + "890 891 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "5 Moran, Mr. James male NaN 0 \n", + "6 McCarthy, Mr. Timothy J male 54.0 0 \n", + "7 Palsson, Master. Gosta Leonard male 2.0 3 \n", + "8 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 \n", + "9 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 \n", + "10 Sandstrom, Miss. Marguerite Rut female 4.0 1 \n", + "11 Bonnell, Miss. Elizabeth female 58.0 0 \n", + "12 Saundercock, Mr. William Henry male 20.0 0 \n", + "13 Andersson, Mr. Anders Johan male 39.0 1 \n", + "14 Vestrom, Miss. Hulda Amanda Adolfina female 14.0 0 \n", + "15 Hewlett, Mrs. (Mary D Kingcome) female 55.0 0 \n", + "16 Rice, Master. Eugene male 2.0 4 \n", + "17 Williams, Mr. Charles Eugene male NaN 0 \n", + "18 Vander Planke, Mrs. Julius (Emelia Maria Vande... female 31.0 1 \n", + "19 Masselmani, Mrs. Fatima female NaN 0 \n", + "20 Fynney, Mr. Joseph J male 35.0 0 \n", + "21 Beesley, Mr. Lawrence male 34.0 0 \n", + "22 McGowan, Miss. Anna \"Annie\" female 15.0 0 \n", + "23 Sloper, Mr. William Thompson male 28.0 0 \n", + "24 Palsson, Miss. Torborg Danira female 8.0 3 \n", + "25 Asplund, Mrs. Carl Oscar (Selma Augusta Emilia... female 38.0 1 \n", + "26 Emir, Mr. Farred Chehab male NaN 0 \n", + "27 Fortune, Mr. Charles Alexander male 19.0 3 \n", + "28 O'Dwyer, Miss. Ellen \"Nellie\" female NaN 0 \n", + "29 Todoroff, Mr. Lalio male NaN 0 \n", + ".. ... ... ... ... \n", + "861 Giles, Mr. Frederick Edward male 21.0 1 \n", + "862 Swift, Mrs. Frederick Joel (Margaret Welles Ba... female 48.0 0 \n", + "863 Sage, Miss. Dorothy Edith \"Dolly\" female NaN 8 \n", + "864 Gill, Mr. John William male 24.0 0 \n", + "865 Bystrom, Mrs. (Karolina) female 42.0 0 \n", + "866 Duran y More, Miss. Asuncion female 27.0 1 \n", + "867 Roebling, Mr. Washington Augustus II male 31.0 0 \n", + "868 van Melkebeke, Mr. Philemon male NaN 0 \n", + "869 Johnson, Master. Harold Theodor male 4.0 1 \n", + "870 Balkic, Mr. Cerin male 26.0 0 \n", + "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.0 1 \n", + "872 Carlsson, Mr. Frans Olof male 33.0 0 \n", + "873 Vander Cruyssen, Mr. Victor male 47.0 0 \n", + "874 Abelson, Mrs. Samuel (Hannah Wizosky) female 28.0 1 \n", + "875 Najib, Miss. Adele Kiamie \"Jane\" female 15.0 0 \n", + "876 Gustafsson, Mr. Alfred Ossian male 20.0 0 \n", + "877 Petroff, Mr. Nedelio male 19.0 0 \n", + "878 Laleff, Mr. Kristo male NaN 0 \n", + "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 \n", + "880 Shelley, Mrs. William (Imanita Parrish Hall) female 25.0 0 \n", + "881 Markun, Mr. Johann male 33.0 0 \n", + "882 Dahlberg, Miss. Gerda Ulrika female 22.0 0 \n", + "883 Banfield, Mr. Frederick James male 28.0 0 \n", + "884 Sutehall, Mr. Henry Jr male 25.0 0 \n", + "885 Rice, Mrs. William (Margaret Norton) female 39.0 0 \n", + "886 Montvila, Rev. Juozas male 27.0 0 \n", + "887 Graham, Miss. Margaret Edith female 19.0 0 \n", + "888 Johnston, Miss. Catherine Helen \"Carrie\" female NaN 1 \n", + "889 Behr, Mr. Karl Howell male 26.0 0 \n", + "890 Dooley, Mr. Patrick male 32.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S \n", + "5 0 330877 8.4583 NaN Q \n", + "6 0 17463 51.8625 E46 S \n", + "7 1 349909 21.0750 NaN S \n", + "8 2 347742 11.1333 NaN S \n", + "9 0 237736 30.0708 NaN C \n", + "10 1 PP 9549 16.7000 G6 S \n", + "11 0 113783 26.5500 C103 S \n", + "12 0 A/5. 2151 8.0500 NaN S \n", + "13 5 347082 31.2750 NaN S \n", + "14 0 350406 7.8542 NaN S \n", + "15 0 248706 16.0000 NaN S \n", + "16 1 382652 29.1250 NaN Q \n", + "17 0 244373 13.0000 NaN S \n", + "18 0 345763 18.0000 NaN S \n", + "19 0 2649 7.2250 NaN C \n", + "20 0 239865 26.0000 NaN S \n", + "21 0 248698 13.0000 D56 S \n", + "22 0 330923 8.0292 NaN Q \n", + "23 0 113788 35.5000 A6 S \n", + "24 1 349909 21.0750 NaN S \n", + "25 5 347077 31.3875 NaN S \n", + "26 0 2631 7.2250 NaN C \n", + "27 2 19950 263.0000 C23 C25 C27 S \n", + "28 0 330959 7.8792 NaN Q \n", + "29 0 349216 7.8958 NaN S \n", + ".. ... ... ... ... ... \n", + "861 0 28134 11.5000 NaN S \n", + "862 0 17466 25.9292 D17 S \n", + "863 2 CA. 2343 69.5500 NaN S \n", + "864 0 233866 13.0000 NaN S \n", + "865 0 236852 13.0000 NaN S \n", + "866 0 SC/PARIS 2149 13.8583 NaN C \n", + "867 0 PC 17590 50.4958 A24 S \n", + "868 0 345777 9.5000 NaN S \n", + "869 1 347742 11.1333 NaN S \n", + "870 0 349248 7.8958 NaN S \n", + "871 1 11751 52.5542 D35 S \n", + "872 0 695 5.0000 B51 B53 B55 S \n", + "873 0 345765 9.0000 NaN S \n", + "874 0 P/PP 3381 24.0000 NaN C \n", + "875 0 2667 7.2250 NaN C \n", + "876 0 7534 9.8458 NaN S \n", + "877 0 349212 7.8958 NaN S \n", + "878 0 349217 7.8958 NaN S \n", + "879 1 11767 83.1583 C50 C \n", + "880 1 230433 26.0000 NaN S \n", + "881 0 349257 7.8958 NaN S \n", + "882 0 7552 10.5167 NaN S \n", + "883 0 C.A./SOTON 34068 10.5000 NaN S \n", + "884 0 SOTON/OQ 392076 7.0500 NaN S \n", + "885 5 382652 29.1250 NaN Q \n", + "886 0 211536 13.0000 NaN S \n", + "887 0 112053 30.0000 B42 S \n", + "888 2 W./C. 6607 23.4500 NaN S \n", + "889 0 111369 30.0000 C148 C \n", + "890 0 370376 7.7500 NaN Q \n", + "\n", + "[891 rows x 12 columns]" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from pandas import Series, DataFrame\n", + "\n", + "df = pd.read_csv('data-titanic/train.csv')\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(891, 12)" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# we can get the number of samples and features\n", + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale2210A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female3810PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale2600STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female351011380353.1000C123S
4503Allen, Mr. William Henrymale35003734508.0500NaNS
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n", + "2 Heikkinen, Miss. Laina female 26 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 \n", + "4 Allen, Mr. William Henry male 35 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#I can read only a number of rows and tell where the header is, among other options.\n", + "df = df = pd.read_csv('data-titanic/train.csv', header=0, nrows=5)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pandas provides methods for reading other formats, such as Excel (*read_excel()*), JSON (*read_json()*), or HTML (*read_html()*), look at the [documentation](http://pandas.pydata.org/pandas-docs/stable/api.html#input-output) for more details." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reading data from a URL" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
6701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
8913Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female27.00234774211.1333NaNS
91012Nasser, Mrs. Nicholas (Adele Achem)female14.01023773630.0708NaNC
101113Sandstrom, Miss. Marguerite Rutfemale4.011PP 954916.7000G6S
111211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S
121303Saundercock, Mr. William Henrymale20.000A/5. 21518.0500NaNS
131403Andersson, Mr. Anders Johanmale39.01534708231.2750NaNS
141503Vestrom, Miss. Hulda Amanda Adolfinafemale14.0003504067.8542NaNS
151612Hewlett, Mrs. (Mary D Kingcome)female55.00024870616.0000NaNS
161703Rice, Master. Eugenemale2.04138265229.1250NaNQ
171812Williams, Mr. Charles EugenemaleNaN0024437313.0000NaNS
181903Vander Planke, Mrs. Julius (Emelia Maria Vande...female31.01034576318.0000NaNS
192013Masselmani, Mrs. FatimafemaleNaN0026497.2250NaNC
202102Fynney, Mr. Joseph Jmale35.00023986526.0000NaNS
212212Beesley, Mr. Lawrencemale34.00024869813.0000D56S
222313McGowan, Miss. Anna \"Annie\"female15.0003309238.0292NaNQ
232411Sloper, Mr. William Thompsonmale28.00011378835.5000A6S
242503Palsson, Miss. Torborg Danirafemale8.03134990921.0750NaNS
252613Asplund, Mrs. Carl Oscar (Selma Augusta Emilia...female38.01534707731.3875NaNS
262703Emir, Mr. Farred ChehabmaleNaN0026317.2250NaNC
272801Fortune, Mr. Charles Alexandermale19.03219950263.0000C23 C25 C27S
282913O'Dwyer, Miss. Ellen \"Nellie\"femaleNaN003309597.8792NaNQ
293003Todoroff, Mr. LaliomaleNaN003492167.8958NaNS
.......................................
86186202Giles, Mr. Frederick Edwardmale21.0102813411.5000NaNS
86286311Swift, Mrs. Frederick Joel (Margaret Welles Ba...female48.0001746625.9292D17S
86386403Sage, Miss. Dorothy Edith \"Dolly\"femaleNaN82CA. 234369.5500NaNS
86486502Gill, Mr. John Williammale24.00023386613.0000NaNS
86586612Bystrom, Mrs. (Karolina)female42.00023685213.0000NaNS
86686712Duran y More, Miss. Asuncionfemale27.010SC/PARIS 214913.8583NaNC
86786801Roebling, Mr. Washington Augustus IImale31.000PC 1759050.4958A24S
86886903van Melkebeke, Mr. PhilemonmaleNaN003457779.5000NaNS
86987013Johnson, Master. Harold Theodormale4.01134774211.1333NaNS
87087103Balkic, Mr. Cerinmale26.0003492487.8958NaNS
87187211Beckwith, Mrs. Richard Leonard (Sallie Monypeny)female47.0111175152.5542D35S
87287301Carlsson, Mr. Frans Olofmale33.0006955.0000B51 B53 B55S
87387403Vander Cruyssen, Mr. Victormale47.0003457659.0000NaNS
87487512Abelson, Mrs. Samuel (Hannah Wizosky)female28.010P/PP 338124.0000NaNC
87587613Najib, Miss. Adele Kiamie \"Jane\"female15.00026677.2250NaNC
87687703Gustafsson, Mr. Alfred Ossianmale20.00075349.8458NaNS
87787803Petroff, Mr. Nedeliomale19.0003492127.8958NaNS
87887903Laleff, Mr. KristomaleNaN003492177.8958NaNS
87988011Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)female56.0011176783.1583C50C
88088112Shelley, Mrs. William (Imanita Parrish Hall)female25.00123043326.0000NaNS
88188203Markun, Mr. Johannmale33.0003492577.8958NaNS
88288303Dahlberg, Miss. Gerda Ulrikafemale22.000755210.5167NaNS
88388402Banfield, Mr. Frederick Jamesmale28.000C.A./SOTON 3406810.5000NaNS
88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.0500NaNS
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
\n", + "

891 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "5 6 0 3 \n", + "6 7 0 1 \n", + "7 8 0 3 \n", + "8 9 1 3 \n", + "9 10 1 2 \n", + "10 11 1 3 \n", + "11 12 1 1 \n", + "12 13 0 3 \n", + "13 14 0 3 \n", + "14 15 0 3 \n", + "15 16 1 2 \n", + "16 17 0 3 \n", + "17 18 1 2 \n", + "18 19 0 3 \n", + "19 20 1 3 \n", + "20 21 0 2 \n", + "21 22 1 2 \n", + "22 23 1 3 \n", + "23 24 1 1 \n", + "24 25 0 3 \n", + "25 26 1 3 \n", + "26 27 0 3 \n", + "27 28 0 1 \n", + "28 29 1 3 \n", + "29 30 0 3 \n", + ".. ... ... ... \n", + "861 862 0 2 \n", + "862 863 1 1 \n", + "863 864 0 3 \n", + "864 865 0 2 \n", + "865 866 1 2 \n", + "866 867 1 2 \n", + "867 868 0 1 \n", + "868 869 0 3 \n", + "869 870 1 3 \n", + "870 871 0 3 \n", + "871 872 1 1 \n", + "872 873 0 1 \n", + "873 874 0 3 \n", + "874 875 1 2 \n", + "875 876 1 3 \n", + "876 877 0 3 \n", + "877 878 0 3 \n", + "878 879 0 3 \n", + "879 880 1 1 \n", + "880 881 1 2 \n", + "881 882 0 3 \n", + "882 883 0 3 \n", + "883 884 0 2 \n", + "884 885 0 3 \n", + "885 886 0 3 \n", + "886 887 0 2 \n", + "887 888 1 1 \n", + "888 889 0 3 \n", + "889 890 1 1 \n", + "890 891 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "5 Moran, Mr. James male NaN 0 \n", + "6 McCarthy, Mr. Timothy J male 54.0 0 \n", + "7 Palsson, Master. Gosta Leonard male 2.0 3 \n", + "8 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 \n", + "9 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 \n", + "10 Sandstrom, Miss. Marguerite Rut female 4.0 1 \n", + "11 Bonnell, Miss. Elizabeth female 58.0 0 \n", + "12 Saundercock, Mr. William Henry male 20.0 0 \n", + "13 Andersson, Mr. Anders Johan male 39.0 1 \n", + "14 Vestrom, Miss. Hulda Amanda Adolfina female 14.0 0 \n", + "15 Hewlett, Mrs. (Mary D Kingcome) female 55.0 0 \n", + "16 Rice, Master. Eugene male 2.0 4 \n", + "17 Williams, Mr. Charles Eugene male NaN 0 \n", + "18 Vander Planke, Mrs. Julius (Emelia Maria Vande... female 31.0 1 \n", + "19 Masselmani, Mrs. Fatima female NaN 0 \n", + "20 Fynney, Mr. Joseph J male 35.0 0 \n", + "21 Beesley, Mr. Lawrence male 34.0 0 \n", + "22 McGowan, Miss. Anna \"Annie\" female 15.0 0 \n", + "23 Sloper, Mr. William Thompson male 28.0 0 \n", + "24 Palsson, Miss. Torborg Danira female 8.0 3 \n", + "25 Asplund, Mrs. Carl Oscar (Selma Augusta Emilia... female 38.0 1 \n", + "26 Emir, Mr. Farred Chehab male NaN 0 \n", + "27 Fortune, Mr. Charles Alexander male 19.0 3 \n", + "28 O'Dwyer, Miss. Ellen \"Nellie\" female NaN 0 \n", + "29 Todoroff, Mr. Lalio male NaN 0 \n", + ".. ... ... ... ... \n", + "861 Giles, Mr. Frederick Edward male 21.0 1 \n", + "862 Swift, Mrs. Frederick Joel (Margaret Welles Ba... female 48.0 0 \n", + "863 Sage, Miss. Dorothy Edith \"Dolly\" female NaN 8 \n", + "864 Gill, Mr. John William male 24.0 0 \n", + "865 Bystrom, Mrs. (Karolina) female 42.0 0 \n", + "866 Duran y More, Miss. Asuncion female 27.0 1 \n", + "867 Roebling, Mr. Washington Augustus II male 31.0 0 \n", + "868 van Melkebeke, Mr. Philemon male NaN 0 \n", + "869 Johnson, Master. Harold Theodor male 4.0 1 \n", + "870 Balkic, Mr. Cerin male 26.0 0 \n", + "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.0 1 \n", + "872 Carlsson, Mr. Frans Olof male 33.0 0 \n", + "873 Vander Cruyssen, Mr. Victor male 47.0 0 \n", + "874 Abelson, Mrs. Samuel (Hannah Wizosky) female 28.0 1 \n", + "875 Najib, Miss. Adele Kiamie \"Jane\" female 15.0 0 \n", + "876 Gustafsson, Mr. Alfred Ossian male 20.0 0 \n", + "877 Petroff, Mr. Nedelio male 19.0 0 \n", + "878 Laleff, Mr. Kristo male NaN 0 \n", + "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 \n", + "880 Shelley, Mrs. William (Imanita Parrish Hall) female 25.0 0 \n", + "881 Markun, Mr. Johann male 33.0 0 \n", + "882 Dahlberg, Miss. Gerda Ulrika female 22.0 0 \n", + "883 Banfield, Mr. Frederick James male 28.0 0 \n", + "884 Sutehall, Mr. Henry Jr male 25.0 0 \n", + "885 Rice, Mrs. William (Margaret Norton) female 39.0 0 \n", + "886 Montvila, Rev. Juozas male 27.0 0 \n", + "887 Graham, Miss. Margaret Edith female 19.0 0 \n", + "888 Johnston, Miss. Catherine Helen \"Carrie\" female NaN 1 \n", + "889 Behr, Mr. Karl Howell male 26.0 0 \n", + "890 Dooley, Mr. Patrick male 32.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S \n", + "5 0 330877 8.4583 NaN Q \n", + "6 0 17463 51.8625 E46 S \n", + "7 1 349909 21.0750 NaN S \n", + "8 2 347742 11.1333 NaN S \n", + "9 0 237736 30.0708 NaN C \n", + "10 1 PP 9549 16.7000 G6 S \n", + "11 0 113783 26.5500 C103 S \n", + "12 0 A/5. 2151 8.0500 NaN S \n", + "13 5 347082 31.2750 NaN S \n", + "14 0 350406 7.8542 NaN S \n", + "15 0 248706 16.0000 NaN S \n", + "16 1 382652 29.1250 NaN Q \n", + "17 0 244373 13.0000 NaN S \n", + "18 0 345763 18.0000 NaN S \n", + "19 0 2649 7.2250 NaN C \n", + "20 0 239865 26.0000 NaN S \n", + "21 0 248698 13.0000 D56 S \n", + "22 0 330923 8.0292 NaN Q \n", + "23 0 113788 35.5000 A6 S \n", + "24 1 349909 21.0750 NaN S \n", + "25 5 347077 31.3875 NaN S \n", + "26 0 2631 7.2250 NaN C \n", + "27 2 19950 263.0000 C23 C25 C27 S \n", + "28 0 330959 7.8792 NaN Q \n", + "29 0 349216 7.8958 NaN S \n", + ".. ... ... ... ... ... \n", + "861 0 28134 11.5000 NaN S \n", + "862 0 17466 25.9292 D17 S \n", + "863 2 CA. 2343 69.5500 NaN S \n", + "864 0 233866 13.0000 NaN S \n", + "865 0 236852 13.0000 NaN S \n", + "866 0 SC/PARIS 2149 13.8583 NaN C \n", + "867 0 PC 17590 50.4958 A24 S \n", + "868 0 345777 9.5000 NaN S \n", + "869 1 347742 11.1333 NaN S \n", + "870 0 349248 7.8958 NaN S \n", + "871 1 11751 52.5542 D35 S \n", + "872 0 695 5.0000 B51 B53 B55 S \n", + "873 0 345765 9.0000 NaN S \n", + "874 0 P/PP 3381 24.0000 NaN C \n", + "875 0 2667 7.2250 NaN C \n", + "876 0 7534 9.8458 NaN S \n", + "877 0 349212 7.8958 NaN S \n", + "878 0 349217 7.8958 NaN S \n", + "879 1 11767 83.1583 C50 C \n", + "880 1 230433 26.0000 NaN S \n", + "881 0 349257 7.8958 NaN S \n", + "882 0 7552 10.5167 NaN S \n", + "883 0 C.A./SOTON 34068 10.5000 NaN S \n", + "884 0 SOTON/OQ 392076 7.0500 NaN S \n", + "885 5 382652 29.1250 NaN Q \n", + "886 0 211536 13.0000 NaN S \n", + "887 0 112053 30.0000 B42 S \n", + "888 2 W./C. 6607 23.4500 NaN S \n", + "889 0 111369 30.0000 C148 C \n", + "890 0 370376 7.7500 NaN Q \n", + "\n", + "[891 rows x 12 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "#We get a URL with raw content (not HTML one)\n", + "url = \"https://raw.githubusercontent.com/cif2cif/sitc/master/ml2/data-titanic/train.csv\"\n", + "df = pd.read_csv(url)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An alternative option is reading the file with the library *requests* and then use *pandas*." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "b'PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked\\r\\n1,0,3,\"Braund, Mr. Owen Harris\",male,22,1,0,A/5 21171,7.25,,S\\r\\n2,1,1,\"Cumings, Mrs. John Bradley (Florence Briggs Thayer)\",female,38,1,0,PC 17599,71.2833,C85,C\\r\\n3,1,3,\"Heikkinen, Miss. Laina\",female,26,0,0,STON/O2. 3101282,7.925,,S\\r\\n4,1,1,'" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# First we open the file\n", + "import pandas as pd\n", + "import io\n", + "import requests\n", + "url = \"https://raw.githubusercontent.com/cif2cif/sitc/master/ml2/data-titanic/train.csv\"\n", + "s = requests.get(url, stream=True).content\n", + "#Print the first 320 characters for understanding how it works\n", + "s[:320]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
6701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
8913Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female27.00234774211.1333NaNS
91012Nasser, Mrs. Nicholas (Adele Achem)female14.01023773630.0708NaNC
101113Sandstrom, Miss. Marguerite Rutfemale4.011PP 954916.7000G6S
111211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S
121303Saundercock, Mr. William Henrymale20.000A/5. 21518.0500NaNS
131403Andersson, Mr. Anders Johanmale39.01534708231.2750NaNS
141503Vestrom, Miss. Hulda Amanda Adolfinafemale14.0003504067.8542NaNS
151612Hewlett, Mrs. (Mary D Kingcome)female55.00024870616.0000NaNS
161703Rice, Master. Eugenemale2.04138265229.1250NaNQ
171812Williams, Mr. Charles EugenemaleNaN0024437313.0000NaNS
181903Vander Planke, Mrs. Julius (Emelia Maria Vande...female31.01034576318.0000NaNS
192013Masselmani, Mrs. FatimafemaleNaN0026497.2250NaNC
202102Fynney, Mr. Joseph Jmale35.00023986526.0000NaNS
212212Beesley, Mr. Lawrencemale34.00024869813.0000D56S
222313McGowan, Miss. Anna \"Annie\"female15.0003309238.0292NaNQ
232411Sloper, Mr. William Thompsonmale28.00011378835.5000A6S
242503Palsson, Miss. Torborg Danirafemale8.03134990921.0750NaNS
252613Asplund, Mrs. Carl Oscar (Selma Augusta Emilia...female38.01534707731.3875NaNS
262703Emir, Mr. Farred ChehabmaleNaN0026317.2250NaNC
272801Fortune, Mr. Charles Alexandermale19.03219950263.0000C23 C25 C27S
282913O'Dwyer, Miss. Ellen \"Nellie\"femaleNaN003309597.8792NaNQ
293003Todoroff, Mr. LaliomaleNaN003492167.8958NaNS
.......................................
86186202Giles, Mr. Frederick Edwardmale21.0102813411.5000NaNS
86286311Swift, Mrs. Frederick Joel (Margaret Welles Ba...female48.0001746625.9292D17S
86386403Sage, Miss. Dorothy Edith \"Dolly\"femaleNaN82CA. 234369.5500NaNS
86486502Gill, Mr. John Williammale24.00023386613.0000NaNS
86586612Bystrom, Mrs. (Karolina)female42.00023685213.0000NaNS
86686712Duran y More, Miss. Asuncionfemale27.010SC/PARIS 214913.8583NaNC
86786801Roebling, Mr. Washington Augustus IImale31.000PC 1759050.4958A24S
86886903van Melkebeke, Mr. PhilemonmaleNaN003457779.5000NaNS
86987013Johnson, Master. Harold Theodormale4.01134774211.1333NaNS
87087103Balkic, Mr. Cerinmale26.0003492487.8958NaNS
87187211Beckwith, Mrs. Richard Leonard (Sallie Monypeny)female47.0111175152.5542D35S
87287301Carlsson, Mr. Frans Olofmale33.0006955.0000B51 B53 B55S
87387403Vander Cruyssen, Mr. Victormale47.0003457659.0000NaNS
87487512Abelson, Mrs. Samuel (Hannah Wizosky)female28.010P/PP 338124.0000NaNC
87587613Najib, Miss. Adele Kiamie \"Jane\"female15.00026677.2250NaNC
87687703Gustafsson, Mr. Alfred Ossianmale20.00075349.8458NaNS
87787803Petroff, Mr. Nedeliomale19.0003492127.8958NaNS
87887903Laleff, Mr. KristomaleNaN003492177.8958NaNS
87988011Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)female56.0011176783.1583C50C
88088112Shelley, Mrs. William (Imanita Parrish Hall)female25.00123043326.0000NaNS
88188203Markun, Mr. Johannmale33.0003492577.8958NaNS
88288303Dahlberg, Miss. Gerda Ulrikafemale22.000755210.5167NaNS
88388402Banfield, Mr. Frederick Jamesmale28.000C.A./SOTON 3406810.5000NaNS
88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.0500NaNS
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
\n", + "

891 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "5 6 0 3 \n", + "6 7 0 1 \n", + "7 8 0 3 \n", + "8 9 1 3 \n", + "9 10 1 2 \n", + "10 11 1 3 \n", + "11 12 1 1 \n", + "12 13 0 3 \n", + "13 14 0 3 \n", + "14 15 0 3 \n", + "15 16 1 2 \n", + "16 17 0 3 \n", + "17 18 1 2 \n", + "18 19 0 3 \n", + "19 20 1 3 \n", + "20 21 0 2 \n", + "21 22 1 2 \n", + "22 23 1 3 \n", + "23 24 1 1 \n", + "24 25 0 3 \n", + "25 26 1 3 \n", + "26 27 0 3 \n", + "27 28 0 1 \n", + "28 29 1 3 \n", + "29 30 0 3 \n", + ".. ... ... ... \n", + "861 862 0 2 \n", + "862 863 1 1 \n", + "863 864 0 3 \n", + "864 865 0 2 \n", + "865 866 1 2 \n", + "866 867 1 2 \n", + "867 868 0 1 \n", + "868 869 0 3 \n", + "869 870 1 3 \n", + "870 871 0 3 \n", + "871 872 1 1 \n", + "872 873 0 1 \n", + "873 874 0 3 \n", + "874 875 1 2 \n", + "875 876 1 3 \n", + "876 877 0 3 \n", + "877 878 0 3 \n", + "878 879 0 3 \n", + "879 880 1 1 \n", + "880 881 1 2 \n", + "881 882 0 3 \n", + "882 883 0 3 \n", + "883 884 0 2 \n", + "884 885 0 3 \n", + "885 886 0 3 \n", + "886 887 0 2 \n", + "887 888 1 1 \n", + "888 889 0 3 \n", + "889 890 1 1 \n", + "890 891 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "5 Moran, Mr. James male NaN 0 \n", + "6 McCarthy, Mr. Timothy J male 54.0 0 \n", + "7 Palsson, Master. Gosta Leonard male 2.0 3 \n", + "8 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27.0 0 \n", + "9 Nasser, Mrs. Nicholas (Adele Achem) female 14.0 1 \n", + "10 Sandstrom, Miss. Marguerite Rut female 4.0 1 \n", + "11 Bonnell, Miss. Elizabeth female 58.0 0 \n", + "12 Saundercock, Mr. William Henry male 20.0 0 \n", + "13 Andersson, Mr. Anders Johan male 39.0 1 \n", + "14 Vestrom, Miss. Hulda Amanda Adolfina female 14.0 0 \n", + "15 Hewlett, Mrs. (Mary D Kingcome) female 55.0 0 \n", + "16 Rice, Master. Eugene male 2.0 4 \n", + "17 Williams, Mr. Charles Eugene male NaN 0 \n", + "18 Vander Planke, Mrs. Julius (Emelia Maria Vande... female 31.0 1 \n", + "19 Masselmani, Mrs. Fatima female NaN 0 \n", + "20 Fynney, Mr. Joseph J male 35.0 0 \n", + "21 Beesley, Mr. Lawrence male 34.0 0 \n", + "22 McGowan, Miss. Anna \"Annie\" female 15.0 0 \n", + "23 Sloper, Mr. William Thompson male 28.0 0 \n", + "24 Palsson, Miss. Torborg Danira female 8.0 3 \n", + "25 Asplund, Mrs. Carl Oscar (Selma Augusta Emilia... female 38.0 1 \n", + "26 Emir, Mr. Farred Chehab male NaN 0 \n", + "27 Fortune, Mr. Charles Alexander male 19.0 3 \n", + "28 O'Dwyer, Miss. Ellen \"Nellie\" female NaN 0 \n", + "29 Todoroff, Mr. Lalio male NaN 0 \n", + ".. ... ... ... ... \n", + "861 Giles, Mr. Frederick Edward male 21.0 1 \n", + "862 Swift, Mrs. Frederick Joel (Margaret Welles Ba... female 48.0 0 \n", + "863 Sage, Miss. Dorothy Edith \"Dolly\" female NaN 8 \n", + "864 Gill, Mr. John William male 24.0 0 \n", + "865 Bystrom, Mrs. (Karolina) female 42.0 0 \n", + "866 Duran y More, Miss. Asuncion female 27.0 1 \n", + "867 Roebling, Mr. Washington Augustus II male 31.0 0 \n", + "868 van Melkebeke, Mr. Philemon male NaN 0 \n", + "869 Johnson, Master. Harold Theodor male 4.0 1 \n", + "870 Balkic, Mr. Cerin male 26.0 0 \n", + "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.0 1 \n", + "872 Carlsson, Mr. Frans Olof male 33.0 0 \n", + "873 Vander Cruyssen, Mr. Victor male 47.0 0 \n", + "874 Abelson, Mrs. Samuel (Hannah Wizosky) female 28.0 1 \n", + "875 Najib, Miss. Adele Kiamie \"Jane\" female 15.0 0 \n", + "876 Gustafsson, Mr. Alfred Ossian male 20.0 0 \n", + "877 Petroff, Mr. Nedelio male 19.0 0 \n", + "878 Laleff, Mr. Kristo male NaN 0 \n", + "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 \n", + "880 Shelley, Mrs. William (Imanita Parrish Hall) female 25.0 0 \n", + "881 Markun, Mr. Johann male 33.0 0 \n", + "882 Dahlberg, Miss. Gerda Ulrika female 22.0 0 \n", + "883 Banfield, Mr. Frederick James male 28.0 0 \n", + "884 Sutehall, Mr. Henry Jr male 25.0 0 \n", + "885 Rice, Mrs. William (Margaret Norton) female 39.0 0 \n", + "886 Montvila, Rev. Juozas male 27.0 0 \n", + "887 Graham, Miss. Margaret Edith female 19.0 0 \n", + "888 Johnston, Miss. Catherine Helen \"Carrie\" female NaN 1 \n", + "889 Behr, Mr. Karl Howell male 26.0 0 \n", + "890 Dooley, Mr. Patrick male 32.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S \n", + "5 0 330877 8.4583 NaN Q \n", + "6 0 17463 51.8625 E46 S \n", + "7 1 349909 21.0750 NaN S \n", + "8 2 347742 11.1333 NaN S \n", + "9 0 237736 30.0708 NaN C \n", + "10 1 PP 9549 16.7000 G6 S \n", + "11 0 113783 26.5500 C103 S \n", + "12 0 A/5. 2151 8.0500 NaN S \n", + "13 5 347082 31.2750 NaN S \n", + "14 0 350406 7.8542 NaN S \n", + "15 0 248706 16.0000 NaN S \n", + "16 1 382652 29.1250 NaN Q \n", + "17 0 244373 13.0000 NaN S \n", + "18 0 345763 18.0000 NaN S \n", + "19 0 2649 7.2250 NaN C \n", + "20 0 239865 26.0000 NaN S \n", + "21 0 248698 13.0000 D56 S \n", + "22 0 330923 8.0292 NaN Q \n", + "23 0 113788 35.5000 A6 S \n", + "24 1 349909 21.0750 NaN S \n", + "25 5 347077 31.3875 NaN S \n", + "26 0 2631 7.2250 NaN C \n", + "27 2 19950 263.0000 C23 C25 C27 S \n", + "28 0 330959 7.8792 NaN Q \n", + "29 0 349216 7.8958 NaN S \n", + ".. ... ... ... ... ... \n", + "861 0 28134 11.5000 NaN S \n", + "862 0 17466 25.9292 D17 S \n", + "863 2 CA. 2343 69.5500 NaN S \n", + "864 0 233866 13.0000 NaN S \n", + "865 0 236852 13.0000 NaN S \n", + "866 0 SC/PARIS 2149 13.8583 NaN C \n", + "867 0 PC 17590 50.4958 A24 S \n", + "868 0 345777 9.5000 NaN S \n", + "869 1 347742 11.1333 NaN S \n", + "870 0 349248 7.8958 NaN S \n", + "871 1 11751 52.5542 D35 S \n", + "872 0 695 5.0000 B51 B53 B55 S \n", + "873 0 345765 9.0000 NaN S \n", + "874 0 P/PP 3381 24.0000 NaN C \n", + "875 0 2667 7.2250 NaN C \n", + "876 0 7534 9.8458 NaN S \n", + "877 0 349212 7.8958 NaN S \n", + "878 0 349217 7.8958 NaN S \n", + "879 1 11767 83.1583 C50 C \n", + "880 1 230433 26.0000 NaN S \n", + "881 0 349257 7.8958 NaN S \n", + "882 0 7552 10.5167 NaN S \n", + "883 0 C.A./SOTON 34068 10.5000 NaN S \n", + "884 0 SOTON/OQ 392076 7.0500 NaN S \n", + "885 5 382652 29.1250 NaN Q \n", + "886 0 211536 13.0000 NaN S \n", + "887 0 112053 30.0000 B42 S \n", + "888 2 W./C. 6607 23.4500 NaN S \n", + "889 0 111369 30.0000 C148 C \n", + "890 0 370376 7.7500 NaN Q \n", + "\n", + "[891 rows x 12 columns]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv(io.StringIO(s.decode('utf-8')))\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [Pandas API input-output](http://pandas.pydata.org/pandas-docs/stable/api.html#input-output)\n", + "* [Pandas API - pandas.read_csv](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html)\n", + "* [DataFrame](http://pandas.pydata.org/pandas-docs/stable/dsintro.html)\n", + "* [An introduction to NumPy and Scipy](http://www.engr.ucsb.edu/~shell/che210d/numpy.pdf)\n", + "* [NumPy tutorial](https://docs.scipy.org/doc/numpy-dev/user/quickstart.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 +} diff --git a/ml2/3_2_Pandas.ipynb b/ml2/3_2_Pandas.ipynb new file mode 100644 index 0000000..8140b0c --- /dev/null +++ b/ml2/3_2_Pandas.ipynb @@ -0,0 +1,932 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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", + "\n", + "* [Introduction to Pandas](#Introduction-to-Pandas)\n", + "* [Series](#Series)\n", + "* [DataFrame](#DataFrame)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to Pandas\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook provides an overview of the *pandas* library. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Pandas](http://pandas.pydata.org/) is a Python library that provides easy-to-use data structures and data analysis tools.\n", + "\n", + "The main advantage of *Pandas* is that provides extensive facilities for grouping, merging and querying pandas data structures, and also includes facilities for time series analysis, as well as i/o and visualisation facilities.\n", + "\n", + "Pandas in built on top of *NumPy*, so we will have usually to import both libraries.\n", + "\n", + "Pandas provides two main data structures:\n", + "* **Series** is a one dimensional labelled object, capable of holding any data type (integers, strings, floating point numbers, Python objects, etc.).. It is similar to an array, a list, a dictionary or a column in a table. Every value in a Series object has an index.\n", + "* **DataFrame** is a two dimensional labelled object with columns of potentially different types. It is similar to a database table, or a spreadsheet. It can be seen as a dictionary of Series that share the same index.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Series" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are not going to use Series objects directly as frequently as DataFrames. Here we provide a short introduction" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 5\n", + "1 10\n", + "2 15\n", + "dtype: int64" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as pd\n", + "import pandas as pd\n", + "from pandas import Series, DataFrame\n", + "\n", + "# create series object from an array\n", + "s = Series([5, 10, 15])\n", + "s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see each value has an associated label starting with 0 if no index is specified when the Series object is created. \n", + "\n", + "It is similar to a dictionary. In fact, we can also create a Series object from a dictionary as follows. In this case, the indexes are the keys of the dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "a 5\n", + "b 10\n", + "c 15\n", + "dtype: int64" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d = {'a': 5, 'b': 10, 'c': 15}\n", + "s = Series(d)\n", + "s" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['a', 'b', 'c'], dtype='object')" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can get the list of indexes\n", + "s.index" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 5, 10, 15])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# and the values\n", + "s.values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another option is to create the Series object from two lists, for values and indexes." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 3141991\n", + "Barcelona 1604555\n", + "Valencia 786189\n", + "Sevilla 693878\n", + "Zaragoza 664953\n", + "Malaga 569130\n", + "dtype: int64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Series with population in 2015 of more populated cities in Spain\n", + "s = Series([3141991, 1604555, 786189, 693878, 664953, 569130], index=['Madrid', 'Barcelona', 'Valencia', 'Sevilla', \n", + " 'Zaragoza', 'Malaga'])\n", + "s" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "3141991" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Population of Madrid\n", + "s['Madrid']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Indexing and slicing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Until now, we have not seen any advantage in using Panda Series. we are going to show now some examples of their possibilities." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid True\n", + "Barcelona True\n", + "Valencia False\n", + "Sevilla False\n", + "Zaragoza False\n", + "Malaga False\n", + "dtype: bool" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Boolean condition\n", + "s > 1000000" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 3141991\n", + "Barcelona 1604555\n", + "dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Cities with population greater than 1.000.000\n", + "s[s > 1000000]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Observe that (s > 1000000) returns a Series object. We can use this boolean vector as a filter to get a *slice* of the original series that contains only the elements where the value of the filter is True. The original Series s is not modified. This selection is called *boolean indexing*." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 3141991\n", + "Barcelona 1604555\n", + "dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Cities with population greater than the mean\n", + "s[s > s.mean()]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 3141991\n", + "Barcelona 1604555\n", + "Valencia 786189\n", + "dtype: int64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Cities with population greater than the median\n", + "s[s > s.median()]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid True\n", + "Barcelona True\n", + "Valencia True\n", + "Sevilla False\n", + "Zaragoza False\n", + "Malaga False\n", + "dtype: bool" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Check cities with a population greater than 700.000\n", + "s > 700000" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 3141991\n", + "Barcelona 1604555\n", + "Valencia 786189\n", + "dtype: int64" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# List cities with a population greater than 700.000\n", + "s[s > 700000]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid True\n", + "Barcelona True\n", + "Valencia True\n", + "Sevilla False\n", + "Zaragoza False\n", + "Malaga False\n", + "dtype: bool" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Another way to write the same boolean indexing selection\n", + "bigger_than_700000 = s > 700000\n", + "bigger_than_700000" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 3141991\n", + "Barcelona 1604555\n", + "Valencia 786189\n", + "dtype: int64" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Cities with population > 700000\n", + "s[bigger_than_700000]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Operations on series" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also carry out other mathematical operations." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 1570995.5\n", + "Barcelona 802277.5\n", + "Valencia 393094.5\n", + "Sevilla 346939.0\n", + "Zaragoza 332476.5\n", + "Malaga 284565.0\n", + "dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Divide population by 2\n", + "s / 2" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1243449.3333333333" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get the average population\n", + "s.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "3141991" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get the highest population\n", + "s.max()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Item assignment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also change values directly or based on a condition. You can consult additional feautures in the manual." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 3320000\n", + "Barcelona 1604555\n", + "Valencia 786189\n", + "Sevilla 693878\n", + "Zaragoza 664953\n", + "Malaga 569130\n", + "dtype: int64" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Change population of one city\n", + "s['Madrid'] = 3320000\n", + "s" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Madrid 3652000.0\n", + "Barcelona 1765010.5\n", + "Valencia 864807.9\n", + "Sevilla 693878.0\n", + "Zaragoza 664953.0\n", + "Malaga 569130.0\n", + "dtype: float64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Increase by 10% cities with population greater than 700000\n", + "s[s > 700000] = 1.1 * s[s > 700000]\n", + "s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# DataFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we said previously, **DataFrames** are two-dimensional data structures. You can see like a dict of Series that share the index." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "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", + "
onetwo
a1.01.0
b2.02.0
c3.03.0
dNaN4.0
\n", + "
" + ], + "text/plain": [ + " one two\n", + "a 1.0 1.0\n", + "b 2.0 2.0\n", + "c 3.0 3.0\n", + "d NaN 4.0" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We are going to create a DataFrame from a dict of Series\n", + "d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),\n", + " 'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}\n", + "df = DataFrame(d)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this dataframe, the *indexes* (row labels) are *a*, *b*, *c* and *d* and the *columns* (column labels) are *one* and *two*.\n", + "\n", + "We see that the resulting DataFrame is the union of indexes, and missing values are included as NaN (to write this value we will use *np.nan*).\n", + "\n", + "If we specify an index, the dictionary is filtered." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "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", + "
onetwo
dNaN4.0
b2.02.0
a1.01.0
\n", + "
" + ], + "text/plain": [ + " one two\n", + "d NaN 4.0\n", + "b 2.0 2.0\n", + "a 1.0 1.0" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can filter\n", + "df = DataFrame(d, index=['d', 'b', 'a'])\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another option is to use the constructor with *index* and *columns*." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "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", + "
twothree
d4.0NaN
b2.0NaN
a1.0NaN
\n", + "
" + ], + "text/plain": [ + " two three\n", + "d 4.0 NaN\n", + "b 2.0 NaN\n", + "a 1.0 NaN" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = DataFrame(d, index=['d', 'b', 'a'], columns=['two', 'three'])\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the next notebook we are going to learn more about dataframes." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [Pandas](http://pandas.pydata.org/)\n", + "* [Learning Pandas, Michael Heydt, Packt Publishing, 2015](http://proquest.safaribooksonline.com/book/programming/python/9781783985128)\n", + "* [Pandas. Introduction to Data Structures](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dsintro)\n", + "* [Introducing Pandas Objects](https://www.oreilly.com/learning/introducing-pandas-objects)\n", + "* [Boolean Operators in Pandas](http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-operators)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 +} diff --git a/ml2/3_3_Data_Munging_with_Pandas.ipynb b/ml2/3_3_Data_Munging_with_Pandas.ipynb new file mode 100644 index 0000000..24f4c28 --- /dev/null +++ b/ml2/3_3_Data_Munging_with_Pandas.ipynb @@ -0,0 +1,5411 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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", + "* [Data munging with Pandas and Scikit-learn](#Data-munging-with-Pandas-and-Scikit-learn)\n", + "* [Examining a DataFrame](#Examining-a-DataFrame)\n", + "* [Selecting rows in a DataFrame](#Selecting-rows-in-a-DataFrame)\n", + "* [Grouping](#Grouping)\n", + "* [Pivot tables](#Pivot-tables)\n", + "* [Null and missing values](#Null-and-missing-values)\n", + "* [Analysing non numerical columns](#Analysing-non-numerical-columns)\n", + "* [Encoding categorical values](#Encoding-categorical-values)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data munging with Pandas and Scikit-learn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook provides a more detailed introduction to Pandas and scikit-learn using the Titanic dataset." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[**Data munging**](https://en.wikipedia.org/wiki/Data_wrangling) or data wrangling is loosely the process of manually converting or mapping data from one \"raw\" form into another format that allows for more convenient consumption of the data with the help of semi-automated tools.\n", + "\n", + "*Scikit-learn* estimators which assume that all values are numerical. This is a common in many machine learning libraries. So, we need to preprocess our raw dataset. \n", + "Some of the most common tasks are:\n", + "* Remove samples with missing values or replace the missing values with a value (median, mean or interpolation)\n", + "* Encode categorical variables as integers\n", + "* Combine datasets\n", + "* Rename variables and convert types\n", + "* Transform / scale variables\n", + "\n", + "We are going to play again with the Titanic dataset to practice with Pandas Dataframes and introduce a number of preprocessing facilities of scikit-learn.\n", + "\n", + "First we load the dataset and we get a dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S " + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from pandas import Series, DataFrame\n", + "\n", + "df = pd.read_csv('data-titanic/train.csv')\n", + "\n", + "# Show the first 5 rows\n", + "df[:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Examining a DataFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can examine properties of the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 891 entries, 0 to 890\n", + "Data columns (total 12 columns):\n", + "PassengerId 891 non-null int64\n", + "Survived 891 non-null int64\n", + "Pclass 891 non-null int64\n", + "Name 891 non-null object\n", + "Sex 891 non-null object\n", + "Age 714 non-null float64\n", + "SibSp 891 non-null int64\n", + "Parch 891 non-null int64\n", + "Ticket 891 non-null object\n", + "Fare 891 non-null float64\n", + "Cabin 204 non-null object\n", + "Embarked 889 non-null object\n", + "dtypes: float64(2), int64(5), object(5)\n", + "memory usage: 83.6+ KB\n" + ] + } + ], + "source": [ + "# Information about columns and their types\n", + "df.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see some features have a numerical type (int64 and float64), and others has a type *object*. The object type is a String in Pandas. We observe that most features are integers, except for Name, Sex, Ticket, Cabin and Embarked." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Name object\n", + "Sex object\n", + "Ticket object\n", + "Cabin object\n", + "Embarked object\n", + "dtype: object" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can list non numerical properties, with a boolean indexing of the Series df.dtypes\n", + "df.dtypes[df.dtypes == object]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's explore the DataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(891, 12)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Number of samples and features\n", + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Age SibSp \\\n", + "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", + "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", + "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", + "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", + "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", + "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", + "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", + "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", + "\n", + " Parch Fare \n", + "count 891.000000 891.000000 \n", + "mean 0.381594 32.204208 \n", + "std 0.806057 49.693429 \n", + "min 0.000000 0.000000 \n", + "25% 0.000000 7.910400 \n", + "50% 0.000000 14.454200 \n", + "75% 0.000000 31.000000 \n", + "max 6.000000 512.329200 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Basic statistics of the dataset in all the numeric columns\n", + "df.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Observe that some of the statistics do not make sense in some columns (PassengerId or Pclass), we could have selected only the interesting columns." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SurvivedAgeSibSpParchFare
count891.000000714.000000891.000000891.000000891.000000
mean0.38383829.6991180.5230080.38159432.204208
std0.48659214.5264971.1027430.80605749.693429
min0.0000000.4200000.0000000.0000000.000000
25%0.00000020.1250000.0000000.0000007.910400
50%0.00000028.0000000.0000000.00000014.454200
75%1.00000038.0000001.0000000.00000031.000000
max1.00000080.0000008.0000006.000000512.329200
\n", + "
" + ], + "text/plain": [ + " Survived Age SibSp Parch Fare\n", + "count 891.000000 714.000000 891.000000 891.000000 891.000000\n", + "mean 0.383838 29.699118 0.523008 0.381594 32.204208\n", + "std 0.486592 14.526497 1.102743 0.806057 49.693429\n", + "min 0.000000 0.420000 0.000000 0.000000 0.000000\n", + "25% 0.000000 20.125000 0.000000 0.000000 7.910400\n", + "50% 0.000000 28.000000 0.000000 0.000000 14.454200\n", + "75% 1.000000 38.000000 1.000000 0.000000 31.000000\n", + "max 1.000000 80.000000 8.000000 6.000000 512.329200" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Describe statistics of relevant columns. We pass a list of columns\n", + "df[['Survived', 'Age', 'SibSp', 'Parch', 'Fare']].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Selecting rows in a DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select the first 5 rows\n", + "df.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88688702Montvila, Rev. Juozasmale27.00021153613.00NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.00B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.45NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.00C148C
89089103Dooley, Mr. Patrickmale32.0003703767.75NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "886 male 27.0 0 0 211536 13.00 NaN S \n", + "887 female 19.0 0 0 112053 30.00 B42 S \n", + "888 female NaN 1 2 W./C. 6607 23.45 NaN S \n", + "889 male 26.0 0 0 111369 30.00 C148 C \n", + "890 male 32.0 0 0 370376 7.75 NaN Q " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select the last 5 rows\n", + "df.tail(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.925NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.100C123S
4503Allen, Mr. William Henrymale35.0003734508.050NaNS
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp Parch \\\n", + "2 Heikkinen, Miss. Laina female 26.0 0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 \n", + "4 Allen, Mr. William Henry male 35.0 0 0 \n", + "\n", + " Ticket Fare Cabin Embarked \n", + "2 STON/O2. 3101282 7.925 NaN S \n", + "3 113803 53.100 C123 S \n", + "4 373450 8.050 NaN S " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select several rows\n", + "df[2:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0\n", + "1 1\n", + "2 1\n", + "3 1\n", + "4 0\n", + "Name: Survived, dtype: int64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select the first 5 values of a column by name\n", + "df['Survived'][:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "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", + "
SurvivedSexAge
00male22.0
11female38.0
21female26.0
31female35.0
40male35.0
\n", + "
" + ], + "text/plain": [ + " Survived Sex Age\n", + "0 0 male 22.0\n", + "1 1 female 38.0\n", + "2 1 female 26.0\n", + "3 1 female 35.0\n", + "4 0 male 35.0" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select several columns. Observe that the first parameter is a list\n", + "df[['Survived', 'Sex', 'Age']][:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 False\n", + "1 True\n", + "2 False\n", + "3 True\n", + "4 True\n", + "5 False\n", + "6 True\n", + "7 False\n", + "8 False\n", + "9 False\n", + "10 False\n", + "11 True\n", + "12 False\n", + "13 True\n", + "14 False\n", + "15 True\n", + "16 False\n", + "17 False\n", + "18 True\n", + "19 False\n", + "20 True\n", + "21 True\n", + "22 False\n", + "23 False\n", + "24 False\n", + "25 True\n", + "26 False\n", + "27 False\n", + "28 False\n", + "29 False\n", + " ... \n", + "861 False\n", + "862 True\n", + "863 False\n", + "864 False\n", + "865 True\n", + "866 False\n", + "867 True\n", + "868 False\n", + "869 False\n", + "870 False\n", + "871 True\n", + "872 True\n", + "873 True\n", + "874 False\n", + "875 False\n", + "876 False\n", + "877 False\n", + "878 False\n", + "879 True\n", + "880 False\n", + "881 True\n", + "882 False\n", + "883 False\n", + "884 False\n", + "885 True\n", + "886 False\n", + "887 False\n", + "888 False\n", + "889 False\n", + "890 True\n", + "Name: Age, dtype: bool" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Passengers older than 20. Observe dataframe columns can be accessed like attributes.\n", + "df.Age > 30" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.050NaNS
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.125NaNQ
88688702Montvila, Rev. Juozasmale27.00021153613.000NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.000C148C
89089103Dooley, Mr. Patrickmale32.0003703767.750NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "884 885 0 3 Sutehall, Mr. Henry Jr \n", + "885 886 0 3 Rice, Mrs. William (Margaret Norton) \n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "884 male 25.0 0 0 SOTON/OQ 392076 7.050 NaN S \n", + "885 female 39.0 0 5 382652 29.125 NaN Q \n", + "886 male 27.0 0 0 211536 13.000 NaN S \n", + "889 male 26.0 0 0 111369 30.000 C148 C \n", + "890 male 32.0 0 0 370376 7.750 NaN Q " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select passengers older than 20 (only the last 5). We use boolean indexing\n", + "df[df.Age > 20][-5:]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
87187211Beckwith, Mrs. Richard Leonard (Sallie Monypeny)female47.0111175152.5542D35S
87487512Abelson, Mrs. Samuel (Hannah Wizosky)female28.010P/PP 338124.0000NaNC
87988011Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)female56.0011176783.1583C50C
88088112Shelley, Mrs. William (Imanita Parrish Hall)female25.00123043326.0000NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "871 872 1 1 \n", + "874 875 1 2 \n", + "879 880 1 1 \n", + "880 881 1 2 \n", + "889 890 1 1 \n", + "\n", + " Name Sex Age SibSp \\\n", + "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.0 1 \n", + "874 Abelson, Mrs. Samuel (Hannah Wizosky) female 28.0 1 \n", + "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 \n", + "880 Shelley, Mrs. William (Imanita Parrish Hall) female 25.0 0 \n", + "889 Behr, Mr. Karl Howell male 26.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "871 1 11751 52.5542 D35 S \n", + "874 0 P/PP 3381 24.0000 NaN C \n", + "879 1 11767 83.1583 C50 C \n", + "880 1 230433 26.0000 NaN S \n", + "889 0 111369 30.0000 C148 C " + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select passengers older than 20 that survived (only the last 5)\n", + "df[(df.Age > 20) & (df.Survived == 1)][-5:]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
87187211Beckwith, Mrs. Richard Leonard (Sallie Monypeny)female47.0111175152.5542D35S
87487512Abelson, Mrs. Samuel (Hannah Wizosky)female28.010P/PP 338124.0000NaNC
87988011Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)female56.0011176783.1583C50C
88088112Shelley, Mrs. William (Imanita Parrish Hall)female25.00123043326.0000NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "871 872 1 1 \n", + "874 875 1 2 \n", + "879 880 1 1 \n", + "880 881 1 2 \n", + "889 890 1 1 \n", + "\n", + " Name Sex Age SibSp \\\n", + "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.0 1 \n", + "874 Abelson, Mrs. Samuel (Hannah Wizosky) female 28.0 1 \n", + "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 \n", + "880 Shelley, Mrs. William (Imanita Parrish Hall) female 25.0 0 \n", + "889 Behr, Mr. Karl Howell male 26.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "871 1 11751 52.5542 D35 S \n", + "874 0 P/PP 3381 24.0000 NaN C \n", + "879 1 11767 83.1583 C50 C \n", + "880 1 230433 26.0000 NaN S \n", + "889 0 111369 30.0000 C148 C " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Alternative syntax with query to the standard Python \n", + "# In large dataframes, the perfomance of DataFrame.query() using numexpr is considerable faster, look at the references\n", + "df.query('Age > 20 and Survived == 1')[-5:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "DataFrames provide a set of functions for selection that we will need later\n", + "\n", + "\n", + "|Operation | Syntax | Result |\n", + "|-----------------------------|\n", + "|Select column | df[col] | Series |\n", + "|Select row by label | df.loc[label] | Series |\n", + "|Select row by integer location | df.iloc[loc] | Series |\n", + "|Slice rows\t | df[5:10]\t | DataFrame |\n", + "|Select rows by boolean vector | df[bool_vec] | DataFrame |" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "887 19.0\n", + "888 NaN\n", + "889 26.0\n", + "890 32.0\n", + "Name: Age, dtype: float64" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select column and show last 4\n", + "df['Age'][-4:]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "887 19.0\n", + "888 NaN\n", + "889 26.0\n", + "890 32.0\n", + "Name: Age, dtype: float64" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select row by label. We select with [index-labels, column-labels], and show last 4\n", + "df.loc[:, 'Age'][-4:]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "887 19.0\n", + "888 NaN\n", + "889 26.0\n", + "890 32.0\n", + "Name: Age, dtype: float64" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Select row by column index (Age is the column 5), and show last 4\n", + "df.iloc[:, 5][-4:]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88688702Montvila, Rev. Juozasmale27.00021153613.00NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.00B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.45NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.00C148C
89089103Dooley, Mr. Patrickmale32.0003703767.75NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "886 male 27.0 0 0 211536 13.00 NaN S \n", + "887 female 19.0 0 0 112053 30.00 B42 S \n", + "888 female NaN 1 2 W./C. 6607 23.45 NaN S \n", + "889 male 26.0 0 0 111369 30.00 C148 C \n", + "890 male 32.0 0 0 370376 7.75 NaN Q " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Slice rows - last 5 columns\n", + "df[-5:]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.050NaNS
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.125NaNQ
88688702Montvila, Rev. Juozasmale27.00021153613.000NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.000C148C
89089103Dooley, Mr. Patrickmale32.0003703767.750NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "884 885 0 3 Sutehall, Mr. Henry Jr \n", + "885 886 0 3 Rice, Mrs. William (Margaret Norton) \n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "884 male 25.0 0 0 SOTON/OQ 392076 7.050 NaN S \n", + "885 female 39.0 0 5 382652 29.125 NaN Q \n", + "886 male 27.0 0 0 211536 13.000 NaN S \n", + "889 male 26.0 0 0 111369 30.000 C148 C \n", + "890 male 32.0 0 0 370376 7.750 NaN Q " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select based on boolean vector and show last 5 columns\n", + "df[df.Age > 20][-5:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Grouping" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rows can be grouped by one or more columns, and apply aggregated operators on the GroupBy object." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Sex\n", + "female 314\n", + "male 577\n", + "dtype: int64" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Number of users per sex (SQL like)\n", + "df.groupby('Sex').size()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "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", + "
PassengerIdSurvivedAgeSibSpParchFare
Pclass
1461.5972220.62963038.2334410.4166670.35648184.154687
2445.9565220.47282629.8776300.4021740.38043520.662183
3439.1547860.24236325.1406200.6150710.39307513.675550
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Age SibSp Parch Fare\n", + "Pclass \n", + "1 461.597222 0.629630 38.233441 0.416667 0.356481 84.154687\n", + "2 445.956522 0.472826 29.877630 0.402174 0.380435 20.662183\n", + "3 439.154786 0.242363 25.140620 0.615071 0.393075 13.675550" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Mean age of passengers per Passenger class\n", + "\n", + "#First we calculate the mean\n", + "df.groupby('Pclass').mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Pclass\n", + "1 38.233441\n", + "2 29.877630\n", + "3 25.140620\n", + "Name: Age, dtype: float64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#And now we answer the initial query (only mean age)\n", + "df.groupby('Pclass')['Age'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Pclass\n", + "1 38.233441\n", + "2 29.877630\n", + "3 25.140620\n", + "Name: Age, dtype: float64" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Alternative syntax\n", + "df.groupby('Pclass').Age.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "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", + "
AgeSibSp
PclassSex
1female34.6117650.553191
male41.2813860.311475
2female28.7229730.486842
male30.7407070.342593
3female21.7500000.895833
male26.5075890.498559
\n", + "
" + ], + "text/plain": [ + " Age SibSp\n", + "Pclass Sex \n", + "1 female 34.611765 0.553191\n", + " male 41.281386 0.311475\n", + "2 female 28.722973 0.486842\n", + " male 30.740707 0.342593\n", + "3 female 21.750000 0.895833\n", + " male 26.507589 0.498559" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Mean Age and SibSp of passengers grouped by passenger class and sex\n", + "df.groupby(['Pclass', 'Sex'])['Age','SibSp'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "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", + "
AgeSibSp
PclassSex
1female42.0526320.473684
male45.0172410.333333
2female36.5666670.444444
male38.8095240.301587
3female34.9594590.513514
male35.7782260.185484
\n", + "
" + ], + "text/plain": [ + " Age SibSp\n", + "Pclass Sex \n", + "1 female 42.052632 0.473684\n", + " male 45.017241 0.333333\n", + "2 female 36.566667 0.444444\n", + " male 38.809524 0.301587\n", + "3 female 34.959459 0.513514\n", + " male 35.778226 0.185484" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Show mean Age and SibSp for passengers older than 25 grouped by Passenger Class and Sex\n", + "df[df.Age > 25].groupby(['Pclass', 'Sex'])['Age','SibSp'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "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", + "
AgeSibSpSurvived
PclassSex
1female34.6117650.5411760.964706
male41.6850000.3700000.390000
2female28.7229730.5000000.918919
male32.3297870.3510640.106383
3female22.6020410.8061220.438776
male26.7131470.4900400.143426
\n", + "
" + ], + "text/plain": [ + " Age SibSp Survived\n", + "Pclass Sex \n", + "1 female 34.611765 0.541176 0.964706\n", + " male 41.685000 0.370000 0.390000\n", + "2 female 28.722973 0.500000 0.918919\n", + " male 32.329787 0.351064 0.106383\n", + "3 female 22.602041 0.806122 0.438776\n", + " male 26.713147 0.490040 0.143426" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Mean age, SibSp , Survived of passengers older than 25 which survived, grouped by Passenger Class and Sex \n", + "df[(df.Age > 25 & (df.Survived == 1))].groupby(['Pclass', 'Sex'])['Age','SibSp','Survived'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "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", + "
AgeSibSpSurvived
PclassSex
1female34.6117650.54117685
male41.6850000.370000100
2female28.7229730.50000074
male32.3297870.35106494
3female22.6020410.80612298
male26.7131470.490040251
\n", + "
" + ], + "text/plain": [ + " Age SibSp Survived\n", + "Pclass Sex \n", + "1 female 34.611765 0.541176 85\n", + " male 41.685000 0.370000 100\n", + "2 female 28.722973 0.500000 74\n", + " male 32.329787 0.351064 94\n", + "3 female 22.602041 0.806122 98\n", + " male 26.713147 0.490040 251" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can also decide which function apply in each column\n", + "\n", + "#Show mean Age, mean SibSp, and number of passengers older than 25 that survived, grouped by Passenger Class and Sex\n", + "df[(df.Age > 25 & (df.Survived == 1))].groupby(['Pclass', 'Sex'])['Age','SibSp','Survived'].agg({'Age': np.mean, \n", + " 'SibSp': np.mean, 'Survived': np.size})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pivot tables" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pivot tables are an intuitive way to analyze data, and alternative to group columns." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "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", + "
AgeFareParchPassengerIdPclassSibSpSurvived
Sex
female27.91570944.4798180.649682431.0286622.1592360.6942680.742038
male30.72664525.5238930.235702454.1473142.3899480.4298090.188908
\n", + "
" + ], + "text/plain": [ + " Age Fare Parch PassengerId Pclass SibSp \\\n", + "Sex \n", + "female 27.915709 44.479818 0.649682 431.028662 2.159236 0.694268 \n", + "male 30.726645 25.523893 0.235702 454.147314 2.389948 0.429809 \n", + "\n", + " Survived \n", + "Sex \n", + "female 0.742038 \n", + "male 0.188908 " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.pivot_table(df, index='Sex')" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeFareParchPassengerIdSibSpSurvived
SexPclass
female134.611765106.1257980.457447469.2127660.5531910.968085
228.72297321.9701210.605263443.1052630.4868420.921053
321.75000016.1188100.798611399.7291670.8958330.500000
male141.28138667.2261270.278689455.7295080.3114750.368852
230.74070719.7417820.222222447.9629630.3425930.157407
326.50758912.6616330.224784455.5158500.4985590.135447
\n", + "
" + ], + "text/plain": [ + " Age Fare Parch PassengerId SibSp \\\n", + "Sex Pclass \n", + "female 1 34.611765 106.125798 0.457447 469.212766 0.553191 \n", + " 2 28.722973 21.970121 0.605263 443.105263 0.486842 \n", + " 3 21.750000 16.118810 0.798611 399.729167 0.895833 \n", + "male 1 41.281386 67.226127 0.278689 455.729508 0.311475 \n", + " 2 30.740707 19.741782 0.222222 447.962963 0.342593 \n", + " 3 26.507589 12.661633 0.224784 455.515850 0.498559 \n", + "\n", + " Survived \n", + "Sex Pclass \n", + "female 1 0.968085 \n", + " 2 0.921053 \n", + " 3 0.500000 \n", + "male 1 0.368852 \n", + " 2 0.157407 \n", + " 3 0.135447 " + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.pivot_table(df, index=['Sex', 'Pclass'])" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "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", + "
AgeSibSp
SexPclass
female134.6117650.553191
228.7229730.486842
321.7500000.895833
male141.2813860.311475
230.7407070.342593
326.5075890.498559
\n", + "
" + ], + "text/plain": [ + " Age SibSp\n", + "Sex Pclass \n", + "female 1 34.611765 0.553191\n", + " 2 28.722973 0.486842\n", + " 3 21.750000 0.895833\n", + "male 1 41.281386 0.311475\n", + " 2 30.740707 0.342593\n", + " 3 26.507589 0.498559" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.pivot_table(df, index=['Sex', 'Pclass'], values=['Age', 'SibSp'])" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "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", + "
AgeSibSp
SexPclass
female134.6117650.553191
228.7229730.486842
321.7500000.895833
male141.2813860.311475
230.7407070.342593
326.5075890.498559
\n", + "
" + ], + "text/plain": [ + " Age SibSp\n", + "Sex Pclass \n", + "female 1 34.611765 0.553191\n", + " 2 28.722973 0.486842\n", + " 3 21.750000 0.895833\n", + "male 1 41.281386 0.311475\n", + " 2 30.740707 0.342593\n", + " 3 26.507589 0.498559" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.pivot_table(df, index=['Sex', 'Pclass'], values=['Age', 'SibSp'], aggfunc=np.mean)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "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", + "
meansum
AgeSibSpAgeSibSp
SexPclass
female134.6117650.5531912942.0052
228.7229730.4868422125.5037
321.7500000.8958332218.50129
male141.2813860.3114754169.4238
230.7407070.3425933043.3337
326.5075890.4985596706.42173
\n", + "
" + ], + "text/plain": [ + " mean sum \n", + " Age SibSp Age SibSp\n", + "Sex Pclass \n", + "female 1 34.611765 0.553191 2942.00 52\n", + " 2 28.722973 0.486842 2125.50 37\n", + " 3 21.750000 0.895833 2218.50 129\n", + "male 1 41.281386 0.311475 4169.42 38\n", + " 2 30.740707 0.342593 3043.33 37\n", + " 3 26.507589 0.498559 6706.42 173" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Try np.sum, np.size, len\n", + "pd.pivot_table(df, index=['Sex', 'Pclass'], values=['Age', 'SibSp'], aggfunc=[np.mean, np.sum])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "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", + " \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", + " \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", + " \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", + "
meansum
AgeSibSpAgeSibSp
EmbarkedCQSCQSCQSCQS
SexPclassSurvived
female1050.000000NaN13.5000000.000000NaN1.00000050.00NaN27.000.0NaN2.0
135.67567633.00000033.6190480.5238101.0000000.5869571320.0033.01412.0022.01.027.0
20NaNNaN36.000000NaNNaN0.500000NaNNaN216.00NaNNaN3.0
119.14285730.00000029.0916670.7142860.0000000.475410134.0030.01745.505.00.029.0
3020.70000028.10000023.6888890.5000000.1111111.600000103.50140.51066.004.01.088.0
111.04545517.60000022.5483870.6000000.2500000.636364121.5088.0699.009.06.021.0
male1043.05000044.00000045.3625000.1600002.0000000.294118861.0044.01814.504.02.015.0
136.437500NaN36.1216670.352941NaN0.392857583.00NaN866.926.0NaN11.0
2029.50000057.00000033.4144740.6250000.0000000.280488206.5057.02539.505.00.023.0
11.000000NaN17.0950000.000000NaN0.6000001.00NaN239.330.0NaN9.0
3027.55555628.07692327.1684780.1818180.5833330.562771496.00365.04999.006.021.0130.0
118.48857129.00000022.9333330.4000000.6666670.294118129.4229.0688.004.02.010.0
\n", + "
" + ], + "text/plain": [ + " mean \\\n", + " Age SibSp \n", + "Embarked C Q S C Q \n", + "Sex Pclass Survived \n", + "female 1 0 50.000000 NaN 13.500000 0.000000 NaN \n", + " 1 35.675676 33.000000 33.619048 0.523810 1.000000 \n", + " 2 0 NaN NaN 36.000000 NaN NaN \n", + " 1 19.142857 30.000000 29.091667 0.714286 0.000000 \n", + " 3 0 20.700000 28.100000 23.688889 0.500000 0.111111 \n", + " 1 11.045455 17.600000 22.548387 0.600000 0.250000 \n", + "male 1 0 43.050000 44.000000 45.362500 0.160000 2.000000 \n", + " 1 36.437500 NaN 36.121667 0.352941 NaN \n", + " 2 0 29.500000 57.000000 33.414474 0.625000 0.000000 \n", + " 1 1.000000 NaN 17.095000 0.000000 NaN \n", + " 3 0 27.555556 28.076923 27.168478 0.181818 0.583333 \n", + " 1 18.488571 29.000000 22.933333 0.400000 0.666667 \n", + "\n", + " sum \n", + " Age SibSp \n", + "Embarked S C Q S C Q S \n", + "Sex Pclass Survived \n", + "female 1 0 1.000000 50.00 NaN 27.00 0.0 NaN 2.0 \n", + " 1 0.586957 1320.00 33.0 1412.00 22.0 1.0 27.0 \n", + " 2 0 0.500000 NaN NaN 216.00 NaN NaN 3.0 \n", + " 1 0.475410 134.00 30.0 1745.50 5.0 0.0 29.0 \n", + " 3 0 1.600000 103.50 140.5 1066.00 4.0 1.0 88.0 \n", + " 1 0.636364 121.50 88.0 699.00 9.0 6.0 21.0 \n", + "male 1 0 0.294118 861.00 44.0 1814.50 4.0 2.0 15.0 \n", + " 1 0.392857 583.00 NaN 866.92 6.0 NaN 11.0 \n", + " 2 0 0.280488 206.50 57.0 2539.50 5.0 0.0 23.0 \n", + " 1 0.600000 1.00 NaN 239.33 0.0 NaN 9.0 \n", + " 3 0 0.562771 496.00 365.0 4999.00 6.0 21.0 130.0 \n", + " 1 0.294118 129.42 29.0 688.00 4.0 2.0 10.0 " + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Try np.sum, np.size, len\n", + "table = pd.pivot_table(df, index=['Sex', 'Pclass', 'Survived'], values=['Age', 'SibSp'], aggfunc=[np.mean, np.sum],\n", + " columns=['Embarked'])\n", + "table" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
meansum
AgeSibSpAgeSibSp
EmbarkedCQSCQSCQSCQS
SexPclassSurvived
female1135.67567633.033.6190480.5238101.0000000.5869571320.0033.01412.0022.01.027.0
2119.14285730.029.0916670.7142860.0000000.475410134.0030.01745.505.00.029.0
3111.04545517.622.5483870.6000000.2500000.636364121.5088.0699.009.06.021.0
male1136.437500NaN36.1216670.352941NaN0.392857583.00NaN866.926.0NaN11.0
211.000000NaN17.0950000.000000NaN0.6000001.00NaN239.330.0NaN9.0
3118.48857129.022.9333330.4000000.6666670.294118129.4229.0688.004.02.010.0
\n", + "
" + ], + "text/plain": [ + " mean \\\n", + " Age SibSp \n", + "Embarked C Q S C Q \n", + "Sex Pclass Survived \n", + "female 1 1 35.675676 33.0 33.619048 0.523810 1.000000 \n", + " 2 1 19.142857 30.0 29.091667 0.714286 0.000000 \n", + " 3 1 11.045455 17.6 22.548387 0.600000 0.250000 \n", + "male 1 1 36.437500 NaN 36.121667 0.352941 NaN \n", + " 2 1 1.000000 NaN 17.095000 0.000000 NaN \n", + " 3 1 18.488571 29.0 22.933333 0.400000 0.666667 \n", + "\n", + " sum \n", + " Age SibSp \n", + "Embarked S C Q S C Q S \n", + "Sex Pclass Survived \n", + "female 1 1 0.586957 1320.00 33.0 1412.00 22.0 1.0 27.0 \n", + " 2 1 0.475410 134.00 30.0 1745.50 5.0 0.0 29.0 \n", + " 3 1 0.636364 121.50 88.0 699.00 9.0 6.0 21.0 \n", + "male 1 1 0.392857 583.00 NaN 866.92 6.0 NaN 11.0 \n", + " 2 1 0.600000 1.00 NaN 239.33 0.0 NaN 9.0 \n", + " 3 1 0.294118 129.42 29.0 688.00 4.0 2.0 10.0 " + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table.query('Survived == 1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Duplicates" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.duplicated().any()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case there not duplicates. In case we would needed, we could have removed them with [*df.drop_duplicates()*](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop_duplicates.html), which can receive a list of columns to be considered for identifying duplicates (otherwise, it uses all the columns)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Null and missing values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we check how many null values there are.\n", + "\n", + "We use sum() instead of count() or we would get the total number of records). Notice how we do not use size() now, either. You can print 'df.isnull()' and will see a DataFrame with boolean values." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PassengerId 0\n", + "Survived 0\n", + "Pclass 0\n", + "Name 0\n", + "Sex 0\n", + "Age 177\n", + "SibSp 0\n", + "Parch 0\n", + "Ticket 0\n", + "Fare 0\n", + "Cabin 687\n", + "Embarked 2\n", + "dtype: int64" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original (891, 10)\n", + "Cleaned (889, 10)\n" + ] + } + ], + "source": [ + "# Drop records with missing values\n", + "df_original = df.copy()\n", + "df_clean = df.dropna()\n", + "print(\"Original\", df.shape)\n", + "print(\"Cleaned\", df_clean.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Most of samples have been deleted. We could have used [*dropna*](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html) with the argument *how=all* that deletes a sample if all the values are missing, instead of the default *how=any*." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88688702Montvila, Rev. Juozasmale27.00021153613.00NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.00B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"female28.012W./C. 660723.45NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.00C148C
89089103Dooley, Mr. Patrickmale32.0003703767.75NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "886 male 27.0 0 0 211536 13.00 NaN S \n", + "887 female 19.0 0 0 112053 30.00 B42 S \n", + "888 female 28.0 1 2 W./C. 6607 23.45 NaN S \n", + "889 male 26.0 0 0 111369 30.00 C148 C \n", + "890 male 32.0 0 0 370376 7.75 NaN Q " + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fill missing values with the median\n", + "df_filled = df.fillna(df.median())\n", + "df_filled[-5:]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88688702Montvila, Rev. Juozasmale27.00021153613.00NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.00B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.45NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.00C148C
89089103Dooley, Mr. Patrickmale32.0003703767.75NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "886 male 27.0 0 0 211536 13.00 NaN S \n", + "887 female 19.0 0 0 112053 30.00 B42 S \n", + "888 female NaN 1 2 W./C. 6607 23.45 NaN S \n", + "889 male 26.0 0 0 111369 30.00 C148 C \n", + "890 male 32.0 0 0 370376 7.75 NaN Q " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#The original df has not been modified\n", + "df[-5:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Observe that the Passenger with 889 has now an Agent of 28 (median) instead of NaN. \n", + "\n", + "Regarding the column *cabins*, there are still NaN values, since the *Cabin* column is not numeric. We will see later how to change it.\n", + "\n", + "In addition, we could drop rows with any or all null values (method *dropna()*).\n", + "\n", + "If we want to modify directly the *df* object, we should add the parameter *inplace* with value *True*." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88688702Montvila, Rev. Juozasmale27.0000000021153613.00NaNS
88788811Graham, Miss. Margaret Edithfemale19.0000000011205330.00B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"female29.69911812W./C. 660723.45NaNS
88989011Behr, Mr. Karl Howellmale26.0000000011136930.00C148C
89089103Dooley, Mr. Patrickmale32.000000003703767.75NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "886 male 27.000000 0 0 211536 13.00 NaN S \n", + "887 female 19.000000 0 0 112053 30.00 B42 S \n", + "888 female 29.699118 1 2 W./C. 6607 23.45 NaN S \n", + "889 male 26.000000 0 0 111369 30.00 C148 C \n", + "890 male 32.000000 0 0 370376 7.75 NaN Q " + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Age'].fillna(df['Age'].mean(), inplace=True)\n", + "df[-5:]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88688702Montvila, Rev. Juozasmale27.0000000021153613.00NaNS
88788811Graham, Miss. Margaret Edithfemale19.0000000011205330.00B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"female29.69911812W./C. 660723.45NaNS
88989011Behr, Mr. Karl Howellmale26.0000000011136930.00C148C
89089103Dooley, Mr. Patrickmale32.000000003703767.75NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "886 male 27.000000 0 0 211536 13.00 NaN S \n", + "887 female 19.000000 0 0 112053 30.00 B42 S \n", + "888 female 29.699118 1 2 W./C. 6607 23.45 NaN S \n", + "889 male 26.000000 0 0 111369 30.00 C148 C \n", + "890 male 32.000000 0 0 370376 7.75 NaN Q " + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Another possibility is to assign the modified dataframe\n", + "# First we get the df with NaN values\n", + "df = df_original.copy()\n", + "#Fill NaN and assign to the column\n", + "df['Age'] = df['Age'].fillna(df['Age'].median())\n", + "df[-5:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are going to see how to change the Sex value of PassengerId 889, and then replace the missing values of Sex. It is just an example for practicing." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PassengerId 890\n", + "Survived 1\n", + "Pclass 1\n", + "Name Behr, Mr. Karl Howell\n", + "Sex male\n", + "Age 26\n", + "SibSp 0\n", + "Parch 0\n", + "Ticket 111369\n", + "Fare 30\n", + "Cabin C148\n", + "Embarked C\n", + "Name: 889, dtype: object" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# There are not labels for rows, so we use the numeric index\n", + "df.iloc[889]" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'male'" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#We access row and column\n", + "df.iloc[889]['Sex']" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/cif/anaconda3/lib/python3.5/site-packages/ipykernel/__main__.py:2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " from ipykernel import kernelapp as app\n" + ] + } + ], + "source": [ + "# But we are working on a copy \n", + "df.iloc[889]['Sex'] = np.nan" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'male'" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If we want to change, we should not chain selections\n", + "# The selection can be done with the column name\n", + "df.loc[889, 'Sex']" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'male'" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Or with the index of the column\n", + "df.iloc[889, 4]" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88688702Montvila, Rev. Juozasmale27.0000000021153613.00NaNS
88788811Graham, Miss. Margaret Edithfemale19.0000000011205330.00B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"female29.69911812W./C. 660723.45NaNS
88989011Behr, Mr. Karl HowellNaN26.0000000011136930.00C148C
89089103Dooley, Mr. Patrickmale32.000000003703767.75NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "886 male 27.000000 0 0 211536 13.00 NaN S \n", + "887 female 19.000000 0 0 112053 30.00 B42 S \n", + "888 female 29.699118 1 2 W./C. 6607 23.45 NaN S \n", + "889 NaN 26.000000 0 0 111369 30.00 C148 C \n", + "890 male 32.000000 0 0 370376 7.75 NaN Q " + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# This indexing works for changing values\n", + "df.loc[889, 'Sex'] = np.nan\n", + "df[-5:]" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
88688702Montvila, Rev. Juozasmale27.0000000021153613.00NaNS
88788811Graham, Miss. Margaret Edithfemale19.0000000011205330.00B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"female29.69911812W./C. 660723.45NaNS
88989011Behr, Mr. Karl Howellmale26.0000000011136930.00C148C
89089103Dooley, Mr. Patrickmale32.000000003703767.75NaNQ
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "886 male 27.000000 0 0 211536 13.00 NaN S \n", + "887 female 19.000000 0 0 112053 30.00 B42 S \n", + "888 female 29.699118 1 2 W./C. 6607 23.45 NaN S \n", + "889 male 26.000000 0 0 111369 30.00 C148 C \n", + "890 male 32.000000 0 0 370376 7.75 NaN Q " + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Sex'].fillna('male', inplace=True)\n", + "df[-5:]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "There are other interesting possibilities of **fillna**. We can fill with the previous valid value (**method=bfill**) or the next valid value (**method=ffill**). For example, with time series, it is frequent to use the last valid value (bfill). Another alternative is to use the method **interpolate()**.\n", + "\n", + "Look at the [documentation](http://pandas.pydata.org/pandas-docs/stable/missing_data.html) for more details.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "**Scikit-learn** provides also a preprocessing facility for managing null values in the [**Imputer**](http://scikit-learn.org/stable/modules/preprocessing.html) class. We can include *Imputer* as a step in the *Pipeline*." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Analysing non numerical columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we saw, we have several non numerical columns: **Name**, **Sex**, **Ticket**, **Cabin** and **Embarked**.\n", + "\n", + "**Name** and **Ticket** do not seem informative.\n", + "\n", + "Regarding **Cabin**, most values were missing, so we can ignore it. \n", + "\n", + "**Sex** and **Embarked** are categorical features, so we will encode as integers." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchFareEmbarked
88688702Montvila, Rev. Juozasmale27.0000000013.00S
88788811Graham, Miss. Margaret Edithfemale19.0000000030.00S
88888903Johnston, Miss. Catherine Helen \"Carrie\"female29.6991181223.45S
88989011Behr, Mr. Karl Howellmale26.0000000030.00C
89089103Dooley, Mr. Patrickmale32.000000007.75Q
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Fare Embarked \n", + "886 male 27.000000 0 0 13.00 S \n", + "887 female 19.000000 0 0 30.00 S \n", + "888 female 29.699118 1 2 23.45 S \n", + "889 male 26.000000 0 0 30.00 C \n", + "890 male 32.000000 0 0 7.75 Q " + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We remove Cabin and Ticket. We should specify the axis\n", + "# Use axis 0 for dropping rows and axis 1 for dropping columns\n", + "df.drop(['Cabin', 'Ticket'], axis=1, inplace=True)\n", + "df[-5:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Encoding categorical values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Sex* has been codified as a categorical feature. It is better to encode features as continuous variables, since scikit-learn estimators expect continuous input, and they would interpret the categories as being ordered, which is not the case. " + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#First we check if there is any null values. Observe the use of any()\n", + "df['Sex'].isnull().any()" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['male', 'female'], dtype=object)" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Now we check the values of Sex\n", + "df['Sex'].unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are going to encode the values with our pandas knowledge." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchFareEmbarked
88688702Montvila, Rev. Juozas027.0000000013.00S
88788811Graham, Miss. Margaret Edith119.0000000030.00S
88888903Johnston, Miss. Catherine Helen \"Carrie\"129.6991181223.45S
88989011Behr, Mr. Karl Howell026.0000000030.00C
89089103Dooley, Mr. Patrick032.000000007.75Q
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Fare Embarked \n", + "886 0 27.000000 0 0 13.00 S \n", + "887 1 19.000000 0 0 30.00 S \n", + "888 1 29.699118 1 2 23.45 S \n", + "889 0 26.000000 0 0 30.00 C \n", + "890 0 32.000000 0 0 7.75 Q " + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.loc[df[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "df.loc[df[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "df[-5:]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "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", + " \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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarkedGender
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS0
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C1
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS1
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S1
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS0
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked Gender \n", + "0 0 A/5 21171 7.2500 NaN S 0 \n", + "1 0 PC 17599 71.2833 C85 C 1 \n", + "2 0 STON/O2. 3101282 7.9250 NaN S 1 \n", + "3 0 113803 53.1000 C123 S 1 \n", + "4 0 373450 8.0500 NaN S 0 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#An alternative is to create a new column with the encoded valuesm and define a mapping\n", + "df = df_original.copy()\n", + "df['Gender'] = df['Sex'].map( {'male': 0, 'female': 1} ).astype(int)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Check nulls\n", + "df['Embarked'].isnull().any()" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Check how many nulls\n", + "\n", + "df['Embarked'].isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['S', 'C', 'Q', nan], dtype=object)" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Check values\n", + "df['Embarked'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Embarked\n", + "C 168\n", + "Q 77\n", + "S 644\n", + "dtype: int64" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Check distribution of Embarked\n", + "df.groupby('Embarked').size()" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Replace nulls with the most common value\n", + "df['Embarked'].fillna('S', inplace=True)\n", + "df['Embarked'].isnull().any()" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchFareEmbarked
88688702Montvila, Rev. Juozasmale27.0000000013.000
88788811Graham, Miss. Margaret Edithfemale19.0000000030.000
88888903Johnston, Miss. Catherine Helen \"Carrie\"female29.6991181223.450
88989011Behr, Mr. Karl Howellmale26.0000000030.001
89089103Dooley, Mr. Patrickmale32.000000007.752
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "886 887 0 2 Montvila, Rev. Juozas \n", + "887 888 1 1 Graham, Miss. Margaret Edith \n", + "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", + "889 890 1 1 Behr, Mr. Karl Howell \n", + "890 891 0 3 Dooley, Mr. Patrick \n", + "\n", + " Sex Age SibSp Parch Fare Embarked \n", + "886 male 27.000000 0 0 13.00 0 \n", + "887 female 19.000000 0 0 30.00 0 \n", + "888 female 29.699118 1 2 23.45 0 \n", + "889 male 26.000000 0 0 30.00 1 \n", + "890 male 32.000000 0 0 7.75 2 " + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Now we replace as previosly the categories with integers\n", + "df.loc[df[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "df.loc[df[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "df.loc[df[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "df[-5:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although this transformation can be ok, we are introducing *an error*. Some classifiers could think that there is an order in S, C, Q, and that Q is higher than S. \n", + "\n", + "To avoid this error, Scikit learn provides a facility for transforming all the categorical features into integer ones. In fact, it creates a new dummy binary feature per category. This means, in this case, Embarked=S would be represented as S=1, C=0 and Q=0.\n", + "\n", + "We will learn how to do this in the next notebook. More details can be found in the [Scikit-learn documentation](http://scikit-learn.org/stable/modules/preprocessing.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# References" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [Pandas](http://pandas.pydata.org/)\n", + "* [Learning Pandas, Michael Heydt, Packt Publishing, 2015](http://proquest.safaribooksonline.com/book/programming/python/9781783985128)\n", + "* [Useful Pandas Snippets](https://gist.github.com/bsweger/e5817488d161f37dcbd2)\n", + "* [Pandas. Introduction to Data Structures](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dsintro)\n", + "* [Introducing Pandas Objects](https://www.oreilly.com/learning/introducing-pandas-objects)\n", + "* [Boolean Operators in Pandas](http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-operators)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 +} diff --git a/ml2/3_4_Visualisation_Pandas.ipynb b/ml2/3_4_Visualisation_Pandas.ipynb new file mode 100644 index 0000000..ece367e --- /dev/null +++ b/ml2/3_4_Visualisation_Pandas.ipynb @@ -0,0 +1,4795 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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 II](3_0_0_Intro_ML_2.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Table of Contents\n", + "* [Introduction: preprocessing](#Introduction:-preprocessing)\n", + "* [Visualisation with Pandas](#Visualisation-with-Pandas)\n", + "* [Loading and Cleaning](#Loading-and-Cleaning)\n", + "* [General exploration](#General-exploration)\n", + "* [Feature Age](#Feature-Age)\n", + "* [Feature Sex](#Feature-Sex)\n", + "* [Feature Pclass](#Feature-Pclass)\n", + "* [Feature Fare](#Feature-Fare)\n", + "* [Feature Embarked](#Feature-Embarked)\n", + "* [Features SibSp](#Features-SibSp)\n", + "* [Feature ParCh](#Feature-ParCh)\n", + "* [Recap: Filling null values](#Recap:-Filling-null-values)\n", + "\t* [Feature Age: null values](#Feature-Age:-null-values)\n", + "\t* [Feature Embarking: null values](#Feature-Embarking:-null-values)\n", + "\t* [Feature Cabin: null values](#Feature-Cabin:-null-values)\n", + "* [Encoding categorical features](#Encoding-categorical-features)\n", + "\t* [Recap: encoding categorical features](#Recap:-encoding-categorical-features)\n", + "\t* [Encoding Categorical Variables as Binary ones](#Encoding-Categorical-Variables-as-Binary-ones)\n", + "* [Cleaning: dropping](#Cleaning:-dropping)\n", + "* [Feature Engineering](#Feature-Engineering)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction: preprocessing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the previous session, we introduced two libraries for visualisation: *matplotlib* and *seaborn*. We are going to review new functionalities in this notebook, as well as the integration of *pandas* with *matplotlib*.\n", + "\n", + "Visualisation is usually combined with munging. We have done this in separated notebooks for learning purposes. We we are going to examine again the dataset, combinging both techniques, and applying the knowledge we got in the previous notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Visualisation with Pandas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pandas provides a very good integration with matplotlib. DataFrames have the following methods:\n", + "* **plot()**, for a number of charts, that can be selected with the argument *kind*:\n", + " * 'bar' for bar plots\n", + " * 'hist' for histograms\n", + " * 'box' for boxplots\n", + " * 'kde' for density plots\n", + " * 'area' for area plots\n", + " * 'scatter' for scatter plots\n", + " * 'hexbin' for hexagonal bin plots\n", + " * 'pie' for pie charts\n", + " \n", + "Every plot kind has an equivalent on Dataframe.plot accessor. This means, you can use **df.plot(kind='line')** or **df.plot.line**. Check the [plot documentation](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html#pandas.DataFrame.plot) to learn the rest of parameters.\n", + "\n", + "In addition, the module *pandas.tools.plotting* provides: **scatter_matrix**.\n", + "\n", + "You can consult more details in the [documentation](http://pandas.pydata.org/pandas-docs/stable/visualization.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Loading and Cleaning" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# General import and load data\n", + "import pandas as pd\n", + "\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "sns.set(color_codes=True)\n", + "\n", + "# if matplotlib is not set inline, you will not see plots\n", + "\n", + "#alternatives auto gtk gtk2 inline osx qt qt5 wx tk\n", + "#%matplotlib auto\n", + "#%matplotlib qt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S " + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#We get a URL with raw content (not HTML one)\n", + "url=\"https://raw.githubusercontent.com/cif2cif/sitc/master/ml2/data-titanic/train.csv\"\n", + "df = pd.read_csv(url)\n", + "df_original = df.copy() # Copy to have a version of df without modifications\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchFareEmbarked
0103Braund, Mr. Owen Harris022.0107.25000
1211Cumings, Mrs. John Bradley (Florence Briggs Th...138.01071.28331
2313Heikkinen, Miss. Laina126.0007.92500
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)135.01053.10000
4503Allen, Mr. William Henry035.0008.05000
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp Parch \\\n", + "0 Braund, Mr. Owen Harris 0 22.0 1 0 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... 1 38.0 1 0 \n", + "2 Heikkinen, Miss. Laina 1 26.0 0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) 1 35.0 1 0 \n", + "4 Allen, Mr. William Henry 0 35.0 0 0 \n", + "\n", + " Fare Embarked \n", + "0 7.2500 0 \n", + "1 71.2833 1 \n", + "2 7.9250 0 \n", + "3 53.1000 0 \n", + "4 8.0500 0 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Cleaning\n", + "df_clean = df.copy() # We copy to see what happens with na values\n", + "df_clean['Age'] = df['Age'].fillna(df['Age'].median())\n", + "df_clean.loc[df[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "df_clean.loc[df[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "df_clean.drop(['Cabin', 'Ticket'], axis=1, inplace=True)\n", + "df_clean.loc[df[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "df_clean.loc[df[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "df_clean.loc[df[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "df_clean.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# General exploration" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the previous session we saw that *Seaborn* provides several facilities for working with DataFrames. We are going to review some of them." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Age SibSp \\\n", + "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", + "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", + "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", + "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", + "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", + "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", + "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", + "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", + "\n", + " Parch Fare \n", + "count 891.000000 891.000000 \n", + "mean 0.381594 32.204208 \n", + "std 0.806057 49.693429 \n", + "min 0.000000 0.000000 \n", + "25% 0.000000 7.910400 \n", + "50% 0.000000 14.454200 \n", + "75% 0.000000 31.000000 \n", + "max 6.000000 512.329200 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# General description of the dataset\n", + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PassengerId int64\n", + "Survived int64\n", + "Pclass int64\n", + "Name object\n", + "Sex object\n", + "Age float64\n", + "SibSp int64\n", + "Parch int64\n", + "Ticket object\n", + "Fare float64\n", + "Cabin object\n", + "Embarked object\n", + "dtype: object" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Column types\n", + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Name object\n", + "Sex object\n", + "Ticket object\n", + "Cabin object\n", + "Embarked object\n", + "dtype: object" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Columns non numeric\n", + "df.dtypes[df.dtypes == object]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PassengerId 0\n", + "Survived 0\n", + "Pclass 0\n", + "Name 0\n", + "Sex 0\n", + "Age 177\n", + "SibSp 0\n", + "Parch 0\n", + "Ticket 0\n", + "Fare 0\n", + "Cabin 687\n", + "Embarked 2\n", + "dtype: int64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Number of null values\n", + "df.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[,\n", + " ,\n", + " ],\n", + " [,\n", + " ,\n", + " ],\n", + " [,\n", + " ,\n", + " ]], dtype=object)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Analise distributon\n", + "df.hist()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassAgeSibSpParchFare
PassengerId1.000000-0.005007-0.0351440.036847-0.057527-0.0016520.012658
Survived-0.0050071.000000-0.338481-0.077221-0.0353220.0816290.257307
Pclass-0.035144-0.3384811.000000-0.3692260.0830810.018443-0.549500
Age0.036847-0.077221-0.3692261.000000-0.308247-0.1891190.096067
SibSp-0.057527-0.0353220.083081-0.3082471.0000000.4148380.159651
Parch-0.0016520.0816290.018443-0.1891190.4148381.0000000.216225
Fare0.0126580.257307-0.5495000.0960670.1596510.2162251.000000
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Age SibSp Parch \\\n", + "PassengerId 1.000000 -0.005007 -0.035144 0.036847 -0.057527 -0.001652 \n", + "Survived -0.005007 1.000000 -0.338481 -0.077221 -0.035322 0.081629 \n", + "Pclass -0.035144 -0.338481 1.000000 -0.369226 0.083081 0.018443 \n", + "Age 0.036847 -0.077221 -0.369226 1.000000 -0.308247 -0.189119 \n", + "SibSp -0.057527 -0.035322 0.083081 -0.308247 1.000000 0.414838 \n", + "Parch -0.001652 0.081629 0.018443 -0.189119 0.414838 1.000000 \n", + "Fare 0.012658 0.257307 -0.549500 0.096067 0.159651 0.216225 \n", + "\n", + " Fare \n", + "PassengerId 0.012658 \n", + "Survived 0.257307 \n", + "Pclass -0.549500 \n", + "Age 0.096067 \n", + "SibSp 0.159651 \n", + "Parch 0.216225 \n", + "Fare 1.000000 " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We can see the pairwise correlation between variables. A value near 0 means low correlation\n", + "# while a value near -1 or 1 indicates strong correlation.\n", + "df.corr()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We do not find any relevant correlation. We could also represent this with a scatterplot." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nRoYSq79edXe0sG2GbVs4RF13R8uM+7cS74Na6HsPtK1KvGYxtVFL10CVONhTvQAAIABJREFUkET8\n5aqznLGVWlfh+aN9SXPJdRX2jcV+jk+qrsLvh2brs4tRa33vgWhuamC4IDHUvqR53u/l5tsPhxzU\nzn/9pm/W5e1LZr/2me04TtO1dFL1prnvrXRbtXS+rYX1gPpNOFV7+Lg7gLcChBBOAZ6NMQ4AxBg3\nAV0hhCNCCE3A7+XKV82F5xzLMYd1VjMEldGH3nlCtUOQJElatD5y/km0Nc+8rLEBjjqsc867kRsz\nE88OWfDt/otYqetQ+GFr7YuWcuE5x/KR80+iq33fxp18tsWpa1fy4lVdnLp2JReec2yp4aoCjj+y\nfc7pQqcdt3zO6XK0ccm5L51zulredfaaOadVez5y/kks72qltbmB5V2tfOTdJ5Vc14feecJUHzzZ\nVy6Gui4851hOXbuSl7you2777JOOLv/3Y43AyS85mE9/8DV0tu37aevSjmY+8u6Tprb7i1d1cfya\n5SxtbyaTgcZMhuPXLJ93P1zylpdPvf6kY1Zw/JrltLc20t7axMkvOZiPvPukafV3dzTT0nTgx7Ek\nLTaZbLa6o3yHED4NvI6JoUPXAacAfTHGfwohvBb4HBM/5vjHGOMXFlBlthK/nLONxdVOhdpI+juN\nRI7dsbEB/uivbqW5a/WsZQ5mE5/7+HuLqjdNvwCvdqybNm3gip9eRdvK2S+a92zt5/Lf+givfOWJ\nScRaie/j7HvrrI1KtZPWvrfa/U6t1puyWO17bSO17aS1781XY/vDNhbeRqr63nJtk3JuW+uqal2p\n7Hu95ktPrEnVm7a+dzY1dC60jeLaqYXfsBWt2sPHEWO8rGDW+rxlPwFOq2xEkiRJkiRJkiRJtafa\nw8dJkiRJkiRJkiSpAkwKSZIkSZIkSZIk1QGTQpIkSZIkSZIkSXXApJAkSZIkSZIkSVIdMCkkSZIk\nSZIkSZJUB0wKSZIkSZIkSZIk1QGTQpIkSZIkSZIkSXXApJAkSZIkSZIkSVIdMCkkSZIkSZIkSZJU\nB0wKSZIkSZIkSZIk1QGTQpIkSZIkSZIkSXXApJAkSZIkSZIkSVIdMCkkSZIkSZIkSZJUB5qq2XgI\noQn4JnAkMAq8N8a4saDMO4APA2PAnTHGv6xwmJIkSZIkSZIkSalX7TuF3g3siDGeDnwa+Gz+whBC\n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\nKFXT5DXg5P+zLZ/J5HVj38DwtPmDe/e/1i2sJ3+6b2B4ap/NV1d+2UJpO05nktQ6lPK+rsRrZjou\n5m2j4L2UaSj+80sx5St5XKX9GD7Q+Mt1/inneaycdY01DUz7AmesaaDkukbHsvtNl7yOJbwPZ1PY\nh8/VZy8m5Ywx2zL7ebPQTNcGhcdcYWz1en2a5nqTtpiuHQ6E6zG3WviMlgZVTQqFEE4BtsYYn4kx\nPhRCaAohHBxj3AZsBvJ/1nR4bt68enuTSd600cUILyRSd63KjjaTaRyav2AFZYfagYmhQIo5VirR\nASV17CZRf09PV9njTaLOpOpNKtZ85aq/UifPpLdHJba5bSy+dtLW9xYOdZXNlve9nJY+Mql6y11n\n0vurEpJ6Dy5rWlbya7PjGTKNiy8xNHkNmB1qg9ywcjMtn8nkdWN3x/TbntqXNDM0Mv1at7D+/Hq7\nO1qm9tl+dbVOryu/bD773rmV8r6uxGtmOi7mbaPgvZQdL+7zCyx8O1fq2mFSUm2lpe8t1/mnnOex\nctbVONrB/8/evYdJVtaHvv+uqurumZ7umWFgBkTk7rxAgIOjREXEiCZoLifhJJ6oQKJulLBnx43Z\nWza6nxxinphw8IhKNl7AS9woamKCxEiUGIzbRJPIBiIGeAcUUK5zn+mZnunuqrXOH1XdU1V9mZ6a\nunRVfT/P0zO91nrX7/2tVave9Va/tdZK2VUz3WisQj6ZuVJoerrhbWzgfTif+jZ8vjb7UHRb25tM\nDgOzz6dzydIEkmzWMTZfbv3cP+3GuN3S9s6nlZ8J6rXyfOt2NKZfB5zqb8TVbhcA/wUghHA0sKIy\nIESM8QlgNIRwfAihQPla/Ls6lilw1XlvZnB8HWmakKWQpuUDs/onLUFarF2WTkJaSsq/V+anafm+\n7NNxqn+m58+sX0xIJwZIp5LZ5abrno5VqpSfp9zsehPSqUp+pcr6c8aqLpcjnRiguOMoSntWUtyx\nhnRi4EDeafk5SMUdRzHx0LkUt68lnSqQThUo7lxNOpGfyalcR74Suyq3qTzFHUdS3L6O0p6Rqu1P\nasvWb3v19s0Vc/s6ph4/g3yufC9iSZKaaWKs9lw/4UXGS5qv1/zeuP5ijlt+XPlZP1X93Op+LymU\n9i6nuOOocl+wlCOdGGLiwZ+d6f8VGCSdTGr7xnP1o+frW883ry5ecdcwxR1HHuhz7jiq3Eednq70\n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\nbai/rVWWNfe93C1tZKviNjtmq1+vdmj1e/BQDReWs2XL2JLoM2c1W3ASAAAgAElEQVRp+cWdr/86\n123o5ouTTSyHkd218yeGZ5etK7e6sIrJFbW3hVu9YvZt4g6lX9qu80irtWobGnlft2Od+vfE6sKq\nJfea90od7XC429Gs808zz2PNjDVcWM5kabJm+nD3WTOPn6Ucq9Va8R5c7PkUoJANMVwYqDk+pv9W\nBQfy6+f+aTfG7Za2dz6t/ExQr5Xnwl7ZjkI2RJHxmulW9h/6dcCpmYNC1wOvBT4A3A+UgNsOtlII\nYWVl3dfEGGu+PhVjfCKEMFp5XtHTwC8Db25izofsjesvJk2mGnym0CBZks75TKETjjyKn25u8JlC\npQGSfJHi5MLPFMo9+nKOO2YFT+W/2dAzhU5Y8s8UGiLJpYt6ptBp+VeW7+cuSVITTWxeNuuZQlq6\ncjlmPVNIB1x++mV88qFb51w23zOF3nnOFUC5z5xAbz1TKDnwTKETRo7nua2B8ULdM4XyFzC85iF2\nTu3kqOVr+M31F8Mp5T921TxTqGKueTo8E2PMei7AweTGmPVMoYP5laPfwFef+4uaZwotZPo9sXXf\n9gPHhvpWI8fpXHK5PGlaqnmmUKPWD57GpsmHa54p1Kh3nnMFN97/iZpnCqn3vPUXX8hn7nyEiaeP\nWPQzhd714newfNkgN97/idpnCgFXXnx6G7KWZmtWm9xpJ+bO5vH0BzXPFOpG79rwDj507801zxRS\n8yXZ9MhBE4UQCsBojHHHIsq+HbgW2MTM0AJ3Aw/EGO8IIZxPedAoA74cY/zQQUJmvfINp16oo131\ntKmOQ7gouiEtOXa77dsl5tqSXFt97IJtb0/V8cQTj/G+732A5etG5ly+b/Mern35u3nJS8627Z1H\nv7c7rYrbZbna9lpH19bTrW1vtR57Paxj8XV0VdvbrH2ylK98MdYhxerKttc+X/fk2qq43db2zqeH\nzoXWcWj1tOP4XXIO+0qhEMKtHLhmpH4ZMcbfWmj9GOMtwC0LLP9H4LzDSlKSJEmSJEmSJKnPNeP2\ncd9sQgxJkrRElEop+7fPfoD6tP3bxymV0jZmJEmSJEmSpGY47EGhGONnAUIII8Avxhj/vDL9O8Dn\nDje+JElqt4w9953CxPIj5lw6tW8HvK75t5+VJEmSJElSazXjSqFpnwW+XTU9DNwK+ARNSZK6SD6f\n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\npfP88obPFeSrunfSbStvznw2Y8MuY8zsWLetvHnK9/Lbb+3NAT5xx5WEgn6+ueOBnN/E/LYuwLc/\n+prcNt4FQRLJFNv2nZrcKG8kB0y0D9cC159WuSa3n/ysc9vobiade32+bHKTNZP/zG9/TpVXsW0n\n1OK3qt7q3mzu8BLozKqHh6evhz/4xtcBr8t5bbp9Ohp9fPUvXlWV+iPbmX4PT1etrqv5cO3Cmf+t\ny7lOi7n0nKXcd87fVOQ69OHlU9feOZlX8szPs5J/84WSV7XN1sitZDJFb2+YQ4cO8LGffYKGjsYp\ntx3rj/DV2z5HS0v5o9WmUg/t03rMt17q3qm4I0sgkFUnj1T3/rZaeX/p1vflrsF266q6PI9vv6N6\n92jFLNSA05wPCtm2/YRlWc9YlvUYkALumu0yVcPENBITgYs733YZsSI3gbdft4rkIzFeGHmMhDmC\nzwmxwvwDfCsbGAjH0kGPKRZenJiLd0KgMcDGB5+ZDJZk7Tfx7+5To4yMJWlu9LKkvem0F3XMPp/z\nljTzjle9KPNeseOVKkOx9/KPZXoMnt3TQyIJfr/J6vPbM9vnn/dCsW5FiG37R3LSMnfdvGoDBlRk\n3u355s4Na7hv066cdD16140r+cef781J16u7rrqFLz/5EK4/ghFv5K6rbpntIs0ZlvFS7FObMyMT\nLKP+1r8SqYVibcVQMD0qZuI3cWLtlXb/Zfx0f29m37desxQobONlB4naQn5Sjsu+Y0PE4w4Bv8mq\npW3TtmVPt/0pc5fqYakHuk5lIWvoaCS4WM8nZO6YL3Wy1mCTmTDc+TcxnztfejjNh2PU6jg1Oka1\n17OqyrVbb71LVNaqlLUWa7Gp7l1gx6jVcVT3VjfPesu3zsqqulfHqNvj1Gvdm22e/T10jNM/Rl3V\nvZX6TObyyBflNaO86rLu/d0Tj/GtX49ieqbud97uHOTzf3kHhw4d4BNP3FsyKBTtGWHjjfdopFAd\n5Vtvde9U5tFvoY4xs+PU4vqdc4ossSoiIiIiIiIiIiIiIiLzjYJCIiIiIiIiIiIiIiIiC4CCQiIi\nIiIiIiIiIiIiIguAgkIiIiIiIiIiIiIiIiILgIJCIiIiIiIiIiIiIiIiC4CCQiIiIiIiIiIiIiIi\nIguAgkIiIiIiIiIiIiIiIiILgIJCIiIiIiIiIiIiIiIiC4CCQiIiIiIiIiIiIiIiIguAgkIiIiIi\nIiIiIiIiIiILgHe2CyAiIiIiIiIiIiLzWyrlMNYfKbnNWH8Ex3FqVCIRkYVJQSERERERERERERGp\nMpeRrSuIBdun3CIRHcC9xSWVSnH06OFpczzvvPPxeDyVLKSIyLynoJCIiIiIiIiIiIhUlcfjIdR1\nIQ0tS6bcZmz4JB6Ph6NHD/Oxn32Cho7Gqbftj/DpP/w4F1ywvBrFFRGZtxQUEhERERERERERkTml\noaOR4OLQbBdDRGTemZWgkGVZrwS+B7zLtu2fj792KXAf4ADP2bZ91/jrdwN/NP76J23b/sVslFlE\nRERERERERERERKSe1TwoZFnWi4APAr/Pe2sj8Ge2bW+xLOtfLMu6DrCBdwB/ALQDv7Ms65e2bbs1\nLbSIiIiIiIiIiIjURCrlMNYfKbnNWH+EVMqZYb5aq0hEZDZGCh0HNgDfnnjBsiwfsMy27S3jL/0E\nuBY4B/iFbdspoM+yrIPARcDztSywiIiIiIiIiIiI1IrLyNYVxILtU26RiA7A9TPrN37o0EHufvBj\n+FsbptwmPjTGvbd+mgsuWDZtAGl4uImmps45EUA6nYDXXCqviMyemgeFbNseA7AsK/vlRcBAVroH\nOBvoA3qzXu8df11BIRERERERERERkVkWj/RjmlM/Yowbo5P/Hj1VOq/x9z0eD/7GdvxNnVNuaxhk\nghuPP/67acv55jffCLiM7l5KPNAy5XaJ2DDgcvToYT50/0emDSD93e2f5YILlp9WGdavf8Vplbe1\ntZGLL77itLadyHem5RWRhctw3erNxGZZ1ruBPwZcwBj//8dt2/53y7L+Efi+bds/tyzrbOCntm1f\nMb7fa4E7gO3AqG3bfz/++v3Ad2zb/lXVCi0iIiIiIiIiIiIiIjIPVXWkkG3b3wK+dRqb9pIeLTTh\nXOAY6anmVue9frxiBRQREREREREREREREVkgzFk+vgFg23YS2GVZ1vrx198K/BL4T+BGy7K8lmWd\nA5xj2/bO2SmqiIiIiIiIiIiIiIhI/arq9HHFWJZ1I3A3YJEeIXTCtu3rLctaA3yNdKDoSdu2/2J8\n+7uA2wAH+Cvbtv+rpgUWERERERERERERERGZB2oeFBIREREREREREREREZHam+3p40RERERERERE\nRERERKQGFBQSERERERERERERERFZABQUEhERERERERERERERWQAUFBIREREREREREREREVkAFBQS\nERERERERERERERFZABQUEhERERERERERERERWQAUFBIREREREREREREREVkAFBQSERERERERERER\nERFZABQUEhERERERERERERERWQAUFBIREREREREREREREVkAvLNdAADLsj4HvBzwAJ+xbXtT1nsH\ngMOAA7jAO23bPjErBRUREREREREREREREalTsx4UsizrVcBFtm2vtyyrA9gKbMraxAWut207Ohvl\nExERERERERERERERmQ/mwvRxvwHePv7vQaDRsiwj631j/D8REREREREREREREREp06yPFLJt2wUm\nRgH9MfDz8deyfdWyrOXA72zb/suaFlBERERERERERERERGQemAsjhQCwLOvNwLuAP81766+BDwGv\nBC6xLOuttS6biIiIiIiIiIiIiIhIvTNcN39QTu1ZlnUd8AngOtu2h0psdyew2LbtT0y1jeu6rmFo\ntjmpiqpeWLp2pYqqfmHp+pUqUt0r9Up1r9Qz1b1Sr1T3Sj1T3Sv1SnWv1LMFeWHN+vRxlmW1AJ8D\nXpsfEBp/73vAG23bTpAeLfT9UvkZhkFvb7haxQWgq6tZx5hjx6nVMaqpWtdutT6bauSrslavrNWm\nunfhHaNWx1HdW9086y3feitrtanuXXjHqNVx6rXuzTbf/h46xukfo9oqef1W6jOp5GervGY3r2pS\nu1dlrVa+9Vb3TmU+/RbqGDM7zkI060Eh4CagE/ieZVkG4AK/Brbbtv0jy7J+Bvy3ZVkRYKtt2z+Y\nxbKKiIiIiIiIiIiIiIjUpVkPCtm2/Q3gGyXe/3vg72tXIhERERERERERERERkfnHnO0CiIiIiIiI\niIiIiIiISPUpKCQiIiIiIiIiIiIiIrIAKCgkIiIiIiIiIiIiIiKyACgoJCIiIiIiIiIiIiIisgAo\nKCQiIiIiIiIiIiIiIrIAKCgkIiIiIiIiIiIiIiKyACgoJCIiIiIiIiIiIiIisgAoKCQiIiIiIiIi\nIiIiIrIAKCgkIiIiIiIiIiIiIiKyACgoJCIiIiIiIiIiIiIisgAoKCQiIiIiIiIiIiIiIrIAKCgk\nIiIiIiIiIiIiIiKyACgoJCIiIiIiIiIiIiIisgAoKCQiIiIiIiIiIiIiIrIAKCgkIiIiIiIiIiIi\nIiKyACgoJCIiIiIiIiIiIiIisgAoKCQiIiIiIiIiIiIiIrIAeGe7AACWZX0OeDngAT5j2/amrPde\n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\nXN14A49FfpGzptB0avG7/sGbL+EL381dU0jmh0q1pd5140r+8ee5awqVa6IOyl5vZ75ZCOdYa7F+\npl9TaMOaafOZuOebeJ5zzxveA8kqFlxEZIEzXDd/UHrdc+dDpHK+HKNWx6nRMaq9plVVrt16612i\nslalrLVYj0117wI7Rq2Oo7q3unnWW751VlbVvTpG3R6nXuvebPPs76FjnP4x6qrurdRnMtdG5Civ\nsvOqy7pXbb76KWu18q23uncq8+i3UMeY2XFqcf3OOXNhpJCIiIiIiIiIiIiIyKz48aM/4/tbfzLl\n+7GeCF/40Bfw+4tPUSxSTxQUEhEREREREREREZEFazQ6QmzZ1INGko7BPJxxSxYozZwuIiIiIiIi\nIiIiIiKyACgoJCIiIiIiIiIiIiIisgAoKCQiIiIiIiIiIiIiIrIAKCgkIiIiIiIiIiIiIiKyACgo\nJCIiIiIiIiIiIiIisgAoKCQiIiIiIiIiIiIiIrIAKCgkIiIiIiIiIiIiIiKyACgoJCIiIiIiIiIi\nIiIisgAoKCQiIiIiIiIiIiIiIrIAKCgkIiIiIiIiIiIiIiKyACgoJCIiIiIiIiIiIiIisgAoKCQi\nIiIiIiIiIiIiIrIAKCgkIiIiIiIiIiIiIiKyACgoJCIiIiIiIiIiIiIisgAoKCQiIiIiIiIiIiIi\nIrIAeGe7AACWZa0Ffgj8nW3bX8l77wBwGHAAF3inbdsnal9KERERERERERERERGR+jXrQSHLshqB\nLwG/mmITF7jetu1o7UolIiIiIiIiIiIiIiIyv8yF6ePGgBuAqUb/GOP/iYiIiIiIiIiIiIiISJlm\nPShk27Zj23Zsms2+alnW7yzL+tuaFEpERERERERERERERGSemfWg0Gn4a+BDwCuBSyzLeussl0dE\nRERERERERERERKTuGK7rznYZALAs6+NAr23bXymxzZ3AYtu2P1Eiq7lxQjIfVXsaQ127Ui21mIJT\n169Ui+peqVeqe6Weqe6VeqW6V+qZ6l6pV/Oi7n3oRw+zaey/pnzfOTjGA39+Hw0NDdUuitTWgly2\nxjvbBciT80ewLKsF+B7wRtu2E6RHC31/ukx6e8PVKd24rq5mHWOOHadWx6i2apxDtT6bauSrslav\nrLUwX77nOsbcOo7q3urmWW/51ltZa2E+1Cc6xtw7Tr3Wvdnm299Dxzj9Y9RCpc6jUp9JJT9b5TW7\neVVbPbWjVNb6ybfe6t5yOY5DX98IgUCi7Dzm0+/tfDjGxHEWolkPClmWdTnweeACIGFZ1tuAHwMH\nbNv+kWVZPwP+27KsCLDVtu0fzGJxRURERERERERERERE6tJpB4Usy/rfpd63bfuT5RTAtu0twKtL\nvP/3wN+Xk7eIiIiIiIiIiIiIiIikzWSkkG/8/yvH//st4CE9pdvWCpdLREREREREREREREREKui0\ng0K2bf81gGVZPwZeatt2ajztAx6uTvFERERERERERERERESkEswy9jkfMLLSLun1gERERERERERE\nRERERGSOmsn0cRN+BuyxLOsZwAEuB35Y0VKJiIiIiIiIiIiIiIhIRc04KGTb9l9ZlvVPwCWkRwx9\nwrbtnZUumIiIiIiIiIiIiIiIiFTOjKePsywrALye9LpCPwCaLctqqHjJREREREREREREREREpGLK\nWVPoK8AK4NXj6cuBf6pUgURERERERERERERERKTyygkKrbZt+0NABMC27fuAcypaKhERERERERER\nEREREamocoJCyfH/uwCWZTUBwYqVSERERERERERERERERCqunKDQ9y3L+g/gRZZlfQnYBjxY2WKJ\niIiIiIiIiIiIiIhIJXlnuoNt2/9gWdaTwKuAGHCzbdvP/P/t3XecJHWd//FXdc9Mz4ZhA7tLEGRJ\n+wEEDlGQAxVYUOQwrYn8Q0HP4/b0TJgVVAwngugdYsSAEkRFz3QEQcSEIJIEPguygEjaZfPO7qSu\n3x9VPdPd0z3Toapneub9fDwWpit8v5+q+va3vv39Vkg6MBEREREREREREREREUlO3YNCZvZhdz8X\nuDX+vK2Z/dTdX5F4dCIiIiIiIiIiIiIiIpKIRh4ft5uZfQHAzI4C/gT8MtGoRERERERERERERERE\nJFF1Dwq5++nAWjP7E3A+8Cp3/1LikYmIiIiIiIiIiIiIiEhian58nJktLfr4G2B3oAtYZGZL3f2G\npIMTERERERERERERERGRZNTzTqGPjDE9BDQoJCIiIiIiIiIiIiIiMknVPCjk7kcCmNmB7n57eiGJ\niIiIiIiIiIiIiLTGlk0DbP3zlqrz+9b1Eob5FkYkkp567hQq+BywdNyl6mBm+wI/Bi4ofz+RmR0N\nfBIYBH7p7ucmmbeIiIiIiIiIiIiITF/dnT2EwbKq87uyDxIEmRZGJJKeRgaFHjWzXwN/BPoLE939\n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\nOvWYJRy01yIWb9/Dc/dcgGVeROfmHcjkO+nKRG1Xittm4Ugbcrj9mg9Glin6lx9j2nAafTn6fD/y\nQ8HIMv0BDMbXv8X5MgS5IEcu6KIjyNIRdEB/N/33H8SgH0x2cAZZssNx5POQ78/SNTAXm7Mn23T2\nEBDFyVCG7OAMWL+AcPMsGMrQmekYfq9BQfG+OWivRZx6zJLheWedfADzenJ0dWSY15PjrJMOSPmo\nTg+N1MONtDVO2fPE4d9r5OPPIjVKqr2QGZhZWnYHZo6/UhX7zziwJK39ZxzYcFonLFnGgYv2Z7f5\nu3Dgov3123sKyzyya8VzdbV/hXpz+G/K5sdOXPIG6A9K1nvdLm9g+X5vKemzAkade8dy5mv/qeS8\nXNwHFuSznLzbqWzTvwsdffOY2b8DPZ09dGY668pjsvvY0nfSGURtpMI7hURk+gnC4lq3BmZmwPbA\nE8D/ANsB57v7d5IPryHhVBipnCp5tCqfFuWR9pP1Uim77XTVimJNLdZWPBVSde80y6NV+ajuTTfN\ndku3zWJV3as82jafdq17i02x46E8as+jrerepPbJZL7zRWnVlVZb1r1q87VPrGml2251bzXX3XgD\nl98yxgIbHuTis08jl8s1nMcUOt9OiTzifFr9JpVJoe7Hx7m7A25mC4GT3H118mGJiIiIiIiIiIiI\niIhIkuoeFDKz44EvED9F2cwGgbe5+9VJByciIiIiIiIiIiIiIiLJqHtQCPgwcJi7/w3AzJYAPwQ0\nKCQiIiIiIiIiIiIiIjJJNfI63ccLA0IA7r4C+NsYy4uIiIiIiIiIiIiIiMgEq/lOITNbGv95n5n9\nN3AdkAeOAh5IITYRERERERERERERERFJSD2Pj/tI2ed9i/4OE4hFREREREREREREREREUlLzoJC7\nH5lmICIiIiIiIiIiIiIiIpKeeu4UAsDMjgb+HZgDBIXp7r606koiIiIiIiIiIiIiIiIyoeoeFAIu\nBs4FHks4FhEREREREREREREREUlJI4NCK9z924lHIiIiIiIiIiIiIiIiIqlpZFDoa2b2deD3wGBh\nort/J7GoREREREREREREREREJFGNDAp9ENgM5IqmhYAGhURERERERERERERERCapRgaF+t39yMQj\nERERERERERERERERkdQ0Mij0v2Z2JPA7Sh8fl08sKhEREREREREREREREUlUI4NCHwFmET0yDiCI\n/84mFZSIiIiIiIiIiIiIiIgkK1Prgmb2bgB373H3DHCIu2fjv7+dVoAiIiIiIiIiIiIiIiLSvJoH\nhYDjyj7/V9Hfi5sPRURERERERERERERERNJSz+PjgjE+l8+rmZldABwC5IF3uPttRfNWAo/G80Lg\nZHd/otG8REREREREREREREREpqt6BoXC8Repj5m9GNjD3Q81s72AS4BDy/J8mbtvSTpvERERERER\nERERERGR6aSex8eVC6v8XY+jgB8DuPv9wFwzm100P6CJu5BEREREREREREREREQkUs+dQoea2aNF\nnxfFnwNgQYP5bw/cVvR5dTztwaJpXzazXYGb3f2DDeYjIiIiIiIiIiIiIiIyrdUzKGSpRTGi/K6g\njwD/B6wBfmJmr3H3H7UgDhERERERERERERERkSklCMPEXxVUMzM7G3jc3b8Wf/4bsL+7b66w7JnA\nInf/2DjJTtwGyVSX9qMMVXYlLa14DKfKr6RFda+0K9W90s5U90q7Ut0r7Ux1r7SrKVH3Xvb9n3D5\nLdXnB5se4vtfOJPu7u60Q5HWmpavrqnnTqE0XAucA3zNzA4E/lEYEDKzbYDvA69w9wHgcOCqWhJd\ntWpjOtHGFi7sUR6TLJ9W5ZG2NLYhrX2TRrqKNb1YW2GqfM+Vx+TKR3Vvumm2W7rtFmsrTIX6RHlM\nvnzate4tNtWOh/KoPY9WSGo7ktonSe5bpTWxaaWtndpRirV90m23urdRYT7P6tWbyOUGGk5jKp1v\np0IehXymowkdFHL3P5jZn83sd8AQsNzMTgPWuftPzOznwB/NrBf4i7v/cCLjFRERERERERERERER\naVcTfacQ7v7Bskl3F837b+C/WxuRiIiIiIiIiIiIiIjI1JOZ6ABEREREREREREREREQkfRoUEhER\nERERERERERERmQY0KCQiIiIiIiIiIiIiIjINaFBIRERERERERERERERkGtCgkIiIiIiIiIiIiIiI\nyDSgQSEREREREREREREREZFpQINCIiIiIiIiIiIiIiIi04AGhURERERERERERERERKYBDQqJiIiI\niIiIiIiIiIhMAxoUEhERERERERERERERmQY0KCQiIiIiIiIiIiIiIjINaFBIRERERERERERERERk\nGtCgkIiIiIiIiIiIiIiIyDSgQSEREREREREREREREZFpoGOiAxARERERERERERERkeYMDQ3xyCMr\n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\n0m2zWFX3Ko+2zadd695iU+x4KI/a82irujepfZLkvlVaE5pWW9a9avO1T6xppdtudW811914A5ff\nMsYCGx7k4rNPI5fLNZxHK86FGzY8zTt+cQ4zFs2uOH/L05s4+5/PYpddGr9IY6q0G+J8puWzESb0\nTiERERERERERERERERFpDQ0KiYiIiIiIiIiIiIiITAMaFBIREREREREREREREZkGNCgkIiIiIiIi\nIiIiIiIyDWhQSEREREREREREREREZBrQoJCIiIiIiIiIiIiIiMg00DHRAYiIiIiIiIiIiIiISHPy\n+Txb1/RWnb91TS9DQ/kWRlRqaGiIxx57dMxldtrp2S2KZvrSoJCIiIiIiIiIiIiISJsLw5BNf9md\nvhnzKs4f2LIWXha2OKoRjz32KB/4+cfonj+z4vyta3r59HFns/32c1sc2fSiQSERERERERERERER\nkTaXzWaZvXAPurfZruL8rRueIpvNtjiqUt3zZzJj0ewJjWG60zuFREREREREREREREREpgENComI\niIiIiIiIiIiIiEwDGhQSERERERERERERERGZBvROIRERERERERERERERSdXQUJ6ta3qrzt+6ppeh\noXwLI5qeNCgkIiIiIiIiIiIiIiIpC9n0l93pmzGv4tyBLWvhZWGLY5p+NCgkIiIiIiIiIiIiIiKp\nymazzF64B93bbFdx/tYNT5HNZlsc1fSjdwqJiIiIiIiIiIiIiIhMAxoUEhERERERERERERERmQYm\n9PFxZtYBfAvYBRgE3uTuD5ctMwDcDARACBzl7nqwoIiIiIiIiIiIiIiISB0m+p1CJwFr3f0UM3sJ\n8BnghLJl1rr70taHJiIiIiIiIiIiIiIiMnVM9OPjjgKujv++HjiswjJB68IRERERERERERERERGZ\nmiZ6UGh7YBVA/Ei4fPxIuWLdZvZdM7vZzN7Z8ghFRERERERERERERESmgJY9Ps7MzgDeTPReIIju\nADq4bLFKg1TvBr4b//0bM7vJ3W9PJ0oRERERERERERERmU66u3N0bb6n6vz+LU8SBNEDrX7/+5vH\nTOvQQ19Ucbk5c2ayfn3vuMvVml615fo3P1N1meJ5E7UdtcYn6QnCMBx/qZSY2SXA5e5+XXyH0Ep3\n33mM5f8LuNfdv92yIEVERERERERERERERKaAiX583HXA6+O/XwncWDzTzJaY2ffivzuI3jn015ZG\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# General description of relationship betweek variables uwing Seaborn PairGrid\n", + "# We use df_clean, since the null values of df would gives us an error, you can check it.\n", + "g = sns.PairGrid(df_clean, hue=\"Survived\")\n", + "g.map_diag(plt.hist)\n", + "g.map_offdiag(plt.scatter)\n", + "g.add_legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are two many variables, we are going to represent only a subset." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\njiAN57/JFgKY2dsYf5NZERERkXljuiNIHwduBczM9gLbgAsqFZSIiIhIkkqOIJnZYjP7qLtvcvdX\nAJcBLwCPoQnaIiIiMk9NdYrtG4zN/l4FXAL8OblvsF1V2dBEREREkjHVKbYj3P1P8o/fA/zI3e8C\nMLP3zXalZnYluataZoFL3P23Rdp8EXi9u5802/WIiIiIzMZUI0j7Ch6/Gbi7oJydzQrzF3U6yt3X\nABcCVxdp8zLgTYy/FoKIiIhILKZKkOrN7EAzO5LctQY2AJhZG9A6y3WeDNwC4O6PAh35/gpdAXxy\nlv2LiIiIALmzVmZ2n5nda2avme7zpkqQvgQ8AmwC/pe778nf3+Re4P/MMtYVQFdBeVd+GTB6n7ef\nAU/Osn8RERGRaZ21mkzJOUjufqeZHQQ0j9yLzd33m9ml7l6ue7GNXk/JzJYCHyA3yvQSZnCtpc7O\n9jKFo/4XYv9xKPdr2LVr6jatrU0zXm+546zEvksqxp6eqQfOly5tnVGf1abW38vqP9n+5+qMj9+6\nmtygyb23XXHmwFTtp2HcWSsz6zCzNnffN8Xzpr4OUv4Gc+nIsrkkRzsoGDECXszYJQPeAryI3F1+\nFwFHmNkV7v7xqTrt6uqdQ0ildXa2q/953n8cKvkaJtPXNzij9ZZ7W1di3yUZ4549fdNuU4nXHYda\nfy+r/2T7n4szPn7rl4CPAM3Ar874+K1vv+2KM3fPMawVQOEXwUbOWm2Z6onTvZJ2OW0g9404zOx4\n4Bl37wNw939z99X5obC15G46N2VyJCIiIrXrjI/fejDwYXLJEeS+6T7htiFlMO0zU7EnSO7+S+B3\nZvYL4KvAxWZ2gZmdGXcsIiIiUhVayZ05KtRYhn5LnbUqabq3Gikrd49+Q21TkTZPkjvlJiIiIvPb\nFnJnmN6eLz8NfL8M/W4APgNcFz1rNZUkTrGJiIiIjLrtijOzwFnkTqtdBrzztivO/M1c+y121mq6\nz01kBElERESk0G1XnDkEfLnc/RY5azUtGkESERERiVCCJCIiIhKhBElEREQkQgmSiIiISIQSJBER\nEZEIJUgiIiIiEUqQREREZN4ys9VmtsXMPjyT5ylBEhERkXnJzFqAq4G7ZvpcXShSREREqsJ7b1q3\nmty90+69+exrB8rQ5QDwNmZx41uNIImIiEji3nvTui8B9wM/BX723pvWLZtrn+6edffB2Tw3kREk\n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\nREREKvwvjsPqymBfx28AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# PairGrid of variables\n", + "g = sns.PairGrid(df_clean, hue=\"Survived\", vars=['Pclass', 'Sex', 'Age'])\n", + "g.map_diag(plt.hist)\n", + "g.map_offdiag(plt.scatter)\n", + "g.add_legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can observe, for example, that more women survived as well as more people in 3rd class. \n", + "\n", + "We can represent these findings." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAESCAYAAAAbq2nJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHS5JREFUeJzt3XucVXW9//HX3JBhBmQGJhUQEtCPlzTDnxwg73i8lP7g\nqCmdMk2tjqmFeSnRFC+Ql5/D5agp2qRF2fllZXoUBEvzfh5BZvwsP2VHYQboyGUDM8MMc9u/P/YG\n94zMzBrYa19mvZ+Phw/3Wmuv7/7A0v3ea33X97sK4vE4IiISTYXZLkBERLJHISAiEmEKARGRCFMI\niIhEmEJARCTCFAIiIhFWHPYHmNkngCeBand/oMu2U4E5QBuwxN3vCLseERH5UKhnAmY2CFgIPN/N\nWxYA/wIcB5xmZoeGWY+IiHQW9uWgZuBMYH3XDWZ2ELDJ3de5exx4Fpgacj0iIpIi1BBw9w5339HN\n5v2BDSnLHwAHhFmPiIh0lksdwwXZLkBEJGpC7xjuwTo6//IfmVzXrba29nhxcVGoRfUnTU1NnH32\n2cTjcQoKCnj66acpLS3Ndlkiknnd/sjOZAh0KsLdV5vZYDMbTeLL/yzgX3tqIBbbHmJ5/U99/TZ2\nThAYj8dZv34zgwcPyXJVIpJpVVWDu90WagiY2QTgXmAM0Gpm5wJPAe+5+6+By4GfAXHgcXd/N8x6\nRESks1BDwN3/AJzcw/ZXgClh1iAiIt3LpY5hEemipmYRM2ZMp6ZmUbZLkX5KISCSo5qbm1i+fAkA\ny5cvpbm5KcsVSX+UzbuDJEV7ezt1dWvS2mZjY2On5draNZSVlaX1M0aNGk1Rke7YCkNra2tKx34H\nra2tDByou7skvRQCOaKubg2zfzmH0or0fUl3tLR3Wl74yoMUDkjfF3ZTrJHZ59zImDEHpa1NEcks\nhUAOKa0oo2x497dy9VX7jja2pCwPGlZO0T465CLyIfUJiIhEmH4WiogE1NHRwbx59xCLbaKoqJj6\n+nquvHImY8eOy3Zpe0whICIS0N///jc++OAf3HXXPADq6mqpq6tl2bIlbNjwAW1trUyffh7jxh3M\nDTdcQ3X1fbz99iqWLn2GWbNuyXL1u6cQEBEJ6KCDxjFgwD5873u3cfTREzjqqKMZOrSCdevWcttt\n32PHjmauuurfWLToUS6++FIefPA+Vq9+jzvuuDvbpXdLISAiElBxcTG3334n27Zt5e23/x81NQ/h\n/g4DBgxg7txbAXbdMn3ssZN46KEHOOmkUxg0aFA2y+6RQkBEJKA331zJtm1bOfHEU5g8+dOMH38w\nn/vc/+b00z/DDTfcDMDq1e8DsGzZEo4//kRWrvw9p5/+GaqqPpbFyrunEBARCejgg43q6rtYsuQ/\nGTBgH5qbm5g3737eeOM15syZTUNDA//0T5MZNGgQzzzzNPPm3cdxx53I3XfP4Z57FmS7/N1SCPRj\nBYUps3cXdFmWtMrHEd8a7d135eXl3Hzz7R9Z/6lPHfORdQsWPADAuHHjczYAQCHQrxWWFFF+SCUN\nf91M+cGVFJbof/iw5NuIb432lp0UAv1cxcQRVEwcke0yIkEjviUfacSwiEiEKQRERCJMISAiEmEK\nARGRCFMvk4j0O2HcshvWLbVz597KySdPZfLk49LedhAKARHpd+rq1nDT/CcYWF6ZlvaaGzZzx8zz\n+uUttQoBEemXBpZXMmhIVUY/c8mS/+TNN1eydesW3n//Pb7ylct5/vnneP/997n55tv4zW+W8847\nf6alZQfTpp3LWWdN27VvR0cHd989h/Xr19HW1sall36NCRP+V+g1KwRERNJo7do67r//YZ5++kkW\nL36MH/7wJzzzzFM8++zTHHTQWK666mp27NjBBRdM7xQCy5cvZfjwKr7zne+ydesWvvGNy3nsscdD\nr1chICKSRoceehgAw4YNZ9y48RQUFFBZOYyWlha2bt3K5ZdfQnFxCVu3bum036pVf2LVqj/ypz/9\nkXg8TmtrC21tbRQXh/s1rRAQEUmj1M7j1Nf/+Md61q1by/33P0JhYSGnnXZip/1KSkr40pcuYerU\n0zJWK+gWURGRjHjnnb+w3377UVhYyCuv/I6Ojnba2tp2bT/88CN46aUXAYjFNvPQQ/dnpC6dCYhI\nv9TcsDmn2jr22InU1tZy1VVf4/jjT2LKlOO59947d20/5ZR/5g9/WMHll19CR0ecSy756l5/ZhAK\nARHpd0aNGs0dM89Le5u9OfPMs3a9njLlOKZMOe4jr3c6//zPf2T/b3/7pr2ssu8UAiI5Ss+D2HNF\nRUX98p7+MKhPQCRH7XweBKDnQUhodCYgksP0PAgJm84EREQiTCEgIhJhCgERkQhTn4CI9DvZmEq6\nra2Nr3/9Mj7+8YOYNeuWtHzmP/6xnptu+jaPPPKjtLS3OwoBEel36urWMPuXcyitKEtLe02xRmaf\nc2OPt51u3LiRtrbWtAXATgUh3xkcegiYWTUwCegAZrr7ipRtVwBfANqAFe7+rbDrEZFoKK0oo2z4\n4Ix93n33VbN2bR1z597K9u3baWiop729nauvvo6xY8dzwQXTOfvs6bz44m8ZOXIUZofxwgvPc+CB\no7n55tt5992/UV19FyUlJRQUFHD77Xd1av+tt95k0aIHKC4uYb/99uP6629My+RyofYJmNkJwHh3\nnwJcBixM2TYYuBb4tLufABxhZhPDrEdEJCxXXnk1Bx44hpEjRzFp0hTmz3+Aa675Dv/+7/OAxPMC\nDj30cB555EesWvUWI0eO5OGHH+Ott96ksbGBWGwzV199PQsWfJ8jj/wky5Yt6dT+ggX/hzvvrGbB\nggcYOrSCF154Pi11h30mMBV4EsDd3zGzoWZW7u4NQAuwAxhiZo1AKZC+yT5ERLJg1aq32Lp1C889\n9ywALS0tu7YddtjhAFRWDmP8+EOSrytpaGigsnIY3//+Qpqbm9m0aSOnnXbmrv1isc3U1tZy443X\nEY/HaW5uZujQirTUG3YI7A+sSFnemFz3rrvvMLPbgP8GtgM/c/d3Q65HRCRUJSUDmDnzeo444hMf\n2VZUVLzb1/F44pf+hRdezLHHTuLxxxfT3Ny0a3txcQlVVVUsXPhg2uvNdMfwri6O5OWgWcB4oB54\nwcyOdPdV3e1cUTGI4uL+OXR+27b0dGBlWkVFGVVVmbvumqvy8fj152MXxvHo7e+rpWUbxcWFTJx4\nDCtWvMpJJ03m3Xff5ZVXXuHiiy+msLCA4cPLKS0tpbi4kGHDEu0VFRVSWTmIxsZ6PvEJY99992Hl\nyjc4+uijqawso7i4iLFjR1BcXMS2bR8wbtw4Fi9ezMSJEznkkEP2+s8VdgisI/HLf6cRwPrk68OA\nv7t7DMDMXgaOAboNgVhse0hlZl8s1pjtEvZILNbIhg312S4j6/Lx+PXnYxeLNdKUxmPSFGvs9e9r\n8+ZG2ts7OOOM6cyZcwvnnz+Djo4OZs68jg0b6unogI0bGxg4sI329g42bWqkpKSe9vYONm/ezrRp\n5/HVr36NUaMOZNq085g37x4mTz6JtrZ2Nmyo59prZ3HttdczYMAAhg0bztSpnw18/HoKr4J4PN7n\nv5CgzGwyMNvdTzezCcD8ZCcwZvYx4BXgyOSloWXAre7+anftbdhQH16xWbZ69Xvc9cL8jN7NsLca\nN9bz7ZNnarZG8u/49fdjl41xArmsqmpwtzeahnom4O6vm9lKM3sVaAeuMLOLgC3u/mszuwd40cxa\ngdd6CgARkaA0lXRwofcJuPusLqtWpWx7GHg47BpERGT3NHeQiEiEKQRERCJMISAiEmEKARGRCFMI\niIhEmEJARCTCFAIiIhGmEBARiTCFgIhIhCkEREQiTCEgIhJhCgERkQhTCIiIRJhCQEQkwhQCIiIR\nphAQEYkwhYCISIQpBEREIkwhICISYQoBEZEIUwiIiESYQkBEJMIUAiIiEaYQEBGJMIWAiEiEKQRE\nRCKsOOgbzWw/YExycbW7/084JYmISKb0GgJmdj5wA3AAUJtcPdrM1gLfc/efh1ifiIiEqMcQMLNH\nk++52N3f6rLtk8B1ZvZZd784tApFRCQ0vZ0J/Mrdf727DclQ+KKZTUt/WSIikgm9hcDRyV/8u+Xu\nt3UXEiIikvt6C4Gd2w9O/vMSUAScCLwZYl0iIpIBPYaAu38XwMyeAia6e3tyuQT4j/DLExGRMAUd\nJzAaKEhZjvPh7aIiIpKngo4TeAb4q5mtBDqACcCToVUlIiIZESgE3P3G5O2iR5I4I7jV3f8cZF8z\nqwYmkQiPme6+ImXbKOBxoAT4g7t/vW/li4jI3gh0OcjM9gFOI9Ev8AtgsJkNDLDfCcB4d58CXAYs\n7PKWe4F73H0S0J4MBRERyZCgfQIPAOOAk5PLE4BHA+w3leRlI3d/BxhqZuUAZlYAHAc8ndx+lbvX\nBa5cRET2WtAQONTdvwVsB3D37wMjAuy3P7AhZXljch1AFdAAzDezl81sbsBaREQkTYKGQFvy33EA\nMysDSvfg8wq6vB4JzCMx7uBTZnbmHrQpIiJ7KOjdQT83s98AY81sIXAmcH+A/dbx4S9/SJw9rE++\n3gi87+7vAyTbPwJY0l1jFRWDKC4uClhyftm2rSzbJeyRiooyqqoGZ7uMrMvH46djJxD87qD7zOy/\ngJOAHcAMd18ZYNdlwGzgYTObAKx198Zkm+1m9t9mNs7d/w4cA/y0p8Zise1Bys1LsVhjtkvYI7FY\nIxs21Ge7jKzLx+OnYxcdPYV9oBAwszeAHwE/cPfNQT/Y3V83s5Vm9irQDlxhZhcBW5JzDl0NPJrs\nJF7l7k8HbVtERPZe0MtB1wAXAG+a2R+BHwNPuXtLbzu6+6wuq1albPs7cHzAGkREJM0CdQy7+6vu\n/g3g4yQ6cs8A1oZYl4hI3qupWcSMGdOpqVmU7VK6FfgZw2Y2FLgIuA74NPBQWEWJiOS75uYmli9P\n3OeyfPlSmpubslzR7gXtE3iOxJ07TwJz3P21UKsSEclzra2txONxAOLxDlpbWxk4cE/urA9X0D6B\nBcBSd+8IsxgREcms3p4xvMDdv0niQfPfMbNO2939hBBrExGRkPV2JlCT/PdNYRciIiKZ19uTxd5K\nvryLxDiBn/VlnICIiOS20McJiIhI7tI4ARGRCAt6JrBznMB04HPAWDROQEQk7/V1nMCv0DgBEZF+\nI+iZwO+Az7h7e5jFiIhIZgWdNuJUBYCISP8T9ExgjZm9CLwB7LojyN1vDqMoERHJjKAh8F7yHxER\n6UeChsDtoVYhIiJZETQE2kg+ZD4pDmwFhqW9IhERyZigzxje1YFsZgOAqcAnwypKRCRT2tvbqatb\nk/Z2Gxs7P3e6tnYNZWVlaWt/1KjRFBUV7XU7gQeL7ZScKmKJmV0L3LnXFYiIZFFd3Rpm/3IOpRXp\n+4IG6GjpfEPlwlcepHDA3n9pAzTFGpl9zo2MGXPQXrcVdLDYJV1WHQiM3OtPFxHJAaUVZZQNH5zW\nNtt3tLElZXnQsHKK9unz7+7QBa0o9WHwcWAbcH76yxERkUwK2ifw5Z2vk3MIbXX3eA+7iIhIHuhx\nxLCZHWVmP09Z/gmwDlhnZhPDLk5ERMLV27QRC0k8TAYzOwGYDOxH4u6gueGWJiIiYestBArd/enk\n67NJPFms3t3/DBSEW5qIiISttxBoTXl9MvBiH/YVEZEc11vHcJOZTQOGAKOBFwDMzID03PAqIiJZ\n01sIfBP4PlAB/Ku7t5pZKfAKukVURCTv9XZJZ427n+bux7r78wDu3gQc7O47zwpKwi4yl9TULGLG\njOnU1CzKdikiInuttxBYamaHdF3p7lsAzOxQYGkYheWi5uYmli9fAsDy5Utpbm7KckUiInunt8tB\n3wB+Zma1JL7sa5PrDwTOAEYBXwqvvNzS2tpKPJ4YIxePd9Da2srAgaVZrkpEZM/1GALu/raZHQNM\nI/Glf1ZyUy3wQ+DXGjksIpK/ep02Ivkl/2TyHxER6UeCziL6eeB6oJKUQWLuPjqkukREJAOCziJ6\nK3AZsDrEWkREJMOChsDf3P2lUCsREZGMCxoCr5nZXBLTRrTtXOnuv+1tRzOrBiYBHcBMd1+xm/d8\nD5jk7icHrEdERNIgaAicmvz35JR1caDHEEjOPDre3ackxxTUAFO6vOcwEg+taQlYi4hIzisoTJlj\ns6DLcg4J+lCZj/xCN7NzA+w6leRdRe7+jpkNNbNyd29Iec+9wCxgdpBaRETyQWFJEeWHVNLw182U\nH1xJYUluTrcW9O6g0cCVwPDkqn2AU4Bf9LLr/kDq5Z+NyXXvJtu9iMSkdOpwFpF+p2LiCComjsh2\nGT0KOh30j4HNJC4HrQSqgAv34PN2nQ+ZWQXwZaA6uT43z5VERPqxoH0Cbe5+p5md4e73m9kPgMeB\n53vZbx2JX/47jQDWJ1+fQuLM4mVgIDDWzO5192u6a6yiYhDFxdk7pRowoKPT8rBh5ey77+C0tL1t\nW1la2sm0iooyqqrS83eQz/Lx+OnYJeTjsYP0Hb+gIVBqZqOADjMbS+LyzccD7LeMxLX+h81sArDW\n3RsB3P0XJC8nmdkY4Ic9BQBALLY9YLnhqK9v6LS8aVMDLS3pebZOLNaYlnYyLRZrZMOG+myXkXX5\nePx07BLy8dhB345fT2ER9BvsbhJ3CN0D/JHEtf3XetvJ3V8HVprZq8B84Aozuyj5oBoREcmyoHcH\n7Zo3yMwqgcHuHgu476wuq1bt5j2rSVweEhGRDAp0JmBmY8zsCTN7wd3bgHPN7OCQaxMRkZAF7RN4\nGLgP2HnN/q/AIhIPn8857e3t1NWtSXu7jY2drx3W1q6hrCw9nUpr19alpR0Rkb4IGgIl7v6UmV0N\n4O4vJZ41n5vq6tZw0/wnGFhemdZ24+2dBzVXL36ZgqIBaWl76wfvMXxy7+8TEUmnoCGAmQ0lMVUE\nZnYEkNOP1BpYXsmgIVVpbbOjrZnU+4NKBw+jsHhgWtpubtgM6E4NEcmsoCFwG/AGcICZ/YnE/f1f\nDK0qERHJiKAh4MBjQAlwNPAscBy9TCAnIiK5Leg4gSXAwSRC4G2gNflaRETyWNAzgU3ufkmolYiI\nSMYFDYFfmdkXgNfp/FCZ9N+HKSIiGRM0BI4CvgBsSlkXB/SgeRGRPBY0BCYBFe6+I8xiREQks4J2\nDP+exHTPIiLSjwQ9ExgFvG9mf6Fzn8AJoVQlIiIZETQE5oRahYiIZEXQqaR/F3YhIiKSeel5LJaI\niOQlhYCISIQpBEREIkwhICISYQqBvigoSl3osiwikn8UAn1QWFRCadVhAJRWHUphkSZSFZH8FvjJ\nYpIwZPRkhozWcyBFpH/QmYCISIQpBEREIkwhICISYQoBEZEIUwiIiESYQkBEJMIUAiIiEaYQEBGJ\nMIWAiEiEKQRERCJMISCRUVOziBkzplNTsyjbpYjkDIWAREJzcxPLly8BYPnypTQ3N2W5IpHcoBCQ\nSGhtbSUejwMQj3fQ2tqa5YpEcoNCQEQkwkKfStrMqoFJQAcw091XpGw7GZgLtAHu7peFXY+IiHwo\n1DMBMzsBGO/uU4DLgIVd3vIgcI67Hw8MMbMzwqxHREQ6C/ty0FTgSQB3fwcYamblKduPcff1ydcb\ngGEh1yMiIinCDoH9SXy577QxuQ4Ad28AMLMDgH8Gng25HhERSZHpx0sWdF1hZh8DngIud/dYTztX\nVAyiuLj3h7tv21a2xwVK31RUlFFVNTjbZfRqwICOTsvDhpWz777pqzsf/5vLl2MXtnw8dpC+4xd2\nCKwj5Zc/MALYefkHMxtM4tf/De7+m94ai8W2B/rQWKyxb1XKHovFGtmwoT7bZfSqvr6h0/KmTQ20\ntKTvRDgf/5vLl2MXtnw8dtC349dTWIR9OWgZcB6AmU0A1rp76t94NVDt7stDrkNERHYj1DMBd3/d\nzFaa2atAO3CFmV0EbCEREF8ExpnZV4A48FN3fyTMmkRE5EOh9wm4+6wuq1alvC4N+/NFRKR7GjEs\nIhJhCgERyQuaBTYcCgERyXmaBTY8CgERyXmaBTY8mR4sJtKr9vZ26urWpLXNxsbO94LX1q6hrCx9\ng4TWrq1LW1simaQQkJxTV7eGm+Y/wcDyyrS1GW9v6bRcvfhlCooGpK39rR+8x/DJaWtOJGMUApKT\nBpZXMmhIVdra62hrJnXMcOngYRQWD0xb+80NmwGNvpX8oz4BEZEIUwiIiESYLgeJSFrlW8d+1Dv1\nFQIiklb51rEf9U59hYCIpF0+dexHvVNffQIiIhGmEBARiTCFgIhIhCkEREQiTCEgIhJhCgERyX0F\nRakLXZZlbygERCTnFRaVUFp1GAClVYdSWFSS5Yr6D40TkGjQL8m8N2T0ZIaMjvCorpDoTEAiQb8k\nRXZPZwISGfolKfJROhMQEYkwhYCISIQpBEREIkwhICISYQoBEZEIUwiIiESYQkBEJMIUAiIiEaYQ\nEBGJMIWAiEiEKQRERCJMISAiEmEKARGRCAt9FlEzqwYmAR3ATHdfkbLtVGAO0AYscfc7wq5HREQ+\nFOqZgJmdAIx39ynAZcDCLm9ZAPwLcBxwmpkdGmY9IiLSWdiXg6YCTwK4+zvAUDMrBzCzg4BN7r7O\n3ePAs8n3i4hIhoQdAvsDG1KWNybX7W7bB8ABIdcjIiIpMv1ksYI93NZnzQ2b09lc6HZs30pxrDHb\nZfRJU4j16viFK8xjB/l1/PLt2EF6j1/YIbCOD3/5A4wA1qdsS/3lPzK5rltVVYMDBUVV1VEsXXxU\nH8qUXKLjl990/PJL2JeDlgHnAZjZBGCtuzcCuPtqYLCZjTazYuCs5PtFRCRDCuLxeKgfYGZzgROB\nduAKYAKwxd1/bWbHAXcDceAJd58XajEiItJJ6CEgIiK5SyOGRUQiTCEgIhJhCgERkQjL9DgB6YaZ\nfYLE6Opqd38g2/VIcGZ2N4mpT4qAO939V1kuSQIys1LgUWA/YB/gDnd/JqtFZZjOBHKAmQ0iMa/S\n89muRfrGzE4CDk/Oj3UmMD+7FUkfnQ383t1PAi4AqrNbTubpTCA3NJP4AvlOtguRPvsd8F/J11uA\nQWZWkJwPS3Kcu//flMXRQG22askWhUAOcPcOYIeZZbsU6aPkl31TcvEy4FkFQP4xs1dJzFpwVrZr\nyTRdDhJJAzObBnwZuDLbtUjfufungWnAT7JdS6YpBET2kpmdDtwAnOHu9dmuR4IzswlmNgrA3d8C\nis1seJbLyiiFQO5J62yqEi4zG0Ji6pOz3H1rtuuRPjsBuAbAzPYDytx9Y3ZLyixNG5EDkpPr3QuM\nAVqBtcA57r4lq4VJr8zsK8AtwF9JBHgc+JK712W1MAnEzAYCPwAOBAYCs9392exWlVkKARGRCNPl\nIBGRCFMIiIhEmEJARCTCFAIiIhGmEBARiTCFgIhIhGnuIJEkMxsDOPAaiXv+S4D3ga+7+7bdvP8i\n4FR3vzCTdYqkk0JApLMP3P2UnQvJZwV8F7ium/droI3kNYWASM9eAr5qZhNJPCtgB7AZuCj1TWY2\nHbiexIyixcCF7r7GzL4JfAFoBLYDXyQxMnXnRGWlwEPu/mj4fxSRj1KfgEg3zKwIOAd4GVgMXOru\nJ5N4hsBnurx9KHC+u08FlvDhbKK3Ap9N7jcfGEHi4SV/SZ5xnAgMCvvPItIdnQmIdPYxM/stiT6B\nAhJnAo8C17r7XwDcfSHs6hPY6X+AH5lZIYlHFb6eXP8I8JyZPQH83N3/ZmZtwOVmVgM8CywK/48l\nsns6ExDp7AN3P8XdT3b3k9z9ZqCdHv5fMbNi4D+Ay5KPKbxv5zZ3v5bEPPWbgSfN7HR3d+BwEmcX\npwIvhvWHEemNQkCks49M5e3um4GNZnYMgJl9y8z+LeUtg0kExerkrJTTgH3MbKiZ3QLUufuDwP3A\nRDP7PDDR3X8LfB04MHkGIZJxuhwk0ll3d/tcCCw0sxYSzxK+EDgXwN1jZvZTYAWJW0rvBn4MTAXK\ngd+bWQxoAS4lcbnoQTNrJhE6dyYfMSqScZpKWkQkwnQKKiISYQoBEZEIUwiIiESYQkBEJMIUAiIi\nEaYQEBGJMIWAiEiEKQRERCLs/wPeUvAxjUDjVgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(x=\"Pclass\", y='Survived', hue='Sex', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that more women survived in all the passenger classes." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are going to put in practice our knowledge about munging and visualisation. We will analyse every feature of the dataset." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feature Age" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We saw that there are 177 missing values of age. We are going this feature with more detail." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Histogram of Age\n", + "# For Series, you can use hist(), plot.hist() or plot(kind='hist')\n", + "df['Age'].hist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see the histogram is slightly *right skewed* (*sesgada a la derecha*), so we will replace null values with the median instead of the mean.\n", + "\n", + "In case we have a significant *skewed distribution*, the extreme values in the long tail can have a disproportionately large influence on our model. So, it can be good to transform the variable before building our model to reduce skewness.Taking the natural logarithm or the square root of each point are two simple transformations. " + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We see with more bins the distribution\n", + "df['Age'].hist(bins=30, range=(0, df['Age'].max()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we analyse the relationship of Age and Survived." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nuzz7AAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Now we visualise age and survived to see if there is some relationship\n", + "sns.FacetGrid(df, hue=\"Survived\", size=5).map(sns.kdeplot, \"Age\").add_legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We do no observe significant differences." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We plot the histogram per age\n", + "g = sns.FacetGrid(df, col='Survived')\n", + "g.map(plt.hist, \"Age\", color=\"steelblue\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We observe that non survived is left skewed. Most children survived." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([,\n", + " ], dtype=object)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Alternative to Seaborn with matplotlib integrated in pandas\n", + "df.hist(column='Age', by='Survived', sharey=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([,\n", + " ], dtype=object)" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEGCAYAAACNaZVuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFAtJREFUeJzt3X+Q3HV9x/HnEUggm4v50TVQMmQQ9N1ax5mi03bQQvwx\nUAtqW1A7OtSCTrUWx0raqjMdFeq0FiRj0TJSREVGO6AdFURQsVRbRq2/RmSmvEeCQzhAcoSLuRzk\nB8n1j93ImUnudvf2u/u9+zwf/2R/3Ge/r/vufl7Z+36/+92R6elpJEllOWrYASRJg2f5S1KBLH9J\nKpDlL0kFsvwlqUCWvyQV6OhhB9DTIuKlwBVAA3gAuDAzHx5uKmnwIuJo4J+BdwLrnQf95zv/moiI\n5cC/Axdl5m8AXwauGW4qaWi+BOwE/CBSRSz/+ngpsCUzf9y+/gngrIhoDDGTNCyXZealwMiwgyxW\nln99PAfYcvBKZk4B24FTh5ZIGpLM/O6wMyx2ln99LAd2H3Lbk7S2/0tSX1n+9TEFHHvIbcuBXUPI\nImmRs/zr417g2QevRMQzgFXAT4eWSNKiZfnXx53ASRFxevv6O4EvZ+aTQ8wkaZEa8ZTO9RERZwBX\n0drccx/w55m5bbippMGKiGcC32xfPXggxFPAyzLzkaEFW2TmLP+IOA74FLAOWAZ8ADgfeAHwWPvH\nrsjM26qLKUnqp04+4ftK4HuZ+aGIOAn4OnAX8O7M/Eql6SRJlZiz/DPzphlXTwIebF/2wxeStEB1\nvM0/Iu4CTgTOBTbx9GagR4GLM/PxqkJKkvqr46N9MvNFwKuAzwCfprXZ52XAj4FLq4knSarCnJt9\nIuI0YFtmjmXm3e2z7f0kMw/u7L0ZuHq2x5ienp4eGXErkSqx4F5YzgdVpKsXVSc7fM8ANgDvjIh1\nwArgmoj4m8z8GbARuGfWRCMjjI9PdpNrIJrNUXN1qI6ZoJVroanjfKjz81u3XHXMBN3PhU7K/2PA\ndRHxLVqnH3gbrVMO3BgRU+3LF3aZU5I0RJ0c7bMbeMNh7vqd/seRJA2Cp3eQpAJZ/pJUIMtfkgpk\n+UtSgSx/SSqQ5S9JBbL8JalAnXzIS5q3/fv3Mza2tetx69efxJIlSypIJJXN8tdAjI1tZdPmW1na\nWNvxmL1T27nyknPYsOHkCpNJZbL8NTBLG2s5duW6YceQhNv8JalIlr8kFcjyl6QCWf6SVCDLX5IK\nZPlLUoEsf0kqkOUvSQWy/CWpQJa/JBXI8pekAln+klSgOU/sFhHHAZ8C1gHLgA8APwZuoPWfxyPA\nBZm5r7qYkqR+6uSd/yuB72XmRuB1wGbgMuCjmXkmsAW4qLKEkqS+m/Odf2beNOPqScCDwJnAW9q3\n3QJsAq7pezpJUiU6Pp9/RNwFnEjrL4Gvz9jMsw04oYJskqSKdFz+mfmiiHg+8BlgZMZdI0cY8iua\nzdEuow2GuTo3n0w7dzZ6Grd6daOW62K+6vg71TET1DNXHTN1q5MdvqcB2zJzLDPvjoglwGRELMvM\nPbT+Gnh4rscZH5+cf9o+azZHzdWh+WaamJjqedxsy12ok3CxPb9VqWOuOmaC7udCJzt8z6C1TZ+I\nWAesAO4Azm/ffx5we1dLlSQNVSebfT4GXBcR3wKOBf4S+AFwQ0T8BfAAcH11ESVJ/dbJ0T67gTcc\n5q6z+h9HkjQIfsJXkgpk+UtSgSx/SSqQ5S9JBbL8JalAlr8kFcjyl6QCWf6SVCDLX5IKZPlLUoEs\nf0kqkOUvSQWy/CWpQJa/JBXI8pekAln+klQgy1+SCmT5S1KBLH9JKpDlL0kFsvwlqUCWvyQV6OhO\nfigiLgdeDCwBPgi8CngB8Fj7R67IzNsqSShJ6rs5yz8iNgLPzczTI2IN8CPgG8C7M/MrFeeTJFWg\nk3f+3wS+2768A2jQ+gtgpKpQkqRqzVn+mTkNPNm++mbgVmA/cHFEXAI8ClycmY9XllKS1FcdbfMH\niIhXAxcCZwEvBLZn5t0R8S7gUuDts41vNkfnk7My5urcfDLt3Nnoadzq1Y1arov5quPvVMdMUM9c\ndczUrU53+J4NvAc4OzMngTtn3H0zcPVcjzE+PtlTwCo1m6Pm6tB8M01MTPU8brblLtRJuNie36rU\nMVcdM0H3c2HOQz0jYiVwOXBuZv6ifdvnI+Lk9o9sBO7pLqYkaZg6eef/OmAtcFNEjADTwCeBGyNi\nCthFa3OQJGmB6GSH77XAtYe564b+x5EkDYKf8JWkAln+klQgy1+SCmT5S1KBLH9JKpDlL0kFsvwl\nqUCWvyQVyPKXpAJZ/pJUIMtfkgpk+UtSgSx/SSqQ5S9JBbL8JalAlr8kFcjyl6QCWf6SVCDLX5IK\nZPlLUoEsf0kqkOUvSQU6upMfiojLgRcDS4APAt8DbqD1n8cjwAWZua+qkJKk/prznX9EbASem5mn\nA68APgxcBnw0M88EtgAXVRlSktRfnWz2+SbwmvblHUADOBO4uX3bLcDL+x9NklSVOTf7ZOY08GT7\n6puAW4GzZ2zm2QacUE08SVIVOtrmDxARr6a1eecs4L4Zd410Mr7ZHO0u2YCYq3PzybRzZ6OncatX\nN2q5Luarjr9THTNBPXPVMVO3Ot3hezbwHlrv+CcjYjIilmXmHuBE4OG5HmN8fHJ+SSvQbI6aq0Pz\nzTQxMdXzuNmWu1An4WJ7fqtSx1x1zATdz4VOdviuBC4Hzs3MX7RvvgM4r335POD2rpYqSRqqTt75\nvw5YC9wUESPANPBG4LqIeAvwAHB9dRElSf3WyQ7fa4FrD3PXWf2PI0kaBD/hK0kFsvwlqUCWvyQV\nyPKXpAJZ/pJUIMtfkgrU8ekdJID9+/czNra163EPPTRWQRpp4el1DgGsX38SS5Ys6UsOy19dGRvb\nyqbNt7K0sbarcbvG72NF89SKUkkLR69zaO/Udq685Bw2bDi5Lzksf3VtaWMtx65c19WYPbu2V5RG\nWnh6mUP95jZ/SSqQ5S9JBbL8JalAlr8kFcjyl6QCWf6SVCDLX5IKZPlLUoEsf0kqkOUvSQWy/CWp\nQJa/JBXI8pekAnV0Vs+IeB7wRWBzZl4dEZ8EXgA81v6RKzLztooySpL6bM7yj4jlwFXAHYfc9e7M\n/EolqSRJlepks89u4BXAIxVnkSQNyJzv/DPzALAnIg696+KI2AQ8ClycmY9XkE9atPbu3cv9P/tZ\n1+OOOgqefepzGBkZqSCVStHrN3l9GtiemXdHxLuAS4G3zzag2RztcVHVMlfnms1Rdu5sDHSZq1c3\narku5qvZHOU7//t93vfxuzh62YruBj8xxn9cHYyO9ne91HU91zHXfDLNZw71cz70VP6ZeeeMqzcD\nV881Znx8spdFVarZHDVXhw5mmpiYGuhyJyamZl0XdSyGToyPT7JjxxMsXb6aY457RldjDxyY5LHH\ndrF7d//y1PE1B/XMNd9M85lDs82HbudCT4d6RsTnI+LgtwhvBO7p5XEkScPRydE+pwFXAhuAfRFx\nPvAR4MaImAJ2ARdWmlKS1Fed7PD9IfCSw9z1hf7HkSQNgp/wlaQCWf6SVCDLX5IKZPlLUoEsf0kq\nkOUvSQWy/CWpQJa/JBXI8pekAln+klQgy1+SCmT5S1KBev0yF0lDMj19gK1bH6DRWN712PXrT2LJ\nkiUVpCrP/v37GRvb2vW4hx4aqyBN9yx/aYHZM7WD915zJ0sba7sat3dqO1decg4bNpw89w9rTmNj\nW9m0+daun4dd4/exonlqRak6Z/lLC9DSxlqOXblu2DGK18vzsGfX9orSdMdt/pJUIMtfkgpk+UtS\ngSx/SSqQ5S9JBbL8JalAHR3qGRHPA74IbM7MqyNiPXADrf88HgEuyMx91cWUJPXTnO/8I2I5cBVw\nx4ybLwM+kplnAluAi6qJJ0mqQiebfXYDr6D1Dv+gjcAt7cu3AC/vbyxJUpXmLP/MPJCZew65uTFj\nM8824IS+J5MkVaYfO3xH+vAYkqQB6vXcPpMRsaz9F8GJwMNzDWg2R3tcVLXM1blmc5SdOxsDXebq\n1Y1arov5ajZHWbWq+7NyAhx1VO/vt2Zbn3Vdz3XMNYy5AP2dD72W/x3AecBn2//ePteA8fHJHhdV\nnWZz1FwdOphpYmJqoMudmJiadV3UsRg6MT4+yY4dT/Q09sCB6Z7/ZD/S+qzjaw7qmWtYcwFmnw/d\nzoU5yz8iTgOuBDYA+yLifOANwPUR8RbgAeD6rpYqSRqqOcs/M38IvOQwd53V/ziSpEHwE76SVKCh\nf5nLU0891dPXmo2OrmTNmjUVJJKkxW/o5X9v3stlH/9vjjnuGV2N+83mk/z9O99UUSpJWtyGXv5M\nw9IVTZY2unsXv/S4RysKJEmLn9v8JalAlr8kFcjyl6QCWf6SVCDLX5IKZPlLUoEsf0kqkOUvSQWy\n/CWpQMP/hK8kDdH+/fsZG9va8c/v3NlgYmKqp3OS1YnlL6loY2Nb2bT5VpY21nY1btf4faxonlpR\nqupZ/pKKt7SxlmNXrutqzJ5d2ytKMxhu85ekAln+klQgy1+SCmT5S1KB3OFbkW4PH5tpzZrf6nMa\nSfpVln9Fej18bO/Udj7xDw1WrnxmRckkqcfyj4gzgc8B9wAjwN2Z+Y5+BlsMejl8TJIGYT7v/P8r\nM1/btySSpIGZzw7fkb6lkCQN1Hze+T83Ir4IrAEuy8w7+pRJklSxXsv/p8D7M/NzEfEs4M6IOCUz\nn+pjtiJNTx/gwQcfZMWKqa7GrV9/EkuWLOlqTDdHJC2Wk1lJaump/DPzYVo7fMnM+yPi58CJwANH\nGtNsjh729lWrG71E4NhlxxzxMbvRj8c4nJ07e/u99k5N8L5/+3ZXRwm1jhB6LaecckpXy9qyZUvX\nRyQN+mRWq1c3KnuOhqnZHGXVquU9jT3qqN63uM62Puu6nqvO1etcHYZ+zodej/Z5PXBCZl4ZEccD\nzwQemm3M+PjkYW/fMdHdO9yDdu/Zd8TH7FSzOTrvxziSiR5/L+jtKKGJiamuf5eJiamulzXok1nN\n9XvVtbDmMj4+yY4dT/Q09sCB6Z531h1pfVY5F+ZjELnmM1cHbbb50O1c6HWzz83AZyPi1cAxwFvd\n5CNJC0evm312Aa/qcxZJ0oB4bh9JKtCCPL3D9IED7NyxnQce+FnXY6s+KuYgj4pR3UxPHzji6/Lg\n0VxHMqh5M5/lqTsLsvz37Brn3il4zzXf6Wrc3qntXHnJOWzYcHJX43o5T89C/4o3LT57pybYfOME\nSxvdvTEZ5LyZz/LUnQVZ/jD48+bU/agYqRN1nzcaHLf5S1KBLH9JKpDlL0kFWrDb/CUNxmxHCc1m\n0Ee89Xp0UalH5ln+kmbV61FCgz7irdeji0o9Ms/ylzSnXo7aGcYRbwslZx24zV+SCmT5S1KBLH9J\nKpDlL0kFsvwlqUCWvyQVyPKXpAJZ/pJUIMtfkgpU1Cd8Dz1HyVzfXnRQqef+kIZh5jztdI6C87Rb\nRZX/QjlHiVQy5+lgFFX+4Lk/pIXAeVq9nss/IjYDvwccAP46M7/ft1SSpEr1tMM3Is4ATs3M04E3\nA1f1NZUkqVK9Hu3zMuCLAJl5L7AqIlb0LZUkqVK9lv/xwPiM64+1b5MkLQD92uE70uvAVauewbNW\n7uCYZXs6HjO5bzv3P9b9/1v7npxgpIekvYwb5LL2Tm3v+Wv29k51t5Ns0L/XYrZm9WqeNfojjl76\nRFfjHh/dy4M97Nwc5HPnuP6P6/d8GJmenu56UES8D3g4M69tX98CPD8zOzsgV5I0VL1u9vkacD5A\nRJwGPGTxS9LC0dM7f4CI+EfgTGA/8FeZ+ZN+BpMkVafn8pckLVye2E2SCmT5S1KBLH9JKpDlL0kF\nquysnu3TPRz81O8jdToUNCKOBk6kdYjqU8POo8WtznMBnA+l6vvRPhHxQloneltF67QPI8CvAw8x\npENCI+JfMvMd7csvB64Dfg48E3hrZn510JnaWY4BLgJeDpzQvvlh4Hbg+szcP6Rcr8jM29qX1wCX\nAs8D7gEuzczHhpCplutqNnWcC+1czofOM9VuLrSzzHtdVfHO/8PARe0Tvv1S+8Ng/wqcUcEy5/L8\nGZffC7wkM++PiOOBLwBDebEDNwBbgCuBbbTK4UTgPOCTwJ8NKdffAre1L38U+DFwNbCRVq5XDiFT\nXdfVbOo4F8D50I06zgXow7qqovyPOvTFDpCZP4yIJRUsrxMz/7x5PDPvb2f6eUTsG1ImgBMy808P\nuW0L8K2I+OYwAh3Gusz85/bl/4uI1w4px0JYV4eq41wA50Ov6jIXoA/rqory/05E3EzrlM8Hz/x5\nPK3TQQzrCXxeRNxE63/HZ0fEazLzcxGxCdgxpEwAByLiT4BbMnMfQEQso/W/d+dnuuu/X4uIP2xf\n3hMRz8/MuyPiZKAxpEwHIuI84OaaravZ1HEugPOhG3WcC9CH+dD38s/MS9pf9vIy4HfbNz8MvD8z\nv93v5XXoNYdc/2n730eA1w84y0wXAJcBH4qIgy+kSeAO4I1DSwU/4Ol19iiwtn35CuCfhpLo6XV1\neXtdjfD0unrTkDLNqqZzAZwP3ajjXIA+zAdP71BTEfGfmfnSYec41LByRcQf09qG3gBuBS7OzMlh\nZtLg1PE5HmamfsyH4r7AvU4i4m2z3H3iwIIcoqa53g38Nq3NEm8CvhYRf5CZv2Ae3yeh+qjj666O\nmdrmPR8s/+G6hNafaY8c5r5jBpxlpjrm2p+Zj7cvXxsR24CvRsS5/OoOTC1cdXzd1TET9GE+WP7D\n9Ue0jgN/R2b+yk6aiNg4lEQtdcz1PxHxZeA1mflkZn4pInYD3+Dp7bBa2Or4uqtjJujDfPD0DkOU\nmfcA5wKHO7xu04Dj/FIdc2Xm3wEfAnbPuO2rwO/T+uCNFriavu5qlwn6Mx/c4StJBfKdvyQVyPKX\npAJZ/pJUIMtfkgpk+UtSgf4foMgO1vAfFAwAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We can observe the detail for children\n", + "df[df.Age < 20].hist(column='Age', by='Survived', sharey=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.48170731707317072" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Mean of survival for young\n", + "df[df.Age < 20]['Survived'].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There were null values, we will recap at the end of this notebook how to manage them.\n", + "\n", + "We are going now to see the distribution of passengers younger than 20 that survived." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df.query('Age < 20 and Survived == 1').groupby(['Sex','Pclass']).size().unstack(['Pclass']).plot(kind='bar')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nCvT/AKG37QEBnHAEAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Passengers older than 25 that survived grouped by Sex\n", + "\n", + "df.query('Age < 20 and Survived == 1').groupby(['Sex','Pclass']).size().plot(kind='bar')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are going to improve it a bit." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We pass 'Sex' from columns to rows with unstack, so that now Pclass is in the columns\n", + "df.query('Age < 20 and Survived == 1').groupby(['Sex','Pclass']).size().unstack(['Sex']).plot(kind='bar')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Now we make that the plot shows both values combined, and change the labels\n", + "df.query('Age < 20 and Survived == 1').groupby(['Sex','Pclass']).size().unstack(['Sex']).plot(kind='bar', \\\n", + " \n", + " stacked=True) " + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nZ/ONb3xrXF53YI27PpJxkyaBKTOnssEm05s9DABOOWU+N9/8e1atWsUee+zFvHlv4Oijj2SjjdrJ\nvI1HHulkn33248ILz6er61FOOukUAI444vMsX95Nd3c3H//4J3nhC+cA1ef7H3roIb7ylaN48skn\nWWedVj7zmc+v9kn27nOTNKj+JzDddNPveeCB+zjppFM44YSTOfPM0546Z7StrY0TTpjPVlttza23\n3szxx89nyy234oYbruPhhx9mt93eygknnMwHPnAQ3/te799yr9bcTjvtZN7xjn05/vj57Lnn2znj\njNNWe+yuuUka1N133/XUZYtaWlp42ctezq233vrUNICHH34IgDlzXgzAxhs/m9mz/wGAmTM35rHH\nHmPmzJmceeZpnHPO2axY8cRTl03qdcstN3PPPXdz5pmn0dPTw0Ybta/22I2bpEH13+d27rnn8KY3\n7ca73vWeZzy27wGKvrd7eno499wfsMkms/jCF47ittv+xPz5JzztuW1t6/Kf//kVZs4cn0upg5ul\nkobQf7N0zpxtuPrq39DT08Py5cs5/vivjmg+jz76KJttthkAV131a1asWNH7CgC8+MXbcNVVvwbg\n+uuvZcGCS1Z77K65SZNA9+JlTZlX/z/2ss02/8S2227HBz6wPwC7777nkM/pvb3zzrvypS99kcsv\nv4w99tiLyy77FRde+At697ntv/+BHH30kSxY8CtaWlr43OeOGM1bGnjsXvJoaJP1UjCTmcv86bzk\n0eC85JE0iXnJo7Fxn5ukIhk3SUUybpKKZNwkFcm4SSqScZNUJOMmqUjGTVKRjJukIhk3SUUybpKK\nZNwkFcm4SSqScZNUJOMmqUjGTVKRjJukIhk3SUUybpKKZNwkFcm4SSqSf/1KmgQa8ef9+urqmkZn\n59KGzLv/nxGcKMZNmgQWLrybwy44kikzpzZ7KKPSvXgZX9718Kb8aULjJk0SU2ZOZYNNpjd7GJOG\n+9wkFcm4SSqScZNUJOMmqUjGTVKRjJukIhk3SUUa9nNuEbEBcCYwC1gf+BLwNuDlwEP1w76amRc1\naIySNGoj+RDvm4FrM/NrEbEFcClwNfCZzLywoaOTpDEaNm6ZeW6fL7cA7qlvtzRkRJI0DkZ8+lVE\nXA1sBrwJ+ARwUEQcAjwAHJyZixszREkavREfUMjMHYDdgO8D36XaLJ0H3AQc2ZjhSdLYjOSAwrbA\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Small touches\n", + "\n", + "pclass_labels = ['First', 'Second', 'Third']\n", + "sex_labels = {'Female': 0, 'Male': 1}\n", + "\n", + "plt = df.query('Age < 20 and Survived == 1').groupby(['Sex','Pclass']).size().unstack(['Sex']).plot(kind='bar', \n", + " stacked=True, rot=0, subplots=False, figsize=(5,10))\n", + "plt.set_xticklabels(pclass_labels)\n", + "plt.legend(labels=sex_labels)\n", + "plt.set_xlabel('Passenger class')\n", + "plt.set_title('Passenger class per sex')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#The same horizontal\n", + "pclass_labels = ['First', 'Second', 'Third']\n", + "sex_labels = {'Female': 0, 'Male': 1}\n", + "\n", + "plt = df.query('Age > 25 and Survived == 1').groupby(['Sex','Pclass']).size().unstack(['Sex']).plot(kind='barh', \n", + " stacked=True, rot=0, subplots=False)\n", + "plt.set_yticklabels(pclass_labels)\n", + "plt.legend(labels=sex_labels)\n", + "\n", + "plt.set_ylabel('Passenger class')\n", + "plt.set_title('Passenger class per sex')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feature Sex" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now going to explore the Sex attribute" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Sex\n", + "female 314\n", + "male 577\n", + "dtype: int64" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# How many passengers by sex\n", + "df.groupby('Sex').size()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see men are more numerous than women." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nTgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot with seaborn\n", + "sns.countplot('Sex', data=df)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n/KdwAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Same graph with matplotlib and pandas\n", + "colors_sex = ['#ff69b4', 'b']\n", + "df.groupby('Sex').size().plot(kind='bar', rot=0, color=colors_sex)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Sex\n", + "female 233\n", + "male 109\n", + "Name: Survived, dtype: int64" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# How many passergers survived by sex\n", + "df.groupby('Sex')['Survived'].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Sex\n", + "female 0.742038\n", + "male 0.188908\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# How many passergers survived by sex\n", + "df.groupby('Sex')['Survived'].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that 74% of female survived, while only 18% of male survived." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Graphical representation\n", + "# You can add the parameter estimator to change the estimator. (e.g. estimator=np.median)\n", + "# For example, estimator=np.size is you get the same chart than with countplot\n", + "#sns.barplot(x='Sex', y='Survived', data=df, estimator=np.size)\n", + "sns.barplot(x='Sex', y='Survived', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see now if men and women follow the same age distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "g = sns.FacetGrid(df, col='Sex')\n", + "g.map(plt.hist, \"Age\", color=\"steelblue\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It seems they follow a similar distribution. We can separate per passenger class." + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'Pclass'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/usr/local/lib/python3.5/dist-packages/pandas/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 1875\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1876\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1877\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mpandas/index.pyx\u001b[0m in \u001b[0;36mpandas.index.IndexEngine.get_loc (pandas/index.c:4027)\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32mpandas/index.pyx\u001b[0m in \u001b[0;36mpandas.index.IndexEngine.get_loc (pandas/index.c:3891)\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32mpandas/hashtable.pyx\u001b[0m in \u001b[0;36mpandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12408)\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32mpandas/hashtable.pyx\u001b[0m in \u001b[0;36mpandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12359)\u001b[1;34m()\u001b[0m\n", + "\u001b[1;31mKeyError\u001b[0m: 'Pclass'", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mFacetGrid\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcol\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Sex'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Pclass'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhist\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"Age\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"steelblue\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python3.5/dist-packages/seaborn/axisgrid.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, data, row, col, hue, col_wrap, sharex, sharey, size, aspect, palette, row_order, col_order, hue_order, hue_kws, dropna, legend_out, despine, margin_titles, xlim, ylim, subplot_kws, gridspec_kws)\u001b[0m\n\u001b[0;32m 239\u001b[0m \u001b[0mrow_names\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 240\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 241\u001b[1;33m \u001b[0mrow_names\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcategorical_order\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mrow\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrow_order\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 242\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 243\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcol\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python3.5/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 1990\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1991\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1992\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_getitem_column\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1993\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1994\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_getitem_column\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python3.5/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_getitem_column\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 1997\u001b[0m \u001b[1;31m# get column\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1998\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mis_unique\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1999\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_item_cache\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2000\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2001\u001b[0m \u001b[1;31m# duplicate columns & possible reduce dimensionality\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python3.5/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m_get_item_cache\u001b[1;34m(self, item)\u001b[0m\n\u001b[0;32m 1343\u001b[0m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcache\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1344\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mres\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1345\u001b[1;33m \u001b[0mvalues\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1346\u001b[0m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_box_item_values\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalues\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1347\u001b[0m \u001b[0mcache\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mitem\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python3.5/dist-packages/pandas/core/internals.py\u001b[0m in \u001b[0;36mget\u001b[1;34m(self, item, fastpath)\u001b[0m\n\u001b[0;32m 3223\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3224\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0misnull\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3225\u001b[1;33m \u001b[0mloc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mitem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3226\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3227\u001b[0m \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0misnull\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python3.5/dist-packages/pandas/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 1876\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1877\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1878\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_maybe_cast_indexer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1879\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1880\u001b[0m \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_indexer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mtolerance\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mpandas/index.pyx\u001b[0m in \u001b[0;36mpandas.index.IndexEngine.get_loc (pandas/index.c:4027)\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32mpandas/index.pyx\u001b[0m in \u001b[0;36mpandas.index.IndexEngine.get_loc (pandas/index.c:3891)\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32mpandas/hashtable.pyx\u001b[0m in \u001b[0;36mpandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12408)\u001b[1;34m()\u001b[0m\n", + "\u001b[1;32mpandas/hashtable.pyx\u001b[0m in \u001b[0;36mpandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12359)\u001b[1;34m()\u001b[0m\n", + "\u001b[1;31mKeyError\u001b[0m: 'Pclass'" + ] + } + ], + "source": [ + "g = sns.FacetGrid(df, col='Sex', row='Pclass')\n", + "g.map(plt.hist, \"Age\", color=\"steelblue\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see there are more young men in third class. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feature Pclass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have already seen how passengers are distributed with Pclass" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Pclass\n", + "1 216\n", + "2 184\n", + "3 491\n", + "dtype: int64" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby('Pclass').size()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Distribution\n", + "sns.countplot('Pclass', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Most passengers are in 3rd class." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Survivors per class\n", + "sns.barplot(x='Pclass', y='Survived', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "As expected, passenger class is very significant, since most survivors are in first class.\n", + "\n", + "We can also see the distribution of classes per sex." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.factorplot('Pclass',data=df,hue='Sex',kind='count')" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Pclass Sex \n", + "1 female 0.968085\n", + " male 0.368852\n", + "2 female 0.921053\n", + " male 0.157407\n", + "3 female 0.500000\n", + " male 0.135447\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby(['Pclass', 'Sex']).Survived.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see most women in first class and second survived, 96% and 92% respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feature Fare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are going to analyse the feature *Fare* and will take the opportunity to introduce how to manage outliers.\n", + "\n", + "As we see in the PairGrid chart, Fare is directly related to the Passenger class." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df['Fare'].hist()" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[,\n", + " ]], dtype=object)" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df.hist(['Fare','Pclass'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see the distribution is right sweked. We are going to detect outliers using a box plot" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.boxplot(data=df['Fare'])" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We can see the same with matplotlib.\n", + "# There is a bug and if you import seaborn, you should add 'sym='k.' to show the outliers\n", + "df.boxplot(column='Fare', return_type='axes', sym='k.')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since Fare depends on Pclass, we are going to show outliers per passenger class." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "OrderedDict([('Fare',\n", + " )])" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df.boxplot(column='Fare', by = 'Pclass', return_type='axes', sym='k.')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that most outliers are in class 1. In particular, we see some values higher thatn 500 that should be an error." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
25825911Ward, Miss. Annafemale35.000PC 17755512.3292NaNC
67968011Cardeza, Mr. Thomas Drake Martinezmale36.001PC 17755512.3292B51 B53 B55C
73773811Lesurer, Mr. Gustave Jmale35.000PC 17755512.3292B101C
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "258 259 1 1 Ward, Miss. Anna \n", + "679 680 1 1 Cardeza, Mr. Thomas Drake Martinez \n", + "737 738 1 1 Lesurer, Mr. Gustave J \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "258 female 35.0 0 0 PC 17755 512.3292 NaN C \n", + "679 male 36.0 0 1 PC 17755 512.3292 B51 B53 B55 C \n", + "737 male 35.0 0 0 PC 17755 512.3292 B101 C " + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df.Fare > 400]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can replace this value by the median(), the mean(), or the second highest value." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "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", + " \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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
25825911Ward, Miss. Annafemale35.000PC 17755512.3292NaNC
73773811Lesurer, Mr. Gustave Jmale35.000PC 17755512.3292B101C
67968011Cardeza, Mr. Thomas Drake Martinezmale36.001PC 17755512.3292B51 B53 B55C
888911Fortune, Miss. Mabel Helenfemale23.03219950263.0000C23 C25 C27S
272801Fortune, Mr. Charles Alexandermale19.03219950263.0000C23 C25 C27S
34134211Fortune, Miss. Alice Elizabethfemale24.03219950263.0000C23 C25 C27S
43843901Fortune, Mr. Markmale64.01419950263.0000C23 C25 C27S
31131211Ryerson, Miss. Emily Boriefemale18.022PC 17608262.3750B57 B59 B63 B66C
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "258 259 1 1 Ward, Miss. Anna \n", + "737 738 1 1 Lesurer, Mr. Gustave J \n", + "679 680 1 1 Cardeza, Mr. Thomas Drake Martinez \n", + "88 89 1 1 Fortune, Miss. Mabel Helen \n", + "27 28 0 1 Fortune, Mr. Charles Alexander \n", + "341 342 1 1 Fortune, Miss. Alice Elizabeth \n", + "438 439 0 1 Fortune, Mr. Mark \n", + "311 312 1 1 Ryerson, Miss. Emily Borie \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "258 female 35.0 0 0 PC 17755 512.3292 NaN C \n", + "737 male 35.0 0 0 PC 17755 512.3292 B101 C \n", + "679 male 36.0 0 1 PC 17755 512.3292 B51 B53 B55 C \n", + "88 female 23.0 3 2 19950 263.0000 C23 C25 C27 S \n", + "27 male 19.0 3 2 19950 263.0000 C23 C25 C27 S \n", + "341 female 24.0 3 2 19950 263.0000 C23 C25 C27 S \n", + "438 male 64.0 1 4 19950 263.0000 C23 C25 C27 S \n", + "311 female 18.0 2 2 PC 17608 262.3750 B57 B59 B63 B66 C " + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Calculate hight values\n", + "df.sort_values('Fare', ascending=False).head(8)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "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", + " \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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
25825911Ward, Miss. Annafemale35.000PC 17755263.000NaNC
888911Fortune, Miss. Mabel Helenfemale23.03219950263.000C23 C25 C27S
272801Fortune, Mr. Charles Alexandermale19.03219950263.000C23 C25 C27S
34134211Fortune, Miss. Alice Elizabethfemale24.03219950263.000C23 C25 C27S
73773811Lesurer, Mr. Gustave Jmale35.000PC 17755263.000B101C
43843901Fortune, Mr. Markmale64.01419950263.000C23 C25 C27S
67968011Cardeza, Mr. Thomas Drake Martinezmale36.001PC 17755263.000B51 B53 B55C
31131211Ryerson, Miss. Emily Boriefemale18.022PC 17608262.375B57 B59 B63 B66C
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Name \\\n", + "258 259 1 1 Ward, Miss. Anna \n", + "88 89 1 1 Fortune, Miss. Mabel Helen \n", + "27 28 0 1 Fortune, Mr. Charles Alexander \n", + "341 342 1 1 Fortune, Miss. Alice Elizabeth \n", + "737 738 1 1 Lesurer, Mr. Gustave J \n", + "438 439 0 1 Fortune, Mr. Mark \n", + "679 680 1 1 Cardeza, Mr. Thomas Drake Martinez \n", + "311 312 1 1 Ryerson, Miss. Emily Borie \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", + "258 female 35.0 0 0 PC 17755 263.000 NaN C \n", + "88 female 23.0 3 2 19950 263.000 C23 C25 C27 S \n", + "27 male 19.0 3 2 19950 263.000 C23 C25 C27 S \n", + "341 female 24.0 3 2 19950 263.000 C23 C25 C27 S \n", + "737 male 35.0 0 0 PC 17755 263.000 B101 C \n", + "438 male 64.0 1 4 19950 263.000 C23 C25 C27 S \n", + "679 male 36.0 0 1 PC 17755 263.000 B51 B53 B55 C \n", + "311 female 18.0 2 2 PC 17608 262.375 B57 B59 B63 B66 C " + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Replace\n", + "df.loc[df.Fare > 400, 'Fare'] = 263.0\n", + "\n", + "# Check we have removed outliers\n", + "df.sort_values('Fare', ascending=False).head(8)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "OrderedDict([('Fare',\n", + " )])" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df.boxplot(column='Fare', by='Pclass', return_type='axes', sym='k.')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feature Embarked" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can analyze the distribution based on the port of embarkation (C = Cherbourg; Q = Queenstown; S = Southampton). " + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Embarked\n", + "C 168\n", + "Q 77\n", + "S 644\n", + "dtype: int64" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby('Embarked').size()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Distribution\n", + "sns.countplot('Embarked', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since there are missing values, we will replace them by the most popular value ('S'), and we will also encode it since it is a categorical variable.\n", + "\n", + "We can see if this has impact on its survival." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Embarked\n", + "C 0.553571\n", + "Q 0.389610\n", + "S 0.336957\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby(['Embarked']).Survived.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(x='Embarked', y='Survived', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It seems passengers embarked in C (Cherbourg) have a higher chance of survival.\n", + "We can analyse this by sex." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n9OkAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(x=\"Embarked\", y='Survived', hue='Sex', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is also an improvement by gender for passengers embarking in Cherbourg." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have to fill null values (2 null values) and encode this variable, since it is categorical. We will do it after reviewing the rest of features." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Features SibSp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We analyse the distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "SibSp\n", + "0 608\n", + "1 209\n", + "2 28\n", + "3 16\n", + "4 18\n", + "5 5\n", + "8 7\n", + "dtype: int64" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby('SibSp').size()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Distribution\n", + "sns.countplot('SibSp', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that most passengers traveled without siblings or spouses. \n", + "\n", + "We analyse if this had impact on its survival." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "SibSp\n", + "0 0.345395\n", + "1 0.535885\n", + "2 0.464286\n", + "3 0.250000\n", + "4 0.166667\n", + "5 0.000000\n", + "8 0.000000\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby('SibSp').Survived.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([,\n", + " ], dtype=object)" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df.hist(column='SibSp', by='Survived', sharey=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that it does not provide too much information. While the survival mean of all passengers is 38%, passengers with 0 SibSp has 34% of probability. Surprisingly, passengers with 1 sibling or spouse have a higher probability, 53%. We are going to see the distribution by gender" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "SibSp Sex \n", + "0 female 174\n", + " male 434\n", + "1 female 106\n", + " male 103\n", + "2 female 13\n", + " male 15\n", + "3 female 11\n", + " male 5\n", + "4 female 6\n", + " male 12\n", + "5 female 1\n", + " male 4\n", + "8 female 3\n", + " male 4\n", + "dtype: int64" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby(['SibSp', 'Sex']).size()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that for SibSp, there is almost the same number of men and women. Now we calculate the survival probability." + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "SibSp Sex \n", + "0 female 0.787356\n", + " male 0.168203\n", + "1 female 0.754717\n", + " male 0.310680\n", + "2 female 0.769231\n", + " male 0.200000\n", + "3 female 0.363636\n", + " male 0.000000\n", + "4 female 0.333333\n", + " male 0.083333\n", + "5 female 0.000000\n", + " male 0.000000\n", + "8 female 0.000000\n", + " male 0.000000\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby(['SibSp', 'Sex']).Survived.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(x=\"SibSp\", y='Survived', hue='Sex', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We observe that when SibSp > 2, the survival probability decreases to the half. We are going to check if there is a difference in the age. " + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "SibSp Sex \n", + "0 female 28.631944\n", + " male 32.615443\n", + "1 female 30.738889\n", + " male 29.461505\n", + "2 female 16.541667\n", + " male 28.230769\n", + "3 female 16.500000\n", + " male 8.750000\n", + "4 female 8.333333\n", + " male 6.416667\n", + "5 female 16.000000\n", + " male 8.750000\n", + "8 female NaN\n", + " male NaN\n", + "Name: Age, dtype: float64" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby(['SibSp', 'Sex']).Age.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(x=\"SibSp\", y='Age', hue='Sex', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Effectively, when SibSp > 3, age is lower. We are going to check the relationship with Pclass." + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "SibSp Pclass\n", + "0 1 137\n", + " 2 120\n", + " 3 351\n", + "1 1 71\n", + " 2 55\n", + " 3 83\n", + "2 1 5\n", + " 2 8\n", + " 3 15\n", + "3 1 3\n", + " 2 1\n", + " 3 12\n", + "4 3 18\n", + "5 3 5\n", + "8 3 7\n", + "dtype: int64" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby(['SibSp', 'Pclass']).size()" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "SibSp Pclass\n", + "0 1 0.562044\n", + " 2 0.416667\n", + " 3 0.236467\n", + "1 1 0.746479\n", + " 2 0.581818\n", + " 3 0.325301\n", + "2 1 0.800000\n", + " 2 0.500000\n", + " 3 0.333333\n", + "3 1 0.666667\n", + " 2 1.000000\n", + " 3 0.083333\n", + "4 3 0.166667\n", + "5 3 0.000000\n", + "8 3 0.000000\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby(['SibSp', 'Pclass']).Survived.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(x=\"Sex\", y='SibSp', hue='Pclass', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that in 3rd class, females had higher SibSp." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(x=\"SibSp\", y='Survived', hue='Pclass', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It seems that SibSp is relevant for determining the survival rate." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature ParCh" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The feature Parch (Parents-Children Aboard) is somewhat related to the previous one, since it reflects family ties. It is well known that in emergencies, family groups often all die or evacuate together, so it is expected that it will also have an impact on our model." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Parch\n", + "0 678\n", + "1 118\n", + "2 80\n", + "3 5\n", + "4 4\n", + "5 5\n", + "6 1\n", + "dtype: int64" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby('Parch').size()" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Distribution\n", + "sns.countplot('Parch', data=df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see most of the passenger had any parent or children.\n", + "\n", + "We analyze now the relationship with Survived." + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Parch\n", + "0 0.343658\n", + "1 0.550847\n", + "2 0.500000\n", + "3 0.600000\n", + "4 0.000000\n", + "5 0.200000\n", + "6 0.000000\n", + "Name: Survived, dtype: float64" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby('Parch').Survived.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Probability survival\n", + "df.groupby('Parch').Survived.mean().plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see the probability of surviving is higher in 2 and 3. Sincethere were too few rows for Parch >= 3, this part is not relevant." + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([,\n", + " ], dtype=object)" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nkCSV/j+eGCQpnpqiEwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df.hist(column='Parch', by='Survived', sharey=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": false + }, + "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", + " \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", + " \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", + "
SurvivedSibSpParch
PclassSexParch
1female00.9843750.48437564
11.0000000.41176517
20.8461541.07692313
male00.3636360.26262699
10.2857140.35714314
20.6250000.7500008
40.0000001.0000001
2female00.8888890.33333345
10.9444440.72222218
21.0000000.54545511
31.0000001.5000002
male00.0898880.22471989
10.5000001.07142914
20.4000000.4000005
3female00.5882350.34117685
10.4800001.24000025
20.3200002.56000025
30.5000000.5000002
40.0000000.5000002
50.2500000.5000004
60.0000001.0000001
male00.1216220.135135296
10.2666671.90000030
20.1666674.05555618
30.0000001.0000001
40.0000001.0000001
50.0000001.0000001
\n", + "
" + ], + "text/plain": [ + " Survived SibSp Parch\n", + "Pclass Sex Parch \n", + "1 female 0 0.984375 0.484375 64\n", + " 1 1.000000 0.411765 17\n", + " 2 0.846154 1.076923 13\n", + " male 0 0.363636 0.262626 99\n", + " 1 0.285714 0.357143 14\n", + " 2 0.625000 0.750000 8\n", + " 4 0.000000 1.000000 1\n", + "2 female 0 0.888889 0.333333 45\n", + " 1 0.944444 0.722222 18\n", + " 2 1.000000 0.545455 11\n", + " 3 1.000000 1.500000 2\n", + " male 0 0.089888 0.224719 89\n", + " 1 0.500000 1.071429 14\n", + " 2 0.400000 0.400000 5\n", + "3 female 0 0.588235 0.341176 85\n", + " 1 0.480000 1.240000 25\n", + " 2 0.320000 2.560000 25\n", + " 3 0.500000 0.500000 2\n", + " 4 0.000000 0.500000 2\n", + " 5 0.250000 0.500000 4\n", + " 6 0.000000 1.000000 1\n", + " male 0 0.121622 0.135135 296\n", + " 1 0.266667 1.900000 30\n", + " 2 0.166667 4.055556 18\n", + " 3 0.000000 1.000000 1\n", + " 4 0.000000 1.000000 1\n", + " 5 0.000000 1.000000 1" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby(['Pclass', 'Sex', 'Parch'])['Parch', 'SibSp', 'Survived'].agg({'Parch': np.size, 'SibSp': np.mean, 'Survived': np.mean})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We observe that Parch has an important impact for men in first and second class. We are going to check the age." + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Survived 0.439024\n", + "Age 27.871951\n", + "dtype: float64" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.query('(Sex == \"male\") and (Pclass == [1, 2]) and (Parch == [1, 2])')[['Survived', 'Age']].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that in those cases, the age is 27. We can compare with the rest of men if first and second class." + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Survived 0.269565\n", + "Age 36.063750\n", + "dtype: float64" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.query('(Sex == \"male\") and (Pclass == [1, 2])')[['Survived', 'Age']].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We observe that there is a significant difference, so we suspect that this feature has impact of men in first and second class." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Recap: Filling null values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature Age: null values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We fill null values of Age with its median." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "count 891.000000\n", + "mean 29.361582\n", + "std 13.019697\n", + "min 0.420000\n", + "25% 22.000000\n", + "50% 28.000000\n", + "75% 35.000000\n", + "max 80.000000\n", + "Name: AgeFilled, dtype: float64" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We create a new feature to maintain the original \n", + "df['AgeFilled'] = df['Age'].fillna(df['Age'].median())\n", + "df['AgeFilled'].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Bug: if you include Seaborn, add 'sym='k.' to show the outliers\n", + "df.boxplot(column='AgeFilled', return_type='axes', sym='k.')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another alternative is to use the function interpolate()." + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "count 891.000000\n", + "mean 29.726061\n", + "std 13.902353\n", + "min 0.420000\n", + "25% 21.000000\n", + "50% 28.500000\n", + "75% 38.000000\n", + "max 80.000000\n", + "Name: AgeFilled, dtype: float64" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['AgeFilled'] = df['Age'].interpolate()\n", + "df['AgeFilled'].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n15tBAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Bug: if you include Seaborn, add 'sym='k.' to show the outliers\n", + "df.boxplot(column='AgeFilled', return_type='axes', sym='k.')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature Embarking: null values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see most passengers are in 'S'. There were also missing values." + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Embarked'].isnull().sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we discussed previously, we will replace these missing values by the most popular one (mode): S." + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Replace nulls with the most common value\n", + "df['Embarked'].fillna('S', inplace=True)\n", + "df['Embarked'].isnull().any()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature Cabin: null values" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "We are going to analyse Cabin in the exercise" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Encoding categorical features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Recap: encoding categorical features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the previous notebook we saw how to encode categorical features. We are going to explore an alternative way." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "#df = df_original.copy()\n", + "#df['SexEncoded'] = df.Sex\n", + "#\n", + "#df.loc[df[\"SexEncoded\"] == 'male', \"SexEncoded\"] = 0\n", + "#df.loc[df[\"SexEncoded\"] == \"female\", \"SexEncoded\"] = 1\n", + "#\n", + "#df['EmbarkedEncoded'] = df.Embarked\n", + "#df.loc[df[\"EmbarkedEncoded\"] == \"S\", \"EmbarkedEncoded\"] = 0\n", + "#df.loc[df[\"EmbarkedEncoded\"] == \"C\", \"EmbarkedEncoded\"] = 1\n", + "#df.loc[df[\"EmbarkedEncoded\"] == \"Q\", \"EmbarkedEncoded\"] = 2\n", + "#df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Encoding Categorical Variables as Binary ones" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we see previously, translating categorical variables into integer can introduce an order. In our case, this is not a problem, since *Sex* is a binary variable, and we can consider there exists an order in *Pclass*.\n", + "\n", + "Nevertheless, we are going to introduce a general approach to encode categorical variables using some facilities provided by scikit-learn." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**LabelEncoder** transform categories into integers (0, 1, ...). We are going to use it for *Sex*." + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": false + }, + "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", + " \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", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarkedSexCoded
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS1
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C0
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS0
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S0
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS1
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked SexCoded \n", + "0 0 A/5 21171 7.2500 NaN S 1 \n", + "1 0 PC 17599 71.2833 C85 C 0 \n", + "2 0 STON/O2. 3101282 7.9250 NaN S 0 \n", + "3 0 113803 53.1000 C123 S 0 \n", + "4 0 373450 8.0500 NaN S 1 " + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.preprocessing import LabelEncoder, OneHotEncoder\n", + "\n", + "df = df_original.copy() # take original df\n", + "\n", + "# We define here the categorical columns have non integer values, so we need to convert them\n", + "# into integers first with LabelEncoder. This can be omitted if the are already integers.\n", + "\n", + "label_enc = LabelEncoder()\n", + "label_sex = label_enc.fit_transform(df['Sex'])\n", + "df['SexCoded'] = label_sex\n", + "\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ok, we see it has been easy and we have *Sex* as a binary variable.\n", + "\n", + "Now we are going to do the same with *Embarked* and *Pclass*. There are several alternatives in scikit-learn, such as *DictVectorizer* or *OneHotEncoder*.\n", + "\n", + "We are going to use *pd.get_dummies*, which provides a very easy-to-use way to encode categorical variables." + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "collapsed": false + }, + "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", + " \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", + "
PassengerIdSurvivedNameSexAgeSibSpParchTicketFareCabinSexCodedEmbarked_CEmbarked_QEmbarked_SPclass_1Pclass_2Pclass_3
010Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaN10.00.01.00.00.01.0
121Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C8501.00.00.01.00.00.0
231Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaN00.00.01.00.00.01.0
341Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C12300.00.01.01.00.00.0
450Allen, Mr. William Henrymale35.0003734508.0500NaN10.00.01.00.00.01.0
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Name \\\n", + "0 1 0 Braund, Mr. Owen Harris \n", + "1 2 1 Cumings, Mrs. John Bradley (Florence Briggs Th... \n", + "2 3 1 Heikkinen, Miss. Laina \n", + "3 4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) \n", + "4 5 0 Allen, Mr. William Henry \n", + "\n", + " Sex Age SibSp Parch Ticket Fare Cabin SexCoded \\\n", + "0 male 22.0 1 0 A/5 21171 7.2500 NaN 1 \n", + "1 female 38.0 1 0 PC 17599 71.2833 C85 0 \n", + "2 female 26.0 0 0 STON/O2. 3101282 7.9250 NaN 0 \n", + "3 female 35.0 1 0 113803 53.1000 C123 0 \n", + "4 male 35.0 0 0 373450 8.0500 NaN 1 \n", + "\n", + " Embarked_C Embarked_Q Embarked_S Pclass_1 Pclass_2 Pclass_3 \n", + "0 0.0 0.0 1.0 0.0 0.0 1.0 \n", + "1 1.0 0.0 0.0 1.0 0.0 0.0 \n", + "2 0.0 0.0 1.0 0.0 0.0 1.0 \n", + "3 0.0 0.0 1.0 1.0 0.0 0.0 \n", + "4 0.0 0.0 1.0 0.0 0.0 1.0 " + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Remove nulls\n", + "df['Embarked'].fillna('S', inplace=True)\n", + "df = pd.get_dummies(df, columns=['Embarked', 'Pclass'])\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Cleaning: dropping" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We should drop columns we will not use. In the exercise, you will need to use 'Cabin'." + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "collapsed": false + }, + "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", + " \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", + "
PassengerIdSurvivedNameSexAgeSibSpParchFareSexCodedEmbarked_CEmbarked_QEmbarked_SPclass_1Pclass_2Pclass_3
010Braund, Mr. Owen Harrismale22.0107.250010.00.01.00.00.01.0
121Cumings, Mrs. John Bradley (Florence Briggs Th...female38.01071.283301.00.00.01.00.00.0
231Heikkinen, Miss. Lainafemale26.0007.925000.00.01.00.00.01.0
341Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01053.100000.00.01.01.00.00.0
450Allen, Mr. William Henrymale35.0008.050010.00.01.00.00.01.0
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Name \\\n", + "0 1 0 Braund, Mr. Owen Harris \n", + "1 2 1 Cumings, Mrs. John Bradley (Florence Briggs Th... \n", + "2 3 1 Heikkinen, Miss. Laina \n", + "3 4 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) \n", + "4 5 0 Allen, Mr. William Henry \n", + "\n", + " Sex Age SibSp Parch Fare SexCoded Embarked_C Embarked_Q \\\n", + "0 male 22.0 1 0 7.2500 1 0.0 0.0 \n", + "1 female 38.0 1 0 71.2833 0 1.0 0.0 \n", + "2 female 26.0 0 0 7.9250 0 0.0 0.0 \n", + "3 female 35.0 1 0 53.1000 0 0.0 0.0 \n", + "4 male 35.0 0 0 8.0500 1 0.0 0.0 \n", + "\n", + " Embarked_S Pclass_1 Pclass_2 Pclass_3 \n", + "0 1.0 0.0 0.0 1.0 \n", + "1 0.0 1.0 0.0 0.0 \n", + "2 1.0 0.0 0.0 1.0 \n", + "3 1.0 1.0 0.0 0.0 \n", + "4 1.0 0.0 0.0 1.0 " + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.drop(['Cabin', 'Ticket'], axis=1, inplace=True)\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feature Engineering" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Feature Engineering is the process of using domain/expert knowledge of the data to create features that make machine learning algorithms work better. We are going to define several [new ones](https://triangleinequality.wordpress.com/2013/09/08/basic-feature-engineering-with-the-titanic-data/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# References" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [Basic Feature Engineering with the Titanic Data](https://triangleinequality.wordpress.com/2013/09/08/basic-feature-engineering-with-the-titanic-data/)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 +} diff --git a/ml2/3_5_Exercise_1.ipynb b/ml2/3_5_Exercise_1.ipynb new file mode 100644 index 0000000..636caac --- /dev/null +++ b/ml2/3_5_Exercise_1.ipynb @@ -0,0 +1,539 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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 II](3_0_0_Intro_ML_2.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise - The Titanic Dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this exercise we are going to put in practice what we have learnt in the notebooks of the session. \n", + "\n", + "Answer directly in your copy of the exercise and submit it as a moodle task." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "sns.set(color_codes=True)\n", + "\n", + "# if matplotlib is not set inline, you will not see plots\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading Data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Assign the variable *df* a Dataframe with the Titanic Dataset from the URL https://raw.githubusercontent.com/cif2cif/sitc/master/ml2/data-titanic/train.csv\"\n", + "\n", + "Print *df*." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Munging and Exploratory visualisation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Obtain number of passengers and features of the dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Obtain general statistics (count, mean, std, min, max, 25%, 50%, 75%) about the column Age" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Obtain the median of the age of the passengers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Obtain number of missing values per feature" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "How many passsengers have survived? List them grouped by Sex and Pclass.\n", + "\n", + "Assign the result to a variable df_1 and print it" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false + }, + "source": [ + "Visualise df_1 as an histogram." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Feature Engineering" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here you can find some features that have been proposed for this dataset. Your task is to analyse them and provide some insights. \n", + "\n", + "Use pandas and visualisation to justify your conclusions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature FamilySize " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Regarding SbSp and Parch, we can define a new feature, 'FamilySize' that is the combination of both." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df['FamilySize'] = df['SibSp'] + df['Parch']\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature Alone" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It seems many people who went alone survived. We can define a new feature 'Alone'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df['Alone'] = (df.FamilySize == 0)\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature Salutation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we observe well in the name variable, there is a 'title' (Mr., Miss., Mrs.). We can add a feature wit this title." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "#Taken from http://www.analyticsvidhya.com/blog/2014/09/data-munging-python-using-pandas-baby-steps-python/\n", + "def name_extract(word):\n", + " return word.split(',')[1].split('.')[0].strip()\n", + "\n", + "df['Salutation'] = df['Name'].apply(name_extract)\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can list the different salutations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df['Salutation'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df.groupby(['Salutation']).size()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There only 4 main salutations, so we combine the rest of salutations in 'Others'." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def group_salutation(old_salutation):\n", + " if old_salutation == 'Mr':\n", + " return('Mr')\n", + " else:\n", + " if old_salutation == 'Mrs':\n", + " return('Mrs')\n", + " else:\n", + " if old_salutation == 'Master':\n", + " return('Master')\n", + " else: \n", + " if old_salutation == 'Miss':\n", + " return('Miss')\n", + " else:\n", + " return('Others')\n", + "df['Salutation'] = df['Salutation'].apply(group_salutation)\n", + "df.groupby(['Salutation']).size()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Distribution\n", + "colors_sex = ['#ff69b4', 'b', 'r', 'y', 'm', 'c']\n", + "df.groupby('Salutation').size().plot(kind='bar', color=colors_sex)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df.boxplot(column='Age', by = 'Salutation', sym='k.')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Features Children and Female" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Specific features for Children and Female since there are more survivors\n", + "df['Children'] = df['Age'].map(lambda x: 1 if x < 6.0 else 0)\n", + "df['Female'] = df['Gender'].map(lambda x: 1 if x == 0 else 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature AgeGroup" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Group ages to simplify machine learning algorithms. 0: 0-5, 1: 6-10, 2: 11-15, 3: 16-59 and 4: 60-80\n", + "df['AgeGroup'] = 0\n", + "df.loc[(.AgeFill<6),'AgeGroup'] = 0\n", + "df.loc[(df.AgeFill>=6) & (df.AgeFill < 11),'AgeGroup'] = 1\n", + "df.loc[(df.AgeFill>=11) & (df.AgeFill < 16),'AgeGroup'] = 2\n", + "df.loc[(df.AgeFill>=16) & (df.AgeFill < 60),'AgeGroup'] = 3\n", + "df.loc[(df.AgeFill>=60),'AgeGroup'] = 4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature Deck\n", + "Only 1st class passengers have cabins, the rest are ‘Unknown’. A cabin number looks like ‘C123’. The letter refers to the deck." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "#Turning cabin number into Deck\n", + "cabin_list = ['A', 'B', 'C', 'D', 'E', 'F', 'T', 'G', 'Unknown']\n", + "df['Deck']=df['Cabin'].map(lambda x: substrings_in_string(x, cabin_list))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature FarePerPerson" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This feature is created from two previous features: Fare and FamilySize." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df['FarePerPerson']= df['Fare'] / (df['FamilySize'] + 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feature AgeClass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since age and class are both numbers we can just multiply them and get a new feature.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "df['AgeClass']=df['Age']*df['Pclass']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 +} diff --git a/ml2/3_6_Machine_Learning.ipynb b/ml2/3_6_Machine_Learning.ipynb new file mode 100644 index 0000000..305bc7d --- /dev/null +++ b/ml2/3_6_Machine_Learning.ipynb @@ -0,0 +1,122 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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 II](3_0_0_Intro_ML_2.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Machine Learning" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the previous session, we learnt how to apply machine learning algorithms to the Iris dataset.\n", + "\n", + "We are going now to review the full process. As probably you have notice, data preparation, cleaning and transformation takes more than 90 % of data mining effort.\n", + "\n", + "The phases are:\n", + "\n", + "* **Data ingestion**: reading the data from the data lake\n", + "* **Preprocessing**: \n", + " * **Data cleaning (munging)**: fill missing values, smooth noisy data (binning methods), identify or remove outlier, and resolve inconsistencies \n", + " * **Data integration**: Integrate multiple datasets\n", + " * **Data transformation**: normalization (rescale numeric values between 0 and 1), standardisation (rescale values to have mean of 0 and std of 1), transformation for smoothing a variable (e.g. square toot, ...), aggregation of data from several datasets\n", + " * **Data reduction**: dimensionality reduction, clustering and sampling. \n", + " * **Data discretization**: for numerical values and algorithms that do not accept continuous variables\n", + " * **Feature engineering**: selection of most relevant features, creation of new features and delete non relevant features\n", + " * Apply Sampling for dividing the dataset into training and test datasets.\n", + "* **Machine learning**: apply machine learning algorithms and obtain an estimator, tuning its parameters.\n", + "* **Evaluation** of the model\n", + "* **Prediction**: use the model for new data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "![Machine Learning Process from *Python Machine Learning* book](images/machine-learning-process.jpg)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [Python Machine Learning](http://proquest.safaribooksonline.com/book/programming/python/9781783555130), Sebastian Raschka, Packt Publishing, 2015." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 +} diff --git a/ml2/3_7_SVM.ipynb b/ml2/3_7_SVM.ipynb new file mode 100644 index 0000000..7cdedbd --- /dev/null +++ b/ml2/3_7_SVM.ipynb @@ -0,0 +1,1178 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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 II](3_0_0_Intro_ML_2.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction SVM " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this notebook we are going to train a classifier with the preprocessed Titanic dataset. \n", + "\n", + "We are going to use the dataset we obtained in the [pandas munging notebook](3_3_Data_Munging_with_Pandas.ipynb) for simplicity. You can try some of the techniques learnt in the previous notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load and clean" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# General import and load data\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "from pandas import Series, DataFrame\n", + "\n", + "# Training and test spliting\n", + "from sklearn.cross_validation import train_test_split\n", + "from sklearn import preprocessing\n", + "\n", + "# Estimators\n", + "from sklearn.svm import SVC\n", + "\n", + "# Evaluation\n", + "from sklearn import metrics\n", + "from sklearn.cross_validation import cross_val_score, KFold, StratifiedKFold\n", + "from sklearn.metrics import classification_report\n", + "from sklearn.metrics import roc_curve\n", + "from sklearn.metrics import roc_auc_score\n", + "\n", + "# Optimization\n", + "from sklearn.grid_search import GridSearchCV\n", + "\n", + "# Visualisation\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "sns.set(color_codes=True)\n", + "\n", + "\n", + "# if matplotlib is not set inline, you will not see plots\n", + "#alternatives auto gtk gtk2 inline osx qt qt5 wx tk\n", + "#%matplotlib auto\n", + "#%matplotlib qt\n", + "%matplotlib inline\n", + "%run plot_learning_curve" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassSexAgeSibSpParchFareEmbarked
0103022.0107.25000
1211138.01071.28331
2313126.0007.92500
3411135.01053.10000
4503035.0008.05000
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass Sex Age SibSp Parch Fare Embarked\n", + "0 1 0 3 0 22.0 1 0 7.2500 0\n", + "1 2 1 1 1 38.0 1 0 71.2833 1\n", + "2 3 1 3 1 26.0 0 0 7.9250 0\n", + "3 4 1 1 1 35.0 1 0 53.1000 0\n", + "4 5 0 3 0 35.0 0 0 8.0500 0" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#We get a URL with raw content (not HTML one)\n", + "url=\"https://raw.githubusercontent.com/cif2cif/sitc/master/ml2/data-titanic/train.csv\"\n", + "df = pd.read_csv(url)\n", + "df.head()\n", + "\n", + "\n", + "#Fill missing values\n", + "df['Age'].fillna(df['Age'].mean(), inplace=True)\n", + "df['Sex'].fillna('male', inplace=True)\n", + "df['Embarked'].fillna('S', inplace=True)\n", + "\n", + "# Encode categorical variables\n", + "df['Age'] = df['Age'].fillna(df['Age'].median())\n", + "df.loc[df[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "df.loc[df[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "df.loc[df[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "df.loc[df[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "df.loc[df[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "\n", + "# Drop colums\n", + "df.drop(['Cabin', 'Ticket', 'Name'], axis=1, inplace=True)\n", + "\n", + "#Show proprocessed df\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PassengerId int64\n", + "Survived int64\n", + "Pclass int64\n", + "Sex object\n", + "Age float64\n", + "SibSp int64\n", + "Parch int64\n", + "Fare float64\n", + "Embarked object\n", + "dtype: object" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Check types are numeric\n", + "df.dtypes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have still two columns as objects, so we change the type." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PassengerId int64\n", + "Survived int64\n", + "Pclass int64\n", + "Sex int64\n", + "Age float64\n", + "SibSp int64\n", + "Parch int64\n", + "Fare float64\n", + "Embarked int64\n", + "dtype: object" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Sex'] = df['Sex'].astype(np.int64)\n", + "df['Embarked'] = df['Embarked'].astype(np.int64)\n", + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PassengerId False\n", + "Survived False\n", + "Pclass False\n", + "Sex False\n", + "Age False\n", + "SibSp False\n", + "Parch False\n", + "Fare False\n", + "Embarked False\n", + "dtype: bool" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Check there are not missing values\n", + "df.isnull().any()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train and test splitting" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We use the same techniques we applied in the Iris dataset. \n", + "\n", + "Nevertheless, we need to remove the column 'Survived' " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Features of the model\n", + "features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked']\n", + "# Transform dataframe in numpy arrays\n", + "X = df[features].values\n", + "y = df['Survived'].values\n", + "\n", + "\n", + "\n", + "# Test set will be the 25% taken randomly\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33)\n", + "\n", + "# Preprocess: normalize\n", + "#scaler = preprocessing.StandardScaler().fit(X_train)\n", + "#X_train = scaler.transform(X_train)\n", + "#X_test = scaler.transform(X_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Define model" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "\n", + "types_of_kernels = ['linear', 'rbf', 'poly']\n", + "\n", + "kernel = types_of_kernels[0]\n", + "gamma = 3.0\n", + "\n", + "# Create kNN model\n", + "model = SVC(kernel=kernel, probability=True, gamma=gamma)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train and evaluate" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "#This step will take some time \n", + "# Train - This is not needed if you use K-Fold\n", + "\n", + "model.fit(X_train, y_train)\n", + "\n", + "predicted = model.predict(X_test)\n", + "expected = y_test" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.81165919282511212" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Accuracy\n", + "metrics.accuracy_score(expected, predicted)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ok, we get around 82% of accuracy! (results depend on the splitting)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Null accuracy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can evaluate the accuracy if the model always predict the most frequent class, following this [refeference](http://blog.kaggle.com/2015/10/23/scikit-learn-video-9-better-evaluation-of-classification-models/)." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 134\n", + "1 89\n", + "dtype: int64" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Count number of samples per class\n", + "s_y_test = Series(y_test)\n", + "s_y_test.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.3991031390134529" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Mean of ones\n", + "y_test.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.60089686098654704" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Mean of zeros\n", + "1 - y_test.mean() \n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.60089686098654704" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate null accuracy (binary classification coded as 0/1)\n", + "max(y_test.mean(), 1 - y_test.mean())" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.600897\n", + "dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate null accuracy (multiclass classification)\n", + "s_y_test.value_counts().head(1) / len(y_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So, since our accuracy was 0.82 is better than the null accuracy." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Confussion matrix and F-score" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can obtain more information from the confussion matrix and the metric F1-score.\n", + "In a confussion matrix, we can see:\n", + "\n", + "||**Predicted**: 0| **Predicted: 1**|\n", + "|---------------------------|\n", + "|**Actual: 0**| TN | FP |\n", + "|**Actual: 1**| FN|TP|\n", + "\n", + "* **True negatives (TN)**: actual negatives that were predicted as negatives\n", + "* **False positives (FP)**: actual negatives that were predicted as positives\n", + "* **False negatives (TN)**: actual positives that were predicted as negatives\n", + "* **True negatives (TN)**: actual positives that were predicted as posiives\n", + "\n", + "We can calculate several metrics from the confussion matrix\n", + "\n", + "* **Recall** (also called *sensitivity*): when the actual value is positive, how often the prediction is correct? \n", + "(TP / (TP + FN))\n", + "* **Specificity**: when the actual value is negative, how often the prediction is correct? (TN / (TN + FP))\n", + "* **False Positive Rate**: when the actual value is negative, how often the prediction is incorrect? (FP / (TN + FP))\n", + "* **Precision**: when a positive value is predicted, how many times is correct? (TP / (TP + FP)\n", + "A good metric is F1-score: 2TP / (2TP + FP + FN)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[115 19]\n", + " [ 23 66]]\n" + ] + } + ], + "source": [ + "# Confusion matrix\n", + "print(metrics.confusion_matrix(expected, predicted))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.83 0.86 0.85 134\n", + " 1 0.78 0.74 0.76 89\n", + "\n", + "avg / total 0.81 0.81 0.81 223\n", + "\n" + ] + } + ], + "source": [ + "# Report\n", + "print(classification_report(expected, predicted))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ROC (Receiver Operating Characteristic ) and AUC (Area Under the Curve)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The [ROC](https://en.wikipedia.org/wiki/Receiver_operating_characteristic) curve illustrates the performance of a binary classifier system as its discrimination threshold is varied." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "y_pred_prob = model.predict_proba(X_test)[:,1]\n", + "fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob)\n", + "plt.plot(fpr, tpr)\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.0])\n", + "plt.title('ROC curve for Titanic')\n", + "plt.xlabel('False Positive Rate (1 - Recall)')\n", + "plt.xlabel('True Positive Rate (Sensitivity)')\n", + "plt.grid(True)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.74750054, 0.74312762, 0.74298741, 0.73808718, 0.73799308,\n", + " 0.73743733, 0.73736981, 0.73735128, 0.73729214, 0.73709628,\n", + " 0.73699794, 0.73675548, 0.73659304, 0.73639721, 0.73623377,\n", + " 0.73612635, 0.73607305, 0.73572436, 0.7356707 , 0.735536 ,\n", + " 0.73544523, 0.73407999, 0.73200457, 0.7316892 , 0.73139765,\n", + " 0.73080287, 0.20382799, 0.20324215, 0.20255542, 0.202325 ,\n", + " 0.19998395, 0.19993953, 0.19986688, 0.19983705, 0.19891076,\n", + " 0.19881374, 0.19872727, 0.19868889, 0.1986448 , 0.19860251,\n", + " 0.19851757, 0.19851517, 0.19851124, 0.19850688, 0.19843776,\n", + " 0.19841942, 0.19831147, 0.19830402, 0.19816605, 0.19815391,\n", + " 0.19813555, 0.19813539, 0.19803009, 0.19801409, 0.19800118,\n", + " 0.1978783 , 0.19785132, 0.19784528, 0.19783312, 0.19782026,\n", + " 0.19780287, 0.19776301, 0.19774832, 0.19770726, 0.19759125,\n", + " 0.19756794, 0.197232 , 0.19720558, 0.1971321 , 0.197085 ,\n", + " 0.19652697, 0.19651513, 0.19193059, 0.18794571])" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Threshold used by the decision function, thresholds[0] is the number of \n", + "thresholds" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([,\n", + " ], dtype=object)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nrkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Histogram of probability vs actual\n", + "dprob = pd.DataFrame(data = {'probability':y_pred_prob, 'actual':y_test})\n", + "dprob.probability.hist(by=dprob.actual, sharex=True, sharey=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ROC curve helps to select a threshold to balance sensitivity and recall." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "#Function to evaluate thresholds of the ROC curve\n", + "def evaluate_threshold(threshold):\n", + " print('Sensitivity:', tpr[thresholds > threshold][-1])\n", + " print('Recall:', 1 - fpr[thresholds > threshold][-1])" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sensitivity: 0.0786516853933\n", + "Recall: 0.992537313433\n" + ] + } + ], + "source": [ + "evaluate_threshold(0.74)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sensitivity: 0.741573033708\n", + "Recall: 0.880597014925\n" + ] + } + ], + "source": [ + "evaluate_threshold(0.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, the thresdhold to decide a class is 0.5, If we modify it, we should use the new thresdhold.\n", + "\n", + "threshold = 0.8\n", + "\n", + "predicted = model.predict_proba(X) > threshold" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "AUC is the percentage of the ROC plot underneath the curve. Represents the likelihood that the predictor assigns a higher predicted probability to the positive observation. A simple rule to evaluate a classifier based on this summary value is the following:\n", + "* .90-1 = very good (A)\n", + "* .80-.90 = good (B)\n", + "* .70-.80 = not so good (C)\n", + "* .60-.70 = poor (D)\n", + "* .50-.60 = fail (F)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.799890994466\n" + ] + } + ], + "source": [ + "# AUX\n", + "print(roc_auc_score(expected, predicted))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train and Evaluate with K-Fold" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is alternative to splitting the dataset into train and test. It will run k times slower than the other method, but it will be more accurate." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Scores in every iteration [ 0.81564246 0.80337079 0.78089888 0.73595506 0.80337079]\n", + "Accuracy: 0.79 (+/- 0.06)\n" + ] + } + ], + "source": [ + "# This step will take some time\n", + "# Cross-validation\n", + "cv = KFold(X.shape[0], n_folds=5, shuffle=False, random_state=33)\n", + "# StratifiedKFold has is a variation of k-fold which returns stratified folds:\n", + "# each set contains approximately the same percentage of samples of each target class as the complete set.\n", + "#cv = StratifiedKFold(y, n_folds=3, shuffle=False, random_state=33)\n", + "scores = cross_val_score(model, X, y, cv=cv)\n", + "print(\"Scores in every iteration\", scores)\n", + "print(\"Accuracy: %0.2f (+/- %0.2f)\" % (scores.mean(), scores.std() * 2))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We get 78% of success with K-Fold, quite good!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the [learning curve](http://scikit-learn.org/stable/auto_examples/model_selection/plot_learning_curve.html). The traning scores decreases with the number of samples. The cross-validation reaches the training score at the end. It seems we will not get a better result with more samples." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nHuW65vEs8GUAa+2eBDWMFjUEfR3NIuITrHdTRTBb90vhMZMJ1jZan+NyKqWUysJgjbZqGRN/PEGT\nVJmI3BBOTjqBYMLSe8DJ4YSx3wD7E8wXOFdEHuvufbTmoZRS2etPzWNYzPPQ8FBKqewVcrOVUkqp\nYUjDQymlVNY0PJRSSmVNw0MppVTWNDyUUkplTZdkV2qEqn3+v2x48AHiK1cQmzSZMQfPo2L3PXs+\nsAtXXnk5IkvZsGE9TU1NTJkylaqq0fzyl7/u8dh33nmbZ599huOOOynj64sWPceaNas55JD5GV9X\ng0+H6io1AtU+/19WLby20/aJp5zWrwABeOihB/joow859dQzet5Z5VV/hupqzUOpYWjt3Xex+cUX\nunw9uWlTxu2rbryedffcnfG18rm7Uf31IzO+1p1XXnmJa65ZQCwW49BDv0IsFuPee+8mlUphjOHi\niy/hvffe5b777uHCCy/myCO/wuzZO/HRRx8yZsxYLrrotzz88IN8+OEHzJ//NS644KdMmDCBjz/+\nmB12mMmPfnQONTWbuPDC80kkEkybtgUvv/wid93119YyxONxfv7zc6ivr6epqYlTTvk2u+22Bw88\ncB/33Xcvnuex9977cMIJp/DPfz7E3XffSSxWxNSp0/jxj8/j0Ucf5sEH/4bv+5x44qnU1GziT3+6\nA9d1mT17pxEZlBoeSo1EqS5u497V9n5KJOIsXHgLALfffguXXPJ7ioqKuOSSi1m06DnGjavGmOBL\n8MqVK7jyyoWMG1fNt799EkuXLgZoff3jjz/i8suvJhaLccQR89m4cQN/+MMt7LPP55g//3BeeGER\nL7zwfLv3/+STj6mpqeH//m8BGzduYPnyj9i4cSN/+MNt3H77n4hGo1x33VWsWrWKm25ayC233Elx\ncTELFvyO+++/l9LSUsrLK/j1ry+ltraWb3/7JG688XaKior41a9+zosvPs/cubvn5LMrVBoeSg1D\n1V8/sttawge/OJ/4Jx932h6bOo0tL/jVgJdniy2mtz4ePbqKiy66gOLiYpYv/5Add2x/R9+qqirG\njasGoLp6PPF4+7sST5kyjeLiYgDGjh1Hc3OcDz74gIMOCm4tP2dO51uwf+pTW3HooV/hggvOI5lM\ncfjhR7BixSdsvfXWRKNRAE499QzeemsJn/rU1q3nnzNnZ154YREzZsxs/Tt88slyNm3ayI9//D18\n36exsZFPPvlYw0MpNfyNOXhexj6PMV8+OCfvZ0wwsLO+vo4bb1zIvfc+iO/7/OAH/Wvuaemz3Xrr\nrXnzzdfYZpttefPN1zvtt2zZuzQ0NPDb317O+vXrOP30E7n++lv58MMPSSaTRCIRzj//bM488wd8\n8MEympubKCoq5tVXX2LatC0AcJzg7zBp0hQmTJjI7353Fa7r8tBDD7DttrZff4+hSMNDqRGopVN8\nwz8ebBtt9eWD+91Z3pOyslHMnj2HU045jkjEpby8knXr1jJx4qS0vdr6cFuaqtKlb2t5fNRRx/Kr\nX/2cJ598nLFjxxGJuO2OmTp1C2666XqefPIxfN/npJNOp7KyiqOOOoYzzjgZxzF85jP7MHHiRE48\n8VTOPPNUXNdlypSpnH76d3nssUdaz1VVVcURRxzFmWeeTCrlMWnSZPbf/4AB+oSGDh1tpZQa8p57\n7llGjx7D9tvvwIsvPs/tt9/C739/db6LVfB0tFUe+J6H19SEW1qa76IoNeJNnjyFX//6l7iui+d5\nfP/7P853kYY9rXn0ke95JDasxx1Vjht2riml1FCiS7LniTEOXkM9XnNzvouilFKDSsOjn4zjkKqr\nw+swnFAppYYzDY8BYFwNEKXUyKLhMUCMY4IASSTyXRSllMo5DY8BFARIrQaIGhJeXP0qFy26jO88\neQ4XLbqMF1e/2u9zLlv2Hj/5yff53vdO5+STj+XGG68bgJIOnMMOOxCAK674P9asWd3utY8++oDv\nfOfUbo+/554/A8Eqv3//+325KeQQoUN1B5gxDqnNm6GyEsd1ez5AqTx4cfWr3Lz4jtbnK+pXtT6f\nO2GnPp2zrq6OCy/8KRdffClTpkzF931+9rOzuf/+eznssK8OSLn7Lxhc9N3v/jDzqxkmJaa77bYb\n+drXvsEee3x6wEs21Gh45IBxDKnaWqio0ABReXHvuw/wypo3uny9prk24/bblvyJ+997KONrO4+f\nxVe3mdflOf/1r6fYddfdmDJlKhBciM8//5dEIpFOK+uOHj2G66+/hqKiIiorKzn33J+TSCT5xS/O\nxfd94vE4P/rRuWyxxfSMq+G2SCaTHH3017n11jspKirmzjv/gOu6zJ27O1de+Ts8z6OmZhM//OG5\n7LjjrNbjvvOdU/nxj8+jrKyMX/7yZwCMHj2m9fWnnnq808q/9913D5s3b+ayy/4fO+wwkw8//IDT\nTjuTO+/8A0888U8ikQhz5uzCaaedyU03LWTlyhVs3LiB1atX8d3vnsVuu7XN3h8Oq/xqeOSIMZCq\nqdEaiCpIKT/z6rldbe+NdevWMXnylHbbitPmQKWvrPv1rx/GtdfeyNix4/jLX+7illtuZJdddqWy\nsorzz7+Q999fRlNTY8bVcNNFIhE+97nP89RTT3DggV/m0Ucf5vLLr+aFFxZx5pk/YKuttubRRx/m\nH//4W7vwaHHbbTdxwAEHMm/efB5//FHuv/8eAJYv/6jTyr/HHHMC99zzZ84662weeugBjDEsW/Yu\nTz31ONdddwuO43D++T/hP//5NwCxWIxLL72CF15YxF13/bFdeAyHVX41PHLIOIZUTQ2mqgrjaPeS\nGjxf3WZet7WEixZdxor6VZ22Txk1ifN2/0Gf3nPixIm8/ba027Zy5YrWvoWWVWk3bdrEqFFljB07\nDghWrl248GrOOON7LF++nHPOOYtIJMqxx56YcTXc119/leuvvwZjDN/85reYN+8wLr3012yxxXSm\nT9+SiooKqqurueWWGyguLqa+vo6yslEZy7x8+UccemjQpDZ79pzW8Bg9enTryr8ffdR55d8WH374\nATNn7ti6aOLs2Tvx/vvvAbQuljhhwgQSifYjMYfDKr96Rcsx4xiSNTX4npfvoijV6sAt98+4/YvT\n9+vzOT/zmc/y/PPP8Um41HsymWTBgt+1Xkxb+huqqqqor69nw4b1ALzyysutN3AaO3Ycl112Jccc\ncwILF17FsmXvta6G+9Of/oLLL7+E2bN3YsGC67jiimv59Kc/w9Sp0/B9uOOO21tvU3v55Zdy0kmn\nct55v2CrrbZJK2X7xSg+9amteOON1wBYsiS4b0jLyr8XXngx55zzM4qKiro8fvr0LVmyZDGe5+H7\nPq+++krrRb27/pP0VX5b/l5Tp05tXeUX4Pzzz6aqakzrKr9Aj6v8LlhwHV/72jeYObNzLWugac1j\nEBgDydpaIpWVPXbIKTUYWjrF//nhk6ysX82ksgl8cfp+fe4sBygtLeOnP72A3/72Inzfp6Ghgb33\n3of58w/nlVdeavezf/bZ53PeeT/GcRzKy8v56U8vAOAXvziP++77C57ncfzxJzN16jRuumlhu9Vw\nM5k371BuvHEhu+wyF4AvfenLnH/+2VRUVFJdPZ6ampY7JwZlaCnLMcecwIUX/ownnniUSZMmA12v\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_learning_curve(model, \"Learning curve with K-Fold\", X, y, cv=cv)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train and Optimize" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this section we are going to provide an alternative version of the previous one with optimization" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.811659192825\n" + ] + } + ], + "source": [ + "#Tune parameters\n", + "gammas = np.logspace(-6, -1, 10)\n", + "gs = GridSearchCV(model, param_grid=dict(gamma=gammas))\n", + "gs.fit(X_train, y_train)\n", + "scores = gs.score(X_test, y_test)\n", + "print(scores)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Refine model\n", + "model = SVC(kernel='linear', gamma=gs.best_estimator_.gamma)\n", + "plot_learning_curve(model, \"optimized with GridSearch\", X, y, cv=cv)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Visualise" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAEKCAYAAAAPVd6lAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9wJOdd5/F39/T0jH5rpdWu7Y1jOxg/68TGsr0+ex0n\nseMf4RKnboECypALmBgHKCB1SSjOqUqRgjoqXIgpJyEkuaV8x+WOHJXDoYDguCAXSDbEBodNtoz9\nOMExwevdlVa7+q2Z6R/P/dEj7aw0Wmm9MyO19HlVqUbdPZr5tjT6zDNPP92P55xDRETyy9/oAkRE\n5MIoyEVEck5BLiKScwpyEZGcU5CLiOScglxEJOcU5CJNGGNSY8zQRtchsh4KcpHmdIKF5Eaw0QWI\ntJsx5k3AR4CjwGuAeeBngWPA7wOjQAo8DjxkrU0bfvYJ4E+stQfryx8Ahq217+vkPoici1rksl1c\nD3zEWnsd8CjwWeBjwElr7bXAPuA64P31+3v1298Hfh7AGOMBDwB/0MG6RdakIJft4lvW2q/Xv3+U\nLNjvAz4BYK2NgE8B/37Zz/05sNsYcy3wFuAFa+13O1OyyPooyGW7iBu+9xq+GvlAsXFFvZvlU8C7\ngJ+rfy+yqSjIZbu43hhzTf37dwNfA/4P8MsAxpgS8CDwRJOf/UPgR4AbgMfaX6rI+dHBTtkujgP/\nxRhzBXAC+I/ALPBxY8wRspb448Bv1++/NGrFWjtujPlH4J+ttUlnyxZZm4Jctospa+1/aLL+p5vd\n2VpbWPzeGLOTbGTLr7apNpELoq4VkXMwxjwAPAM8Yq09utH1iDTjaWIJEZF8U4tcRCTnFOQiIjnX\n8YOd4+Mz6ssRETlPIyN9y897WKIWuYhIzinIRURyTkEuIpJzCnIRkZxTkIuI5JyCXEQk5xTkIiI5\npyAXEck5BbmISM7l8jK29957Fy+99NKK9b/+6x/kvvuaXpVURKStJiYmuPPO169YHwRF/vEfj7T1\nudcV5MaYm4EPW2vvWLb+7cAHgQh4dHGm8Xa6445bOX36FIcPP3fW+i984U/50Ic+AKAwF5GOWgzx\nvXv38rnPfeGsbaOjexkd3bsis1ppzSA3xvwaZ2ZTaVwfAA8DNwILwCFjzJ9Za8fbUeiixRDfe8Ve\n9hY8emKPyaLjaA986EO/zYc+9AEFuYh01J13vp7BwUE+97kvcPdVr2U4gtiDo6WUw88+x+joXp5+\n+iluvPHfteX519NH/l2y+QqXuxr4jrV2uj4D+deAN7ayuOV++IfPfCC4xve4ZrrAa+YLXDPts2cO\nDhz40XY+vVyg48ePEUXRRpex6S0sLFCpVDa6jI5xzrGwsLDRZVywr3zlG7zZXM3rZjx+cK7A1bMF\nrpz3GR3dy759N/Gud72zbc+9ZovcWvuYMeayJpv6gamG5RlgoFWFNXP8+DFuvHEfP/ETP0F/5OHV\nJ0EPnc9A5PjgrmthN9mtbKjYc0wVHaeLjsnQcTp0VArwhvECg5GOsS8Xe46xkuPQxSOUquPM9u2l\n0vWqjS6rvZwjrI3TPf89Ur/E9MDoRlf0ig0Be+55DzclHn3Jmdf3rppPEKUcPPg/GR3d27bnv5CD\nndNkYb6oD5i8sHLOLQxLHDnybZ566tv81OWvXVrvcCwEujruZvL0joSx8pm/SSmBixY8YNUrcW47\nsec4UXIc60oZKzkSH8rV48SFbtxW/j25lFLlON3z3yNIsh7bargLXApevt/k532IvJSiy/ZjupAS\nF+Hzn/+Ttj7v+QT58lfWs8CVxphBYJ6sW+UjrSqsmaee+tbSu9rLxRS6HaXUY6boeDZyXNPOJxcg\ne9OcL8BkvaU9UvXYVV35z3fJgk9v7NhR8xiMPLoSlj5BbWeR5zhedhwrp4yXHWn9VxIXuqmWLqJa\n2k0S9IG3RX9XzrHj1N8TJLM4PCqli5nvuSLb57w7+U88051SSj121hyxB8dLcPhw1kf+9rcfaNtT\nn0+QOwBjzH1Aj7X2oDHmvcATZCF/0Fp7rA01nsXzPG644bV88zvZEeDRXXt5e6XI1cCf744oV9td\nwfZ0opTyvZ6UydDR2DOSej67mvzOL13ws0PgQtU/E94nSw63FN49VEu7qZYvIin0bt3wbuR5VEu7\niNwQ892Xkxa6NrqiljhVeC3DyT8zUdjHN18zDGNf4mh9lMrdd2eHDn/rtz7ctufv+OTLrZghaHT0\nasBRLIaUTteYLQM+FGvww6eKF17kNrTY0k486I9XBsrRrpRv7kjojmEw8hiseQxEWWs7cNsggM7T\nfCEL7uNlx6nQLX2ejYI+aqXd9ZZ378YW2W5boKvkvJz8J4bTMRywQDeX9BeZns4OI7Zi6OG5ZgjK\nZZAv2r//ehZmFijX4O5JBfj5qHmOE+XsgOR0MbuNfdhZ9dg/sfKDWuw5UiBUaDflcEwHcLwr5Xg5\nZbq4uB7i4mDW8i7t3jIt0HMJoim65l/ET6tM7WjPcLvNLBh7kj4mCX2fz33uC1x11VUtedwtG+Sg\nESprSXAUmvRNTwWOv9sVZwsOemIYiDyGax6Xzxc6XGU+pTgmwuwN8Xg5ZaH+/ufwiMJhqqVdVEu7\ncH5pYwvtBOcIayfpmv8eYXQagDjoY3LwJpy/PRtZR594pKWPd64gz+Up+rKSwzEbwHTgmKm3sqeD\n7GDaPSdW/iP1xXDNpM9A7NGv7pF1i+rDBE+UU06Us08xAKkXUAt3UivtphbuxPnb619rYOppwtoE\nALXiMPPdlxOFw9uj338T2F6vti3A4ZqO/kiBvx2JaczjUgL9kde0Ve7jcYVa3usyWzgT3KfCMwcr\nE79Mrd7qjoo7tld/8DK1cCepFzLffTlJsX/tH5CWUpBvYgt+1rqeCepfRZgNHG8eCyilZwdzAY8f\nmPUJ0yy8+2NvxX1kfVKywD5RzgJ8ruG/JAr6s/AOR7b2MMHVuAS8lQ2Ahe7LO1+LLFGQb7A0G9WJ\n36SV/Y3hmNmGXhGv3pdd86GUrnysq2fUwn6lKn7WZTJWThkvnekycV6BWnGYWmmEajiCK2yD/u7l\nnKMYnaZr/kUKyTynh16//d7ANjkFeQdNB9nokNnAMRcs3sLNEwV21lb+Y7x63if2oS/y6Is9euLm\ngS/nLyU7oWms5BgrpUyFZ7YlfhfV0gi1cIQoHNq+XSb1MzC7Fl6kGM8AEAUDeGlte76hbWIK8hZK\nyIK5lNK0W+P5voRjXWcG7QT1bpDV/MCcWtit1NjqPlk6c2KTwyMqDlEr7aQW7iQp9KjFCQxMfpMw\nmsAB1dJu5rsvIy7u2OiypAkF+QU4UcrGDM8FMBdkF4UCuHbSbzqE79J5n51VR2/s0Rt7lFKdtt5O\nSb2ve7yctbpnGrqpEr9cH2UyQq04BNtslMl6VLr2EAe9LHRfti3Gv+eZXr3LOBwVH+aD7EzH+SC7\nXkiz64lMho7v92Qt7HICw9Xs+ui9Tc6MBNjd5DGkdRyOmQDGS1k/90TpzLVMfAe1cDgLb7W6z3CO\nQjLX9CzTavliquWLN6AoOV/bLsgdjsSj6bjpF7sTnhlIWd4rcvlc8+uJvHrO55IFn+6YpifdSPtV\nfMd4yTFeyrpLqg0fhOJC71J4R+GOpqMttisvjShXXqJr/t/wXMLEzjfq95NjWzrIZwLHy10p8wXH\nQgEW6reXzntcN7Vy18tpdnJMdwLdsUd34tEdQ98qLeyu1MsGcEvH1LyspX2y5DgZpmeN6iklUCld\nTC0cJgqHSQvljSt0kyrEM3TNf59y5WU8Uhw+lfIleC7BKchzK/dB/r2ehAS4ssmBwdnA8XzfmaQt\nJdlp6F1J82C+qOJzUUXdH5tJ7GX93CfDLLynimcuQJUNDdxBFA5TC4e3zxUEL0DvjCWMJkj8Lha6\nLqXStQfnh2v/oGxquQ/y6SA7Nf3KuZXbhmoe+08WKCfZ9bDV/bH5xV42q9Biq3uyeOZMSs9BFA5S\nK2Yt7qg4sH2HBr5Cc70/wEL6amrhiN70tpDcB/nemQL+KpfhKqUepSbjs2XziL1sGriJeqt7suEU\neBxExf6sxV0cIgoHwcv9S7a9nCOIJgmSuaZTxWn44NaU+/8KnYaeL7XF4C5l4T1VPDu4ByKPYwOX\nEYVDRMUd2+7iU6+Ul8aUqsfomv9+ffYdn2pp97a98uB2o/8SaasFP+vjPlVynApTpopn5gx0eMTB\nAFG4g6g4RFQcZFzBc956Zp6jXHkJ3yX16dN2U+l6NU6fXrYN/aWlZRbHcZ8KU06Fju/3liiklYbt\nPlFxgKi4IwvvYFAn4rSAn9ZwXpG57iuolF9FqtPntx39F8krFtW7SU6HjlP1yZjjhmOPnkuohiNL\nwR0H/To4eSFWmTpttm9v1vrW73bbUpDLuiy2tk+Hjsli1uKeDaBxIFBc6CEqDhIXB4mKgzp7shVc\nQql6gvLCSzgvYHrwhpV30fDBbU9BLk1V/KyFfbre0p4snt3adl6BKBggLg4Q1YNbgdI6hXiG8sJL\nlCsv47tsSr5aOLz9JjSWdVGQC5GXBfViYE+GZy4Atigu9JwJ7WAguzaHAqU9XMrg6afwXUzqh8x3\nXcFC+VWkQfdGVyablIJ8m4m8bMjf4tdk6M6aAQcg9cOG1vYAcTCgYWyd5PnM9V5F6of1E3f0hinn\npiDfwmrLQnuqWWh7AXEwQFzsr4d3P6lfVt92m3lplXLlZZJCD7XSrhXbK12XbkBVklcK8i3AkV0M\nbHoxsAPHdNGx0DS0+4mL/cRBFtxpoUuh3SkuJayNU144Slg7iYejVtzRNMhFzoeCPGdiL5sibrp4\nZuq46WUHIgFSL6wHdh9RPbxTX6G9UQrxXL3fuwZAFPRRKe/R9b6lJRTkm5TDMVeAmaJjOnDZbTFb\n1zjkzwFJoYc46CMO+kjqwa05FTeXpNBNUihRKV5EpbyHpNi/0SXJFqIg32CObCai2XpYzwRZcM8W\nWTHBRdY1koV1HPTWw7tXF5LaLFxCWB0nCnfg/GVvpJ7H5I79+kQkbaEE6JC0PjHzbJB1jcws3UK6\nrFvE4RMHvSRBL3Ght/59H6lfUhBsNs5RjCYpVV6mVD2O72Jmew0L3ZevvK/+dtImCvIWq9X7sGcb\nQns2cMwHsHx2uSywe0gKPVloB70khV6SQrf+6XMgrI7RO/MchXQBgMQvMd/1qmzIoEgHrRnkxhgP\n+CRwHVABHrDWvtCw/aeB9wIx8Ki19lNtqnXTiLysdT1XcMwFi19ZcEdNhvymXkBS6G0I7R7iQq9G\njORc6od4rkalfAmV8iVExSH9PWVDrKdFfgAoWWtvNcbcDDxcX7foI8DVwDzwz8aYP7bWTrW+1M5x\nOGp+FtTzweLtmfCuNZna0OFlIV3oJgnqt4Ve4qAb54X6B88pL61RrJ2iVr5oxbY4GGBi5x2atFg2\n3HqC/DbgcQBr7ZPGmH3Ltn8L2EE2gIKG200t9rKDjPP1kF7+fdKkZe3wSAtdZwK7/hUXuuuta52B\ntxV4aUxYG6NUOb403nui2E9aWHaKvOcBCnHZeOsJ8n6gsYUdG2N8a+3irMbPAE8Ds8CfWmunW1zj\neVtsUS8UshNl5uu32XLWym7WBQKQeoUsrP3FoO5aCuy0UFZYb3E9M8/StfASHtnLOwr6qJYu1iQN\nsqmt59U5DfQ1LC+FuDHmWuBtwGXAHPC/jDE/Zq39vy2vdBXHSymnQ0elHtaLt6vNAOfwSQpd9ZZ1\nF4lfJl0K7C6cV1Q3yHbmZa+PaukiquWLsouDiWxy6wnyQ8C9wOeNMbcARxq2TZH1jVettc4YM0bW\nzdIxx7pSXuo+05uTeiFJoUxaKNdDuuvMrYJaXEJYPQke1Eq7V2ye6/lB5nqu0mtEcmU9Qf4YcLcx\n5lB9+X5jzH1Aj7X2oDHmM8DXjDFV4F+A/96eUpv79p5b8F2chbdf0oEnWSHr8x6nVD1BWD2JR0Ic\n9DUNcnWdSR55znX22OT4+ExLn3DPPe9p5cPJFuMnCwxNfG2pzzsudFMr7aZauohYp8lLGx194pGW\nPt7ISN+qHxN1BEe2tNQvUwuHiYO+rM+70KtuE9lyFOSSX85RSGYpVccIq2PM9F+78uCk5zWd51Jk\nK1GQS+4E0RSlyjFK1bGl0+MdHkE0rVEmsi0pyCV3wto43Qv/SuoVqJR2UyvtohaOaDo62bYU5LL5\nOEchmcNPq0Th8IrNlfIeomCQKBzSKBMRFOSyWbiEsHaKsDZOWD1JIV0gLvRwevi2FXdN6yd0iUhG\nQS4bzktrDJ/826UhgqkXZF0m4Qg4p1EmImtQkEvHeGmUXbNkWTA7P6RWGiEpdFMLdxIVB9VlInIe\nFOTSPi4liKYIaxOEtQmCeJLJHTcTFwdX3HV6YHQDChTZGhTk0hbdc9+la/5FfJcA2fDAuDiI59I1\nflJEzpeCXC6MS5t2gzivQOqXqIbD1MJhouKQhgeKtImCXM6LnyxQrJ0ijE5lM+eEw8z2X7Pifgtd\nl7PQfcUGVCiy/SjIZV2CaIr+qW8tnUkJ2eiSVa82qZEmIh2jIJcznMNPF1ZOaQYkhTKei6mGI0Th\nELXiEEnQp8AW2QQU5NuZSyhG0wTRaYrRJMXoNJ5LOTly54p+b+eX6hMNK7hFNhsF+XblHMMTf4ef\n1pZWJX4XtdIOPBfjvHDlzyjERTYlBflW5RKCaJpiPEW1tHvlKe2eR6V0MeCIijuIi4PZ5NIikjsK\n8i0krI4T1sYJoimCeAaPbDKm1CtS7dqz4v5zfXs7XaKItIGCPG+cA9Kmo0WKtQm6Fv4Nh08c9BMV\nB4iLg9SKQ52vU0Q6RkG+mbmUQjJHEM0QxNNLX5WuVzPXe9WKu1e6LqVavpg46NO1SkS2EQX5Jlau\nvEzfzDNLyw5ICj2kXvMzJJOgp0OVichmoiDvNOcoJPMU4hmCeJYgmSH1Qmb7X7firlFxkIXyHuKg\njzjoz1ravv5kInI2pUIHFeIZdpz6xtJ1txdFQV/T+ydBb9PT30VEGinIL5RLsxZ2MkcQz1GIZ/Fc\n3HTm9sTvIg56SYJe4qCXuNBHEvSR+k3GbIuIrJOCfD1Wm6XGJewc/5ulYX5Lq/HBJStHlvgBk0P7\n21ioiGxHCvJlgtppgmQOP1lYamkXknlODd+OW94/7RWohSOkfpGk0EMS9BAXerOTb3QWpIh0yLYK\nci+NsoBOF4iKwyuDGeifPnLWFf4cPkmhG8/VcE1+XdOD17e1ZhGRtWz5IO+ZeZYwOo2fLOC7eGn9\n6R03E/srpxyb73kNAEmhm6TQTeqX1LoWkU0t90HeM2spVY4z038tUbjyDMase2SexC8TFXaQFsok\nha4soJuodL2q3SWLiLRU7oOc+hyQXn1uyOWySX19tapFZMvKfZDP9V3NXN/Vq99htRlsRES2iDWD\n3BjjAZ8ErgMqwAPW2hcatt8EfLS+eBx4h7W2tuKBRESkLdZzZaUDQMlaeyvwEPDwsu2fAX7WWvtG\n4HHgstaWKCIi57KeIL+NLKCx1j4J7FvcYIy5CpgA3muM+QowZK39ThvqFBGRVawnyPuBqYbl2Biz\n+HM7gf3Ax4C7gLuMMbe3tEIRETmn9QT5NNB4VSffWrt41acJ4LvW2uettTFZy33f8gcQEZH2WU+Q\nHwLeCmCMuQU40rDtBaDXGPOa+vIbgGcQEZGOWc/ww8eAu40xh+rL9xtj7gN6rLUHjTHvAv7YGAPw\ndWvtX7WpVhERaWLNILfWOuAXl61+vmH7V4CbW1uWiIislyZ2FBHJOQW5iEjOKchFRHJOQS4iknMK\nchGRnFOQi4jknIJcRCTnFOQiIjmnIBcRyTkFuYhIzinIRURyTkEuIpJzCnIRkZxTkIuI5JyCXEQk\n5xTkIiI5pyAXEck5BbmISM4pyEVEck5BLiKScwpyEZGcU5CLiOScglxEJOcU5CIiOacgFxHJOQW5\niEjOKchFRHJOQS4iknMKchGRnFOQi4jknIJcRCTngrXuYIzxgE8C1wEV4AFr7QtN7vdpYMJa+4GW\nVykiIqtaT4v8AFCy1t4KPAQ8vPwOxph3A9e0uDYREVmH9QT5bcDjANbaJ4F9jRuNMfuBm4BPt7w6\nERFZ03qCvB+YaliOjTE+gDHmIuA3gF8GvNaXJyIia1mzjxyYBvoaln1rbVr//seBYeCLwMVAlzHm\nOWvtH7W2TBERWc16gvwQcC/weWPMLcCRxQ3W2o8DHwcwxvwMYBTiIiKdtZ4gfwy42xhzqL58vzHm\nPqDHWnuwfaWJiMh6rBnk1loH/OKy1c83ud//aFVRIiKyfjohSEQk5xTkIiI5pyAXEck5BbmISM4p\nyEVEck5BLiKScwpyEZGcU5CLiOScglxEJOcU5CIiOacgFxHJOQW5iEjOKchFRHJOQS4iknMKchGR\nnFOQi4jknIJcRCTnFOQiIjmnIBcRyTkFuYhIzinIRURyTkEuIpJzCnIRkZxTkIuI5JyCXEQk5xTk\nIiI5pyAXEck5BbmISM4pyEVEck5BLiKSc8FadzDGeMAngeuACvCAtfaFhu33Ae8BIuCItfaX2lSr\niIg0sZ4W+QGgZK29FXgIeHhxgzGmDPwm8CZr7RuAQWPMvW2pVEREmlpPkN8GPA5grX0S2NewrQrc\naq2t1pcDsla7iIh0yHqCvB+YaliOjTE+gLXWWWvHAYwxvwL0WGv/uvVliojIatbsIwemgb6GZd9a\nmy4u1PvQ/yvwg8CPtrY8ERFZy3qC/BBwL/B5Y8wtwJFl2z8DLFhrD7S6OBERWdt6gvwx4G5jzKH6\n8v31kSo9wNPA/cBXjTH/D3DAI9baP2tLtSIissKaQW6tdcAvLlv9/Pk8hoiItI9OCBIRyTkFuYhI\nzinIRURyTkEuIpJzCnIRkZxTkIuI5JyCXEQk5xTkIiI5pyAXEck5BbmISM4pyEVEck5BLiKScwpy\nEZGcU5CLiOScglxEJOcU5CIiOacgFxHJOQW5iEjOKchFRHJOQS4iknMKchGRnFOQi4jknIJcRCTn\nFOQiIjmnIBcRyTkFuYhIzinIRURyTkEuIpJzCnIRkZxTkIuI5JznnOvoE46Pz1zwEz700Pv5q7/6\nCwCShvWnuBZ2XXKhDy8i8ooMjn1pqXVcqN8ODQ3x5S9//YIfe2Skz1tt25pBbozxgE8C1wEV4AFr\n7QsN298OfBCIgEettQfP9XgXGuQHDryVF198gXe8437e//5fZ8897wGge+wJunBMKMxFZAMMjX2J\nBJja9RYAjj7xCE899RQPPvhOAA4ffu6CHv9cQb6erpUDQMlaeyvwEPDw4gZjTFBfvgu4HXjQGDNy\nQdWu4cUXX+CLX/wyn/3so1x/w352nfo2I2PfYH7XPcxQYogj7Xx6EZEVBse+REoW4sNjhxiZ+Daj\nN9zGT/7kO5cC/OjRo217/vUE+W3A4wDW2ieBfQ3brga+Y62dttZGwNeAN7a8yrp77nkTAJdccgkU\ndjE2fCNjQz/E6R3XMDL+JLVdt7frqUVEVuUDk7vewvCJQyz0Xcn48A8xPnwDfSOXMjq6l2KxyNve\ndmdbn38t/cBUw3JsjPFX2TYDDLSothXGxk6wa9duRkf3Ui0NgZf1QsXFXlzQtqcVEVkXv9DDfNfu\nbMHzON17GVEE//AP7e0pCNZxn2mgr2HZt9amDdv6G7b1AZMtqq2pkydPcvjwc7zulnvPWu+5iKNP\nPMLo6F6OPvFIO0sQETnLYu6M3vB6cCl4WVs3jOYpFuGpp55q6/Ovp0V+CHgrgDHmFjirE/pZ4Epj\nzKAxJiTrVvn7lldZd/DgZ0nTbJxKsTJG3+z3Kdam2DH1PNHsyXY9rYjImj7xiUcgnWD49DOEtUm6\n54/RN/evHD78HA8++E76+vrXfpBXaD0t8seAu40xh+rL9xtj7gN6rLUHjTHvBZ4APOCgtfZYm2pl\n376se/6GG17H4cPPMDq6l/J8tu3wc88xOrq3XU8tIrKq66+/kYMH/4DDh7McGph8GchGqvzCL9wP\nwFe/2r5WeS7HkS8G9h133MXv/d4n2L//ehYWFoALH+IjIvJK3HTTtURRBGQ59Dd/8wTve9+vAvDR\nj36MO++854Ie/4LGkbdaK4Ic4Hd/93f47GcfXVr+4he/nI1mERHZQI09A3v2vIq//Mu/bsnjbskg\nFxHZTi70hCAREdnEFOQiIjmnIBcRyTkFuYhIzinIRURyTkEuIpJzCnIRkZxTkIuI5JyCXEQk5zp+\nZqeIiLSWWuQiIjmnIBcRyTkFuYhIzinIRURyTkEuIpJzCnIRkZxbz5ydm4IxxgM+CVwHVIAHrLUv\nNGx/O/BBIAIetdYe3JBCW2Ad+3of8B6yfT1irf2lDSm0Bdba14b7fRqYsNZ+oMMltsQ6/qY3AR+t\nLx4H3mGtrXW80BZYx77+NPBeICb7X/3UhhTaQsaYm4EPW2vvWLa+I7mUpxb5AaBkrb0VeAh4eHGD\nMSaoL98F3A48aIwZ2YgiW+Rc+1oGfhN4k7X2DcCgMebejSmzJVbd10XGmHcD13S6sBZbaz8/A/ys\ntfaNwOPAZR2ur5XW2tePAG8GbgPeZ4wZ6HB9LWWM+TXgvwGlZes7lkt5CvLbyF7gWGufBPY1bLsa\n+I61dtpaGwFfA97Y+RJb5lz7WgVutdZW68sBWasnr861rxhj9gM3AZ/ufGkttep+GmOuAiaA9xpj\nvgIMWWu/sxFFtsg5/6bAt4AdQFd9Oe9nJX4X+JEm6zuWS3kK8n5gqmE5Nsb4q2ybAfL8Lr/qvlpr\nnbV2HMAY8ytAj7W2NbO7boxV99UYcxHwG8AvA6vOV5gT53r97gT2Ax8ja73dZYy5vbPltdS59hXg\nGeBp4AjwF9ba6U4W12rW2sfIuomW61gu5SnIp4G+hmXfWps2bOtv2NYHTHaqsDY4175ijPGMMR8B\n7gR+tNPFtdi59vXHgWHgi8B/Bn7KGPPODtfXKufazwngu9ba5621MVlrdnkrNk9W3VdjzLXA28i6\nji4HdhtjfqzjFXZGx3IpT0F+CHgrgDHmFrJ380XPAlcaYwaNMSHZx5e/73yJLXOufYWsP7VkrT3Q\n0MWSV6u2vzj/AAAA60lEQVTuq7X249bam6y1bwY+DPxva+0fbUyZF+xcf9MXgF5jzGvqy28ga7Xm\n1bn2dQqYB6rWWgeMkXWzbAXLPzV2LJdyc9GshiPhP1RfdT9wI1nXwkFjzNvIPoZ7wB/m+Uj4ufaV\n7CPpPwBfrW9zwCPW2j/rdJ2tsNbfteF+PwOYLTBqZbXX7+3A79S3fd1a+586X2VrrGNf3w38HNnx\nnn8Bfr7+SSS3jDGXAX9srb21Pqqso7mUmyAXEZHm8tS1IiIiTSjIRURyTkEuIpJzCnIRkZxTkIuI\n5JyCXEQk5xTkIiI5pyAXEcm5/w+PFqeviRb6bQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot with standard configuration of SVM\n", + "%run plot_svm\n", + "plot_svm(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Any value in the blue survived while anyone in the read did not. Checkout the graph for the linear transformation. It created its decision boundary right on 50%! " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# References" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* [Titanic Machine Learning from Disaster](https://www.kaggle.com/c/titanic/forums/t/5105/ipython-notebook-tutorial-for-titanic-machine-learning-from-disaster)\n", + "* [API SVC scikit-learn](http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html)\n", + "* [Better evaluation of classification models](http://blog.kaggle.com/2015/10/23/scikit-learn-video-9-better-evaluation-of-classification-models/)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 +} diff --git a/ml2/3_8_Exercise_2.ipynb b/ml2/3_8_Exercise_2.ipynb new file mode 100644 index 0000000..1a0c657 --- /dev/null +++ b/ml2/3_8_Exercise_2.ipynb @@ -0,0 +1,89 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](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 II](3_0_0_Intro_ML_2.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 2 - The Titanic Dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this exercise we are going to put in practice what we have learnt in the notebooks of the session. \n", + "\n", + "In the previous notebook we have been applying the SVM machine learning algorithm.\n", + "\n", + "Your task is to apply other machine learning algorithms (at least 2) that you have seen in theory or others you are interested in.\n", + "\n", + "You should compare the algorithms and describe your experiments." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Licence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 +} diff --git a/ml2/data-titanic/test.csv b/ml2/data-titanic/test.csv deleted file mode 100644 index f705412..0000000 --- a/ml2/data-titanic/test.csv +++ /dev/null @@ -1,419 +0,0 @@ -PassengerId,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked -892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q -893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47,1,0,363272,7,,S -894,2,"Myles, Mr. Thomas Francis",male,62,0,0,240276,9.6875,,Q -895,3,"Wirz, Mr. Albert",male,27,0,0,315154,8.6625,,S -896,3,"Hirvonen, Mrs. Alexander (Helga E Lindqvist)",female,22,1,1,3101298,12.2875,,S -897,3,"Svensson, Mr. Johan Cervin",male,14,0,0,7538,9.225,,S -898,3,"Connolly, Miss. Kate",female,30,0,0,330972,7.6292,,Q -899,2,"Caldwell, Mr. Albert Francis",male,26,1,1,248738,29,,S -900,3,"Abrahim, Mrs. Joseph (Sophie Halaut Easu)",female,18,0,0,2657,7.2292,,C -901,3,"Davies, Mr. John Samuel",male,21,2,0,A/4 48871,24.15,,S -902,3,"Ilieff, Mr. Ylio",male,,0,0,349220,7.8958,,S -903,1,"Jones, Mr. Charles Cresson",male,46,0,0,694,26,,S -904,1,"Snyder, Mrs. John Pillsbury (Nelle Stevenson)",female,23,1,0,21228,82.2667,B45,S -905,2,"Howard, Mr. Benjamin",male,63,1,0,24065,26,,S -906,1,"Chaffee, Mrs. Herbert Fuller (Carrie Constance Toogood)",female,47,1,0,W.E.P. 5734,61.175,E31,S -907,2,"del Carlo, Mrs. Sebastiano (Argenia Genovesi)",female,24,1,0,SC/PARIS 2167,27.7208,,C -908,2,"Keane, Mr. Daniel",male,35,0,0,233734,12.35,,Q -909,3,"Assaf, Mr. Gerios",male,21,0,0,2692,7.225,,C -910,3,"Ilmakangas, Miss. Ida Livija",female,27,1,0,STON/O2. 3101270,7.925,,S -911,3,"Assaf Khalil, Mrs. Mariana (Miriam"")""",female,45,0,0,2696,7.225,,C -912,1,"Rothschild, Mr. Martin",male,55,1,0,PC 17603,59.4,,C -913,3,"Olsen, Master. Artur Karl",male,9,0,1,C 17368,3.1708,,S -914,1,"Flegenheim, Mrs. Alfred (Antoinette)",female,,0,0,PC 17598,31.6833,,S -915,1,"Williams, Mr. Richard Norris II",male,21,0,1,PC 17597,61.3792,,C -916,1,"Ryerson, Mrs. Arthur Larned (Emily Maria Borie)",female,48,1,3,PC 17608,262.375,B57 B59 B63 B66,C -917,3,"Robins, Mr. Alexander A",male,50,1,0,A/5. 3337,14.5,,S -918,1,"Ostby, Miss. Helene Ragnhild",female,22,0,1,113509,61.9792,B36,C -919,3,"Daher, Mr. Shedid",male,22.5,0,0,2698,7.225,,C -920,1,"Brady, Mr. John Bertram",male,41,0,0,113054,30.5,A21,S -921,3,"Samaan, Mr. Elias",male,,2,0,2662,21.6792,,C -922,2,"Louch, Mr. Charles Alexander",male,50,1,0,SC/AH 3085,26,,S -923,2,"Jefferys, Mr. Clifford Thomas",male,24,2,0,C.A. 31029,31.5,,S -924,3,"Dean, Mrs. Bertram (Eva Georgetta Light)",female,33,1,2,C.A. 2315,20.575,,S -925,3,"Johnston, Mrs. Andrew G (Elizabeth Lily"" Watson)""",female,,1,2,W./C. 6607,23.45,,S -926,1,"Mock, Mr. Philipp Edmund",male,30,1,0,13236,57.75,C78,C -927,3,"Katavelas, Mr. Vassilios (Catavelas Vassilios"")""",male,18.5,0,0,2682,7.2292,,C -928,3,"Roth, Miss. Sarah A",female,,0,0,342712,8.05,,S -929,3,"Cacic, Miss. Manda",female,21,0,0,315087,8.6625,,S -930,3,"Sap, Mr. Julius",male,25,0,0,345768,9.5,,S -931,3,"Hee, Mr. Ling",male,,0,0,1601,56.4958,,S -932,3,"Karun, Mr. Franz",male,39,0,1,349256,13.4167,,C -933,1,"Franklin, Mr. Thomas Parham",male,,0,0,113778,26.55,D34,S -934,3,"Goldsmith, Mr. Nathan",male,41,0,0,SOTON/O.Q. 3101263,7.85,,S -935,2,"Corbett, Mrs. Walter H (Irene Colvin)",female,30,0,0,237249,13,,S -936,1,"Kimball, Mrs. Edwin Nelson Jr (Gertrude Parsons)",female,45,1,0,11753,52.5542,D19,S -937,3,"Peltomaki, Mr. Nikolai Johannes",male,25,0,0,STON/O 2. 3101291,7.925,,S -938,1,"Chevre, Mr. Paul Romaine",male,45,0,0,PC 17594,29.7,A9,C -939,3,"Shaughnessy, Mr. Patrick",male,,0,0,370374,7.75,,Q -940,1,"Bucknell, Mrs. William Robert (Emma Eliza Ward)",female,60,0,0,11813,76.2917,D15,C -941,3,"Coutts, Mrs. William (Winnie Minnie"" Treanor)""",female,36,0,2,C.A. 37671,15.9,,S -942,1,"Smith, Mr. Lucien Philip",male,24,1,0,13695,60,C31,S -943,2,"Pulbaum, Mr. Franz",male,27,0,0,SC/PARIS 2168,15.0333,,C -944,2,"Hocking, Miss. Ellen Nellie""""",female,20,2,1,29105,23,,S -945,1,"Fortune, Miss. Ethel Flora",female,28,3,2,19950,263,C23 C25 C27,S -946,2,"Mangiavacchi, Mr. Serafino Emilio",male,,0,0,SC/A.3 2861,15.5792,,C -947,3,"Rice, Master. Albert",male,10,4,1,382652,29.125,,Q -948,3,"Cor, Mr. Bartol",male,35,0,0,349230,7.8958,,S -949,3,"Abelseth, Mr. Olaus Jorgensen",male,25,0,0,348122,7.65,F G63,S -950,3,"Davison, Mr. Thomas Henry",male,,1,0,386525,16.1,,S -951,1,"Chaudanson, Miss. Victorine",female,36,0,0,PC 17608,262.375,B61,C -952,3,"Dika, Mr. Mirko",male,17,0,0,349232,7.8958,,S -953,2,"McCrae, Mr. Arthur Gordon",male,32,0,0,237216,13.5,,S -954,3,"Bjorklund, Mr. Ernst Herbert",male,18,0,0,347090,7.75,,S -955,3,"Bradley, Miss. Bridget Delia",female,22,0,0,334914,7.725,,Q -956,1,"Ryerson, Master. John Borie",male,13,2,2,PC 17608,262.375,B57 B59 B63 B66,C -957,2,"Corey, Mrs. Percy C (Mary Phyllis Elizabeth Miller)",female,,0,0,F.C.C. 13534,21,,S -958,3,"Burns, Miss. Mary Delia",female,18,0,0,330963,7.8792,,Q -959,1,"Moore, Mr. Clarence Bloomfield",male,47,0,0,113796,42.4,,S -960,1,"Tucker, Mr. Gilbert Milligan Jr",male,31,0,0,2543,28.5375,C53,C -961,1,"Fortune, Mrs. Mark (Mary McDougald)",female,60,1,4,19950,263,C23 C25 C27,S -962,3,"Mulvihill, Miss. Bertha E",female,24,0,0,382653,7.75,,Q -963,3,"Minkoff, Mr. Lazar",male,21,0,0,349211,7.8958,,S -964,3,"Nieminen, Miss. Manta Josefina",female,29,0,0,3101297,7.925,,S -965,1,"Ovies y Rodriguez, Mr. Servando",male,28.5,0,0,PC 17562,27.7208,D43,C -966,1,"Geiger, Miss. Amalie",female,35,0,0,113503,211.5,C130,C -967,1,"Keeping, Mr. Edwin",male,32.5,0,0,113503,211.5,C132,C -968,3,"Miles, Mr. Frank",male,,0,0,359306,8.05,,S -969,1,"Cornell, Mrs. Robert Clifford (Malvina Helen Lamson)",female,55,2,0,11770,25.7,C101,S -970,2,"Aldworth, Mr. Charles Augustus",male,30,0,0,248744,13,,S -971,3,"Doyle, Miss. Elizabeth",female,24,0,0,368702,7.75,,Q -972,3,"Boulos, Master. Akar",male,6,1,1,2678,15.2458,,C -973,1,"Straus, Mr. Isidor",male,67,1,0,PC 17483,221.7792,C55 C57,S -974,1,"Case, Mr. Howard Brown",male,49,0,0,19924,26,,S -975,3,"Demetri, Mr. Marinko",male,,0,0,349238,7.8958,,S -976,2,"Lamb, Mr. John Joseph",male,,0,0,240261,10.7083,,Q -977,3,"Khalil, Mr. Betros",male,,1,0,2660,14.4542,,C -978,3,"Barry, Miss. Julia",female,27,0,0,330844,7.8792,,Q -979,3,"Badman, Miss. Emily Louisa",female,18,0,0,A/4 31416,8.05,,S -980,3,"O'Donoghue, Ms. Bridget",female,,0,0,364856,7.75,,Q -981,2,"Wells, Master. Ralph Lester",male,2,1,1,29103,23,,S -982,3,"Dyker, Mrs. Adolf Fredrik (Anna Elisabeth Judith Andersson)",female,22,1,0,347072,13.9,,S -983,3,"Pedersen, Mr. Olaf",male,,0,0,345498,7.775,,S -984,1,"Davidson, Mrs. Thornton (Orian Hays)",female,27,1,2,F.C. 12750,52,B71,S -985,3,"Guest, Mr. Robert",male,,0,0,376563,8.05,,S -986,1,"Birnbaum, Mr. Jakob",male,25,0,0,13905,26,,C -987,3,"Tenglin, Mr. Gunnar Isidor",male,25,0,0,350033,7.7958,,S -988,1,"Cavendish, Mrs. Tyrell William (Julia Florence Siegel)",female,76,1,0,19877,78.85,C46,S -989,3,"Makinen, Mr. Kalle Edvard",male,29,0,0,STON/O 2. 3101268,7.925,,S -990,3,"Braf, Miss. Elin Ester Maria",female,20,0,0,347471,7.8542,,S -991,3,"Nancarrow, Mr. William Henry",male,33,0,0,A./5. 3338,8.05,,S -992,1,"Stengel, Mrs. Charles Emil Henry (Annie May Morris)",female,43,1,0,11778,55.4417,C116,C -993,2,"Weisz, Mr. Leopold",male,27,1,0,228414,26,,S -994,3,"Foley, Mr. William",male,,0,0,365235,7.75,,Q -995,3,"Johansson Palmquist, Mr. Oskar Leander",male,26,0,0,347070,7.775,,S -996,3,"Thomas, Mrs. Alexander (Thamine Thelma"")""",female,16,1,1,2625,8.5167,,C -997,3,"Holthen, Mr. Johan Martin",male,28,0,0,C 4001,22.525,,S -998,3,"Buckley, Mr. Daniel",male,21,0,0,330920,7.8208,,Q -999,3,"Ryan, Mr. Edward",male,,0,0,383162,7.75,,Q -1000,3,"Willer, Mr. Aaron (Abi Weller"")""",male,,0,0,3410,8.7125,,S -1001,2,"Swane, Mr. George",male,18.5,0,0,248734,13,F,S -1002,2,"Stanton, Mr. Samuel Ward",male,41,0,0,237734,15.0458,,C -1003,3,"Shine, Miss. Ellen Natalia",female,,0,0,330968,7.7792,,Q -1004,1,"Evans, Miss. Edith Corse",female,36,0,0,PC 17531,31.6792,A29,C -1005,3,"Buckley, Miss. Katherine",female,18.5,0,0,329944,7.2833,,Q -1006,1,"Straus, Mrs. Isidor (Rosalie Ida Blun)",female,63,1,0,PC 17483,221.7792,C55 C57,S -1007,3,"Chronopoulos, Mr. Demetrios",male,18,1,0,2680,14.4542,,C -1008,3,"Thomas, Mr. John",male,,0,0,2681,6.4375,,C -1009,3,"Sandstrom, Miss. Beatrice Irene",female,1,1,1,PP 9549,16.7,G6,S -1010,1,"Beattie, Mr. Thomson",male,36,0,0,13050,75.2417,C6,C -1011,2,"Chapman, Mrs. John Henry (Sara Elizabeth Lawry)",female,29,1,0,SC/AH 29037,26,,S -1012,2,"Watt, Miss. Bertha J",female,12,0,0,C.A. 33595,15.75,,S -1013,3,"Kiernan, Mr. John",male,,1,0,367227,7.75,,Q -1014,1,"Schabert, Mrs. Paul (Emma Mock)",female,35,1,0,13236,57.75,C28,C -1015,3,"Carver, Mr. Alfred John",male,28,0,0,392095,7.25,,S -1016,3,"Kennedy, Mr. John",male,,0,0,368783,7.75,,Q -1017,3,"Cribb, Miss. Laura Alice",female,17,0,1,371362,16.1,,S -1018,3,"Brobeck, Mr. Karl Rudolf",male,22,0,0,350045,7.7958,,S -1019,3,"McCoy, Miss. Alicia",female,,2,0,367226,23.25,,Q -1020,2,"Bowenur, Mr. Solomon",male,42,0,0,211535,13,,S -1021,3,"Petersen, Mr. Marius",male,24,0,0,342441,8.05,,S -1022,3,"Spinner, Mr. Henry John",male,32,0,0,STON/OQ. 369943,8.05,,S -1023,1,"Gracie, Col. Archibald IV",male,53,0,0,113780,28.5,C51,C -1024,3,"Lefebre, Mrs. Frank (Frances)",female,,0,4,4133,25.4667,,S -1025,3,"Thomas, Mr. Charles P",male,,1,0,2621,6.4375,,C -1026,3,"Dintcheff, Mr. Valtcho",male,43,0,0,349226,7.8958,,S -1027,3,"Carlsson, Mr. Carl Robert",male,24,0,0,350409,7.8542,,S -1028,3,"Zakarian, Mr. Mapriededer",male,26.5,0,0,2656,7.225,,C -1029,2,"Schmidt, Mr. August",male,26,0,0,248659,13,,S -1030,3,"Drapkin, Miss. Jennie",female,23,0,0,SOTON/OQ 392083,8.05,,S -1031,3,"Goodwin, Mr. Charles Frederick",male,40,1,6,CA 2144,46.9,,S -1032,3,"Goodwin, Miss. Jessie Allis",female,10,5,2,CA 2144,46.9,,S -1033,1,"Daniels, Miss. Sarah",female,33,0,0,113781,151.55,,S -1034,1,"Ryerson, Mr. Arthur Larned",male,61,1,3,PC 17608,262.375,B57 B59 B63 B66,C -1035,2,"Beauchamp, Mr. Henry James",male,28,0,0,244358,26,,S -1036,1,"Lindeberg-Lind, Mr. Erik Gustaf (Mr Edward Lingrey"")""",male,42,0,0,17475,26.55,,S -1037,3,"Vander Planke, Mr. Julius",male,31,3,0,345763,18,,S -1038,1,"Hilliard, Mr. Herbert Henry",male,,0,0,17463,51.8625,E46,S -1039,3,"Davies, Mr. Evan",male,22,0,0,SC/A4 23568,8.05,,S -1040,1,"Crafton, Mr. John Bertram",male,,0,0,113791,26.55,,S -1041,2,"Lahtinen, Rev. William",male,30,1,1,250651,26,,S -1042,1,"Earnshaw, Mrs. Boulton (Olive Potter)",female,23,0,1,11767,83.1583,C54,C -1043,3,"Matinoff, Mr. Nicola",male,,0,0,349255,7.8958,,C -1044,3,"Storey, Mr. Thomas",male,60.5,0,0,3701,,,S -1045,3,"Klasen, Mrs. (Hulda Kristina Eugenia Lofqvist)",female,36,0,2,350405,12.1833,,S -1046,3,"Asplund, Master. Filip Oscar",male,13,4,2,347077,31.3875,,S -1047,3,"Duquemin, Mr. Joseph",male,24,0,0,S.O./P.P. 752,7.55,,S -1048,1,"Bird, Miss. Ellen",female,29,0,0,PC 17483,221.7792,C97,S -1049,3,"Lundin, Miss. Olga Elida",female,23,0,0,347469,7.8542,,S -1050,1,"Borebank, Mr. John James",male,42,0,0,110489,26.55,D22,S -1051,3,"Peacock, Mrs. Benjamin (Edith Nile)",female,26,0,2,SOTON/O.Q. 3101315,13.775,,S -1052,3,"Smyth, Miss. Julia",female,,0,0,335432,7.7333,,Q -1053,3,"Touma, Master. Georges Youssef",male,7,1,1,2650,15.2458,,C -1054,2,"Wright, Miss. Marion",female,26,0,0,220844,13.5,,S -1055,3,"Pearce, Mr. Ernest",male,,0,0,343271,7,,S -1056,2,"Peruschitz, Rev. Joseph Maria",male,41,0,0,237393,13,,S -1057,3,"Kink-Heilmann, Mrs. Anton (Luise Heilmann)",female,26,1,1,315153,22.025,,S -1058,1,"Brandeis, Mr. Emil",male,48,0,0,PC 17591,50.4958,B10,C -1059,3,"Ford, Mr. Edward Watson",male,18,2,2,W./C. 6608,34.375,,S -1060,1,"Cassebeer, Mrs. Henry Arthur Jr (Eleanor Genevieve Fosdick)",female,,0,0,17770,27.7208,,C -1061,3,"Hellstrom, Miss. Hilda Maria",female,22,0,0,7548,8.9625,,S -1062,3,"Lithman, Mr. Simon",male,,0,0,S.O./P.P. 251,7.55,,S -1063,3,"Zakarian, Mr. Ortin",male,27,0,0,2670,7.225,,C -1064,3,"Dyker, Mr. Adolf Fredrik",male,23,1,0,347072,13.9,,S -1065,3,"Torfa, Mr. Assad",male,,0,0,2673,7.2292,,C -1066,3,"Asplund, Mr. Carl Oscar Vilhelm Gustafsson",male,40,1,5,347077,31.3875,,S -1067,2,"Brown, Miss. Edith Eileen",female,15,0,2,29750,39,,S -1068,2,"Sincock, Miss. Maude",female,20,0,0,C.A. 33112,36.75,,S -1069,1,"Stengel, Mr. Charles Emil Henry",male,54,1,0,11778,55.4417,C116,C -1070,2,"Becker, Mrs. Allen Oliver (Nellie E Baumgardner)",female,36,0,3,230136,39,F4,S -1071,1,"Compton, Mrs. Alexander Taylor (Mary Eliza Ingersoll)",female,64,0,2,PC 17756,83.1583,E45,C -1072,2,"McCrie, Mr. James Matthew",male,30,0,0,233478,13,,S -1073,1,"Compton, Mr. Alexander Taylor Jr",male,37,1,1,PC 17756,83.1583,E52,C -1074,1,"Marvin, Mrs. Daniel Warner (Mary Graham Carmichael Farquarson)",female,18,1,0,113773,53.1,D30,S -1075,3,"Lane, Mr. Patrick",male,,0,0,7935,7.75,,Q -1076,1,"Douglas, Mrs. Frederick Charles (Mary Helene Baxter)",female,27,1,1,PC 17558,247.5208,B58 B60,C -1077,2,"Maybery, Mr. Frank Hubert",male,40,0,0,239059,16,,S -1078,2,"Phillips, Miss. Alice Frances Louisa",female,21,0,1,S.O./P.P. 2,21,,S -1079,3,"Davies, Mr. Joseph",male,17,2,0,A/4 48873,8.05,,S -1080,3,"Sage, Miss. Ada",female,,8,2,CA. 2343,69.55,,S -1081,2,"Veal, Mr. James",male,40,0,0,28221,13,,S -1082,2,"Angle, Mr. William A",male,34,1,0,226875,26,,S -1083,1,"Salomon, Mr. Abraham L",male,,0,0,111163,26,,S -1084,3,"van Billiard, Master. Walter John",male,11.5,1,1,A/5. 851,14.5,,S -1085,2,"Lingane, Mr. John",male,61,0,0,235509,12.35,,Q -1086,2,"Drew, Master. Marshall Brines",male,8,0,2,28220,32.5,,S -1087,3,"Karlsson, Mr. Julius Konrad Eugen",male,33,0,0,347465,7.8542,,S -1088,1,"Spedden, Master. Robert Douglas",male,6,0,2,16966,134.5,E34,C -1089,3,"Nilsson, Miss. Berta Olivia",female,18,0,0,347066,7.775,,S -1090,2,"Baimbrigge, Mr. Charles Robert",male,23,0,0,C.A. 31030,10.5,,S -1091,3,"Rasmussen, Mrs. (Lena Jacobsen Solvang)",female,,0,0,65305,8.1125,,S -1092,3,"Murphy, Miss. Nora",female,,0,0,36568,15.5,,Q -1093,3,"Danbom, Master. Gilbert Sigvard Emanuel",male,0.33,0,2,347080,14.4,,S -1094,1,"Astor, Col. John Jacob",male,47,1,0,PC 17757,227.525,C62 C64,C -1095,2,"Quick, Miss. Winifred Vera",female,8,1,1,26360,26,,S -1096,2,"Andrew, Mr. Frank Thomas",male,25,0,0,C.A. 34050,10.5,,S -1097,1,"Omont, Mr. Alfred Fernand",male,,0,0,F.C. 12998,25.7417,,C -1098,3,"McGowan, Miss. Katherine",female,35,0,0,9232,7.75,,Q -1099,2,"Collett, Mr. Sidney C Stuart",male,24,0,0,28034,10.5,,S -1100,1,"Rosenbaum, Miss. Edith Louise",female,33,0,0,PC 17613,27.7208,A11,C -1101,3,"Delalic, Mr. Redjo",male,25,0,0,349250,7.8958,,S -1102,3,"Andersen, Mr. Albert Karvin",male,32,0,0,C 4001,22.525,,S -1103,3,"Finoli, Mr. Luigi",male,,0,0,SOTON/O.Q. 3101308,7.05,,S -1104,2,"Deacon, Mr. Percy William",male,17,0,0,S.O.C. 14879,73.5,,S -1105,2,"Howard, Mrs. Benjamin (Ellen Truelove Arman)",female,60,1,0,24065,26,,S -1106,3,"Andersson, Miss. Ida Augusta Margareta",female,38,4,2,347091,7.775,,S -1107,1,"Head, Mr. Christopher",male,42,0,0,113038,42.5,B11,S -1108,3,"Mahon, Miss. Bridget Delia",female,,0,0,330924,7.8792,,Q -1109,1,"Wick, Mr. George Dennick",male,57,1,1,36928,164.8667,,S -1110,1,"Widener, Mrs. George Dunton (Eleanor Elkins)",female,50,1,1,113503,211.5,C80,C -1111,3,"Thomson, Mr. Alexander Morrison",male,,0,0,32302,8.05,,S -1112,2,"Duran y More, Miss. Florentina",female,30,1,0,SC/PARIS 2148,13.8583,,C -1113,3,"Reynolds, Mr. Harold J",male,21,0,0,342684,8.05,,S -1114,2,"Cook, Mrs. (Selena Rogers)",female,22,0,0,W./C. 14266,10.5,F33,S -1115,3,"Karlsson, Mr. Einar Gervasius",male,21,0,0,350053,7.7958,,S -1116,1,"Candee, Mrs. Edward (Helen Churchill Hungerford)",female,53,0,0,PC 17606,27.4458,,C -1117,3,"Moubarek, Mrs. George (Omine Amenia"" Alexander)""",female,,0,2,2661,15.2458,,C -1118,3,"Asplund, Mr. Johan Charles",male,23,0,0,350054,7.7958,,S -1119,3,"McNeill, Miss. Bridget",female,,0,0,370368,7.75,,Q -1120,3,"Everett, Mr. Thomas James",male,40.5,0,0,C.A. 6212,15.1,,S -1121,2,"Hocking, Mr. Samuel James Metcalfe",male,36,0,0,242963,13,,S -1122,2,"Sweet, Mr. George Frederick",male,14,0,0,220845,65,,S -1123,1,"Willard, Miss. Constance",female,21,0,0,113795,26.55,,S -1124,3,"Wiklund, Mr. Karl Johan",male,21,1,0,3101266,6.4958,,S -1125,3,"Linehan, Mr. Michael",male,,0,0,330971,7.8792,,Q -1126,1,"Cumings, Mr. John Bradley",male,39,1,0,PC 17599,71.2833,C85,C -1127,3,"Vendel, Mr. Olof Edvin",male,20,0,0,350416,7.8542,,S -1128,1,"Warren, Mr. Frank Manley",male,64,1,0,110813,75.25,D37,C -1129,3,"Baccos, Mr. Raffull",male,20,0,0,2679,7.225,,C -1130,2,"Hiltunen, Miss. Marta",female,18,1,1,250650,13,,S -1131,1,"Douglas, Mrs. Walter Donald (Mahala Dutton)",female,48,1,0,PC 17761,106.425,C86,C -1132,1,"Lindstrom, Mrs. Carl Johan (Sigrid Posse)",female,55,0,0,112377,27.7208,,C -1133,2,"Christy, Mrs. (Alice Frances)",female,45,0,2,237789,30,,S -1134,1,"Spedden, Mr. Frederic Oakley",male,45,1,1,16966,134.5,E34,C -1135,3,"Hyman, Mr. Abraham",male,,0,0,3470,7.8875,,S -1136,3,"Johnston, Master. William Arthur Willie""""",male,,1,2,W./C. 6607,23.45,,S -1137,1,"Kenyon, Mr. Frederick R",male,41,1,0,17464,51.8625,D21,S -1138,2,"Karnes, Mrs. J Frank (Claire Bennett)",female,22,0,0,F.C.C. 13534,21,,S -1139,2,"Drew, Mr. James Vivian",male,42,1,1,28220,32.5,,S -1140,2,"Hold, Mrs. Stephen (Annie Margaret Hill)",female,29,1,0,26707,26,,S -1141,3,"Khalil, Mrs. Betros (Zahie Maria"" Elias)""",female,,1,0,2660,14.4542,,C -1142,2,"West, Miss. Barbara J",female,0.92,1,2,C.A. 34651,27.75,,S -1143,3,"Abrahamsson, Mr. Abraham August Johannes",male,20,0,0,SOTON/O2 3101284,7.925,,S -1144,1,"Clark, Mr. Walter Miller",male,27,1,0,13508,136.7792,C89,C -1145,3,"Salander, Mr. Karl Johan",male,24,0,0,7266,9.325,,S -1146,3,"Wenzel, Mr. Linhart",male,32.5,0,0,345775,9.5,,S -1147,3,"MacKay, Mr. George William",male,,0,0,C.A. 42795,7.55,,S -1148,3,"Mahon, Mr. John",male,,0,0,AQ/4 3130,7.75,,Q -1149,3,"Niklasson, Mr. Samuel",male,28,0,0,363611,8.05,,S -1150,2,"Bentham, Miss. Lilian W",female,19,0,0,28404,13,,S -1151,3,"Midtsjo, Mr. Karl Albert",male,21,0,0,345501,7.775,,S -1152,3,"de Messemaeker, Mr. Guillaume Joseph",male,36.5,1,0,345572,17.4,,S -1153,3,"Nilsson, Mr. August Ferdinand",male,21,0,0,350410,7.8542,,S -1154,2,"Wells, Mrs. Arthur Henry (Addie"" Dart Trevaskis)""",female,29,0,2,29103,23,,S -1155,3,"Klasen, Miss. Gertrud Emilia",female,1,1,1,350405,12.1833,,S -1156,2,"Portaluppi, Mr. Emilio Ilario Giuseppe",male,30,0,0,C.A. 34644,12.7375,,C -1157,3,"Lyntakoff, Mr. Stanko",male,,0,0,349235,7.8958,,S -1158,1,"Chisholm, Mr. Roderick Robert Crispin",male,,0,0,112051,0,,S -1159,3,"Warren, Mr. Charles William",male,,0,0,C.A. 49867,7.55,,S -1160,3,"Howard, Miss. May Elizabeth",female,,0,0,A. 2. 39186,8.05,,S -1161,3,"Pokrnic, Mr. Mate",male,17,0,0,315095,8.6625,,S -1162,1,"McCaffry, Mr. Thomas Francis",male,46,0,0,13050,75.2417,C6,C -1163,3,"Fox, Mr. Patrick",male,,0,0,368573,7.75,,Q -1164,1,"Clark, Mrs. Walter Miller (Virginia McDowell)",female,26,1,0,13508,136.7792,C89,C -1165,3,"Lennon, Miss. Mary",female,,1,0,370371,15.5,,Q -1166,3,"Saade, Mr. Jean Nassr",male,,0,0,2676,7.225,,C -1167,2,"Bryhl, Miss. Dagmar Jenny Ingeborg ",female,20,1,0,236853,26,,S -1168,2,"Parker, Mr. Clifford Richard",male,28,0,0,SC 14888,10.5,,S -1169,2,"Faunthorpe, Mr. Harry",male,40,1,0,2926,26,,S -1170,2,"Ware, Mr. John James",male,30,1,0,CA 31352,21,,S -1171,2,"Oxenham, Mr. Percy Thomas",male,22,0,0,W./C. 14260,10.5,,S -1172,3,"Oreskovic, Miss. Jelka",female,23,0,0,315085,8.6625,,S -1173,3,"Peacock, Master. Alfred Edward",male,0.75,1,1,SOTON/O.Q. 3101315,13.775,,S -1174,3,"Fleming, Miss. Honora",female,,0,0,364859,7.75,,Q -1175,3,"Touma, Miss. Maria Youssef",female,9,1,1,2650,15.2458,,C -1176,3,"Rosblom, Miss. Salli Helena",female,2,1,1,370129,20.2125,,S -1177,3,"Dennis, Mr. William",male,36,0,0,A/5 21175,7.25,,S -1178,3,"Franklin, Mr. Charles (Charles Fardon)",male,,0,0,SOTON/O.Q. 3101314,7.25,,S -1179,1,"Snyder, Mr. John Pillsbury",male,24,1,0,21228,82.2667,B45,S -1180,3,"Mardirosian, Mr. Sarkis",male,,0,0,2655,7.2292,F E46,C -1181,3,"Ford, Mr. Arthur",male,,0,0,A/5 1478,8.05,,S -1182,1,"Rheims, Mr. George Alexander Lucien",male,,0,0,PC 17607,39.6,,S -1183,3,"Daly, Miss. Margaret Marcella Maggie""""",female,30,0,0,382650,6.95,,Q -1184,3,"Nasr, Mr. Mustafa",male,,0,0,2652,7.2292,,C -1185,1,"Dodge, Dr. Washington",male,53,1,1,33638,81.8583,A34,S -1186,3,"Wittevrongel, Mr. Camille",male,36,0,0,345771,9.5,,S -1187,3,"Angheloff, Mr. Minko",male,26,0,0,349202,7.8958,,S -1188,2,"Laroche, Miss. Louise",female,1,1,2,SC/Paris 2123,41.5792,,C -1189,3,"Samaan, Mr. Hanna",male,,2,0,2662,21.6792,,C -1190,1,"Loring, Mr. Joseph Holland",male,30,0,0,113801,45.5,,S -1191,3,"Johansson, Mr. Nils",male,29,0,0,347467,7.8542,,S -1192,3,"Olsson, Mr. Oscar Wilhelm",male,32,0,0,347079,7.775,,S -1193,2,"Malachard, Mr. Noel",male,,0,0,237735,15.0458,D,C -1194,2,"Phillips, Mr. Escott Robert",male,43,0,1,S.O./P.P. 2,21,,S -1195,3,"Pokrnic, Mr. Tome",male,24,0,0,315092,8.6625,,S -1196,3,"McCarthy, Miss. Catherine Katie""""",female,,0,0,383123,7.75,,Q -1197,1,"Crosby, Mrs. Edward Gifford (Catherine Elizabeth Halstead)",female,64,1,1,112901,26.55,B26,S -1198,1,"Allison, Mr. Hudson Joshua Creighton",male,30,1,2,113781,151.55,C22 C26,S -1199,3,"Aks, Master. Philip Frank",male,0.83,0,1,392091,9.35,,S -1200,1,"Hays, Mr. Charles Melville",male,55,1,1,12749,93.5,B69,S -1201,3,"Hansen, Mrs. Claus Peter (Jennie L Howard)",female,45,1,0,350026,14.1083,,S -1202,3,"Cacic, Mr. Jego Grga",male,18,0,0,315091,8.6625,,S -1203,3,"Vartanian, Mr. David",male,22,0,0,2658,7.225,,C -1204,3,"Sadowitz, Mr. Harry",male,,0,0,LP 1588,7.575,,S -1205,3,"Carr, Miss. Jeannie",female,37,0,0,368364,7.75,,Q -1206,1,"White, Mrs. John Stuart (Ella Holmes)",female,55,0,0,PC 17760,135.6333,C32,C -1207,3,"Hagardon, Miss. Kate",female,17,0,0,AQ/3. 30631,7.7333,,Q -1208,1,"Spencer, Mr. William Augustus",male,57,1,0,PC 17569,146.5208,B78,C -1209,2,"Rogers, Mr. Reginald Harry",male,19,0,0,28004,10.5,,S -1210,3,"Jonsson, Mr. Nils Hilding",male,27,0,0,350408,7.8542,,S -1211,2,"Jefferys, Mr. Ernest Wilfred",male,22,2,0,C.A. 31029,31.5,,S -1212,3,"Andersson, Mr. Johan Samuel",male,26,0,0,347075,7.775,,S -1213,3,"Krekorian, Mr. Neshan",male,25,0,0,2654,7.2292,F E57,C -1214,2,"Nesson, Mr. Israel",male,26,0,0,244368,13,F2,S -1215,1,"Rowe, Mr. Alfred G",male,33,0,0,113790,26.55,,S -1216,1,"Kreuchen, Miss. Emilie",female,39,0,0,24160,211.3375,,S -1217,3,"Assam, Mr. Ali",male,23,0,0,SOTON/O.Q. 3101309,7.05,,S -1218,2,"Becker, Miss. Ruth Elizabeth",female,12,2,1,230136,39,F4,S -1219,1,"Rosenshine, Mr. George (Mr George Thorne"")""",male,46,0,0,PC 17585,79.2,,C -1220,2,"Clarke, Mr. Charles Valentine",male,29,1,0,2003,26,,S -1221,2,"Enander, Mr. Ingvar",male,21,0,0,236854,13,,S -1222,2,"Davies, Mrs. John Morgan (Elizabeth Agnes Mary White) ",female,48,0,2,C.A. 33112,36.75,,S -1223,1,"Dulles, Mr. William Crothers",male,39,0,0,PC 17580,29.7,A18,C -1224,3,"Thomas, Mr. Tannous",male,,0,0,2684,7.225,,C -1225,3,"Nakid, Mrs. Said (Waika Mary"" Mowad)""",female,19,1,1,2653,15.7417,,C -1226,3,"Cor, Mr. Ivan",male,27,0,0,349229,7.8958,,S -1227,1,"Maguire, Mr. John Edward",male,30,0,0,110469,26,C106,S -1228,2,"de Brito, Mr. Jose Joaquim",male,32,0,0,244360,13,,S -1229,3,"Elias, Mr. Joseph",male,39,0,2,2675,7.2292,,C -1230,2,"Denbury, Mr. Herbert",male,25,0,0,C.A. 31029,31.5,,S -1231,3,"Betros, Master. Seman",male,,0,0,2622,7.2292,,C -1232,2,"Fillbrook, Mr. Joseph Charles",male,18,0,0,C.A. 15185,10.5,,S -1233,3,"Lundstrom, Mr. Thure Edvin",male,32,0,0,350403,7.5792,,S -1234,3,"Sage, Mr. John George",male,,1,9,CA. 2343,69.55,,S -1235,1,"Cardeza, Mrs. James Warburton Martinez (Charlotte Wardle Drake)",female,58,0,1,PC 17755,512.3292,B51 B53 B55,C -1236,3,"van Billiard, Master. James William",male,,1,1,A/5. 851,14.5,,S -1237,3,"Abelseth, Miss. Karen Marie",female,16,0,0,348125,7.65,,S -1238,2,"Botsford, Mr. William Hull",male,26,0,0,237670,13,,S -1239,3,"Whabee, Mrs. George Joseph (Shawneene Abi-Saab)",female,38,0,0,2688,7.2292,,C -1240,2,"Giles, Mr. Ralph",male,24,0,0,248726,13.5,,S -1241,2,"Walcroft, Miss. Nellie",female,31,0,0,F.C.C. 13528,21,,S -1242,1,"Greenfield, Mrs. Leo David (Blanche Strouse)",female,45,0,1,PC 17759,63.3583,D10 D12,C -1243,2,"Stokes, Mr. Philip Joseph",male,25,0,0,F.C.C. 13540,10.5,,S -1244,2,"Dibden, Mr. William",male,18,0,0,S.O.C. 14879,73.5,,S -1245,2,"Herman, Mr. Samuel",male,49,1,2,220845,65,,S -1246,3,"Dean, Miss. Elizabeth Gladys Millvina""""",female,0.17,1,2,C.A. 2315,20.575,,S -1247,1,"Julian, Mr. Henry Forbes",male,50,0,0,113044,26,E60,S -1248,1,"Brown, Mrs. John Murray (Caroline Lane Lamson)",female,59,2,0,11769,51.4792,C101,S -1249,3,"Lockyer, Mr. Edward",male,,0,0,1222,7.8792,,S -1250,3,"O'Keefe, Mr. Patrick",male,,0,0,368402,7.75,,Q -1251,3,"Lindell, Mrs. Edvard Bengtsson (Elin Gerda Persson)",female,30,1,0,349910,15.55,,S -1252,3,"Sage, Master. William Henry",male,14.5,8,2,CA. 2343,69.55,,S -1253,2,"Mallet, Mrs. Albert (Antoinette Magnin)",female,24,1,1,S.C./PARIS 2079,37.0042,,C -1254,2,"Ware, Mrs. John James (Florence Louise Long)",female,31,0,0,CA 31352,21,,S -1255,3,"Strilic, Mr. Ivan",male,27,0,0,315083,8.6625,,S -1256,1,"Harder, Mrs. George Achilles (Dorothy Annan)",female,25,1,0,11765,55.4417,E50,C -1257,3,"Sage, Mrs. John (Annie Bullen)",female,,1,9,CA. 2343,69.55,,S -1258,3,"Caram, Mr. Joseph",male,,1,0,2689,14.4583,,C -1259,3,"Riihivouri, Miss. Susanna Juhantytar Sanni""""",female,22,0,0,3101295,39.6875,,S -1260,1,"Gibson, Mrs. Leonard (Pauline C Boeson)",female,45,0,1,112378,59.4,,C -1261,2,"Pallas y Castello, Mr. Emilio",male,29,0,0,SC/PARIS 2147,13.8583,,C -1262,2,"Giles, Mr. Edgar",male,21,1,0,28133,11.5,,S -1263,1,"Wilson, Miss. Helen Alice",female,31,0,0,16966,134.5,E39 E41,C -1264,1,"Ismay, Mr. Joseph Bruce",male,49,0,0,112058,0,B52 B54 B56,S -1265,2,"Harbeck, Mr. William H",male,44,0,0,248746,13,,S -1266,1,"Dodge, Mrs. Washington (Ruth Vidaver)",female,54,1,1,33638,81.8583,A34,S -1267,1,"Bowen, Miss. Grace Scott",female,45,0,0,PC 17608,262.375,,C -1268,3,"Kink, Miss. Maria",female,22,2,0,315152,8.6625,,S -1269,2,"Cotterill, Mr. Henry Harry""""",male,21,0,0,29107,11.5,,S -1270,1,"Hipkins, Mr. William Edward",male,55,0,0,680,50,C39,S -1271,3,"Asplund, Master. Carl Edgar",male,5,4,2,347077,31.3875,,S -1272,3,"O'Connor, Mr. Patrick",male,,0,0,366713,7.75,,Q -1273,3,"Foley, Mr. Joseph",male,26,0,0,330910,7.8792,,Q -1274,3,"Risien, Mrs. Samuel (Emma)",female,,0,0,364498,14.5,,S -1275,3,"McNamee, Mrs. Neal (Eileen O'Leary)",female,19,1,0,376566,16.1,,S -1276,2,"Wheeler, Mr. Edwin Frederick""""",male,,0,0,SC/PARIS 2159,12.875,,S -1277,2,"Herman, Miss. Kate",female,24,1,2,220845,65,,S -1278,3,"Aronsson, Mr. Ernst Axel Algot",male,24,0,0,349911,7.775,,S -1279,2,"Ashby, Mr. John",male,57,0,0,244346,13,,S -1280,3,"Canavan, Mr. Patrick",male,21,0,0,364858,7.75,,Q -1281,3,"Palsson, Master. Paul Folke",male,6,3,1,349909,21.075,,S -1282,1,"Payne, Mr. Vivian Ponsonby",male,23,0,0,12749,93.5,B24,S -1283,1,"Lines, Mrs. Ernest H (Elizabeth Lindsey James)",female,51,0,1,PC 17592,39.4,D28,S -1284,3,"Abbott, Master. Eugene Joseph",male,13,0,2,C.A. 2673,20.25,,S -1285,2,"Gilbert, Mr. William",male,47,0,0,C.A. 30769,10.5,,S -1286,3,"Kink-Heilmann, Mr. Anton",male,29,3,1,315153,22.025,,S -1287,1,"Smith, Mrs. Lucien Philip (Mary Eloise Hughes)",female,18,1,0,13695,60,C31,S -1288,3,"Colbert, Mr. Patrick",male,24,0,0,371109,7.25,,Q -1289,1,"Frolicher-Stehli, Mrs. Maxmillian (Margaretha Emerentia Stehli)",female,48,1,1,13567,79.2,B41,C -1290,3,"Larsson-Rondberg, Mr. Edvard A",male,22,0,0,347065,7.775,,S -1291,3,"Conlon, Mr. Thomas Henry",male,31,0,0,21332,7.7333,,Q -1292,1,"Bonnell, Miss. Caroline",female,30,0,0,36928,164.8667,C7,S -1293,2,"Gale, Mr. Harry",male,38,1,0,28664,21,,S -1294,1,"Gibson, Miss. Dorothy Winifred",female,22,0,1,112378,59.4,,C -1295,1,"Carrau, Mr. Jose Pedro",male,17,0,0,113059,47.1,,S -1296,1,"Frauenthal, Mr. Isaac Gerald",male,43,1,0,17765,27.7208,D40,C -1297,2,"Nourney, Mr. Alfred (Baron von Drachstedt"")""",male,20,0,0,SC/PARIS 2166,13.8625,D38,C -1298,2,"Ware, Mr. William Jeffery",male,23,1,0,28666,10.5,,S -1299,1,"Widener, Mr. George Dunton",male,50,1,1,113503,211.5,C80,C -1300,3,"Riordan, Miss. Johanna Hannah""""",female,,0,0,334915,7.7208,,Q -1301,3,"Peacock, Miss. Treasteall",female,3,1,1,SOTON/O.Q. 3101315,13.775,,S -1302,3,"Naughton, Miss. Hannah",female,,0,0,365237,7.75,,Q -1303,1,"Minahan, Mrs. William Edward (Lillian E Thorpe)",female,37,1,0,19928,90,C78,Q -1304,3,"Henriksson, Miss. Jenny Lovisa",female,28,0,0,347086,7.775,,S -1305,3,"Spector, Mr. Woolf",male,,0,0,A.5. 3236,8.05,,S -1306,1,"Oliva y Ocana, Dona. Fermina",female,39,0,0,PC 17758,108.9,C105,C -1307,3,"Saether, Mr. Simon Sivertsen",male,38.5,0,0,SOTON/O.Q. 3101262,7.25,,S -1308,3,"Ware, Mr. Frederick",male,,0,0,359309,8.05,,S -1309,3,"Peter, Master. Michael J",male,,1,1,2668,22.3583,,C diff --git a/ml2/images/EscUpmPolit_p.gif b/ml2/images/EscUpmPolit_p.gif new file mode 100644 index 0000000000000000000000000000000000000000..a821282d01d9828217973d170df5311b92f3fe6b GIT binary patch literal 3171 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

2@6sF7G_9~YO)_8<_=j&c4qyi!9rLTUMON~@a zSGxOk?|l!F-{dwT6{p|?6_g7FPDn!fvZ0NTV7+NHP#op${2Hw-Y&b0wwyPj}h+~A+83(Ci?sYcBG;c^@ueU z{*374DjEn>XmoNR-CZcOLmJKP#Fjao+%&J58c_K2bFHC{cKCO>={-oSGtm!eSR)^g z2ySzO+v_N|Be{%r^fdZGk9JccA7^GRuBku`deHgPp{52T=ImTZ^n((qphtm$011Q` zS-C-0$21}lYHN(!8s+|Vu+?piNLc(4`e3-c>%m=X(4!H~X7j$U;9P0YgAzgi=EQOx z0qf=Rxxl8#^>V3Dk5fdP9q1PJquZQZV@D&|90vjvtkI5jfI7)EM@4gkt(uORH&H67q&4f z;(m%)XBxmz0KI-oAK>OYU%5|E{`03#efLKHAdu*;cA;?H?sJ~`)ptHX_@isx?0T0W z>`4DQ)G=JuCi(rb?d@)H3u4yWpY@#3g#P!>fBti#6ZUrsw$)pZmSn?KWv7*Z3b=p_ J7#INo06U6|WDWoT literal 0 HcmV?d00001 diff --git a/ml2/images/machine-learning-process.jpg b/ml2/images/machine-learning-process.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c116d960f3305b1e0c00552c168bd8a8d52e3e1e GIT binary patch literal 243101 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

rkFzkYn+fD?MO0G2dd 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