diff --git a/ML/aufgaben/decisiontree/decisiontree_iris.ipynb b/ML/aufgaben/decisiontree/decisiontree_iris.ipynb deleted file mode 100644 index 8b2b4c0..0000000 --- a/ML/aufgaben/decisiontree/decisiontree_iris.ipynb +++ /dev/null @@ -1,1292 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# data prep" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn import datasets\n", - "iris = datasets.load_iris()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# data understanding" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "600\n", - "150\n" - ] - } - ], - "source": [ - "print(iris.data.size)\n", - "print(iris.target.size)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[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]]\n" - ] - } - ], - "source": [ - "print(iris.data)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 1 1 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 1 1 1 1 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 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", - " 2 2]\n" - ] - } - ], - "source": [ - "print(iris.target)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']\n", - "['setosa' 'versicolor' 'virginica']\n" - ] - } - ], - "source": [ - "print(iris.feature_names)\n", - "print(iris.target_names)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Jh15hazV2rVro6ioqN9WWlqacNqR89BDD8WFF14YM2fOjKKiorjjjjve8jGbNm2K973vfZHL5eLkk0+OtWvXDvucR4NC12rTpk1vuK6Kioqis7MzzcAjqKmpKT7wgQ/ElClT4oQTToglS5bE9u3b3/Jx4/E1azBrNV5fs2666aaYN29e/heI1dTUxD333POmjxmJa2pMxcett94ajY2NsXLlytiyZUvMnz8/6urqYvfu3Yc8/uGHH47LLrssli1bFo8//ngsWbIklixZEk888UTiydMrdK0iXv1teLt27cpvf//73xNOPHL27t0b8+fPj+bm5gEd/9xzz8UFF1wQ55xzTmzdujWWL18en/vc5+K+++4b5klHXqFr9Zrt27f3u7ZOOOGEYZrw6NHa2hoNDQ3R1tYW999/fxw4cCDOO++82Lt372EfM15fswazVhHj8zVr1qxZcd1110V7e3s89thjsXjx4rjoooviySefPOTxI3ZNDc2fkzs6LFy4MGtoaMjfPnjwYDZz5sysqanpkMd/4hOfyC644IJ++xYtWpR98YtfHNY5jwaFrtWaNWuy8vLyRNMdvSIi27hx45sec/XVV2ennXZav32XXHJJVldXN4yTHX0GslYPPvhgFhHZv//97yQzHc12796dRUTW2tp62GPG82vW/zSQtfKa9d/e/va3Zz/72c8Oed9IXVNj5p2P/fv3R3t7e9TW1ub3FRcXR21tbWzevPmQj9m8eXO/4yMi6urqDnv8WDGYtYp49c8vn3jiiVFVVfWmJT3ejdfr6kicccYZMWPGjDj33HPjT3/600iPMyK6u7sjImLatGmHPca19aqBrFWE16yDBw/G+vXrY+/evYf98yYjdU2Nmfh44YUX4uDBg2/4LaoVFRWH/f5xZ2dnQcePFYNZq9mzZ8fPf/7zuPPOO+NXv/pV9PX1xVlnnRXPP/98ipFHlcNdVz09PfHKK6+M0FRHpxkzZsTNN98ct99+e9x+++1RVVUVZ599dmzZsmWkR0uqr68vli9fHh/84Afj9NNPP+xx4/U1638a6FqN59esbdu2xeTJkyOXy8WXvvSl2LhxY5x66qmHPHakrqlh+fXqjD01NTX9yvmss86KuXPnxi233BLf/e53R3AyRrPZs2fH7Nmz87fPOuusePbZZ2PVqlXxy1/+cgQnS6uhoSGeeOKJ+OMf/zjSoxz1BrpW4/k1a/bs2bF169bo7u6O3/zmN7F06dJobW09bICMhDHzzsdxxx0XxxxzTHR1dfXb39XVFZWVlYd8TGVlZUHHjxWDWavXmzhxYrz3ve+NZ555ZjhGHNUOd12VlZXFpEmTRmiq0WPhwoXj6rq64oor4u67744HH3wwZs2a9abHjtfXrNcUslavN55es0pKSuLkk0+OBQsWRFNTU8yfPz9uuOGGQx47UtfUmImPkpKSWLBgQbS0tOT39fX1RUtLy2G/11VTU9Pv+IiI+++//7DHjxWDWavXO3jwYGzbti1mzJgxXGOOWuP1uhoqW7duHRfXVZZlccUVV8TGjRvjgQceiJNOOuktHzNer63BrNXrjefXrL6+vujt7T3kfSN2TQ3rx1kTW79+fZbL5bK1a9dmf/3rX7MvfOEL2dSpU7POzs4sy7LsU5/6VHbNNdfkj//Tn/6UTZgwIfuv//qv7KmnnspWrlyZTZw4Mdu2bdtIfQnJFLpW1157bXbfffdlzz77bNbe3p5deumlWWlpafbkk0+O1JeQzEsvvZQ9/vjj2eOPP55FRHb99ddnjz/+ePb3v/89y7Isu+aaa7JPfepT+eP/9re/Zccee2z2ta99LXvqqaey5ubm7JhjjsnuvffekfoSkil0rVatWpXdcccd2dNPP51t27Yt+8pXvpIVFxdnf/jDH0bqS0jmy1/+clZeXp5t2rQp27VrV377z3/+kz/Ga9arBrNW4/U165prrslaW1uz5557LvvLX/6SXXPNNVlRUVH2+9//Psuyo+eaGlPxkWVZ9pOf/CSrrq7OSkpKsoULF2ZtbW35+z760Y9mS5cu7Xf8bbfdlp1yyilZSUlJdtppp2W//e1vE088cgpZq+XLl+ePraioyD7+8Y9nW7ZsGYGp03vtx0Ffv722PkuXLs0++tGPvuExZ5xxRlZSUpK9853vzNasWZN87pFQ6Fr94Ac/yN71rndlpaWl2bRp07Kzzz47e+CBB0Zm+MQOtU4R0e9a8Zr1qsGs1Xh9zfrsZz+bnXjiiVlJSUl2/PHHZx/72Mfy4ZFlR881VZRlWTa8760AAPy3MfOZDwBgdBAfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASf1/mOTsexRfsLIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "plt.hist(iris.target, bins=(0,1,2,3), edgecolor='black')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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IiLiMU1aLiIiIiJepzApIiIiIh5TmBQRERERjylMioiIiIjHFCZFRERExGMKkyIiIiLiMYVJEREREfGYwqSIiIiIeExhUkREREQ8pjApIiIiIh5TmBQRERERjylMioiIiIjHFCZFRERExGMKkyIiIiLiMYVJEREREfGYwqSIiIiIeExhUkREREQ8pjApIiIiIh5TmBQRERERjylMioiIiIjHFCZFRERExGMKkyIiIiLiMYVJEREREfGY3dcNiPxaTk4O33zzDWfOnKFBgwZ07twZq1Xve0RERCoihUmpMFwuFy+++CKvTBjPz2fPY7GAMRBzTV3+99336NKli69bFBERkV/R6R6pMJ599lnGjh3LsObnOfQoOMdA2j0QzSF6dO9Genq6r1sUERGRX7EYY0x5F83JySE0NJTs7GxCQkLKu7xUQMeOHSM6Oopn2joY27noWL4DEmbaqH5tR5Z8971P+hMREbnSlDav6cykVAhz587FiovhbS4dC7DDyNZOln6/jKNHj5Z/cyIiIlIihUmpELKysqgVbKNapeLHG1W/uJ6IiIhUHAqTUiHUqVOHozkOjuUVP77xGFitFsLDw8u3MREREflNCpNSIdxxxx34+fnz8qpLx3Ly4fXVNm5JTqZmzZrl35yIiIiUSGFSKoRq1aox/u8TmLwGBnwGPx6CIzkwdxu0m2XjREElXnp5vK/bFBERkV/RPJNSYYwYMYIqVarw/NgxfPRepnt5pw4JfPjW28TFxfmwOxERESmOpgaSCsfpdJKenk52djYxMTE0atTI1y2JiIhccUqb13RmUiocm81Gu3btfN2GiIiIlILumRQRERERjylMioiIiIjHFCZFRERExGMKkyIiIiLiMYVJEREREfGYwqSIiIiIeExhUkREREQ8pjApIiIiIh5TmBQRERERjylMioiIiIjHFCZFRERExGMKkyIiIiLiMYVJEREREfGY3RdFjTEA5OTk+KK8iIiIiPyOX3LaL7mtJD4Jk7m5uQBERUX5oryIiIiIlFJubi6hoaEljlvM78VNL3C5XGRmZlKlShUsFkt5lxcRERGR32GMITc3l4iICKzWku+M9EmYFBEREZHLgz6AIyIiIiIeU5gUEREREY8pTIqIiIiIxxQmRURERMRjCpMiIqVksViYP39+ieOdO3dm5MiR5dbPb1m+fDkWi4UzZ874uhURucwpTIpIhZaVlcWDDz5IdHQ0AQEB1K5dm27dupGWlubr1iqMihRiReTK45NJy0VESqtPnz4UFBTw/vvvU69ePY4fP853333HqVOnfN2aiIigM5MiUoGdOXOGVatWMWHCBG688Ubq1q1L69atGT16NLfcckuR9e677z5q1qxJSEgIXbp0YfPmze7xcePG0bx5c6ZNm0ZUVBRBQUH069eP7Oxs9zpr164lKSmJGjVqEBoaSqdOndiwYcMf6j8/P59Ro0YRGRlJ5cqVadOmDcuXL3ePz5o1i6pVq/Ltt98SGxtLcHAw3bt35+jRo+51HA4Hw4cPp2rVqlSvXp0nn3ySQYMG0bt3bwDuvvtuVqxYwaRJk7BYLFgsFg4cOODefv369bRq1YqgoCDatm3Lzp07/9A+iYj8msKkiFRYwcHBBAcHM3/+fPLz80tcr2/fvpw4cYJvvvmG9evX06JFCxITE/n3v//tXmfPnj188sknLFy4kEWLFrFx40aGDRvmHs/NzWXQoEGkpqaSnp5OgwYN6Nmzp/vxr554+OGH+fHHH/n444/ZsmULffv2pXv37uzevdu9ztmzZ/nHP/7B7NmzWblyJQcPHmTUqFHu8QkTJvDhhx8yc+ZM0tLSyMnJKXLf5qRJk0hISGDIkCEcPXqUo0ePFnlU7TPPPMNrr73GunXrsNvt3HPPPR7vj4hIsYyISAU2b948U61aNRMYGGjatm1rRo8ebTZv3uweX7VqlQkJCTHnz58vsl1MTIyZNm2aMcaYsWPHGpvNZg4fPuwe/+abb4zVajVHjx4ttq7T6TRVqlQxCxcudC8DzL/+9a8Se+3UqZMZMWKEMcaYjIwMY7PZzJEjR4qsk5iYaEaPHm2MMWbmzJkGMHv27HGPv/322yYsLMz9dVhYmHn11VfdXzscDhMdHW1uvfXWYuv+YtmyZQYwS5cudS/76quvDGDOnTtX4j6IiPxf6cykiFRoffr0ITMzkwULFtC9e3eWL19OixYtmDVrFgCbN28mLy+P6tWru89kBgcHs3//fvbu3et+nejoaCIjI91fJyQk4HK53Jd9jx8/zpAhQ2jQoAGhoaGEhISQl5fHwYMHPep769atOJ1OGjZsWKSvFStWFOkrKCiImJgY99fh4eGcOHECgOzsbI4fP07r1q3d4zabjZYtW5a6j/j4+CKvDbhfX0SkLOgDOCJS4QUGBpKUlERSUhJjxozhvvvuY+zYsdx9993k5eURHh5e5F7EX1StWrXUNQYNGsSpU6eYNGkSdevWJSAggISEBAoKCjzqOS8vD5vNxvr167HZbEXGgoOD3f/28/MrMmaxWDDGeFSzOP/9+haLBQCXy1Vmry8iojApIn86cXFx7vsGW7RowbFjx7Db7Vx99dUlbnPw4EEyMzOJiIgAID09HavVSqNGjQBIS0tjypQp9OzZE4BDhw5x8uRJj3u87rrrcDqdnDhxgg4dOnj0GqGhoYSFhbF27Vo6duwIgNPpZMOGDTRv3ty9nr+/P06n0+NeRUT+CF3mFpEK69SpU3Tp0oUPPviALVu2sH//fj799FNeeeUVbr31VgC6du1KQkICvXv3ZvHixRw4cIAffviBZ555hnXr1rlfKzAwkEGDBrF582ZWrVrF8OHD6devH7Vr1wagQYMGzJ49mx07drB69WpSUlKoVKmSx703bNiQlJQUBg4cyOeff87+/ftZs2YN48eP56uvvir16zzyyCOMHz+eL774gp07dzJixAhOnz7tPssIcPXVV7N69WoOHDjAyZMndeZRRMqVwqSIVFjBwcG0adOGiRMn0rFjR5o0acKYMWMYMmQIb731FnDh0u3XX39Nx44dGTx4MA0bNqR///5kZGQQFhbmfq369etz22230bNnT2666Sbi4+OZMmWKe3zGjBmcPn2aFi1a8Je//IXhw4dTq1atP9T/zJkzGThwII8//jiNGjWid+/erF27lujo6FK/xpNPPsmdd97JwIEDSUhIIDg4mG7duhEYGOheZ9SoUdhsNuLi4qhZs6bH93mKiHjCYsry5hwRkQpo3LhxzJ8/n02bNvm6lT/M5XIRGxtLv379eOGFF3zdjoiI7pkUEanIMjIyWLx4MZ06dSI/P5+33nqL/fv3M2DAAF+3JiIC6DK3iEiFZrVamTVrFtdffz3t2rVj69atLF26lNjYWF+3JiIC6DK3iIiIiPwBOjMpIiIiIh5TmBQRERERjylMioiIiIjHFCZFRERExGMKkyIiIiLiMYVJEREREfGYwqSIiIiIeExhUkREREQ89v8BCNiIAPl8BpkAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "X = iris.data[:, :2] # we only take the first two features.\n", - "y = iris.target\n", - "plt.figure(2, figsize=(8, 6))\n", - "plt.clf()\n", - "plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Set1, edgecolor='k')\n", - "plt.xlabel('Sepal length')\n", - "plt.ylabel('Sepal width')\n", - "plt.xticks(())\n", - "plt.yticks(())\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# train model" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
DecisionTreeClassifier()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" - ], - "text/plain": [ - "DecisionTreeClassifier()" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sklearn.tree import DecisionTreeClassifier\n", - "classifier = DecisionTreeClassifier()\n", - "classifier.fit(iris.data[:-1], iris.target[:-1]) # use all but the last sample for training" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# use model for prediction" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "predicted [2] vs. real [2]\n" - ] - } - ], - "source": [ - "print(\"predicted\",classifier.predict(iris.data[-1:]),\"vs. real\",iris.target[-1:])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# export model for visual inspection" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn import tree\n", - "tree.export_graphviz(classifier,out_file='tree.dot', \n", - " feature_names=iris.feature_names, \n", - " class_names=iris.target_names, \n", - " filled=True, rounded=True, \n", - " special_characters=True) " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.14.4" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/ML/aufgaben/kmeans/kmeans_digits.ipynb b/ML/aufgaben/kmeans/kmeans_digits.ipynb deleted file mode 100644 index 8c53e0b..0000000 --- a/ML/aufgaben/kmeans/kmeans_digits.ipynb +++ /dev/null @@ -1,2108 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1797, 64)\n", - "10\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "from sklearn import datasets\n", - "digits = datasets.load_digits()\n", - "print(digits.data.shape)\n", - "print(len(np.unique(digits.target)))" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 0. 0. 5. 13. 9. 1. 0. 0. 0. 0. 13. 15. 10. 15. 5. 0. 0. 3.\n", - " 15. 2. 0. 11. 8. 0. 0. 4. 12. 0. 0. 8. 8. 0. 0. 5. 8. 0.\n", - " 0. 9. 8. 0. 0. 4. 11. 0. 1. 12. 7. 0. 0. 2. 14. 5. 10. 12.\n", - " 0. 0. 0. 0. 6. 13. 10. 0. 0. 0.]\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAGkCAYAAAAIduO+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAGPBJREFUeJzt3X9s1IX9x/HX0a4H0/YsSKEdpfwQRcB2QIGw6kSpmAaJ7g9GCGYVnFNSJtiYaP8ZmGVc98cMbiOlMFZMHIOxrOhMoGuZlCyzoy1pApogCJMiQudS7kqzHKb3+f61flehpZ+j7374XJ+P5JN5x+f4vGIcT+5H24DjOI4AADAyyusBAIDkRmgAAKYIDQDAFKEBAJgiNAAAU4QGAGCK0AAATBEaAIApQgMAMEVoAACmkiY027dv15QpUzR69GgtWrRIx48f93rSLR07dkwrVqxQTk6OAoGADh486PWkQQmHw1qwYIHS09OVlZWlZ555RqdPn/Z61qBUVVUpPz9fGRkZysjI0OLFi3Xo0CGvZ7lWWVmpQCCgTZs2eT3llrZs2aJAINDnmDlzptezBuXzzz/Xs88+q3HjxmnMmDF66KGH1NLS4vWsW5oyZcoN/84DgYDKyso82ZMUodm/f7/Ky8u1efNmnThxQgUFBXryySfV0dHh9bQBdXd3q6CgQNu3b/d6iiuNjY0qKytTU1OT6uvr9dVXX2nZsmXq7u72etotTZo0SZWVlWptbVVLS4sef/xxPf300/roo4+8njZozc3Nqq6uVn5+vtdTBm327Nn64osveo+//e1vXk+6pc7OThUVFekb3/iGDh06pI8//li/+MUvlJmZ6fW0W2pubu7z77u+vl6StHLlSm8GOUlg4cKFTllZWe/tnp4eJycnxwmHwx6uckeSU1tb6/WMhHR0dDiSnMbGRq+nJCQzM9P5zW9+4/WMQenq6nJmzJjh1NfXO48++qizceNGryfd0ubNm52CggKvZ7j22muvOQ8//LDXM4bExo0bnenTpzvxeNyT6/v+Gc3169fV2tqq4uLi3vtGjRql4uJiffjhhx4uGzkikYgkaezYsR4vcaenp0f79u1Td3e3Fi9e7PWcQSkrK9Py5cv7/PfuB2fOnFFOTo6mTZumNWvW6MKFC15PuqX33ntPhYWFWrlypbKysjR37lzt2rXL61muXb9+Xe+8847WrVunQCDgyQbfh+bLL79UT0+PJkyY0Of+CRMm6PLlyx6tGjni8bg2bdqkoqIizZkzx+s5g3Ly5EndfffdCgaDeumll1RbW6tZs2Z5PeuW9u3bpxMnTigcDns9xZVFixZpz549Onz4sKqqqnT+/Hk98sgj6urq8nragM6dO6eqqirNmDFDdXV1Wr9+vV5++WW9/fbbXk9z5eDBg7p69aqee+45zzakenZlJIWysjKdOnXKF6+5/9cDDzygtrY2RSIR/fGPf1RpaakaGxvv6Ni0t7dr48aNqq+v1+jRo72e40pJSUnvP+fn52vRokXKy8vTH/7wBz3//PMeLhtYPB5XYWGhtm7dKkmaO3euTp06pR07dqi0tNTjdYO3e/dulZSUKCcnx7MNvn9Gc++99yolJUVXrlzpc/+VK1c0ceJEj1aNDBs2bND777+vDz74QJMmTfJ6zqClpaXpvvvu0/z58xUOh1VQUKC33nrL61kDam1tVUdHh+bNm6fU1FSlpqaqsbFRv/zlL5Wamqqenh6vJw7aPffco/vvv19nz571esqAsrOzb/jLx4MPPuiLl/3+67PPPlNDQ4N++MMferrD96FJS0vT/PnzdeTIkd774vG4jhw54pvX3f3GcRxt2LBBtbW1+utf/6qpU6d6Pem2xONxxWIxr2cMaOnSpTp58qTa2tp6j8LCQq1Zs0ZtbW1KSUnxeuKgXbt2TZ9++qmys7O9njKgoqKiGz62/8knnygvL8+jRe7V1NQoKytLy5cv93RHUrx0Vl5ertLSUhUWFmrhwoXatm2buru7tXbtWq+nDejatWt9/lZ3/vx5tbW1aezYsZo8ebKHywZWVlamvXv36t1331V6enrve2GhUEhjxozxeN3AKioqVFJSosmTJ6urq0t79+7V0aNHVVdX5/W0AaWnp9/wHthdd92lcePG3fHvjb366qtasWKF8vLydOnSJW3evFkpKSlavXq119MG9Morr+g73/mOtm7dqu9///s6fvy4du7cqZ07d3o9bVDi8bhqampUWlqq1FSP/6j35LNuBn71q185kydPdtLS0pyFCxc6TU1NXk+6pQ8++MCRdMNRWlrq9bQB3WyzJKempsbrabe0bt06Jy8vz0lLS3PGjx/vLF261PnLX/7i9ayE+OXjzatWrXKys7OdtLQ051vf+pazatUq5+zZs17P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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAGkCAYAAAAIduO+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAGNdJREFUeJzt3X9s1IX9x/HX0a4Hanv8kEI7SouKImALUiCsOlEQ0yCR/cEIw6wFt0RyDLAxMf1nsCzj2B9zuI1UYKwlcQy2Za3OBDpgtmSRjlLSBTRBUJQqQudi70r/OFzv8/1r910HtP0cffPhc30+kk/0zs9xrxjk6efu2gYcx3EEAICREV4PAACkN0IDADBFaAAApggNAMAUoQEAmCI0AABThAYAYIrQAABMERoAgClCAwAwlTah2bFjh4qKijRy5EjNnz9fJ06c8HrSgI4dO6Zly5YpPz9fgUBADQ0NXk8alEgkorlz5yo7O1u5ublavny5zp496/WsQampqVFxcbFycnKUk5OjBQsW6ODBg17Pcm3btm0KBALatGmT11MGtGXLFgUCgT7HtGnTvJ41KJ999pmef/55jRs3TqNGjdIjjzyikydPej1rQEVFRdf9Ow8EAgqHw57sSYvQHDhwQFVVVdq8ebNOnTqlkpISPfPMM+rs7PR6Wr96enpUUlKiHTt2eD3FlebmZoXDYbW0tOjw4cP66quvtGTJEvX09Hg9bUCTJk3Stm3b1NbWppMnT+qpp57Sc889p/fee8/raYPW2tqqnTt3qri42OspgzZjxgx9/vnnyeNvf/ub15MG9OWXX6qsrExf+9rXdPDgQb3//vv62c9+pjFjxng9bUCtra19/n0fPnxYkrRixQpvBjlpYN68eU44HE7e7u3tdfLz851IJOLhKnckOfX19V7PSElnZ6cjyWlubvZ6SkrGjBnj/PrXv/Z6xqB0d3c7U6dOdQ4fPuw88cQTzsaNG72eNKDNmzc7JSUlXs9w7ZVXXnEee+wxr2cMiY0bNzr333+/k0gkPHl+31/RXLt2TW1tbVq8eHHyvhEjRmjx4sU6fvy4h8uGj2g0KkkaO3asx0vc6e3t1f79+9XT06MFCxZ4PWdQwuGwli5d2uf3ux+cO3dO+fn5uu+++7R69WpdvHjR60kDeuutt1RaWqoVK1YoNzdXs2fP1u7du72e5dq1a9f0xhtvaO3atQoEAp5s8H1ovvjiC/X29mrChAl97p8wYYIuX77s0arhI5FIaNOmTSorK9PMmTO9njMop0+f1j333KNgMKgXX3xR9fX1mj59utezBrR//36dOnVKkUjE6ymuzJ8/X3V1dTp06JBqamp04cIFPf744+ru7vZ6Wr8++ugj1dTUaOrUqWpsbNS6deu0YcMG7d271+tprjQ0NKirq0uVlZWebcj07JmRFsLhsM6cOeOL19z/46GHHlJ7e7ui0aj++Mc/qqKiQs3NzXd0bDo6OrRx40YdPnxYI0eO9HqOK+Xl5cm/Ly4u1vz581VYWKjf//73euGFFzxc1r9EIqHS0lJt3bpVkjR79mydOXNGr7/+uioqKjxeN3h79uxReXm58vPzPdvg+yuae++9VxkZGbpy5Uqf+69cuaKJEyd6tGp4WL9+vd5++2298847mjRpktdzBi0rK0sPPPCA5syZo0gkopKSEr322mtez+pXW1ubOjs79eijjyozM1OZmZlqbm7WL37xC2VmZqq3t9friYM2evRoPfjggzp//rzXU/qVl5d33f98PPzww7542e8/PvnkEx05ckTf+973PN3h+9BkZWVpzpw5Onr0aPK+RCKho0eP+uZ1d79xHEfr169XfX29/vrXv2rKlCleT7oliURC8Xjc6xn9WrRokU6fPq329vbkUVpaqtWrV6u9vV0ZGRleTxy0q1ev6sMPP1ReXp7XU/pVVlZ23cf2P/jgAxUWFnq0yL3a2lrl5uZq6dKlnu5Ii5fOqqqqVFFRodLSUs2bN0/bt29XT0+P1qxZ4/W0fl29erXP/9VduHBB7e3tGjt2rCZPnuzhsv6Fw2Ht27dPb775prKzs5PvhYVCIY0aNcrjdf2rrq5WeXm5Jk+erO7ubu3bt09NTU1qbGz0elq/srOzr3sP7O6779a4cePu+PfGXn75ZS1btkyFhYW6dOmSNm/erIyMDK1atcrraf166aWX9I1vfENbt27Vt7/9bZ04cUK7du3Srl27vJ42KIlEQrW1taqoqFBmpsd/1HvyWTcDv/zlL53Jkyc7WVlZzrx585yWlhavJw3onXfecSRdd1RUVHg9rV832izJqa2t9XragNauXesUFhY6WVlZzvjx451FixY5f/nLX7yelRK/fLx55cqVTl5enpOVleV8/etfd1auXOmcP3/e61mD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CA0AwBShAQCYIjQAAFOEBgBgitAAAEwRGgCAKUIDADBFaAAApggNAMAUoQEAmCI0AABThAYAYIrQAABMERoAgKlb/sFnw0lXV5fXE1IWjUa9npCSiooKryekbNasWV5PGHYaGhq8noAb4IoGAGCK0AAATBEaAIApQgMAMEVoAACmCA0AwBShAQCYIjQAAFOEBgBgitAAAEwRGgCAKUIDADBFaAAApggNAMAUoQEAmCI0AABThAYAYIrQAABMERoAgClXodmyZYsCgUCfY9q0aVbbAABpINPtA2bMmKEjR478/y+Q6fqXAAAMI64rkZmZqYkTJ1psAQCkIdfv0Zw7d075+fm67777tHr1al28eLHf8+PxuGKxWJ8DADB8uArN/PnzVVdXp0OHDqmmpkYXLlzQ448/ru7u7ps+JhKJKBQKJY+CgoJbHg0A8I+A4zhOqg/u6upSYWGhXn31Vb3wwgs3PCcejysejydvx2Ix38Zm4cKFXk9IWUNDg9cTUhIKhbyekLJ//OMfXk9ISUlJidcTUjZmzBivJ6Skq6vL6wm3JBqNKicn56b//JbeyR89erQefPBBnT9//qbnBINBBYPBW3kaAICP3dLX0Vy9elUffvih8vLyhmoPACDNuArNyy+/rObmZn388cd699139a1vfUsZGRlatWqV1T4AgM+5euns008/1apVq/Svf/1L48eP12OPPaaWlhaNHz/eah8AwOdchWb//v1WOwAAaYrvdQYAMEVoAACmCA0AwBShAQCYIjQAAFOEBgBgitAAAEwRGgCAKUIDADBFaAAApggNAMAUoQEAmCI0AABThAYAYIrQAABMERoAgClXP/hsuGtqavJ6QspGjx7t9YSUzJo1y+sJKfPr75e9e/d6PSFlXV1dXk/ADXBFAwAwRWgAAKYIDQDAFKEBAJgiNAAAU4QGAGCK0AAATBEaAIApQgMAMEVoAACmCA0AwBShAQCYIjQAAFOEBgBgitAAAEwRGgCAKUIDADBFaAAAplyH5rPPPtPzzz+vcePGadSoUXrkkUd08uRJi20AgDSQ6ebkL7/8UmVlZXryySd18OBBjR8/XufOndOYMWOs9gEAfM5VaH7605+qoKBAtbW1yfumTJky5KMAAOnD1Utnb731lkpLS7VixQrl5uZq9uzZ2r17d7+PicfjisVifQ4AwPDhKjQfffSRampqNHXqVDU2NmrdunXasGGD9u7de9PHRCIRhUKh5FFQUHDLowEA/hFwHMcZ7MlZWVkqLS3Vu+++m7xvw4YNam1t1fHjx2/4mHg8rng8nrwdi8WIDQZt1qxZXk9IWVNTk9cTUtLQ0OD1hJRVVlZ6PWFYikajysnJuek/d3VFk5eXp+nTp/e57+GHH9bFixdv+phgMKicnJw+BwBg+HAVmrKyMp09e7bPfR988IEKCwuHdBQAIH24Cs1LL72klpYWbd26VefPn9e+ffu0a9cuhcNhq30AAJ9zFZq5c+eqvr5ev/vd7zRz5kz9+Mc/1vbt27V69WqrfQAAn3P1dTSS9Oyzz+rZZ5+12AIASEN8rzMAgClCAwAwRWgAAKYIDQDAFKEBAJgiNAAAU4QGAGCK0AAATBEaAIApQgMAMEVoAACmCA0AwBShAQCYIjQAAFOEBgBgitAAAEy5/sFnwO3U1dXl9YSUhUIhryekpK6uzusJSDNc0QAATBEaAIApQgMAMEVoAACmCA0AwBShAQCYIjQAAFOEBgBgitAAAEwRGgCAKUIDADBFaAAApggNAMAUoQEAmCI0AABThAYAYIrQAABMERoAgClCAwAw5So0RUVFCgQC1x3hcNhqHwDA5zLdnNza2qre3t7k7TNnzujpp5/WihUrhnwYACA9uArN+PHj+9zetm2b7r//fj3xxBNDOgoAkD5chea/Xbt2TW+88YaqqqoUCARuel48Hlc8Hk/ejsViqT4lAMCHUv4wQENDg7q6ulRZWdnveZFIRKFQKHkUFBSk+pQAAB9KOTR79uxReXm58vPz+z2vurpa0Wg0eXR0dKT6lAAAH0rppbNPPvlER44c0Z/+9KcBzw0GgwoGg6k8DQAgDaR0RVNbW6vc3FwtXbp0qPcAANKM69AkEgnV1taqoqJCmZkpf5YAADBMuA7NkSNHdPHiRa1du9ZiDwAgzbi+JFmyZIkcx7HYAgBIQ3yvMwCAKUIDADBFaAAApggNAMAUoQEAmCI0AABThAYAYIrQAABMERoAgClCAwAwRWgAAKYIDQDAFKEBAJgiNAAAU4QGAGDqtv+ITH6WDdxIJBJeT0hZLBbzekJK/v3vf3s9AT4z0J/rtz003d3dt/sp4WMXL170ekLKQqGQ1xOA26K7u7vf3+8B5zZfYiQSCV26dEnZ2dkKBAJD+mvHYjEVFBSoo6NDOTk5Q/prW/Lrbsm/2/26W/Lvdr/ulvy73Xq34zjq7u5Wfn6+Roy4+Tsxt/2KZsSIEZo0aZLpc+Tk5PjqN8N/+HW35N/tft0t+Xe7X3dL/t1uuXswV+58GAAAYIrQAABMpVVogsGgNm/erGAw6PUUV/y6W/Lvdr/ulvy73a+7Jf9uv1N23/YPAwAAhpe0uqIBANx5CA0AwBShAQCYIjQAAFOEBgBgitAAAEwRGgCAKUIDADD1f9w0SIch2BeyAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "8\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "9\n" - ] - } - ], - "source": [ - "import matplotlib.pyplot as plt \n", - "\n", - "print(digits.data[0])\n", - "\n", - "for i in range(0,10):\n", - " plt.gray() \n", - " plt.matshow(digits.images[i]) \n", - " plt.show() \n", - "\n", - " print(digits.target[i])" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.cluster import KMeans\n", - "from sklearn import metrics" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
KMeans(init='random', n_clusters=10, n_init=1)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" - ], - "text/plain": [ - "KMeans(init='random', n_clusters=10, n_init=1)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "kmeans = KMeans(n_clusters=10, init='random', n_init=1)\n", - "kmeans.fit(digits.data)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.10907067334446299\n", - "0.745350822261002\n", - "0.76318258796145\n", - "0.6611470614010143\n", - "0.17430724039300127\n" - ] - } - ], - "source": [ - "print(metrics.accuracy_score(digits.target, kmeans.labels_))\n", - "print(metrics.homogeneity_score(digits.target, kmeans.labels_))\n", - "print(metrics.completeness_score(digits.target, kmeans.labels_))\n", - "print(metrics.adjusted_rand_score(digits.target, kmeans.labels_))\n", - "print(metrics.silhouette_score(digits.data, kmeans.labels_))" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
KMeans(n_clusters=10)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" - ], - "text/plain": [ - "KMeans(n_clusters=10)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "kmeans2 = KMeans(n_clusters=10)\n", - "kmeans2.fit(digits.data)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.012799109627156371\n", - "0.7055173362142219\n", - "0.715457995208012\n", - "0.6301885151444379\n", - "0.16699457553360253\n" - ] - } - ], - "source": [ - "print(metrics.accuracy_score(digits.target, kmeans2.labels_))\n", - "print(metrics.homogeneity_score(digits.target, kmeans2.labels_))\n", - "print(metrics.completeness_score(digits.target, kmeans2.labels_))\n", - "print(metrics.adjusted_rand_score(digits.target, kmeans2.labels_))\n", - "print(metrics.silhouette_score(digits.data, kmeans2.labels_))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[(np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(9)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(5)), (np.int64(2), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(3)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(5)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(3)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(5)), (np.int64(2), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(0)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(3)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(9)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(3)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(3)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(0)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(5), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(4)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(5)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(3)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(4)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(0)), (np.int64(1), np.int32(6)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(0)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(0)), (np.int64(3), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(4)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(4)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(0)), (np.int64(1), np.int32(6)), (np.int64(3), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(0)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(4)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(4), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(1)), (np.int64(5), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(8)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(3)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(2)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(7)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(3)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(0)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(4)), (np.int64(5), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(4)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(4)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(2), np.int32(7)), (np.int64(5), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(3)), (np.int64(9), np.int32(8)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(7)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(8)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(7)), (np.int64(8), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(9)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(9)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(4)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(6)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(4)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(2), np.int32(4)), (np.int64(5), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(5), np.int32(0)), (np.int64(1), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(8)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(0)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(0)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(0)), (np.int64(8), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(5)), (np.int64(7), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(9)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(9)), (np.int64(8), np.int32(3)), (np.int64(9), np.int32(9)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(2)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(4)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(5)), (np.int64(3), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(3)), (np.int64(3), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(2), np.int32(4)), (np.int64(8), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(7)), (np.int64(4), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(3)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(9)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(4)), (np.int64(5), np.int32(9)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(8)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(9)), (np.int64(8), np.int32(3)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(8)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(3), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(5), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(9)), (np.int64(5), np.int32(9)), (np.int64(6), np.int32(6)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(7), np.int32(3)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(5)), (np.int64(3), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(3), np.int32(0)), (np.int64(3), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(6), np.int32(6)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(5), np.int32(9)), (np.int64(0), np.int32(2)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(2), np.int32(7)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(4), np.int32(1)), (np.int64(6), np.int32(6)), (np.int64(3), np.int32(8)), (np.int64(1), np.int32(5)), (np.int64(3), np.int32(8)), (np.int64(9), np.int32(0)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(6), np.int32(6)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(3), np.int32(9)), (np.int64(1), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(0), np.int32(2)), (np.int64(5), np.int32(0)), (np.int64(3), np.int32(8)), (np.int64(6), np.int32(6)), (np.int64(9), np.int32(0)), (np.int64(6), np.int32(6)), (np.int64(1), np.int32(5)), (np.int64(7), np.int32(3)), (np.int64(5), np.int32(9)), (np.int64(4), np.int32(1)), (np.int64(4), np.int32(1)), (np.int64(7), np.int32(3)), (np.int64(2), np.int32(7)), (np.int64(8), np.int32(5)), (np.int64(2), np.int32(7)), (np.int64(2), np.int32(7)), (np.int64(5), np.int32(0)), (np.int64(7), np.int32(3)), (np.int64(9), np.int32(0)), (np.int64(5), np.int32(0)), (np.int64(4), np.int32(1)), (np.int64(8), np.int32(5)), (np.int64(8), np.int32(5)), (np.int64(4), np.int32(1)), (np.int64(9), np.int32(0)), (np.int64(0), np.int32(2)), (np.int64(8), np.int32(5)), (np.int64(9), np.int32(0)), (np.int64(8), np.int32(0))]\n" - ] - } - ], - "source": [ - "print(list(zip(digits.target,kmeans.labels_)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.13.12" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/ML/aufgaben/kmeans/kmeans_iris.ipynb b/ML/aufgaben/kmeans/kmeans_iris.ipynb deleted file mode 100644 index a8fb59e..0000000 --- a/ML/aufgaben/kmeans/kmeans_iris.ipynb +++ /dev/null @@ -1,2721 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn import datasets\n", - "iris = datasets.load_iris()\n", - "\n", - "from sklearn.cluster import KMeans\n", - "from sklearn import metrics" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 1 1 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 1 1 1 1 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 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", - " 2 2]\n" - ] - } - ], - "source": [ - "print(iris.target)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
KMeans(init='random', n_clusters=3, n_init=1)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" - ], - "text/plain": [ - "KMeans(init='random', n_clusters=3, n_init=1)" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "kmeans = KMeans(n_clusters=3, init='random', n_init=1)\n", - "kmeans.fit(iris.data)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[(np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1))]\n" - ] - } - ], - "source": [ - "print(list(zip(iris.target,kmeans.labels_)))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.7514854021988338\n", - "0.7649861514489815\n", - "0.7302382722834697\n", - "0.5528190123564095\n" - ] - } - ], - "source": [ - "print(metrics.homogeneity_score(iris.target, kmeans.labels_))\n", - "print(metrics.completeness_score(iris.target, kmeans.labels_))\n", - "print(metrics.adjusted_rand_score(iris.target, kmeans.labels_))\n", - "print(metrics.silhouette_score(iris.data, kmeans.labels_))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
KMeans(init='random', n_clusters=3, n_init=10)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" - ], - "text/plain": [ - "KMeans(init='random', n_clusters=3, n_init=10)" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "kmeans_init = KMeans(n_clusters=3, init='random', n_init=10)\n", - "kmeans_init.fit(iris.data)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[(np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1))]\n" - ] - } - ], - "source": [ - "print(list(zip(iris.target,kmeans.labels_)))" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.7514854021988338\n", - "0.7649861514489815\n", - "0.7302382722834697\n", - "0.5528190123564095\n" - ] - } - ], - "source": [ - "print(metrics.homogeneity_score(iris.target, kmeans_init.labels_))\n", - "print(metrics.completeness_score(iris.target, kmeans_init.labels_))\n", - "print(metrics.adjusted_rand_score(iris.target, kmeans_init.labels_))\n", - "print(metrics.silhouette_score(iris.data, kmeans_init.labels_))" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
KMeans(n_clusters=3)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" - ], - "text/plain": [ - "KMeans(n_clusters=3)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "kmeans2 = KMeans(n_clusters=3)\n", - "kmeans2.fit(iris.data)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[(np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(0), np.int32(2)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(0)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(1), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(0)), (np.int64(2), np.int32(1))]\n" - ] - } - ], - "source": [ - "print(list(zip(iris.target,kmeans.labels_)))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.7364192881252849\n", - "0.7474865805095324\n", - "0.7163421126838476\n", - "0.551191604619592\n" - ] - } - ], - "source": [ - "print(metrics.homogeneity_score(iris.target, kmeans2.labels_))\n", - "print(metrics.completeness_score(iris.target, kmeans2.labels_))\n", - "print(metrics.adjusted_rand_score(iris.target, kmeans2.labels_))\n", - "print(metrics.silhouette_score(iris.data, kmeans2.labels_))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.13.12" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -}