{ "cells": [ { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import statistics \n", "from collections import Counter\n", "from sklearn.impute import SimpleImputer\n", "import sklearn.preprocessing as sk\n", "from scipy.stats import zscore\n", "import jenkspy\n", "import seaborn as sns; sns.set()\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.tree import DecisionTreeClassifier,export_graphviz,plot_tree\n", "from sklearn import tree\n", "from sklearn.naive_bayes import MultinomialNB\n", "import statsmodels.tools.tools as stattools\n", "from sklearn.metrics import accuracy_score,confusion_matrix,classification_report\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.cluster import KMeans\n", "from mpl_toolkits.mplot3d.axes3d import Axes3D\n", "from sklearn.metrics import silhouette_samples, silhouette_score\n", "from scipy.cluster.hierarchy import dendrogram, linkage,fcluster\n", "from urllib.request import urlretrieve" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Hierarchical Clustering on IRIS Dataset" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "iris = 'http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('C:\\\\Users\\\\mohammad\\\\AppData\\\\Local\\\\Temp\\\\tmpol0l4cy2',\n", " )" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "urlretrieve(iris)" ] }, { "cell_type": "code", "execution_count": 15, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
5.13.51.40.2Iris-setosa
04.93.01.40.2Iris-setosa
14.73.21.30.2Iris-setosa
24.63.11.50.2Iris-setosa
35.03.61.40.2Iris-setosa
45.43.91.70.4Iris-setosa
..................
1446.73.05.22.3Iris-virginica
1456.32.55.01.9Iris-virginica
1466.53.05.22.0Iris-virginica
1476.23.45.42.3Iris-virginica
1485.93.05.11.8Iris-virginica
\n", "

149 rows × 5 columns

\n", "
" ], "text/plain": [ " 5.1 3.5 1.4 0.2 Iris-setosa\n", "0 4.9 3.0 1.4 0.2 Iris-setosa\n", "1 4.7 3.2 1.3 0.2 Iris-setosa\n", "2 4.6 3.1 1.5 0.2 Iris-setosa\n", "3 5.0 3.6 1.4 0.2 Iris-setosa\n", "4 5.4 3.9 1.7 0.4 Iris-setosa\n", ".. ... ... ... ... ...\n", "144 6.7 3.0 5.2 2.3 Iris-virginica\n", "145 6.3 2.5 5.0 1.9 Iris-virginica\n", "146 6.5 3.0 5.2 2.0 Iris-virginica\n", "147 6.2 3.4 5.4 2.3 Iris-virginica\n", "148 5.9 3.0 5.1 1.8 Iris-virginica\n", "\n", "[149 rows x 5 columns]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d_iris = pd.read_csv(iris, sep=',')\n", "d_iris" ] }, { "cell_type": "code", "execution_count": 16, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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_lengthsepal_widthpetal_lengthpetal_widthIris-setosa
04.93.01.40.2Iris-setosa
14.73.21.30.2Iris-setosa
24.63.11.50.2Iris-setosa
35.03.61.40.2Iris-setosa
45.43.91.70.4Iris-setosa
..................
1446.73.05.22.3Iris-virginica
1456.32.55.01.9Iris-virginica
1466.53.05.22.0Iris-virginica
1476.23.45.42.3Iris-virginica
1485.93.05.11.8Iris-virginica
\n", "

149 rows × 5 columns

\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width Iris-setosa\n", "0 4.9 3.0 1.4 0.2 Iris-setosa\n", "1 4.7 3.2 1.3 0.2 Iris-setosa\n", "2 4.6 3.1 1.5 0.2 Iris-setosa\n", "3 5.0 3.6 1.4 0.2 Iris-setosa\n", "4 5.4 3.9 1.7 0.4 Iris-setosa\n", ".. ... ... ... ... ...\n", "144 6.7 3.0 5.2 2.3 Iris-virginica\n", "145 6.3 2.5 5.0 1.9 Iris-virginica\n", "146 6.5 3.0 5.2 2.0 Iris-virginica\n", "147 6.2 3.4 5.4 2.3 Iris-virginica\n", "148 5.9 3.0 5.1 1.8 Iris-virginica\n", "\n", "[149 rows x 5 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d_iris=d_iris.rename(columns={\"5.1\": \"sepal_length\", \"3.5\": \"sepal_width\",\"1.4\": \"petal_length\",\"0.2\": \"petal_width\"})\n", "d_iris" ] }, { "cell_type": "code", "execution_count": 17, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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_lengthsepal_widthpetal_lengthpetal_width
04.93.01.40.2
14.73.21.30.2
24.63.11.50.2
35.03.61.40.2
45.43.91.70.4
...............
1446.73.05.22.3
1456.32.55.01.9
1466.53.05.22.0
1476.23.45.42.3
1485.93.05.11.8
\n", "

149 rows × 4 columns

\n", "
" ], "text/plain": [ " sepal_length sepal_width petal_length petal_width\n", "0 4.9 3.0 1.4 0.2\n", "1 4.7 3.2 1.3 0.2\n", "2 4.6 3.1 1.5 0.2\n", "3 5.0 3.6 1.4 0.2\n", "4 5.4 3.9 1.7 0.4\n", ".. ... ... ... ...\n", "144 6.7 3.0 5.2 2.3\n", "145 6.3 2.5 5.0 1.9\n", "146 6.5 3.0 5.2 2.0\n", "147 6.2 3.4 5.4 2.3\n", "148 5.9 3.0 5.1 1.8\n", "\n", "[149 rows x 4 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d_iris=d_iris.drop([\"Iris-setosa\"],axis=1)\n", "d_iris" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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WKhDhw6psLBQlZWVtmlFREQoKipKOTk5tt/6REdH64svvlBaWpoiIiIsYx566CEtWLBA8fHxeuCBB2zz69q1qzZu3KjNmzfb1tW0adPk8XjUp08fDR8+3Datyy67zHaC8ZkxY4Yuu+wyde3aVa+99pplTHR0tLKysvT888/bTmwRERHKzMxUTk6OcnJybPNLT09Xamqq4uPjHb+J2rp1qx588EHHMTh16lRNnz5dM2bM0I9//GPLmE6dOmnKlCnasmWL7fiTpAkTJujGG2/Uo48+ajsGx48fr0cffVQ//vGPdccdd1jGPP300/J6vSorK9OUKVMsY8aNG6fBgwerX79+tjGSdNddd0k6VbdWm7CSNGDAAN1www3KzMzU+++/b5vW/fffr5SUFI0aNUoTJ060jLnmmms0depUZWZmaunSpZYxDz74oBobG7Vp0ybbuSMiIkIul0u5ubmOTwVMnDhRP//5z/WLX/xCP/rRj2zTKikpUWpqqtLS0mzTCg8P1+uvv67PPvvMts/84Ac/UK9evdSpUyfb8xs/frykU/O2r/6txMbGqqCgoGlRYGXz5s1KTU1VaGiobUxVVZUmTJigoqIirV692ja//Px8de7cWT169NCrr75qGZORkaGPPvpI3bt3d3zifvz48XryySdtj0vSkCFDNHPmTHXq1MmxX504cUJHjhxR3759bedHr9erxMREJSYm2s61JSUl+vbbbzVy5EjV1NRYxgwcOFC1tbXatWuXVqxYYVumzMxMv/UeExOjgoIC3X///Y5zTH5+vsrKylRUVGT7qxDp1Df59fX1OnnypG3M8OHD9S//8i/Ky8uz7X8ul0vTpk3TlClTbJ+u+uEPf6i4uDglJSXZzlWSNGLECN1www368MMPbfObO3euIiIidM0119imVVlZqbCwMA0aNEiDBg2yjBkwYIAmTJigzMxMx7aJiYlRVlaW7rvvPttryZgxYzR69Gh5PB794Ac/sE3LpK5CQkJUUlLi9ym0oqIi9evXT7169bKNrampUUVFhYYMGWLbzjt27FBqaqqio6Nt12mdOnXSI488ovT0dMdrUkREhA4dOuQ49915553yer3asGGDBgwYYJuOy+VyXMNI0scff+x33TRw4EA99thjjvNCfn6+Bg4c6Hcd6nK59Nlnn2nz5s0KDbVe/rtcLn3xxRdat26d7XrI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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Z = linkage(d_iris)\n", "fig = plt.figure(figsize=(25, 10))\n", "dn = dendrogram(Z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "this plot shows how many clusters we can choose from this data set(the maximum count)." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([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, 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, 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, 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], dtype=int32)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A=fcluster(linkage(d_iris), 6, criterion=\"distance\")\n", "A" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 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, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], dtype=int32)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B=fcluster(linkage(d_iris), t=2, criterion='maxclust')\n", "B" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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rY38/Hw2bNjAnj17mDNnDo899thAbytsn376Kbm5ufzlL39h7Nixwa/392OV0SH44UdsNzY2dnmJIRJ4vV7mzJnDNddc0+0zrsGupqYGn8/HnXfeybx584KzRyK73c5VV13FxIkTAcjIyOj0C6QizSeffMKwYcOYNGkSAPfcc8+g/02HdXV1/OlPf2Lx4sXnPUHr78cqo0MwevRohg0bRl1dHQBVVVWdPmI70nR0dDB//nxuv/128vPzI/7Vz4IFC6itraWqqor169fjcDjYuHHjQG+rX0yePJmmpiYOHz4MwDvvvMN11103wLvqP1dddRUnT57k6NGjwP9+98n3ERyMTpw4wSOPPEJZWRnp6ennrff3Y1XEv0dwIed+hHZZWRkrV66kpaWF6667jpycnIHeXp/7ft6TJ0/yr3/9i46ODmprawG4/vrrI+6Vwbk/30h37qzr1q1j5cqVnD17FqfTecG/gjjYnTtvSUkJCxcuxLIs4uPjeeqppwZ6e7324osv8t///rfT5bzZs2fzzjvvXJTHKn0MtYiI4Yy+NCQiIgqBiIjxFAIREcMpBCIihlMIREQMpxCIiBhOIRARMZxCICJiuP8H26w1zjYqWmoAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(B, A, marker = '^')" ] } ], "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.7.7" } }, "nbformat": 4, "nbformat_minor": 4 }