{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "\n", "\n", "**15-448: Machine Learning in a Nutshell**, *CMU-Qatar* Spring'20\n", "\n", "**Gianni A. Di Caro**, www.giannidicaro.com\n", "\n", "Disclaimer: This notebook was prepared for teaching purposes. It can include material from different web sources. I'll happy to explicitly acknowledge a source if required. \n", "\n", "***" ] }, { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "
scikit-learn
k
scikit-learn
\n",
" \n",
" - All examples in the neighborhood are weighted **uniformly** (each example counts one).
\n",
" \n",
"- **Distance-based rule(s):** the distance of the examples (in the neighborhood) from the query point is taken into account to define other criteria for assigning the class (e.g., the class whose points have the minimal average or median distance).
\n",
" \n",
" - All examples in the neighborhood are weighted by **distance** (each example counts based on its distance from the query point, more precisely by the inverse of the distance).
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How do we measure *distances* in the feature space? 🤔 ... Euclidean distance is just ONE option out of many (food for future thoughts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Implement and use k-NN using `scikit-learn`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`scikit-learn` offers a module implementing the k-NN classifier!"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.neighbors import KNeighborsClassifier\n",
"\n",
"import numpy as np\n",
"\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"matplotlib.rcParams['figure.dpi']= 100 # set the resolution to x dpi"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setting up the parameters of the learning classifier"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First step consists in setting up the **parameters of the k-NN classifier:**\n",
"- Number of neighbors
\n",
"- Voting / weighting modality
"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"neighbors_num = 3\n",
"weighting_opts = ['uniform', 'distance']\n",
"weights = weighting_opts[0]\n",
"classifier = KNeighborsClassifier(n_neighbors=neighbors_num, weights=weights)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fit the model with the training data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Second step consists in **fitting** the k-NN classifer with the labeled dataset"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
" metric_params=None, n_jobs=1, n_neighbors=3, p=2,\n",
" weights='uniform')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.datasets import load_iris\n",
"iris = load_iris()\n",
"\n",
"classifier.fit(iris.data, iris.target)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We have now a **classifier** object that can be queried for new input examples."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What are those `metric='minkowski'`, and `p=2`?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"They deal with the notion of *distance* ..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Measure the empirical loss / accuracy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Third step is checking the prediction **on the training dataset itself**: loss on training $\\rightarrow$ Empirical error"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"prediction = classifier.predict(iris.data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The resulting `prediction` array gives the predicted target per each training data point."
]
},
{
"cell_type": "code",
"execution_count": 6,
"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, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,\n",
" 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,\n",
" 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
" 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"prediction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Mean classification error using the 0/1 Loss:**\n",
"\n",
"$$\\bar{E} = \\frac{1}{m}\\sum_{all\\ data} {\\bf 1}_{clf(t) \\ne t}$$\n",
"\n",
"Count and average all classification errors.\n",
"\n",
"$$Mean Accuracy\\ = 1 - \\bar{E}$$ "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"mean_accuracy = np.mean(prediction == iris.target)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.96"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean_accuracy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pretty good accuracy, as expected, since we are testing on the same dataset used for training!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case, how can we achieve **100% accuracy on the on the training dataset using the kNN classifier?**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Setting:\n",
"\n",
"`classifier = KNeighborsClassifier(n_neighbors=1)`\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize the decision boundaries of the learned classifier"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Issue: We need to restrict the visualization to a **two-dimensional feature space.** \n",
"\n",
"Accordingly, we need to **learn using only two features**, and visualize how the classifier would classify new data points using these two features only. However, remember, targets refer to four-dimensional feature values. Such that some inconsistencies might seem to appear in the visualization since we are using less information than required (as stored in the target labels)."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['sepal length (cm)',\n",
" 'sepal width (cm)',\n",
" 'petal length (cm)',\n",
" 'petal width (cm)']"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"iris.feature_names"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's consider the first two features of the dataset, namely, `sepal length` and `sepal width`."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean accuracy with features (0,1): 0.853\n"
]
}
],
"source": [
"# extract the first two features\n",
"feature_1 = 0\n",
"feature_2 = 1\n",
"iris_features_2 = iris.data[:, [feature_1,feature_2]]\n",
"\n",
"# learn the k-NN classifier using only the selected features\n",
"classifier.fit(iris_features_2, iris.target)\n",
"\n",
"# check the prediction performance on the whole dataset\n",
"# note that query data dimension must match training data dimension\n",
"prediction = classifier.predict(iris_features_2)\n",
"\n",
"# compute the mean accuracy error over the training dataset\n",
"mean_accuracy = np.mean(prediction == iris.target)\n",
"\n",
"print('Mean accuracy with features ({},{}):'\n",
" ' {:.3f}'.format(feature_1, feature_2, mean_accuracy))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We may notice that now, using two features, the accuracy went down."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To **visualize the decision regions,** we need first to define the range of values to consider for the two selected features. \n",
"\n",
"It is reasonable to take the minimum and maximum values of each feature."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[4., 8.],\n",
" [2., 5.],\n",
" [1., 7.],\n",
" [0., 3.]])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# feature_ranges contain the range of variability for each feature \n",
"# based on the values in the training dataset\n",
"feature_ranges = np.array([ (np.floor(np.min(iris.data[:, i])), \n",
" np.ceil(np.max(iris.data[:, i]))) \n",
" for i in range(iris.data.shape[1])] )\n",
"feature_ranges"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Meshgrids and colormeshes for visualization of regions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We need a **meshgrid** of values for the selected features.\n",
"\n",
"Meshgrids are very useful objects for plotting and visualization, beyond ML. It is worth to take a detour and try to understand a bit more of what they are.
\n",
"\n",
"\n",
"Note: The examples and the details in this subsection are provided for the student willing to learn more about complex data visualization techniques. However, you can safely skip this subsection and the following one, and jump directly to the \n",
" section 1.6\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Examples of use of meshgrids"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
" \n",
"- `get_predictions()` \n",
"- `plot_data_and_region_boundaries()` \n",
" \n",
"These functions, defined below, are just clean wrappers for the previous code."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"def learn_kNN_classifier(features_data, targets, neighbors, voting):\n",
" '''Set up a K-NN classifier and fits it to the given training data.\n",
" Return: learned classifier.''' \n",
" \n",
" classifier = KNeighborsClassifier(n_neighbors=neighbors, \n",
" weights=voting)\n",
" classifier.fit(features_data, targets)\n",
" return classifier\n",
"\n",
"def get_predictions(test_data, targets, classifier):\n",
" '''Input: trained classifier, test set for feature data paired with target values.\n",
" Return: prediction labels and the mean accuracy over the test set.'''\n",
" \n",
" prediction = classifier.predict(test_data)\n",
" \n",
" mean_accuracy = np.mean(prediction == targets)\n",
"\n",
" return (prediction, mean_accuracy)\n",
"\n",
" \n",
"def plot_data_and_region_boundaries(classifier, training_x, training_y, targets,\n",
" num_of_pts=1000, xlabel='x', ylabel='y', title='',\n",
" colormaps = [None, None]):\n",
" '''Get a trained classifier and training data for two features.\n",
" Plots the training data and the decision boundaries over the region\n",
" defined by the min and max values of the given input features.'''\n",
" \n",
" num_of_pts = num_of_pts\n",
"\n",
" xx, yy = np.meshgrid(np.linspace(np.floor(np.min(training_x)),\n",
" np.ceil(np.max(training_x)), \n",
" num=num_of_pts),\n",
" np.linspace(np.floor(np.min(training_y)),\n",
" np.ceil(np.max(training_y)),\n",
" num=num_of_pts))\n",
"\n",
" predictions_z = classifier.predict(np.c_[xx.ravel(), yy.ravel()]) \n",
" \n",
" predictions_z = predictions_z.reshape(xx.shape)\n",
"\n",
" from matplotlib.colors import ListedColormap\n",
" if colormaps[0] == None:\n",
" cmap_light = ListedColormap(['orange', 'cyan', 'cornflowerblue'])\n",
" cmap_bold = ListedColormap(['darkorange', 'c', 'blue'])\n",
" else:\n",
" cmap_light = colormaps[0]\n",
" cmap_bold = colormaps[1]\n",
"\n",
" plt.figure()\n",
"\n",
" plt.xlabel(xlabel)\n",
" plt.ylabel(ylabel)\n",
" plt.title(title)\n",
"\n",
" plt.pcolormesh(xx, yy, predictions_z, cmap=cmap_light)\n",
" \n",
" scattter = plt.scatter(training_x, training_y, \n",
" s=20, c=targets, cmap=cmap_bold, edgecolor='black')\n",
"\n",
" plt.legend(*scatter.legend_elements(), loc=\"upper right\", title=\"Classes\")\n",
"\n",
" \n",
" plt.xlim(xx.min(), xx.max())\n",
" plt.ylim(yy.min(), yy.max())\n",
"\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's check that everything is fine and simple to use."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean accuracy using (sepal length (cm), sepal width (cm)): 0.927\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"