diff --git a/.gitignore b/.gitignore index 8be2a9c..e3c30eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ +# virtualenv .venv -.swp .devenv +# vim +.swp +# jupyter notebooks +.ipynb_checkpoints +*.dot diff --git a/ML/aufgaben/devenv.lock b/ML/aufgaben/devenv.lock new file mode 100644 index 0000000..a792abc --- /dev/null +++ b/ML/aufgaben/devenv.lock @@ -0,0 +1,65 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1777372895, + "narHash": "sha256-PGesjpeDbEPigEP7tdRw8Sm0mmOmonUdOOthBY+nhJA=", + "owner": "cachix", + "repo": "devenv", + "rev": "cb344e4a5ab9241ae49739352c24268d5f8be13b", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "nixpkgs": { + "inputs": { + "nixpkgs-src": "nixpkgs-src" + }, + "locked": { + "lastModified": 1776852779, + "narHash": "sha256-WwO/ITisCXwyiRgtktZgv3iGhAGO+IB5Av4kKCwezR0=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "ec3063523dcd911aeadb50faa589f237cdab5853", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs-src": { + "flake": false, + "locked": { + "lastModified": 1776329215, + "narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b86751bc4085f48661017fa226dee99fab6c651b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} \ No newline at end of file diff --git a/ML/aufgaben/devenv.nix b/ML/aufgaben/devenv.nix new file mode 100644 index 0000000..873afe8 --- /dev/null +++ b/ML/aufgaben/devenv.nix @@ -0,0 +1,20 @@ +{ pkgs, lib, config, ... }: + +{ + languages.python = { + enable = true; + venv.enable = true; + venv.requirements = '' + ipython + jupyter + matplotlib + numpy + scikit-learn + ''; + }; + + packages = [ + pkgs.graphviz + pkgs.zsh + ]; +} diff --git a/ML/aufgaben/iris/iris.ipynb b/ML/aufgaben/iris/iris.ipynb new file mode 100644 index 0000000..af067c2 --- /dev/null +++ b/ML/aufgaben/iris/iris.ipynb @@ -0,0 +1,1285 @@ +{ + "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) " + ] + } + ], + "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 +}