1510 lines
211 KiB
Text
1510 lines
211 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# A hands-on Machine Learning Introduction in Python with scikit-learn"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## What is Machine Learning\n",
|
|
"\n",
|
|
"\n",
|
|
"Machine learning is the process of **extracting knowledge from data** automatically.\n",
|
|
"\n",
|
|
"The goals usually include making predictions on new, unseen data or simply understanding given data better by finding patterns.\n",
|
|
"\n",
|
|
"Central to machine learning is the concept of **automating decision making** from data **without the user specifying explicit rules** how this decision should be made.\n",
|
|
"\n",
|
|
"<img src=\"raw/what_is_machine_learning.png\" width=\"100%\">"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Examples\n",
|
|
"\n",
|
|
"<img src=\"raw/examples.png\" width=\"100%\">"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 3 Types of Machine Learning\n",
|
|
"\n",
|
|
"<img src=\"raw/3_types_of_machine_learning.png\" width=\"100%\">\n",
|
|
"\n",
|
|
"- **Supervised** (focus of this notebook): Each entry in the dataset comes with a \"label\". Examples are a list of emails where spam mail is already marked as such or a sample of handwritten digits. The goal is to use the historic data to make predictions.\n",
|
|
"\n",
|
|
"- **Unsupervised**: There is no desired output associated with a data entry. In a sense, one can think of unsupervised learning as a means of discovering labels from the data itself. A popular example is the clustering of customer data.\n",
|
|
"\n",
|
|
"- **Reinforcement**: Conceptually, this can be seen as \"learning by doing\". Some kind of \"reward function\" tells how good a predicted outcome is. For example, chess computers are typically programmed with this approach."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 2 Types of Supervised Learning\n",
|
|
"\n",
|
|
"<img src=\"raw/classification_vs_regression.png\" width=\"100%\">\n",
|
|
"\n",
|
|
"- **In classification, the label is discrete**, such as \"spam\" or \"no spam\" for emails.\n",
|
|
"Furthermore, labels are nominal (e.g., colors of something), not ordinal (e.g., T-shirt sizes in S, M, or L).\n",
|
|
"\n",
|
|
"\n",
|
|
"- **In regression, the labels are continuous**. For example, given a person's age, education, and position, infer his/her salary."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Case study: Iris flower classification\n",
|
|
"\n",
|
|
"<img src=\"raw/iris_data.png\" width=\"100%\">"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Python for scientific computing\n",
|
|
"\n",
|
|
"Python itself does not come with any scientific algorithms implemented it. However, over time, many open source libraries emerged that are useful to build machine learning applications.\n",
|
|
"\n",
|
|
"Among the popular ones are numpy (numerical computations, linear algebra), pandas (data processing), matplotlib (visualisations), and scikit-learn (machine learning algorithms).\n",
|
|
"\n",
|
|
"First, import the libraries:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import pandas as pd\n",
|
|
"import matplotlib.pyplot as plt"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The following line is needed so that this Jupyter notebook creates the visiualizations in the notebook and not in a new window. This has nothing to do with Python."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"%matplotlib inline"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Standard Python can do basic arithmetic operations ..."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"3"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"a = 1\n",
|
|
"b = 2\n",
|
|
"c = a + b\n",
|
|
"c"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"... and provides some simple **data structures**, such as a list of values."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[1, 2, 3, 4]"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"l = [a, b, c, 4]\n",
|
|
"l"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Numpy provides a data structure called an **n-dimensional array**. This may sound fancy at first but when used with only 1 or 2 dimensions, it basically represents vectors and matrices. Arrays allow for much faster computations as they use very low level functions modern computers provide."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"To create an array, use the **array()** function from the imported **np** module and provide it with a list of values."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([1, 2, 3])"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"v1 = np.array([1, 2, 3])\n",
|
|
"v1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"A vector can be multiplied with a scalar."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([3, 6, 9])"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"v2 = v1 * 3\n",
|
|
"v2"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"To create a matrix, just use a list of (row) list of values instead."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[1, 2, 3],\n",
|
|
" [4, 5, 6]])"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"m1 = np.array([\n",
|
|
" [1, 2, 3],\n",
|
|
" [4, 5, 6],\n",
|
|
"])\n",
|
|
"m1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now we can use numpy to multiply a matrix with a vector to obtain a new vector ..."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([14, 32])"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"v3 = np.dot(m1, v1)\n",
|
|
"v3"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"... or simply transpose it."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[1, 4],\n",
|
|
" [2, 5],\n",
|
|
" [3, 6]])"
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"m1.T"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The rules from maths still apply and it makes a difference if a vector is multiplied from the left or the right by a matrix. The following operation will fail."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"ename": "ValueError",
|
|
"evalue": "shapes (3,) and (2,3) not aligned: 3 (dim 0) != 2 (dim 0)",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
|
|
"\u001b[0;32m<ipython-input-10-c170f5d663e1>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
|
"\u001b[0;31mValueError\u001b[0m: shapes (3,) and (2,3) not aligned: 3 (dim 0) != 2 (dim 0)"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"np.dot(v1, m1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"In order to retrieve only a slice (= subset) of an array's data, we can \"index\" into it. For example, the first row of the matrix is ..."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([1, 2, 3])"
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"m1[0, :]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"... while the second column is:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([2, 5])"
|
|
]
|
|
},
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"m1[:, 1]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"To acces the lowest element in the right column, two indices can be used."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"6"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"m1[1, 2]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Numpy also provides various other functions and constants, such as sinus or pi. To further illustrate the concept of **vectorization**, let us calculate the sinus curve over a range of values."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([-9.42477796, -9.23437841, -9.04397885, -8.8535793 , -8.66317974,\n",
|
|
" -8.47278019, -8.28238063, -8.09198108, -7.90158152, -7.71118197,\n",
|
|
" -7.52078241, -7.33038286, -7.1399833 , -6.94958375, -6.75918419,\n",
|
|
" -6.56878464, -6.37838508, -6.18798553, -5.99758598, -5.80718642,\n",
|
|
" -5.61678687, -5.42638731, -5.23598776, -5.0455882 , -4.85518865,\n",
|
|
" -4.66478909, -4.47438954, -4.28398998, -4.09359043, -3.90319087,\n",
|
|
" -3.71279132, -3.52239176, -3.33199221, -3.14159265, -2.9511931 ,\n",
|
|
" -2.76079354, -2.57039399, -2.37999443, -2.18959488, -1.99919533,\n",
|
|
" -1.80879577, -1.61839622, -1.42799666, -1.23759711, -1.04719755,\n",
|
|
" -0.856798 , -0.66639844, -0.47599889, -0.28559933, -0.09519978,\n",
|
|
" 0.09519978, 0.28559933, 0.47599889, 0.66639844, 0.856798 ,\n",
|
|
" 1.04719755, 1.23759711, 1.42799666, 1.61839622, 1.80879577,\n",
|
|
" 1.99919533, 2.18959488, 2.37999443, 2.57039399, 2.76079354,\n",
|
|
" 2.9511931 , 3.14159265, 3.33199221, 3.52239176, 3.71279132,\n",
|
|
" 3.90319087, 4.09359043, 4.28398998, 4.47438954, 4.66478909,\n",
|
|
" 4.85518865, 5.0455882 , 5.23598776, 5.42638731, 5.61678687,\n",
|
|
" 5.80718642, 5.99758598, 6.18798553, 6.37838508, 6.56878464,\n",
|
|
" 6.75918419, 6.94958375, 7.1399833 , 7.33038286, 7.52078241,\n",
|
|
" 7.71118197, 7.90158152, 8.09198108, 8.28238063, 8.47278019,\n",
|
|
" 8.66317974, 8.8535793 , 9.04397885, 9.23437841, 9.42477796])"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"x = np.linspace(-3*np.pi, 3*np.pi, 100)\n",
|
|
"x"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([-3.67394040e-16, -1.89251244e-01, -3.71662456e-01, -5.40640817e-01,\n",
|
|
" -6.90079011e-01, -8.14575952e-01, -9.09631995e-01, -9.71811568e-01,\n",
|
|
" -9.98867339e-01, -9.89821442e-01, -9.45000819e-01, -8.66025404e-01,\n",
|
|
" -7.55749574e-01, -6.18158986e-01, -4.58226522e-01, -2.81732557e-01,\n",
|
|
" -9.50560433e-02, 9.50560433e-02, 2.81732557e-01, 4.58226522e-01,\n",
|
|
" 6.18158986e-01, 7.55749574e-01, 8.66025404e-01, 9.45000819e-01,\n",
|
|
" 9.89821442e-01, 9.98867339e-01, 9.71811568e-01, 9.09631995e-01,\n",
|
|
" 8.14575952e-01, 6.90079011e-01, 5.40640817e-01, 3.71662456e-01,\n",
|
|
" 1.89251244e-01, -1.22464680e-16, -1.89251244e-01, -3.71662456e-01,\n",
|
|
" -5.40640817e-01, -6.90079011e-01, -8.14575952e-01, -9.09631995e-01,\n",
|
|
" -9.71811568e-01, -9.98867339e-01, -9.89821442e-01, -9.45000819e-01,\n",
|
|
" -8.66025404e-01, -7.55749574e-01, -6.18158986e-01, -4.58226522e-01,\n",
|
|
" -2.81732557e-01, -9.50560433e-02, 9.50560433e-02, 2.81732557e-01,\n",
|
|
" 4.58226522e-01, 6.18158986e-01, 7.55749574e-01, 8.66025404e-01,\n",
|
|
" 9.45000819e-01, 9.89821442e-01, 9.98867339e-01, 9.71811568e-01,\n",
|
|
" 9.09631995e-01, 8.14575952e-01, 6.90079011e-01, 5.40640817e-01,\n",
|
|
" 3.71662456e-01, 1.89251244e-01, 1.22464680e-16, -1.89251244e-01,\n",
|
|
" -3.71662456e-01, -5.40640817e-01, -6.90079011e-01, -8.14575952e-01,\n",
|
|
" -9.09631995e-01, -9.71811568e-01, -9.98867339e-01, -9.89821442e-01,\n",
|
|
" -9.45000819e-01, -8.66025404e-01, -7.55749574e-01, -6.18158986e-01,\n",
|
|
" -4.58226522e-01, -2.81732557e-01, -9.50560433e-02, 9.50560433e-02,\n",
|
|
" 2.81732557e-01, 4.58226522e-01, 6.18158986e-01, 7.55749574e-01,\n",
|
|
" 8.66025404e-01, 9.45000819e-01, 9.89821442e-01, 9.98867339e-01,\n",
|
|
" 9.71811568e-01, 9.09631995e-01, 8.14575952e-01, 6.90079011e-01,\n",
|
|
" 5.40640817e-01, 3.71662456e-01, 1.89251244e-01, 3.67394040e-16])"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y = np.sin(x)\n",
|
|
"y"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"With matplotlib's **plot()** function we can visualize the sinus curve."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[<matplotlib.lines.Line2D at 0x7fcfbbd6b358>]"
|
|
]
|
|
},
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.plot(x, y)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let us quickly generate some random data and draw a scatter plot."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.collections.PathCollection at 0x7fcfbbc8f320>"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"x = np.random.normal(42, 3, 100)\n",
|
|
"y = np.random.gamma(7, 1, 100)\n",
|
|
"plt.scatter(x, y)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Case study: importing the Iris data\n",
|
|
"\n",
|
|
"The sklearn library provides several sample datasets, among which is also the Iris dataset.\n",
|
|
"\n",
|
|
"As a table, the dataset would look like:\n",
|
|
"<img src=\"raw/iris.png\" width=\"100%\">\n",
|
|
"\n",
|
|
"However, the data object imported from sklearn is organized slightly different. In particular, the so-called **features** are seperated from the **labels**."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.datasets import load_iris\n",
|
|
"iris = load_iris()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Using Python's **dir()** function we can inspect the data object, i.e. find out what **attributes** it has."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"['DESCR', 'data', 'feature_names', 'filename', 'target', 'target_names']"
|
|
]
|
|
},
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"dir(iris)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"iris.data provides us with a Numpy array, where the first dimension equals the number of observed flowers (**instances**) and the second dimension lists the various features of a flower."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([[5.1, 3.5, 1.4, 0.2],\n",
|
|
" [4.9, 3. , 1.4, 0.2],\n",
|
|
" [4.7, 3.2, 1.3, 0.2],\n",
|
|
" [4.6, 3.1, 1.5, 0.2],\n",
|
|
" [5. , 3.6, 1.4, 0.2],\n",
|
|
" [5.4, 3.9, 1.7, 0.4],\n",
|
|
" [4.6, 3.4, 1.4, 0.3],\n",
|
|
" [5. , 3.4, 1.5, 0.2],\n",
|
|
" [4.4, 2.9, 1.4, 0.2],\n",
|
|
" [4.9, 3.1, 1.5, 0.1],\n",
|
|
" [5.4, 3.7, 1.5, 0.2],\n",
|
|
" [4.8, 3.4, 1.6, 0.2],\n",
|
|
" [4.8, 3. , 1.4, 0.1],\n",
|
|
" [4.3, 3. , 1.1, 0.1],\n",
|
|
" [5.8, 4. , 1.2, 0.2],\n",
|
|
" [5.7, 4.4, 1.5, 0.4],\n",
|
|
" [5.4, 3.9, 1.3, 0.4],\n",
|
|
" [5.1, 3.5, 1.4, 0.3],\n",
|
|
" [5.7, 3.8, 1.7, 0.3],\n",
|
|
" [5.1, 3.8, 1.5, 0.3],\n",
|
|
" [5.4, 3.4, 1.7, 0.2],\n",
|
|
" [5.1, 3.7, 1.5, 0.4],\n",
|
|
" [4.6, 3.6, 1. , 0.2],\n",
|
|
" [5.1, 3.3, 1.7, 0.5],\n",
|
|
" [4.8, 3.4, 1.9, 0.2],\n",
|
|
" [5. , 3. , 1.6, 0.2],\n",
|
|
" [5. , 3.4, 1.6, 0.4],\n",
|
|
" [5.2, 3.5, 1.5, 0.2],\n",
|
|
" [5.2, 3.4, 1.4, 0.2],\n",
|
|
" [4.7, 3.2, 1.6, 0.2],\n",
|
|
" [4.8, 3.1, 1.6, 0.2],\n",
|
|
" [5.4, 3.4, 1.5, 0.4],\n",
|
|
" [5.2, 4.1, 1.5, 0.1],\n",
|
|
" [5.5, 4.2, 1.4, 0.2],\n",
|
|
" [4.9, 3.1, 1.5, 0.2],\n",
|
|
" [5. , 3.2, 1.2, 0.2],\n",
|
|
" [5.5, 3.5, 1.3, 0.2],\n",
|
|
" [4.9, 3.6, 1.4, 0.1],\n",
|
|
" [4.4, 3. , 1.3, 0.2],\n",
|
|
" [5.1, 3.4, 1.5, 0.2],\n",
|
|
" [5. , 3.5, 1.3, 0.3],\n",
|
|
" [4.5, 2.3, 1.3, 0.3],\n",
|
|
" [4.4, 3.2, 1.3, 0.2],\n",
|
|
" [5. , 3.5, 1.6, 0.6],\n",
|
|
" [5.1, 3.8, 1.9, 0.4],\n",
|
|
" [4.8, 3. , 1.4, 0.3],\n",
|
|
" [5.1, 3.8, 1.6, 0.2],\n",
|
|
" [4.6, 3.2, 1.4, 0.2],\n",
|
|
" [5.3, 3.7, 1.5, 0.2],\n",
|
|
" [5. , 3.3, 1.4, 0.2],\n",
|
|
" [7. , 3.2, 4.7, 1.4],\n",
|
|
" [6.4, 3.2, 4.5, 1.5],\n",
|
|
" [6.9, 3.1, 4.9, 1.5],\n",
|
|
" [5.5, 2.3, 4. , 1.3],\n",
|
|
" [6.5, 2.8, 4.6, 1.5],\n",
|
|
" [5.7, 2.8, 4.5, 1.3],\n",
|
|
" [6.3, 3.3, 4.7, 1.6],\n",
|
|
" [4.9, 2.4, 3.3, 1. ],\n",
|
|
" [6.6, 2.9, 4.6, 1.3],\n",
|
|
" [5.2, 2.7, 3.9, 1.4],\n",
|
|
" [5. , 2. , 3.5, 1. ],\n",
|
|
" [5.9, 3. , 4.2, 1.5],\n",
|
|
" [6. , 2.2, 4. , 1. ],\n",
|
|
" [6.1, 2.9, 4.7, 1.4],\n",
|
|
" [5.6, 2.9, 3.6, 1.3],\n",
|
|
" [6.7, 3.1, 4.4, 1.4],\n",
|
|
" [5.6, 3. , 4.5, 1.5],\n",
|
|
" [5.8, 2.7, 4.1, 1. ],\n",
|
|
" [6.2, 2.2, 4.5, 1.5],\n",
|
|
" [5.6, 2.5, 3.9, 1.1],\n",
|
|
" [5.9, 3.2, 4.8, 1.8],\n",
|
|
" [6.1, 2.8, 4. , 1.3],\n",
|
|
" [6.3, 2.5, 4.9, 1.5],\n",
|
|
" [6.1, 2.8, 4.7, 1.2],\n",
|
|
" [6.4, 2.9, 4.3, 1.3],\n",
|
|
" [6.6, 3. , 4.4, 1.4],\n",
|
|
" [6.8, 2.8, 4.8, 1.4],\n",
|
|
" [6.7, 3. , 5. , 1.7],\n",
|
|
" [6. , 2.9, 4.5, 1.5],\n",
|
|
" [5.7, 2.6, 3.5, 1. ],\n",
|
|
" [5.5, 2.4, 3.8, 1.1],\n",
|
|
" [5.5, 2.4, 3.7, 1. ],\n",
|
|
" [5.8, 2.7, 3.9, 1.2],\n",
|
|
" [6. , 2.7, 5.1, 1.6],\n",
|
|
" [5.4, 3. , 4.5, 1.5],\n",
|
|
" [6. , 3.4, 4.5, 1.6],\n",
|
|
" [6.7, 3.1, 4.7, 1.5],\n",
|
|
" [6.3, 2.3, 4.4, 1.3],\n",
|
|
" [5.6, 3. , 4.1, 1.3],\n",
|
|
" [5.5, 2.5, 4. , 1.3],\n",
|
|
" [5.5, 2.6, 4.4, 1.2],\n",
|
|
" [6.1, 3. , 4.6, 1.4],\n",
|
|
" [5.8, 2.6, 4. , 1.2],\n",
|
|
" [5. , 2.3, 3.3, 1. ],\n",
|
|
" [5.6, 2.7, 4.2, 1.3],\n",
|
|
" [5.7, 3. , 4.2, 1.2],\n",
|
|
" [5.7, 2.9, 4.2, 1.3],\n",
|
|
" [6.2, 2.9, 4.3, 1.3],\n",
|
|
" [5.1, 2.5, 3. , 1.1],\n",
|
|
" [5.7, 2.8, 4.1, 1.3],\n",
|
|
" [6.3, 3.3, 6. , 2.5],\n",
|
|
" [5.8, 2.7, 5.1, 1.9],\n",
|
|
" [7.1, 3. , 5.9, 2.1],\n",
|
|
" [6.3, 2.9, 5.6, 1.8],\n",
|
|
" [6.5, 3. , 5.8, 2.2],\n",
|
|
" [7.6, 3. , 6.6, 2.1],\n",
|
|
" [4.9, 2.5, 4.5, 1.7],\n",
|
|
" [7.3, 2.9, 6.3, 1.8],\n",
|
|
" [6.7, 2.5, 5.8, 1.8],\n",
|
|
" [7.2, 3.6, 6.1, 2.5],\n",
|
|
" [6.5, 3.2, 5.1, 2. ],\n",
|
|
" [6.4, 2.7, 5.3, 1.9],\n",
|
|
" [6.8, 3. , 5.5, 2.1],\n",
|
|
" [5.7, 2.5, 5. , 2. ],\n",
|
|
" [5.8, 2.8, 5.1, 2.4],\n",
|
|
" [6.4, 3.2, 5.3, 2.3],\n",
|
|
" [6.5, 3. , 5.5, 1.8],\n",
|
|
" [7.7, 3.8, 6.7, 2.2],\n",
|
|
" [7.7, 2.6, 6.9, 2.3],\n",
|
|
" [6. , 2.2, 5. , 1.5],\n",
|
|
" [6.9, 3.2, 5.7, 2.3],\n",
|
|
" [5.6, 2.8, 4.9, 2. ],\n",
|
|
" [7.7, 2.8, 6.7, 2. ],\n",
|
|
" [6.3, 2.7, 4.9, 1.8],\n",
|
|
" [6.7, 3.3, 5.7, 2.1],\n",
|
|
" [7.2, 3.2, 6. , 1.8],\n",
|
|
" [6.2, 2.8, 4.8, 1.8],\n",
|
|
" [6.1, 3. , 4.9, 1.8],\n",
|
|
" [6.4, 2.8, 5.6, 2.1],\n",
|
|
" [7.2, 3. , 5.8, 1.6],\n",
|
|
" [7.4, 2.8, 6.1, 1.9],\n",
|
|
" [7.9, 3.8, 6.4, 2. ],\n",
|
|
" [6.4, 2.8, 5.6, 2.2],\n",
|
|
" [6.3, 2.8, 5.1, 1.5],\n",
|
|
" [6.1, 2.6, 5.6, 1.4],\n",
|
|
" [7.7, 3. , 6.1, 2.3],\n",
|
|
" [6.3, 3.4, 5.6, 2.4],\n",
|
|
" [6.4, 3.1, 5.5, 1.8],\n",
|
|
" [6. , 3. , 4.8, 1.8],\n",
|
|
" [6.9, 3.1, 5.4, 2.1],\n",
|
|
" [6.7, 3.1, 5.6, 2.4],\n",
|
|
" [6.9, 3.1, 5.1, 2.3],\n",
|
|
" [5.8, 2.7, 5.1, 1.9],\n",
|
|
" [6.8, 3.2, 5.9, 2.3],\n",
|
|
" [6.7, 3.3, 5.7, 2.5],\n",
|
|
" [6.7, 3. , 5.2, 2.3],\n",
|
|
" [6.3, 2.5, 5. , 1.9],\n",
|
|
" [6.5, 3. , 5.2, 2. ],\n",
|
|
" [6.2, 3.4, 5.4, 2.3],\n",
|
|
" [5.9, 3. , 5.1, 1.8]])"
|
|
]
|
|
},
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"iris.data"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"To find out what the four features are, we can list them:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"['sepal length (cm)',\n",
|
|
" 'sepal width (cm)',\n",
|
|
" 'petal length (cm)',\n",
|
|
" 'petal width (cm)']"
|
|
]
|
|
},
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"iris.feature_names"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Similarly, we can also print the flowers' labels (a.k.a. targets):"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
|
|
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
|
|
" 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
|
|
" 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
|
|
" 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
|
|
" 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
|
|
" 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])"
|
|
]
|
|
},
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"iris.target"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The three flower classes are encoded with integers. Let's show the corresponding names:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array(['setosa', 'versicolor', 'virginica'], dtype='<U10')"
|
|
]
|
|
},
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"iris.target_names"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Case study: Simple visualizations\n",
|
|
"\n",
|
|
"Since the data is four dimensional, we cannot visualize all features together. Instead, we can plot the distribution of the flower classes by a single feature using histograms."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEKCAYAAAACS67iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAGe5JREFUeJzt3Xt0VeW57/HvA4mGCLUoaY0EhO4WkKuBKLjdioJUt6Zah3JoD1qBOhBR1Gq1aFvBjp62e5wO3Y5zqBYV8SgbpUHbXYenCmyoR0uVhILhIqKImoBcKwJyMfKcP9aEknBJ1pozWVmvv88Ya2Rd5nrnM5PwY+Zdcz7T3B0REcl9bbJdgIiIJEOBLiISCAW6iEggFOgiIoFQoIuIBEKBLiISCAW6iEggFOgiIoFQoIuIBCKvJVfWqVMn79atW0uuUkQk51VVVW1196LGlmvRQO/WrRuVlZUtuUoRkZxnZu83ZTlNuYiIBEKBLiISCAW6iEggWnQOXUTC8tlnn1FTU8PevXuzXUoQCgoKKCkpIT8/P6P3K9BFJGM1NTV06NCBbt26YWbZLienuTvbtm2jpqaG7t27ZzSGplxEJGN79+7l1FNPVZgnwMw49dRTY/21o0AXkVgU5smJ+71UoIuIBEKBLiKJMUv2lrSZM2eyYcOG5AduJb6QgZ6NXyQRyT4FuohIK7Z7924uv/xyBgwYQN++fXn22Wepqqpi6NChDBo0iEsuuYSNGzdSUVFBZWUlo0eP5qyzzmLPnj0sWLCA0tJS+vXrx7hx49i3bx8AkydPpnfv3vTv358f/vCHAPzxj39k8ODBlJaWcvHFF7Np06ZsbvbRuXuL3QYNGuStATR+E5HGrVq1qt7jpvzbSufWFBUVFX7DDTccevzxxx/7ueee65s3b3Z392eeecbHjh3r7u5Dhw71JUuWuLv7nj17vKSkxNesWePu7tddd50/+OCDvnXrVu/Ro4cfOHDA3d3//ve/u7v79u3bDz336KOP+h133JHhd+34Gn5P3d2BSm9Cxuo4dBHJaf369ePOO+/kRz/6EeXl5XTs2JEVK1YwYsQIAD7//HOKi4uPeN+aNWvo3r07PXr0AOD6669n2rRp3HLLLRQUFPD973+f8vJyysvLgdQx96NGjWLjxo3s378/42PFm5OmXEQkp/Xo0YOlS5fSr18/fvKTnzB37lz69OnDsmXLWLZsGdXV1bz88stNHi8vL4833niDa665hhdeeIFLL70UgEmTJnHLLbdQXV3Nb3/721Z5dqwCXURy2oYNGygsLOTaa6/lrrvu4vXXX2fLli0sXrwYSLUnWLlyJQAdOnRg586dAPTs2ZP169fzzjvvAPDUU08xdOhQdu3axY4dO7jssst48MEHWb58OQA7duygc+fOADz55JMtvZlNoikXEUmMe8uvs7q6mrvuuos2bdqQn5/Pww8/TF5eHrfeeis7duygrq6O22+/nT59+jBmzBgmTJhAu3btWLx4MU888QQjR46krq6Os88+mwkTJrB9+3auvPJK9u7di7vzwAMPADB16lRGjhxJx44dGTZsGO+9917Lb2wjzFvwJ1BWVuat4QIXTTksMRu/mCK5ZvXq1Zx55pnZLiMoR/uemlmVu5c19l5NuYiIBEKBLiISCAW6iEggFOgiIoFoNNDNbIaZbTazFYc99z/N7C0ze9PMnjezLzdvmSIi0pim7KHPBC5t8Nw8oK+79wfeBu5JuC4REUlTo4Hu7q8A2xs897K710UP/wqUNENtIpJrWnv/3Ca47777mD9/ftrvW7Ro0aE2AdmSxIlF44BnExhHRKRFHGxm1abNkfu0P/vZz1qkhrq6OvLykj23M9ZoZvZjoA6YdZxlxgPjAbp27RpndSKSBrs//T1cn5JbZ9RNnjyZLl26cPPNNwOpsznbt2+PuzNnzhz27dvHVVddxf3338/69eu55JJLGDx4MFVVVbz44otMmTKFyspKzIxx48bxgx/8gDFjxlBeXs4111zDkiVLuO2229i9ezcnnngiCxYsID8/n5tuuonKykry8vJ44IEHuOiii+rVtX37dsaNG8e6desoLCxk+vTp9O/fn6lTp/Luu++ybt06unbtyuzZsxP9fmR8lIuZjQHKgdF+nNNN3X26u5e5e1lRUVGmqxMROcKoUaOYM2fOocdz5syhqKiItWvX8sYbb7Bs2TKqqqp45ZVXAFi7di0TJ05k5cqVbN26ldraWlasWEF1dTVjx46tN/b+/fsZNWoUDz30EMuXL2f+/Pm0a9eOadOmYWZUV1cze/Zsrr/++iMadU2ZMoXS0lLefPNNfvGLX/C9733v0GurVq1i/vz5iYc5ZLiHbmaXAncDQ93902RLEhFpmtLS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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"feature_index = 2\n",
|
|
"colors = ['blue', 'red', 'green']\n",
|
|
"\n",
|
|
"for label, color in zip(range(len(iris.target_names)), colors):\n",
|
|
" plt.hist(iris.data[iris.target==label, feature_index], \n",
|
|
" label=iris.target_names[label],\n",
|
|
" color=color)\n",
|
|
"\n",
|
|
"plt.xlabel(iris.feature_names[feature_index])\n",
|
|
"plt.legend(loc='upper right')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Also, we can draw scatter plots of two features."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"first_feature_index = 1\n",
|
|
"second_feature_index = 0\n",
|
|
"\n",
|
|
"colors = ['blue', 'red', 'green']\n",
|
|
"\n",
|
|
"for label, color in zip(range(len(iris.target_names)), colors):\n",
|
|
" plt.scatter(iris.data[iris.target==label, first_feature_index], \n",
|
|
" iris.data[iris.target==label, second_feature_index],\n",
|
|
" label=iris.target_names[label],\n",
|
|
" c=color)\n",
|
|
"\n",
|
|
"plt.xlabel(iris.feature_names[first_feature_index])\n",
|
|
"plt.ylabel(iris.feature_names[second_feature_index])\n",
|
|
"plt.legend(loc='upper left')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Using the higher level library pandas, one can easily create a so-called **scatterplot matrix**."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 576x576 with 16 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)\n",
|
|
"pd.plotting.scatter_matrix(iris_df, figsize=(8, 8));"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Concept of Generalization\n",
|
|
"\n",
|
|
"The goal of a supervised machine learning model is to make predictions on new (i.e., previously unseen) data.\n",
|
|
"\n",
|
|
"In a real-world application, we are not interested in marking an already labeled email as spam or not. Instead, we want to make the user's life easier by automatically classifying new incoming mail.\n",
|
|
"\n",
|
|
"In order to get an idea of how good a model generalizes, a best practice is to split the available data into a training and a test set. Only the former is used to train the model. Then predictions are made on the test data and the predictions can be compared with the actual labels.\n",
|
|
"\n",
|
|
"Common splits are 75/25 or 60/40.\n",
|
|
"\n",
|
|
"<img src=\"raw/generalization.png\" width=\"100%\">"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Case study: Train/Test split for the Iris data\n",
|
|
"\n",
|
|
"It is common practice to refer to the feature matrix as X and the vector of labels as y."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"X, y = iris.data, iris.target"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"A naive splitting approach could be to use array slicing."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"X_train, X_test, y_train, y_test = X[0:100, :], X[100:150, :], y[0:100], y[100:150]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"However, this would lead to unbalanced label distributions. For example, the test set would only be made up of flowers of the same type."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
|
|
" 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
|
|
" 2, 2, 2, 2, 2, 2])"
|
|
]
|
|
},
|
|
"execution_count": 29,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_test"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([ 0, 0, 50])"
|
|
]
|
|
},
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"np.bincount(y_test)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"sklearn provides a function that not only randomizes the split but also ensures that the resulting label distribution is proportionate to the overall distribution (called **stratification**)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([1, 0, 0, 0, 1, 0, 1, 0, 1, 2, 1, 2, 2, 0, 0, 0, 0, 1, 0, 2, 2, 1,\n",
|
|
" 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 0, 0, 2, 0, 2, 0, 2, 2, 2,\n",
|
|
" 0])"
|
|
]
|
|
},
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sklearn.model_selection import train_test_split\n",
|
|
"X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, test_size=0.3, stratify=y)\n",
|
|
"y_test"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 32,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([15, 15, 15])"
|
|
]
|
|
},
|
|
"execution_count": 32,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"np.bincount(y_test)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## A simple classification model: k-Nearest Neighbors\n",
|
|
"\n",
|
|
"To predict the label for any observation, just determine the k \"nearest\" observations in the training set (e.g., by Euclidean distance) and use a simple majority vote.\n",
|
|
"\n",
|
|
"<img src=\"raw/knn.png\" width=\"100%\">"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Case study: train and predict the Iris data\n",
|
|
"\n",
|
|
"sklearn provides a uniform interface for all its classification models. They all have a **fit()** and a **predict()** method that abstract away the actual machine learning algorithm."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 33,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.neighbors import KNeighborsClassifier\n",
|
|
"\n",
|
|
"knn = KNeighborsClassifier(n_neighbors=5)\n",
|
|
"\n",
|
|
"knn.fit(X_train, y_train)\n",
|
|
"\n",
|
|
"y_pred = knn.predict(X_test)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let us list the labels predicted for the test set ..."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([1, 0, 0, 0, 1, 0, 2, 0, 1, 2, 1, 2, 2, 0, 0, 0, 0, 1, 0, 2, 2, 1,\n",
|
|
" 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 0, 0, 2, 0, 2, 0, 2, 2, 2,\n",
|
|
" 0])"
|
|
]
|
|
},
|
|
"execution_count": 34,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_pred"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"... and compare them with the actual labels."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array([1, 0, 0, 0, 1, 0, 1, 0, 1, 2, 1, 2, 2, 0, 0, 0, 0, 1, 0, 2, 2, 1,\n",
|
|
" 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 0, 0, 2, 0, 2, 0, 2, 2, 2,\n",
|
|
" 0])"
|
|
]
|
|
},
|
|
"execution_count": 35,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_test"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Numpy can show us the indices where the predictions are wrong."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 36,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(array([6]),)"
|
|
]
|
|
},
|
|
"execution_count": 36,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"np.where(y_pred != y_test)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Alternatively, we can calculate the fraction of correctly predicted flowers."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 37,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0.9777777777777777"
|
|
]
|
|
},
|
|
"execution_count": 37,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"np.sum(y_pred == y_test) / len(y_test)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"It is important to mention that we can also \"predict\" the training set. Surprisingly, the model does not get the training set 100% correct."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 38,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0.9619047619047619"
|
|
]
|
|
},
|
|
"execution_count": 38,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"y_train_pred = knn.predict(X_train)\n",
|
|
"np.sum(y_train_pred == y_train) / len(y_train)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"A visualization reveals that the misclassified flowers are right \"at the borderline\" between two neighboring clusters of flower classes."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 39,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"first_feature_index = 3\n",
|
|
"second_feature_index = 0\n",
|
|
"\n",
|
|
"correct_idx = np.where(y_pred == y_test)[0]\n",
|
|
"incorrect_idx = np.where(y_pred != y_test)[0]\n",
|
|
"\n",
|
|
"colors = [\"darkblue\", \"darkgreen\", \"gray\"]\n",
|
|
"\n",
|
|
"for n, color in enumerate(colors):\n",
|
|
" idx = np.where(y_test == n)[0]\n",
|
|
" plt.scatter(X_test[idx, first_feature_index], X_test[idx, second_feature_index], color=color,\n",
|
|
" label=iris.target_names[n])\n",
|
|
"\n",
|
|
"plt.scatter(X_test[incorrect_idx, first_feature_index], X_test[incorrect_idx, second_feature_index],\n",
|
|
" color=\"darkred\", label='misclassified')\n",
|
|
"\n",
|
|
"plt.xlabel('sepal width [cm]')\n",
|
|
"plt.ylabel('petal length [cm]')\n",
|
|
"plt.legend(loc='best')\n",
|
|
"plt.title(\"Iris Classification results\")\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"In practice, the number of neighbors is to chosen before the model is trained. Therefore, it is possible to \"optimize\" it. This process is referred to as **hyper-parameter** tuning. For the Iris dataset this does not make much of a difference."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 40,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1 0.9777777777777777\n",
|
|
"2 0.9555555555555556\n",
|
|
"3 0.9777777777777777\n",
|
|
"4 0.9777777777777777\n",
|
|
"5 0.9777777777777777\n",
|
|
"6 0.9777777777777777\n",
|
|
"7 0.9777777777777777\n",
|
|
"8 0.9777777777777777\n",
|
|
"9 0.9777777777777777\n",
|
|
"10 0.9777777777777777\n",
|
|
"11 0.9777777777777777\n",
|
|
"12 0.9777777777777777\n",
|
|
"13 0.9777777777777777\n",
|
|
"14 0.9777777777777777\n",
|
|
"15 0.9777777777777777\n",
|
|
"16 1.0\n",
|
|
"17 1.0\n",
|
|
"18 1.0\n",
|
|
"19 1.0\n",
|
|
"20 1.0\n",
|
|
"21 1.0\n",
|
|
"22 1.0\n",
|
|
"23 1.0\n",
|
|
"24 1.0\n",
|
|
"25 1.0\n",
|
|
"26 1.0\n",
|
|
"27 1.0\n",
|
|
"28 1.0\n",
|
|
"29 1.0\n",
|
|
"30 1.0\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for i in range(1, 31):\n",
|
|
" knn = KNeighborsClassifier(n_neighbors=i)\n",
|
|
" knn.fit(X_train, y_train)\n",
|
|
" y_pred = knn.predict(X_test)\n",
|
|
" correct = np.sum(y_pred == y_test) / len(y_test)\n",
|
|
" print(i, correct)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Literature\n",
|
|
"\n",
|
|
"Depending on the programming language one chooses, the following books are recommended.\n",
|
|
"\n",
|
|
"- Python\n",
|
|
"\n",
|
|
"<img src=\"raw/python_general.png\">\n",
|
|
"\n",
|
|
"<img src=\"raw/python_ml.png\">\n",
|
|
"\n",
|
|
"- R\n",
|
|
"\n",
|
|
"<img src=\"raw/r.png\">"
|
|
]
|
|
}
|
|
],
|
|
"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.6.7"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|