From 22e18e94e3ef79467e3968714c87ad303a7c83a8 Mon Sep 17 00:00:00 2001 From: Kevin Huestis Date: Fri, 5 Mar 2021 11:28:50 +0100 Subject: [PATCH] Wie definiert man Klassen? --- wie_definiert_man_klassen.ipynb | 390 ++++++++++++++++++++++++++++ wie_nutzt_man_while_schleifen.ipynb | 44 +--- 2 files changed, 398 insertions(+), 36 deletions(-) create mode 100644 wie_definiert_man_klassen.ipynb diff --git a/wie_definiert_man_klassen.ipynb b/wie_definiert_man_klassen.ipynb new file mode 100644 index 0000000..c5fbcc4 --- /dev/null +++ b/wie_definiert_man_klassen.ipynb @@ -0,0 +1,390 @@ +{ + "metadata": { + "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.8.3-final" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3", + "language": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# Wie definiert man Klassen?\n", + "### Objekte in Python" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[1, 3, 4]\n" + ] + } + ], + "source": [ + "liste = [1, 2, 3, 4]\n", + "liste.remove(2)\n", + "print(liste)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "zahl = 2\n", + "# zahl.remove(2)\n", + "# Fehlermeldung" + ] + }, + { + "source": [ + "### Klassen" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "class Perzeptron:\n", + " trainiert = False\n", + "\n", + "test = Perzeptron()\n", + "print(test.trainiert)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "class Perzeptron:\n", + " trainiert = False\n", + " def __init__(self, max_epochs):\n", + " trainiert = True\n", + " self.max_epochs = max_epochs" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "100\n200\n" + ] + } + ], + "source": [ + "test2 = Perzeptron(100)\n", + "test3 = Perzeptron(200)\n", + "print(test2.max_epochs)\n", + "print(test3.max_epochs)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\nFalse\n" + ] + } + ], + "source": [ + "print(test2.trainiert)\n", + "print(test3.trainiert)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "class Perzeptron:\n", + "\n", + " def __init__(self, max_epochs):\n", + " self.trainiert = False\n", + " self.max_epochs = max_epochs" + ] + }, + { + "source": [ + "## Perzeptron\n", + "### Daten vorbereiten" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[37.92655435 23.90101111 1. ]\n [35.88942857 22.73639281 1. ]\n [29.49674574 21.42168559 1. ]]\n" + ] + } + ], + "source": [ + "feature = np.array([[37.92655435, 23.90101111],\n", + " [35.88942857, 22.73639281],\n", + " [29.49674574, 21.42168559],\n", + " [32.48016326, 21.7340484 ],\n", + " [38.00676226, 24.37202837],\n", + " [30.73073988, 22.69832608],\n", + " [35.93672343, 21.07445241],\n", + " [38.65212459, 20.57099727],\n", + " [35.52041768, 21.74519457],\n", + " [37.69535497, 20.33073640],\n", + " [33.00699292, 22.57063861],\n", + " [33.73140934, 23.81730782],\n", + " [43.85053380, 20.05153803],\n", + " [32.95555986, 24.12153986],\n", + " [36.38192916, 19.20280266],\n", + " [36.54270168, 20.45388966],\n", + " [33.08246118, 22.20524015],\n", + " [31.76866280, 21.01201139],\n", + " [42.24260825, 20.44394610],\n", + " [29.04450264, 22.46633771],\n", + " [30.04284328, 21.54561621],\n", + " [18.95626707, 19.66737753],\n", + " [18.60176718, 17.74023009],\n", + " [12.85314993, 18.42746953],\n", + " [28.62450072, 17.94781944],\n", + " [21.00655655, 19.33438286],\n", + " [17.33580556, 18.81696459],\n", + " [31.17129195, 17.23625014],\n", + " [19.36176482, 20.67772798],\n", + " [27.26581705, 16.71312863],\n", + " [21.19107828, 19.00673617],\n", + " [19.08131597, 15.24401994],\n", + " [26.69761925, 17.05937466],\n", + " [4.44136559 , 3.52432493 ],\n", + " [10.26395607, 1.07729281 ],\n", + " [7.39058439 , 3.44234423 ],\n", + " [4.23565118 , 4.28840232 ],\n", + " [3.87875761 , 5.12407692 ],\n", + " [15.12959925, 6.26045879 ],\n", + " [5.93041263 , 1.70841905 ],\n", + " [4.25054779 , 5.01371294 ],\n", + " [2.15139117 , 4.16668657 ],\n", + " [2.38283228 , 3.83347914 ]])\n", + "\n", + "feature = np.concatenate((feature, np.ones(43).reshape(43,1)), axis=1)\n", + "print(feature[0:3,:])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(43,)\n" + ] + } + ], + "source": [ + "labels = np.concatenate((np.ones(21), np.zeros(22)))\n", + "print(labels.shape)" + ] + }, + { + "source": [ + "## Perzptron als Klasse" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "class Perzeptron():\n", + "\n", + " def __init__(self, max_epochs):\n", + " self.w = None\n", + " self.skalierungsfaktor = None\n", + " self.trainiert = False\n", + " self.max_epochs = max_epochs\n", + " self.fehler = np.zeros(max_epochs)\n", + "\n", + " def perzeptron(self, x):\n", + " if self.trainiert: x /= self.skalierungsfaktor\n", + " return 1 if np.dot(self.w, x) > 0 else 0\n", + "\n", + " def lernschritt(self, feature, labels):\n", + " # 1. Daten Normalisieren\n", + " self.skalierungsfaktor = np.max(feature, 0)\n", + " feature /= self.skalierungsfaktor\n", + " # 2. Training\n", + " iter = 0\n", + " self.w = np.random.rand(feature.shape[1])\n", + " while iter < self.max_epochs:\n", + " for x, label in zip(feature, labels):\n", + " delta = label - self.perzeptron(x)\n", + " if delta != 0: # falsch klassifiziert\n", + " self.fehler[iter] += 1\n", + " self.w += (delta * x) \n", + " if self.fehler[iter] == 0:\n", + " self.trainiert = True\n", + " self.visualize(feature, labels)\n", + " break\n", + " iter += 1\n", + " else:\n", + " print(\"Es wurde keine Lösung gefunden.\")\n", + "\n", + " def visualize(self, feature, labels):\n", + " _, ax = plt.subplots()\n", + " plt.title('Trainingsdaten')\n", + " plt.xlabel('Grösse [cm]')\n", + " plt.ylabel('Länge [cm]')\n", + " plt.scatter(feature[:,0], feature[:,1], c=labels, cmap='coolwarm')\n", + " x0 = np.array([0, 1])\n", + " w = self.w\n", + " if w[1] != 0:\n", + " x1 = -(w[0] * x0 + w[2]) / w[1]\n", + " plt.plot(x0, x1, color='g', label='Gewichte')\n", + " if w[1] > 0:\n", + " ax.fill_between(x0, x1, x1+2, alpha=0.2, color='g', label='Hund')\n", + " else:\n", + " ax.fill_between(x0, x1, x1-1, alpha=0.2, color='g', label='Hund')\n", + " ax.set_ylim([0, max(feature[:,1])*1.1])\n", + " plt.legend()\n", + " plt.show()\n", + "\n", + " def falsche_klassifikationen(self):\n", + " plt.plot(range(self.max_epochs), self.fehler)\n", + " plt.xlabel('Epoche')\n", + " plt.ylabel('Falsche Klassifikationen')\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "perzeptron = Perzeptron(100)\n", + "perzeptron.lernschritt(feature, labels)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de5gldX3n8ff33HqmZwYHnEYQGAYjK2oeuThB0KyL4kZAI3lWjbhesq6bEdcLmsT7xqzJYxI3iWsQhcVoBCX6RCFKEFHiXaPIDAJyMwwXYQLIgAIz3TN9bt/9o6pOV5+uc7rOOVV9urs+r+fpp8+tqn91Bn7f+v2+v4u5OyIiUlylcRdARETGS4FARKTgFAhERApOgUBEpOAUCERECq4y7gIMatOmTb5ly5ZxF0NEZEXZsWPHQ+4+lfTeigsEW7ZsYfv27eMuhojIimJmP+/1nrqGREQKToFARKTgFAhERApOgUBEpOAUCERECi63QGBma8zsx2Z2g5ndbGYfSPiMmdm5ZrbTzG40sxPyKo+IiCTLc/joLPB8d99rZlXg+2b2VXf/UewzpwNHhz/PAs4Pf4uIyBLJrUXggb3h02r4073m9ZnAxeFnfwRsNLND8ypTpNlq84/X3kurPdwS3D/Y+RB37t67+AcT3P/oPv7lll8MdWw/V9/yCx54dH+m59y9Z5arbnog03MCfOu2B9n1q5nMzysiw8k1R2BmZTO7HngQuNrdr+n6yGHAvbHnu8LXus+zzcy2m9n23bt3j1yuH9/9S9556Y1ce/cvhzr+j75wA+d/+46hjr3kR/fwhs/uoD1kEErSajtv+Mx2Lrmm53yRofzj9nt54yU72FdvZXreN/3DdXz6B3dnek4RGV6ugcDdW+5+HHA4cKKZ/XrXRyzpsITzXOjuW91969RU4gzpgcw22gDs3d8c6vg9+5vsnR322AattrO/mV3lOlNv0vagXFl6bH8Dd5iuZ3feZqvNTL019PcnItlbklFD7v4I8G3gtK63dgFHxJ4fDtyXd3nqrSAQDFPBuTvT9SbTQ94lR8dNz2YZCFrh72wr15mwjDNZlrURXn/GrQwRGV6eo4amzGxj+Hgt8ALgtq6PXQ68Nhw9dBLwqLvfn1eZIo0wEMwMURntb7Rxh5kh72ijyjrLSns6LEvWlWsUKLNsEcwFF7UIRJaLPEcNHQpcZGZlgoDzj+5+hZmdDeDuFwBXAmcAO4EZ4HU5lqcjCgTTQ1RGc5XjkC2C2RxbBBlXrp1KO8uglUNwEZHR5BYI3P1G4PiE1y+IPXbgTXmVoZdGM0hDDNMiGLVyXJEtgiyDVuf7U9eQyHJRyJnFo+QIRq0cOy2CDCvC3HIEOZx37vtTi0BkuShkIOjkCIaozEe9o+8cn2FFON05Z8YtgtkcWgSd708tApHlotCBYKgWQaxrY5i5AJ1RQ1m2CDqtjBXQIujkSNQiEFkuChoIggp8mIlS8UpxX2OYHEP2OYK87rLnAkE+LYIgRSQi41bIQFBvRi2CwSu4eDfJoHfg7bbPjaPPsLtlOlZhZ1m5zow4QipJdN3NtndyNSIyXoUMBHM5gsHvyuN38oP2ye9vtojq6TxaBK22M9vMpnJttz2XYamjfH8iko9CB4Jh7nTj3SSDdpmMcmw/8dZFVueNd3vlMcIJ5mYZi8h4FTQQRPMIhhk+Gq90Bzt+Znb4Y/ueN3aurJKw8W6vbMsa+w6UMBZZFgoZCDrzCIYZPhqrvAa9U56eV2FnnyOA7FoE8aCVaVlH+P5EJB+FDASNZrTW0IgtggHvaGfyusueV7mqRSAigylmIIgtOjfoXICZepNyKVg9e+AWQXhnXS5Z5i2CqExZJWCjCrtcsmxHDY3w/YlIPgoaCOYq/0HnAkzPtti0vgYMkSMIP79pfS3zHEFUpsxaBLOxsmY5amiE709E8lHIQBAfvz5oxTlTbzK1YSI4dsC77+jzUxsmMp9ZHJUpq8o1ahFMbZjIdoTTCN+fiOSjkIGgEQsEg3alTNdbHLRuArPhWwRT6ycyX2toan22lWvUIphaP5HtfgT1VqesahGILA+FDwQDtwhmm6yfKLOuVhm8RVBfoS2CjEcNbco4aInIaAoaCOZyBMNMCpusVZislYeYR9DEDA5aN5FZhR1tnfn4rFsEUetlwwT1VruzLMeoZuotDlhbZaJSUotAZJkoaCBos34i2JNn0AlY0/Um62pl1k1UhphH0GKyWmbDmgqNlmdSuc4227QdNqypsLY6eHDqZWa2RcngwMkgsTvMAn3doqA19/0pEIgsB4UNBI9bWwWGaBHMtpicCFsEQ8wjiI6Nno8qCmTrahXWTZQz63IKKuzKXMDMoKzRfs9z35+6hkSWg2IGgqazcTIIBIO0COrNNvVWO7ijrQ1+Rzs92+ocC9mMo48C2WStzGStklkSOgh4ZSbDQJBJ0KpHQWu4709E8lHMQNBqdwLBIPMI9nUq3QqTE+Uh8gvNzrGQzczaqAzrorvsrJaYaLSCVkan9ZJB0Jod7fsTkXwUMhDUW202rg0nYA3QPdG5o+2MGhqiRTCRbYsgKtNk2O+e3VpDzaBFEJU1g26cUb8/EclHIQNBlCwuDTgXYKZT6Q53991pEdQybBHMzm8RZLnW0GSYd4BsuoZG/f5EJB8FDQROrVIaeC7AdKfSDUe9DDziqNU5Nno+qnktglol07WG1tViLYIsytr9/SlHILIsFDMQNNtUy6Wwnzp9ZTSdcEc7yNaQM7NdLYIM77LXhf3uWa41NDkRaxFkks/o+v40akhkWcgtEJjZEWb2LTO71cxuNrNzEj5zipk9ambXhz/vz6s8cfVWm2rFwpEr6SujTjdMrcK6icrA++5Oh3fZnRZBFv3uUQI27HfPLEeQZ4sg/P7UIhBZHio5nrsJ/KG7X2dmG4AdZna1u9/S9bnvufuLcyzHAo1Wm1rUIhjgTrfTIpgox/r5W0xUyqmOz2MewYIWQVY7lHW3XrJsEYTf3/5Gm1bbO8tSi8h45NYicPf73f268PEe4FbgsLz+XlqtttN2gq6hAcey74uN2Y9G/qTdd7febNNo+by77Czu3qO77LXVMpPVCrPNNs0BWilJ3D1cSqNMtVyiVi5lPuch+v4GXQZcRLK3JDkCM9sCHA9ck/D2yWZ2g5l91cye3uP4bWa23cy27969e6SyRAvOBYFgsJEr013zCCD9nXJ8DkK5ZExUSpl0jczUm6ytlimVbK4/f8TKtd5q02x7pwtr0FxKL9P1FmawplLOdC6FiIwm90BgZuuBS4G3uftjXW9fBxzp7scCHwW+lHQOd7/Q3be6+9apqamRylPvBAIbeCx7VGlNDjE7OD6GPvidzQifaCRSUK6wpTHieecmfoVlHWKl1eTzNpmMglaGuQcRGU2ugcDMqgRB4BJ3v6z7fXd/zN33ho+vBKpmtinPMkX7Fdcqw7UIapVSpzUB6e9o4yNmgt/ZjPCJRiLBXJAZ9bzTsbwDMNRKq8nnbXWWrIi+P00qExm/PEcNGfBJ4FZ3/3CPzxwSfg4zOzEsz8N5lQnmlqCulksDzwWYCVfOBAaeCxAfQw9kNuZ/OuzLhwxbBPW5kUjB78FXWk0+78LvT5PKRMYvz1FDzwFeA/zUzK4PX3svsBnA3S8AXga80cyawD7gLB9kYP4QknIE7k4Yj/qanm3Nu6OH9CN/prtbBBmN+Z+pNzuValTJjtwimJ3fIlg3xEqryedd+P1pCKnI+OUWCNz9+0Df2tXdzwPOy6sMSeblCGJzAdIMAQ0q3a4WQcq77/gchOh3VqOGNqyJgks2K4XGR/cEvyv8ambfSOeMytX9/WlSmcj4FW5mcdQiqM3r50+b8M2gRdBJ7GYz5n8m3DcAYi2CESvXTotgYi73kFmOQC0CkWWneIGgGcsRdEaupEz4zjYXjNBJ3SLousvOaqXQ6XDfAMi3RZDVqKGFI5wUCETGLVXXkJmVgSfEP+/u9+RVqDx1uoYqpU4FmnYbxul6iwPXBctXR3MBUrcIZheOGsriLntfuG8AzLUIRg0w8T0OovPuyySfkdQiUNeQyLgtGgjM7C3AnwC/AKIpqw48I8dy5abRNY8A0ldG8VEvwEDr5SS1CLJZa6gZ627KZiTO3FDXuZbGTKNFu+2URlgOYjr2/U1USpRLpg3sRZaBNC2Cc4CnuHuuwzqXSjxHUA5HCqXtnpienRsHDwy0guZ0vdmZgxAdu6/RGmmtnWarzWyz3Qlowflt5NxDZyG7WEvDHfY35+7ohzET+/7MLMyTqEUgMm5pcgT3Ao/mXZClEh8+OuhcgAUtggHWKpoJ9yuOHwujrbUTLSUxGTvvZAajkWbqTdZUS50ANZnBaqnx/Z4jwcgptQhExi3N7d2dwLfN7CvAbPRir0liy109lixeUw3iYJrKqN32eX3cwED77kY7fsWPhaA1sn5iuLvs+O5kkXUZjEaajo1Eis4J0fc0MdQ542stRYK5FGoRiIxbmhronvCnFv6saJ2uoYoNNBcgunOPRr1AtAbPAC2CiYUtglEqwumuvnwI+/NHbRHERiIF5x+9RdC91hJEs6vVIhAZt0UDgbt/AMDM1rn7dP5FylcUCCql0kBzAbpnBgePyzy0d7bXIQuO7z4WRltrp3uSWvB49BnLC1oEGexb3L3WUvBYLQKR5WDRHIGZnWxmtxDsJ4CZHWtmH8+9ZDlpxIePDnCnOzOb0CIYcNRQ97HR68PqnqQGYY4gg7WGuvMOwd8boaw9vj/lCETGL02y+CPACwkXg3P3G4Dn5lmoPNU7i87ZQHMBokp3bXXIUUOz81sEazOYWdv7Lnv0tYaSWi+jdOOM+v2JSH5SzSx293u7Xlqx//d2lqEOh3Gmvaufm2Q1QosgYdTQKBXh3B7AGecIuloEWeQzEltUA+4QJyL5SJMsvtfMng24mdWAtxJ2E61E8eGjkP6utHtmcHRs2n13o/2K48dCRi2CPEYNTSSMcBqhrIk5lgm1CESWgzQtgrOBNxHsN7wLOC58viJ1B4K0d6WJLYLOTN4UXUvd8wg6q2+OULkmtQiymEcw26NFMEKl3ev7m643yXnlcRFZRJpRQw8Br1qCsiyJRixHAOnnAnQqsoS5APvqLTasqfY8tt129jVayf3uo0woS7jLXhfuc5B2j4Uk3S2CNdUSZqOOGkqeR9B2mG22WVNdfBlwEclHmrWGpoDfB7Ywf9G5/55fsfLTaLWplq1TSaadC9C9/k50LCzed540B6Gz1s5IY/NbVMtGrTLXsJusVYLlIBrtTkJ6EK22s7/RnnedZtH+zqPkCHp/fzP1lgKByBilyRF8Gfge8C+s4CRxJAgE8Yoz3VyA6YRZvGnnAiT1j3fW2hnlLrtrdE9QvrncwzCBIAp467rOO+pqqfH9nuPnhOD7O2jdip+rKLJipQkEk+7+rtxLskQaLZ9XGaXdF2Cm3qRkwZ18/Njgvf7HJ42YgdH3Le4eiQRzwSbt0trdOktBdJd1xNFI3es0RecM3lvx9xciK1qaZPEVZnZG7iVZIvWEFkH6ZG9lXr972pE/SS0CGH3f4pn6/NVQYfR9i6cTciGQQYtgduHKpdqlTGR5SBMIziEIBvvNbE/481jeBctLo9mmVp6rzNPuCxAM/+xxR7vI8UmJ5uj5qDOLF7QIRlwpdDqhLx8YPUcQ26+4c07tWyyyLKQZNbRhKQqyVBqtNtXK/BZBmn0BpuutxLvk4L1FWgRR5TrR3Y0z2pj/mYS77PkrhQ5xzvrCXAgEZf/VdH2oc8L8/Yo751SLQGRZSLtV5UuYW1bi2+5+RX5FyteCHEFsX4B+y0HPzCa0CFLuu9uzRTBRYfeedIvWJZmuNzn0cWvmvTbqSqFJK5pCUPZdv9o31Dlh/n7F8XPC6Hssi8ho0iw695cE3UO3hD/nhK+tSAtyBLF9AfrpXj00fuxiw0d7dbeMPGoo4S571JVCk/Y4gGgG9mijhnp+f+oaEhmrNC2CM4Dj3L0NYGYXAT8B3p1nwfLSaHXlCFLOBZipt3h81xDHWrlEJcW+u726W0YdNTSdcJc96kqhPVsEE5XR1hpKGjWkFoHIspBq0TlgY+zx49IcYGZHmNm3zOxWM7vZzM5J+IyZ2blmttPMbjSzE1KWZ2hJ8wggxVyA2eaCETpp993tVblmMmqoV4tgyLv36LhcRg11fX9rq2oRiCwHaVoEfwH8xMy+BRhBruA9KY5rAn/o7teZ2QZgh5ld7e63xD5zOnB0+PMs4Pzwd24azYXzCCDFXICEMfvR8Yu2CGZbnSWv5x0bjhoaZjkId08cNbSmUsZslBZB73kEjZZTb7bnzWROK6lFUCrZyAFGREaXZtTQ58zs28BvEASCd7n7AymOux+4P3y8x8xuJVi4Lh4IzgQu9mDVsR+Z2UYzOzQ8Nhf1VpsDanPrAkWzbz/6zds55IA1vQ7j4en6grvv6Pgf3vkw7/jCDT2PvWHXI0xWywsq+7W1Mq2280dfuJFFFi9doOWOO6ztKlOpZKytlvnaTQ9w/yODJ3dvuu8xyiXrLNPdKWt49/7OL94wL5CmNVNvLSgrBC2Nb972II/MNAY+Z1rr11R412nHaBkLkR56BgIzO8bdb4t11+wKfz/RzJ7o7tel/SNmtgU4Hrim663DgPheB7vC1+YFAjPbBmwD2Lx5c9o/m6g7R/CkTes45pAN3PHgXu54cG/P46bWT3DiUQcteP2U/3AwV910Pz/Y+VDfv/v8px684LUTNh/I5oMm+eEd/Y/tZfNBk5yweeOC10996hPYcfcvFy1TL6cec/CCoHXc5o0c+fhJfnzXL4c65xEHrWXrkQcueP15TzmYH+x8aOiyLma22ebh6TovfsahPPPIhf9+IgLWawlgM7vQ3beFXULd3N2fn+oPmK0HvgN80N0v63rvK8BfuPv3w+ffAN7p7jt6nW/r1q2+ffv2NH860W/93+/wa1PrOf/Vzxz6HLJy/OsdD/FfP3ENn/v9kzj51x4/7uKIjI2Z7XD3rUnv9WwRuPu28OHp7r6/64S9+1Dmf64KXApc0h0EQruAI2LPDwfuS3PuYXXPI5DVLeriivahEJGF0tSI/5rytXks6Fv4JHCru3+4x8cuB14bjh46CXg0z/wAQL3ZViAokKoCgcii+uUIDiHor19rZscTJIoBDgAmU5z7OcBrgJ+a2fXha+8FNgO4+wXAlQTzFHYCM8DrhriGgTRabWqV4TZskZVHgUBkcf1GDb0Q+G8E3TXxO/o9BBV6X2G/f98aNxwttKTbXnbPI5DVLQr69Za2wxTppV+O4CLgIjN7qbtfuoRlypVyBMXSaRE01SIQ6SXNPIJLzexFwNOBNbHX/zTPguWle60hWd3UNSSyuDSLzl0AvAJ4C0FXz8uBI3MuVy7cfcE8AlndFAhEFpfm1vjZ7v5a4Ffu/gHgZOYP+VwxWu1gNq5aBMURDR9VjkCktzQ1YrROwYyZPRFoAEflV6T8NMLKoDrEWjmyMlXDZHFTLQKRntIsOneFmW0E/gq4DnDg73ItVU7qYWWgFkFxqGtIZHFpAsH/cfdZ4FIzu4IgYbwiV+9qdAKBcgRFUSlp+KjIYtLcGl8WLhVBGBDWAlfnWqqcNNQiKByzYCVVtQhEektTI34J+IKZlcNVRL9Ouv0Ilp1GM8wRKBAUSrVsmkcg0keaeQSfMLMaQUDYArzB3Rdda2g5qqtrqJCqFbUIRPrpt9bQH8SfEgwZvR44ycxO6rOQ3LIVVQbdm67I6lYtl5QjEOmjX4tgQ9fzf+rx+oqhHEExKUcg0l+/tYY+sJQFWQqaR1BM1bIpEIj00a9r6CPu/jYz+2eCuQPzuPtLci1ZDjR8tJiqahGI9NWva+ji8PdfL0VBloJyBMVULZeoN5UjEOmlXyD4K+BU4Ax3f9cSlSdXyhEUk0YNifTXLxAcamb/CXiJmX2erk1m3P26XEuWg7rmERRSTTkCkb76BYL3A+9m4Q5lEOQMnp9XofLS6RrSVpWFohyBSH/9Rg19Efiimf2xu//ZEpYpN+oaKqZqucR0vTXuYogsW/1GDR3j7rcBXzGzE7rfX4ldQwoExVQtl7TEhEgf/bqG/gDYBvxNwnsrsmsoml2qQFAstYpyBCL99Osa2hb+ft7SFSdf0V2hho8Wi3IEIv2l2bP45Wa2IXz8v8zsMjM7Pv+iZa/TNaRkcaFUSqXOrHIRWSjNrfEfu/seM/tN4IXARcAF+RYrH8oRFFOtYp2VZ0VkoTQ1YjTc4kXA+e7+ZaC22EFm9ikze9DMburx/ilm9qiZXR/+vD99sYcT5QiiXaukGNQ1JNJfmkDw72b2/4DfBa40s4mUx30aOG2Rz3zP3Y8Lf/40xTlH0mi1qZVLmCkQFIlGDYn0l6ZC/13ga8Bp7v4IcBDwjsUOcvfvAr8crXjZajTbWnCugIIWgXIEIr2kCQSHAl9x99vN7BTg5cCPM/r7J5vZDWb2VTN7eq8Pmdk2M9tuZtt379499B9rtNpagrqAauUgR+CuYCCSJE2teCnQMrMnA58EjgL+IYO/fR1wpLsfC3yUYCvMRO5+obtvdfetU1NTQ//BesuVKC6g6N+82VYgEEmSplZsu3sT+C/AR9z97QSthJG4+2Puvjd8fCVQNbNNo563nyhHIMUStQKVMBZJlqZWbJjZK4HXAleEr1VH/cNmdoiFWVszOzEsy8OjnrefRks5giKKWgQN7UkgkqjfEhOR1wFnAx9097vM7Cjgs4sdZGafA04BNpnZLuBPCAOIu18AvAx4o5k1gX3AWZ5zJ24QCNQiKJpaGPw1l0Ak2aKBwN1vAd4ae34X8JcpjnvlIu+fB5yXooyZqTeVIyiiTotAgUAk0aKBwMyOBv4CeBqwJnrd3Z+UY7lyoVFDxaRAINJfmlrx74HzgSbwPIK9jD+TZ6HyEiSLlSMomrlksXIEIknSBIK17v4NwNz95+7+v1mBS1CDcgRFFQV/tQhEkqVJFu83sxJwu5m9Gfh34OB8i5WPesuZrCkQFI26hkT6S1Mrvg2YJEgYPxN4DfB7eRYqL1piopgUCET6SzNq6Nrw4V6CoaQrlrqGiin6N69rHoFIon57Fv8zwZaUidz9JbmUKEcKBMVUqyhHINJPvxbBXy9ZKZZIQ2sNFZK6hkT66xcIau5+ddIbZvYh4Dv5FCk/9Va7c3coxaFAINJfv9vjj5nZi+IvmFnJzD4NHJtrqXKirqFi6uQINI9AJFG/FsFvAVeZ2YS7X2Zma4EvAI8Bv70kpctYMGpIgaBoap1F59QiEEnSMxC4+91m9gLga2Z2MMGw0Wvc/Q+WrHQZa7SVIyiiqpLFIn31GzV0QvjwnQTLSlwNfDZ63d2vy7942XF3LTFRUMoRiPTXr2vob2KPbwSeEHvNWWHLTLTajjtqERSQcgQi/fXrGnreUhYkb9GCY1p9tHhqahGI9FWYWjHalEQtguKJlhVRslgkWWFqxehuUDmC4imXDDO1CER6KVwgUIugeMyMarmkHIFID4vWihZ4tZm9P3y+OdxsfkWJNi5XICimWrmkFoFID2lqxY8DJwPRHsR7gI/lVqKcdHIEShYXUrVsCgQiPaTZmOZZ7n6Cmf0EwN1/ZWa1nMuVOeUIiq2qFoFIT2lujxtmViZcktrMpoAV93+UcgTFVi2XtB+BSA9pasVzgX8CDjazDwLfB/4811LlQIGg2GoVtQhEekmzQ9klZrYDOBUw4Hfc/dbcS5axupLFhaYcgUhvaWvF2wlaBZcD02a2ebEDzOxTZvagmd3U430zs3PNbKeZ3Rhb2ygXnRyB9iMoJOUIRHpLM3z0LcAvCBaduwL4Svh7MZ8GTuvz/unA0eHPNuD8FOccmrqGik3zCER6SzNq6BzgKe7+8CAndvfvmtmWPh85E7jY3R34kZltNLND3f3+Qf5OWgoExVYrl7TEhEgPaWrFe4FHc/jbh4XnjuwKX1vAzLaZ2XYz27579+6h/tiGNVWO37yR9RNpYp+sNtWKcgQivfTbjyDagOZO4Ntm9hVgNnrf3T884t9O6qxPbLu7+4XAhQBbt24dqn3/nCdv4jlP3jTMobIKVMsl9u5vjrsYIstSv9vjDeHve8KfWviTlV3AEbHnhwP3ZXh+kY5KSTkCkV767UfwgZz/9uXAm83s88CzgEfzyg+I1NQ1JNJTmlFDV5vZxtjzA83saymO+xzwQ+ApZrbLzF5vZmeb2dnhR64k6HbaCXwC+J9DXYFICho+KtJbmszplLs/Ej0J1xo6eLGD3P2Vi7zvwJtS/H2RkVXLJZrqGhJJlGbUUCs+gczMjqRHUldkuQrmEahFIJIkTYvgfcD3zew74fPnEkwAE1kxalpiQqSnNGsNXRUu/3ASwZDPt7v7Q7mXTCRDVU0oE+kpTbL4OcA+d78CeBzw3rB7SGTFqFZKNJQjEEmUJkdwPjBjZscC7wB+Dlyca6lEMhblCIIxCiISlyYQNMMRPmcC57r73zI32UxkRYh2pmu2FQhEuqVJFu8xs/cArwaeG+5WVs23WCLZihYbbLTaWnhQpEua/yNeQbDG0Ovd/QGCheH+KtdSiWSsEwi0XaXIAmlGDT0AfDj2/B6UI5AVploJAoHmEogs1G/10T0kTxwzgonBB+RWKpGMRTkCzSUQWajfonNKCMuqEc8RiMh8qXdpCdcXWhM9D7uIRFYEBQKR3tJMKHuJmd0O3AV8B7gb+GrO5RLJVBQI6koWiyyQZtTQnxEsL/Fv7n4UcCrwg1xLJZKxWkU5ApFe0gSCRrhxfcnMSu7+LeC4nMslkil1DYn0liZH8IiZrQe+C1xiZg8C2vxVVpRO15ACgcgCPVsEsT0IzgRmgLcDVwF3AL+df9FEsjPXIlCOQKRbvxbBl4AT3H3azC5195cCFy1RuUQyVevMLFaLQKRbvxyBxR4/Ke+CiOSpqmSxSE/9AoH3eCyy4ihHINJbv66hY83sMYKWwdrwMWiJCVmBasoRiPTUb4mJ8lIWRCRPGj4q0psWZpdCqGrROZGeFAikEDrLUGvUkMgCuQYCMzvNzH5mZjvN7N0J759iZo+a2fXhz/vzLI8Ul3IEIr2lXgy/F3MAAAkZSURBVH10UOGWlh8D/jOwC7jWzC5391u6Pvo9d39xXuUQAeUIRPrJs0VwIrDT3e909zrweYJZyiJLrlwySqZAIJIkz0BwGHBv7Pmu8LVuJ5vZDWb2VTN7etKJzGybmW03s+27d+/Oo6xSANVySfMIRBLkGQgs4bXuDtrrgCPd/VjgowTLWiw8yP1Cd9/q7lunpqYyLqYURa1c0ub1IgnyDAS7gCNizw8H7ot/wN0fc/e94eMrgaqZbcqxTFJg1UqJZlstApFueQaCa4GjzewoM6sBZwGXxz9gZoeYmYWPTwzL83COZZICq5ZNOQKRBLmNGnL3ppm9GfgaUAY+5e43m9nZ4fsXAC8D3mhmTWAfcJa7q+0uuaiWS9qqUiRBboEAOt09V3a9dkHs8XnAeXmWQSRSK5fUIhBJoJnFUhhVBQKRRAoEUhjVinIEIkkUCKQwgnkEyhGIdFMgkMKolkraqlIkgQKBFIa6hkSSKRBIYShZLJJMgUAKQzkCkWQKBFIYmkcgkkyBQApDS0yIJFMgkMKoljVqSCSJAoEURrWiHIFIEgUCKQzlCESSKRBIYShHIJJMgUAKQ/MIRJIpEEhhBIHA0ZYXIvMpEEhh1CrBf+4NJYxF5lEgkMKolg1A3UMiXRQIpDCq5ahFoEAgEqdAIIURBYK6AoHIPAoEUhi1snIEIkkUCKQwqpUwR6BlJkTmUSCQwlCOQCSZAoEUhnIEIskUCKQwlCMQSZZrIDCz08zsZ2a208zenfC+mdm54fs3mtkJeZZHik1dQyLJcgsEZlYGPgacDjwNeKWZPa3rY6cDR4c/24Dz8yqPSGdCmZLFIvNUcjz3icBOd78TwMw+D5wJ3BL7zJnAxR4s/vIjM9toZoe6+/05lksKqhouMfGOL97IZK085tKIDO4Vv3EE/+M/Pinz8+YZCA4D7o093wU8K8VnDgPmBQIz20bQYmDz5s2ZF1SK4amHHMArth7BntnGuIsiMpRN6ydyOW+egcASXuvO0qX5DO5+IXAhwNatW5Xpk6GsrZX50MueMe5iiCw7eSaLdwFHxJ4fDtw3xGdERCRHeQaCa4GjzewoM6sBZwGXd33mcuC14eihk4BHlR8QEVlauXUNuXvTzN4MfA0oA59y95vN7Ozw/QuAK4EzgJ3ADPC6vMojIiLJ8swR4O5XElT28dcuiD124E15lkFERPrTzGIRkYJTIBARKTgFAhGRglMgEBEpOAvytSuHme0Gfj7k4ZuAhzIszkpRxOsu4jVDMa+7iNcMg1/3ke4+lfTGigsEozCz7e6+ddzlWGpFvO4iXjMU87qLeM2Q7XWra0hEpOAUCERECq5ogeDCcRdgTIp43UW8ZijmdRfxmiHD6y5UjkBERBYqWotARES6KBCIiBRcYQKBmZ1mZj8zs51m9u5xlycPZnaEmX3LzG41s5vN7Jzw9YPM7Gozuz38feC4y5o1Myub2U/M7IrweRGueaOZfdHMbgv/zU8uyHW/Pfzv+yYz+5yZrVlt121mnzKzB83spthrPa/RzN4T1m0/M7MXDvr3ChEIzKwMfAw4HXga8Eoze9p4S5WLJvCH7v5U4CTgTeF1vhv4hrsfDXwjfL7anAPcGntehGv+W+Aqdz8GOJbg+lf1dZvZYcBbga3u/usES9yfxeq77k8Dp3W9lniN4f/jZwFPD4/5eFjnpVaIQACcCOx09zvdvQ58HjhzzGXKnLvf7+7XhY/3EFQMhxFc60Xhxy4Cfmc8JcyHmR0OvAj4u9jLq/2aDwCeC3wSwN3r7v4Iq/y6QxVgrZlVgEmCXQ1X1XW7+3eBX3a93OsazwQ+7+6z7n4Xwf4uJw7y94oSCA4D7o093xW+tmqZ2RbgeOAa4AnRzm/h74PHV7JcfAR4J9COvbbar/lJwG7g78Musb8zs3Ws8ut2938H/hq4B7ifYFfDr7PKrzvU6xpHrt+KEggs4bVVO27WzNYDlwJvc/fHxl2ePJnZi4EH3X3HuMuyxCrACcD57n48MM3K7w5ZVNgvfiZwFPBEYJ2ZvXq8pRq7keu3ogSCXcARseeHEzQnVx0zqxIEgUvc/bLw5V+Y2aHh+4cCD46rfDl4DvASM7uboMvv+Wb2WVb3NUPw3/Qud78mfP5FgsCw2q/7BcBd7r7b3RvAZcCzWf3XDb2vceT6rSiB4FrgaDM7ysxqBImVy8dcpsyZmRH0Gd/q7h+OvXU58Hvh498DvrzUZcuLu7/H3Q939y0E/67fdPdXs4qvGcDdHwDuNbOnhC+dCtzCKr9ugi6hk8xsMvzv/VSCXNhqv27ofY2XA2eZ2YSZHQUcDfx4oDO7eyF+gDOAfwPuAN437vLkdI2/SdAkvBG4Pvw5A3g8wSiD28PfB427rDld/ynAFeHjVX/NwHHA9vDf+0vAgQW57g8AtwE3AZ8BJlbbdQOfI8iBNAju+F/f7xqB94V128+A0wf9e1piQkSk4IrSNSQiIj0oEIiIFJwCgYhIwSkQiIgUnAKBiEjBKRCIAGbWMrPrYz+ZzdI1sy3xVSRFlpvKuAsgskzsc/fjxl0IkXFQi0CkDzO728w+ZGY/Dn+eHL5+pJl9w8xuDH9vDl9/gpn9k5ndEP48OzxV2cw+Ea6j/3UzWxt+/tfM7Coz22Fm3zOzY8Z0qVJgCgQigbVdXUOviL33mLufCJxHsNIp4eOL3f0ZwCXAueHr5wLfcfdjCdb+uTl8/WjgY+7+dOAR4KXh6xcCb3H3ZwJ/BHw8p+sT6Ukzi0UAM9vr7usTXr8beL673xku6PeAuz/ezB4CDnX3Rvj6/e6+ycx2A4e7+2zsHFuAqz3YUAQzexdQJQgquwmWBYhMeLCxkMiSUY5AZHHe43GvzySZjT1uAWsJWuSPKDch46auIZHFvSL2+4fh438lWO0U4FXA98PH3wDeCJ19lA/odVIP9oq4y8xeHn7ezOzYjMsusigFApFAd47gL2PvTZjZNQT7Ir89fO2twOvM7EbgNeF7hL+fZ2Y/BXYQ7CPbz6uA15vZDQT5hFW3haosf8oRiPQR5gi2uvtD4y6LSF7UIhARKTi1CERECk4tAhGRglMgEBEpOAUCEZGCUyAQESk4BQIRkYL7/6XeD4y7FlJEAAAAAElFTkSuQmCC\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "perzeptron.falsche_klassifikationen()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Das ist kein Hund...\n" + ] + } + ], + "source": [ + "x_neu = [24.5, 13.8, 1]\n", + "if perzeptron.perzeptron(x_neu):\n", + " print(\"Das ist ein Hund!\")\n", + "else:\n", + " print(\"Das ist kein Hund...\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ] +} \ No newline at end of file diff --git a/wie_nutzt_man_while_schleifen.ipynb b/wie_nutzt_man_while_schleifen.ipynb index da33240..0866d38 100644 --- a/wie_nutzt_man_while_schleifen.ipynb +++ b/wie_nutzt_man_while_schleifen.ipynb @@ -502,44 +502,16 @@ "metadata": {}, "outputs": [], "source": [ - "# parameter\n", "sigma = 0.7\n", - "num_dogs = 26\n", - "num_cats = 53\n" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "# create random data\n", - "X1 = sigma * np.random.randn(num_dogs,2) + (3.3, 4.42)\n", - "X2 = sigma * np.random.randn(num_cats,2) + (1.4, 2.82)\n", + "hunde = 26\n", + "sonst = 53\n", + "\n", + "X1 = sigma * np.random.randn(hunde, 2) + (3.3, 4.42)\n", + "X2 = sigma * np.random.randn(sonst, 2) + (1.4, 2.82)\n", "feature = np.concatenate((X1, X2))\n", - "labels = np.concatenate((np.ones(num_dogs), np.zeros(num_cats)))" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } - } - ], - "source": [ - "plt.scatter(feature[:,0], feature[:,1], c=labels)\n", + "label = np.concatenate((np.ones(hunde), np.zeros(sonst)))\n", + "\n", + "plt.scatter(feature[:,0], feature[:,1], c=label)\n", "plt.xlabel('Grösse [cm]')\n", "plt.ylabel('Breite [cm]')\n", "plt.title('Trainingsdaten')\n",