{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lesson 12: Feature space & PCA" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "import plotly.express as px\n", "\n", "from sklearn.decomposition import PCA\n", "from sklearn.cluster import KMeans\n", "\n", "RANDOM_SEED = 315" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Iris dataset" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "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", "
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)specie
0-0.9006811.019004-1.340227-1.3154440
1-1.143017-0.131979-1.340227-1.3154440
2-1.3853530.328414-1.397064-1.3154440
3-1.5065210.098217-1.283389-1.3154440
4-1.0218491.249201-1.340227-1.3154440
\n", "
" ], "text/plain": [ " sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) \\\n", "0 -0.900681 1.019004 -1.340227 -1.315444 \n", "1 -1.143017 -0.131979 -1.340227 -1.315444 \n", "2 -1.385353 0.328414 -1.397064 -1.315444 \n", "3 -1.506521 0.098217 -1.283389 -1.315444 \n", "4 -1.021849 1.249201 -1.340227 -1.315444 \n", "\n", " specie \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset_path = '../../data/clean-iris.csv'\n", "data_df = pd.read_csv(dataset_path)\n", "data_df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1. 2D feature space" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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YeYNzh6bAQMGUFBQwNatW+nTpw8Av/76K1artapRccaOHTsAmszPTk10Oh19+vRh5cqVXHXVVQBYrVZWrlzJpEmTanzOgAEDWLlyJQ899FDVtp9//rnaGQp/UJ9j83cWi4Xdu3dz2WWXebDSpmHAgAF2t/7748+NO+3YsaNJ/35xyNszlX3V8ePHle3btyszZsxQQkJClO3btyvbt29XiouLqx6TlJSkfP7554qiKEpxcbEyefJkZf369cqxY8eUX375Rendu7eSmJioVFRUeOvL8BhXj4+iKMrs2bOViIgI5auvvlJ27dqljB49WunQoYNSXl7ujS/BY0aMGKH06tVL2bhxo/LHH38oiYmJytixY6vGT548qSQlJSkbN25UFEVRDh8+rDz33HPKli1blGPHjilfffWV0rFjR+XCCy/01pfgNsuWLVP0er2yaNEiZd++fcqdd96pREREKFlZWYqiKMrNN9+sPPHEE1WPX7t2rRIQEKDMmTNH2b9/vzJ9+nRFq9Uqu3fv9taX4DGuHpsZM2YoP/74o3LkyBFl69atypgxY5TAwEBl79693voSPKa4uLjqdwqgzJ07V9m+fbty/PhxRVEU5YknnlBuvvnmqscfPXpUCQoKUqZMmaLs379fWbBggaLRaJQVK1Z460vwKFePzyuvvKJ8+eWXyqFDh5Tdu3crDz74oKJWq5VffvnFW1+Cx0hT48CECRMUwO5j1apVVY8BlPfee09RFEUpKytTLr30UiU6OlrRarVKQkKCMnHixKpfUP7G1eOjKLbbup955hklNjZW0ev1yrBhw5QDBw40fvEelpubq4wdO1YJCQlRwsLClFtvvbVas3fs2LFqxyojI0O58MILlcjISEWv1yudO3dWpkyZohQWFnrpK3Cv1157TWnXrp2i0+mUtLQ0ZcOGDVVjQ4YMUSZMmFDt8Z988onSpUsXRafTKeedd57y3XffNXLFjceVY/PQQw9VPTY2Nla57LLLlG3btnmhas87dwvy3z/OHY8JEyYoQ4YMsXtOSkqKotPplI4dO1b73eNvXD0+L774otKpUyclMDBQiYyMVIYOHar8+uuv3inew1SKoiiNdlpICCGEEMJDZJ0aIYQQQvgFaWqEEEII4RekqRFCCCGEX5CmRgghhBB+QZoaIYQQQvgFaWqEEEII4RekqRFCCCGEX5CmRggh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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Add the species name for the plot\n", "data_df['species'] = data_df['specie'].map({0: 'setosa', 1: 'versicolor', 2: 'virginica'})\n", "data_df.drop('specie', axis=1, inplace=True)\n", "\n", "sns.scatterplot(data_df, x='petal width (cm)', y='sepal width (cm)', hue='species')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2. 3D feature space" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "species=setosa
petal width (cm)=%{x}
petal length (cm)=%{y}
sepal width (cm)=%{z}", "legendgroup": "setosa", "marker": { "color": "#636efa", "opacity": 0.8, "symbol": "circle" }, "mode": "markers", "name": "setosa", "scene": "scene", "showlegend": true, "type": "scatter3d", "x": { "bdata": "0EksUQ8M9b/QSSxRDwz1v9BJLFEPDPW/0EksUQ8M9b/QSSxRDwz1vygyWJ661fC//D3C9+Tw8r/QSSxRDwz1v9BJLFEPDPW/olWWqjkn97/QSSxRDwz1v9BJLFEPDPW/olWWqjkn97+iVZaqOSf3v9BJLFEPDPW/KDJYnrrV8L8oMlieutXwv/w9wvfk8PK//D3C9+Tw8r/8PcL35PDyv9BJLFEPDPW/KDJYnrrV8L/QSSxRDwz1v6tM3Ikgde2/0EksUQ8M9b/QSSxRDwz1vygyWJ661fC/0EksUQ8M9b/QSSxRDwz1v9BJLFEPDPW/0EksUQ8M9b8oMlieutXwv6JVlqo5J/e/0EksUQ8M9b/QSSxRDwz1v9BJLFEPDPW/0EksUQ8M9b+iVZaqOSf3v9BJLFEPDPW/0EksUQ8M9b/8PcL35PDyv/w9wvfk8PK/0EksUQ8M9b8ENQjXyz7pvygyWJ661fC//D3C9+Tw8r/QSSxRDwz1v9BJLFEPDPW/0EksUQ8M9b/QSSxRDwz1vw==", "dtype": "f8" }, "y": { "bdata": "FznRXpFx9b8XOdFekXH1vxe/bbtfWva/FrM0AsOI9L8XOdFekXH1vxWn+0gmt/K/FznRXpFx9b8WszQCw4j0vxc50V6RcfW/FrM0AsOI9L8WszQCw4j0vxUtmKX0n/O/FznRXpFx9b8Zy6Z0/Cv4vxlFChguQ/e/FrM0AsOI9L8Xv227X1r2vxc50V6RcfW/Faf7SCa38r8WszQCw4j0vxWn+0gmt/K/FrM0AsOI9L8bUUPRyhT5vxWn+0gmt/K/EpvCj4nl8L8VLZil9J/zvxUtmKX0n/O/FrM0AsOI9L8XOdFekXH1vxUtmKX0n/O/FS2YpfSf878WszQCw4j0vxazNALDiPS/FznRXpFx9b8WszQCw4j0vxlFChguQ/e/F79tu19a9r8XOdFekXH1vxe/bbtfWva/FrM0AsOI9L8Xv227X1r2vxe/bbtfWva/F79tu19a9r8VLZil9J/zvxKbwo+J5fC/FznRXpFx9b8VLZil9J/zvxc50V6RcfW/FrM0AsOI9L8XOdFekXH1vw==", "dtype": "f8" }, "z": { "bdata": "EzLjgddN8D9l+bYdtOTAv7hrgWC8BNU/B95Lo8QkuT8gz85PuvzzP0WmkbliCf8/CirvZ+k96T8KKu9n6T3pP+vwiUblLde/B95Lo8QkuT8ubLodnav3Pwoq72fpPek/Zfm2HbTkwL9l+bYdtOTAv6mhvsMiXAFAxduVX+i5CEBFppG5Ygn/PxMy44HXTfA/OAmm639a+z84Cabrf1r7Pwoq72fpPek/Lmy6HZ2r9z8gz85PuvzzP+/vF8wj4OE/CirvZ+k96T9l+bYdtOTAvwoq72fpPek/EzLjgddN8D8KKu9n6T3pP7hrgWC8BNU/B95Lo8QkuT8KKu9n6T3pPy5wtCqUMwNAuD6qkQULBUAH3kujxCS5P7hrgWC8BNU/EzLjgddN8D8gz85PuvzzP2X5th205MC/CirvZ+k96T8TMuOB103wP4cqKCXK5Pu/uGuBYLwE1T8TMuOB103wPzgJput/Wvs/Zfm2HbTkwL84Cabrf1r7P7hrgWC8BNU/Lmy6HZ2r9z/v7xfMI+DhPw==", "dtype": "f8" } }, { "hovertemplate": "species=versicolor
petal width (cm)=%{x}
petal length (cm)=%{y}
sepal width (cm)=%{z}", "legendgroup": "versicolor", "marker": { "color": "#EF553B", "opacity": 0.8, "symbol": "circle" }, "mode": "markers", "name": "versicolor", "scene": "scene", "showlegend": true, "type": "scatter3d", "x": { "bdata": "YRAxf7Pn0D+yP9nkXFTZP7I/2eRcVNk/LcIRMxT2wD+yP9nkXFTZPy3CETMU9sA/gbdAJYPg4D/RrG8X8srQvy3CETMU9sA/YRAxf7Pn0D/RrG8X8srQv7I/2eRcVNk/0axvF/LK0L9hEDF/s+fQPy3CETMU9sA/YRAxf7Pn0D+yP9nkXFTZP9GsbxfyytC/sj/Z5FxU2T8F+45jkbzAv87m6IosTek/LcIRMxT2wD+yP9nkXFTZPweNY8FnwUw/LcIRMxT2wD9hEDF/s+fQP2EQMX+z59A/Js8U2NcW5T+yP9nkXFTZP9GsbxfyytC/BfuOY5G8wL/RrG8X8srQvweNY8FnwUw/gbdAJYPg4D+yP9nkXFTZP4G3QCWD4OA/sj/Z5FxU2T8twhEzFPbAPy3CETMU9sA/LcIRMxT2wD8HjWPBZ8FMP2EQMX+z59A/B41jwWfBTD/RrG8X8srQvy3CETMU9sA/B41jwWfBTD8twhEzFPbAPy3CETMU9sA/BfuOY5G8wL8twhEzFPbAPw==", "dtype": "f8" }, "y": { "bdata": "EBq4IhEi4T8XBIxgr/3aPxUyKpVKxeQ/BxijSCCbwT8WHP7S6KDePxcEjGCv/do/EBq4IhEi4T8WHM38AanQvxYc/tLooN4/+899x1qptD8a2NEvHsXCvw28NQkDFNA/BxijSCCbwT8QGrgiESLhPyFQ25VW/ba/FuwZ7nVa1z8XBIxgr/3aPwlIhy2T4cg/FwSMYK/92j/7z33HWqm0PxAm8dut8+I/BxijSCCbwT8VMiqVSsXkPxAauCIRIuE/DNSnezy30z8W7BnudVrXPxAm8dut8+I/FT5jTueW5j8XBIxgr/3aPxrY0S8excK/oL/V9tNxmD8c4CWY4eCgv/vPfcdaqbQ/FUqcB4Ro6D8XBIxgr/3aPxcEjGCv/do/EBq4IhEi4T8W7BnudVrXPwlIhy2T4cg/BxijSCCbwT8W7BnudVrXPxYc/tLooN4/BxijSCCbwT8WHM38AanQvw28NQkDFNA/Dbw1CQMU0D8NvDUJAxTQPwzUp3s8t9M/IWQjVK6S278JSIctk+HIPw==", "dtype": "f8" }, "z": { "bdata": "uGuBYLwE1T+4a4FgvATVPwfeS6PEJLk/hyooJcrk+7+RMhw/uPTiv5EyHD+49OK/7+8XzCPg4T97jTxX5zX4v+vwiUblLde/o2zz2n1S6r/WgHVHuXgDwGX5th205MC/kccT86yT/7/r8IlG5S3Xv+vwiUblLde/B95Lo8QkuT9l+bYdtOTAv6Ns89p9Uuq/kccT86yT/79t8FCJBIf0v7hrgWC8BNU/kTIcP7j04r9t8FCJBIf0v5EyHD+49OK/6/CJRuUt179l+bYdtOTAv5EyHD+49OK/Zfm2HbTkwL/r8IlG5S3Xv19TZbsh2PC/e408V+c1+L97jTxX5zX4v6Ns89p9Uuq/o2zz2n1S6r9l+bYdtOTAvwoq72fpPek/B95Lo8QkuT+HKiglyuT7v2X5th205MC/bfBQiQSH9L9fU2W7Idjwv2X5th205MC/X1NluyHY8L+HKiglyuT7v6Ns89p9Uuq/Zfm2HbTkwL/r8IlG5S3Xv+vwiUblLde/bfBQiQSH9L+RMhw/uPTivw==", "dtype": "f8" } }, { "hovertemplate": "species=virginica
petal width (cm)=%{x}
petal length (cm)=%{y}
sepal width (cm)=%{z}", "legendgroup": "virginica", "marker": { "color": "#00cc96", "opacity": 0.8, "symbol": "circle" }, "mode": "markers", "name": "virginica", "scene": "scene", "showlegend": true, "type": "scatter3d", "x": { "bdata": "LsZat75k+z9z/rw9gYPtP+GWslEV+PI/zuboiixN6T+1ohyrPxP1P+GWslEV+PI/Js8U2NcW5T/O5uiKLE3pP87m6IosTek/LsZat75k+z8Ni0j46tzwP3P+vD2Bg+0/4ZayURX48j8Ni0j46tzwP1q68F2USfk/hq6GBGou9z/O5uiKLE3pP7WiHKs/E/U/hq6GBGou9z+yP9nkXFTZP4auhgRqLvc/DYtI+Orc8D8Ni0j46tzwP87m6IosTek/4ZayURX48j/O5uiKLE3pP87m6IosTek/zuboiixN6T/hlrJRFfjyP4G3QCWD4OA/c/68PYGD7T8Ni0j46tzwP7WiHKs/E/U/sj/Z5FxU2T9hEDF/s+fQP4auhgRqLvc/WrrwXZRJ+T/O5uiKLE3pP87m6IosTek/4ZayURX48j9auvBdlEn5P4auhgRqLvc/c/68PYGD7T+GroYEai73Py7GWre+ZPs/hq6GBGou9z9z/rw9gYPtPw2LSPjq3PA/hq6GBGou9z/O5uiKLE3pPw==", "dtype": "f8" }, "y": { "bdata": "EttORYNj9D8VSpwHhGjoPxNVsui0evM/EMPc0knA8D8RzxWM5pHyPxj/+XBZ2Pk/FwSMYK/92j8WbSRb7h33PxHPFYzmkfI/E2HroVFM9T8VSpwHhGjoPxliDnq9C+w/HXqA7Pau7z8VPmNO55bmPxVKnAeEaOg/GWIOer0L7D8deoDs9q7vPxuFls0nwfo/HZHPhsSS/D8VPmNO55bmPxFJeS8YqfE/FTIqlUrF5D8bhZbNJ8H6PxUyKpVKxeQ/EUl5Lxip8T8S205Fg2P0PxAm8dut8+I/FTIqlUrF5D8Qw9zSScDwPxHPFYzmkfI/E2HroVFM9T8Y88C3vAb4PxDD3NJJwPA/FUqcB4Ro6D8Qw9zSScDwPxNh66FRTPU/EMPc0knA8D8deoDs9q7vPxAm8dut8+I/Hm5HM1rd7T8Qw9zSScDwPxVKnAeEaOg/FUqcB4Ro6D8TVbLotHrzPxFJeS8YqfE/GVbVwCA66j8VPmNO55bmPxlW1cAgOuo/Hm5HM1rd7T8VSpwHhGjoPw==", "dtype": "f8" }, "z": { "bdata": "7+8XzCPg4T+jbPPafVLqv2X5th205MC/6/CJRuUt179l+bYdtOTAv2X5th205MC/bfBQiQSH9L/r8IlG5S3Xv23wUIkEh/S/IM/OT7r88z+4a4FgvATVP6Ns89p9Uuq/Zfm2HbTkwL9t8FCJBIf0v5EyHD+49OK/uGuBYLwE1T9l+bYdtOTAvzgJput/Wvs/X1NluyHY8L+RxxPzrJP/v7hrgWC8BNU/kTIcP7j04r+RMhw/uPTiv6Ns89p9Uuq/7+8XzCPg4T+4a4FgvATVP5EyHD+49OK/Zfm2HbTkwL+RMhw/uPTiv2X5th205MC/kTIcP7j04r84Cabrf1r7P5EyHD+49OK/kTIcP7j04r9fU2W7Idjwv2X5th205MC/CirvZ+k96T8H3kujxCS5P2X5th205MC/B95Lo8QkuT8H3kujxCS5PwfeS6PEJLk/o2zz2n1S6r+4a4FgvATVP+/vF8wj4OE/Zfm2HbTkwL9t8FCJBIf0v2X5th205MC/CirvZ+k96T9l+bYdtOTAvw==", "dtype": "f8" } } ], "layout": { "height": 700, "legend": { "title": { "text": "species" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "scene": { "domain": { "x": [ 0, 1 ], "y": [ 0, 1 ] }, "xaxis": { "title": { "text": "petal width (cm)" } }, "yaxis": { "title": { "text": "petal length (cm)" } }, "zaxis": { "title": { "text": "sepal width (cm)" } } }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermap": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermap" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "width": 700 } } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.scatter_3d(\n", " data_df,\n", " x='petal width (cm)',\n", " y='petal length (cm)',\n", " z='sepal width (cm)',\n", " color='species',\n", " width=700,\n", " height=700,\n", " opacity=0.8\n", ")\n", "\n", "fig.update_layout()\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Dimensionality reduction: PCA" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_2857475/1885984823.py:37: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n", " fig.show()\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = len(data_df)\n", "x_data = data_df['petal width (cm)']\n", "y_data = data_df['sepal width (cm)']\n", "x_data = np.reshape(x_data, (len(data_df), 1))\n", "y_data = np.reshape(y_data, (len(data_df), 1))\n", "data = np.hstack((x_data, y_data))\n", "\n", "mu = data.mean(axis=0)\n", "data = data - mu\n", "\n", "eigenvectors, eigenvalues, V = np.linalg.svd(data.T, full_matrices=False)\n", "projected_data = np.dot(data, eigenvectors)\n", "sigma = projected_data.std(axis=0).mean()\n", "axis = eigenvectors[:, 0]\n", "start, end = mu, mu + sigma * axis\n", "\n", "pca_df = data_df[['petal width (cm)', 'sepal width (cm)']]\n", "pca = PCA()\n", "pca_data = pca.fit_transform(pca_df)\n", "pca_df = pd.DataFrame(pca_data, columns=['PC1', 'PC2'])\n", "\n", "fig, ax = plt.subplots(1,2, figsize=(8, 4))\n", "\n", "ax[0].set_title('First principal component: petal & sepal widths')\n", "ax[0].scatter(x_data, y_data, color='grey', label='Data')\n", "ax[0].axline(xy1=start, xy2=end, color='red', linestyle='--', label='Component 1 axis')\n", "ax[0].set_xlabel('Petal Width (cm)')\n", "ax[0].set_ylabel('Sepal Width (cm)')\n", "ax[0].legend()\n", "\n", "ax[1].set_title('Distribution of first principal component')\n", "ax[1].hist(pca_df['PC1'], bins=30, color='black')\n", "ax[1].set_xlabel('Component 1 value')\n", "ax[1].set_ylabel('Count')\n", "\n", "fig.tight_layout()\n", "fig.show()" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.12.3" } }, "nbformat": 4, "nbformat_minor": 2 }