diff --git a/notebooks/01_intro_ex_1a_sol.ipynb b/notebooks/01_intro_ex_1a_sol.ipynb new file mode 100644 index 0000000..a910633 --- /dev/null +++ b/notebooks/01_intro_ex_1a_sol.ipynb @@ -0,0 +1,139 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Exercise 1: Create numpy array and draw rgb color objects" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "create data array 2x2 as pixel position and 1x3 as rgb color data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "width, height = 200, 200\n", + "data = np.zeros((height, width, 3), dtype=np.uint8)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "draw blue cross" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.arange(width)\n", + "x_1 = np.arange(width)\n", + "x_2 = np.arange(width-1,-1,-1)\n", + "y = np.arange(height)\n", + "data[x_1,y] = [0,0,255]\n", + "data[x_2,y] = [0,0,255]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " draw a square " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "lower = 55\n", + "upper = 75\n", + "data[lower:upper,lower:upper] = [0,255,0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "create a mask of a circle using indexing\n", + "np.newaxis adds another dimension\n", + "we create a row and column vector and fill it using the condition" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x_center = 100\n", + "y_center = 100\n", + "radius = 10\n", + "mask = (x[np.newaxis,:]-x_center)**2 + (y[:,np.newaxis]-y_center)**2 < radius**2\n", + "data[mask] = [255,0,0]\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot image\n", + "plt.figure(figsize=(4.,4.),dpi=100,facecolor='lightgrey')\n", + "plt.imshow(data)\n", + "plt.show()" + ] + }, + { + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/01_intro_ex_1b_sol.ipynb b/notebooks/01_intro_ex_1b_sol.ipynb new file mode 100644 index 0000000..3180256 --- /dev/null +++ b/notebooks/01_intro_ex_1b_sol.ipynb @@ -0,0 +1,133 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Exercise 1b: Read a binary file which contains pixel data and apply\n", + "transformations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# load figure as 2D array \n", + "data = np.load('horse.npy')\n", + "print(data.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# just scale the data by a factor and shift by trans\n", + "trans = np.ones(data.shape)\n", + "trans[0,:] *=0.6\n", + "trans[1,:] *=0.4\n", + "factor = 0.5 \n", + "data_scale = data * factor + trans" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#compression in x and y \n", + "sx = 0.4\n", + "sy = 0.9\n", + "t = np.array([[sx,0],[0,sy]])\n", + "data_comp = t@data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#rotation by an angle theta\n", + "theta = 0.5\n", + "data_rot = np.array([[np.cos(theta),-np.sin(theta)],[np.sin(theta), np.cos(theta)]])@data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#spiegelung an der x Achse\n", + "tx = np.array([[1,0],[0,-1]]) # mirror x axis\n", + "ty = np.array([[-1,0],[0,1]]) # mirror y axis\n", + "tp = np.array([[-1,0],[0,-1]]) # mirror (0,0)\n", + "data_mirror = tp@data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create figure for the transformations\n", + "plt.figure(figsize=(10.0,10.0),dpi=100,facecolor='lightgrey')\n", + "plt.suptitle('Plot Transformations')\n", + "plt.subplot(2,2,1)\n", + "plt.title('original picture')\n", + "plt.plot(data[0,:],data[1,:],'.')\n", + "plt.axis([-1.2,1.2,-1.2,1.2])\n", + "plt.subplot(2,2,2)\n", + "plt.title('scaling and translation')\n", + "plt.plot(data_scale[0,:],data_scale[1,:],'.')\n", + "plt.axis([-1.2,1.2,-1.2,1.2])\n", + "plt.subplot(2,2,3)\n", + "plt.title('compression')\n", + "plt.plot(data_comp[0,:],data_comp[1,:],'.')\n", + "plt.axis([-1.2,1.2,-1.2,1.2])\n", + "plt.subplot(2,2,4)\n", + "plt.title('rotation and mirror at p(0,0)')\n", + "plt.plot(data_rot[0,:],data_rot[1,:],'.')\n", + "plt.plot(data_mirror[0,:],data_mirror[1,:],'.')\n", + "plt.axis([-1.2,1.2,-1.2,1.2])" + ] + } + ], + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/01_intro_ex_2_sol.ipynb b/notebooks/01_intro_ex_2_sol.ipynb new file mode 100644 index 0000000..75d9488 --- /dev/null +++ b/notebooks/01_intro_ex_2_sol.ipynb @@ -0,0 +1,559 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Exercise 2: Example for pandas using the heart.csv data set" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# read the csv Data \n", + "df = pd.read_csv('heart.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['age', 'sex', 'cp', 'trestbps', 'chol', 'fbs', 'restecg', 'thalach',\n", + " 'exang', 'oldpeak', 'slope', 'ca', 'thal', 'target'],\n", + " dtype='object')\n", + "\n", + "RangeIndex: 303 entries, 0 to 302\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 age 303 non-null int64 \n", + " 1 sex 303 non-null int64 \n", + " 2 cp 303 non-null int64 \n", + " 3 trestbps 303 non-null int64 \n", + " 4 chol 303 non-null int64 \n", + " 5 fbs 303 non-null int64 \n", + " 6 restecg 303 non-null int64 \n", + " 7 thalach 303 non-null int64 \n", + " 8 exang 303 non-null int64 \n", + " 9 oldpeak 303 non-null float64\n", + " 10 slope 303 non-null int64 \n", + " 11 ca 303 non-null int64 \n", + " 12 thal 303 non-null int64 \n", + " 13 target 303 non-null int64 \n", + "dtypes: float64(1), int64(13)\n", + "memory usage: 33.3 KB\n", + "None\n", + "age int64\n", + "sex int64\n", + "cp int64\n", + "trestbps int64\n", + "chol int64\n", + "fbs int64\n", + "restecg int64\n", + "thalach int64\n", + "exang int64\n", + "oldpeak float64\n", + "slope int64\n", + "ca int64\n", + "thal int64\n", + "target int64\n", + "dtype: object\n" + ] + } + ], + "source": [ + "# What is the number of columns and rows\n", + "print(df.columns)\n", + "print (df.info())\n", + "print(df.dtypes)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " age sex cp trestbps chol fbs restecg thalach exang oldpeak slope \\\n", + "0 63 1 3 145 233 1 0 150 0 2.3 0 \n", + "1 37 1 2 130 250 0 1 187 0 3.5 0 \n", + "2 41 0 1 130 204 0 0 172 0 1.4 2 \n", + "\n", + " ca thal target \n", + "0 0 1 1 \n", + "1 0 2 1 \n", + "2 0 2 1 \n" + ] + } + ], + "source": [ + "# get first 3 lines\n", + "print(df.head(3))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " age sex cp trestbps chol fbs \\\n", + "count 303.000000 303.000000 303.000000 303.000000 303.000000 303.000000 \n", + "mean 54.366337 0.683168 0.966997 131.623762 246.264026 0.148515 \n", + "std 9.082101 0.466011 1.032052 17.538143 51.830751 0.356198 \n", + "min 29.000000 0.000000 0.000000 94.000000 126.000000 0.000000 \n", + "25% 47.500000 0.000000 0.000000 120.000000 211.000000 0.000000 \n", + "50% 55.000000 1.000000 1.000000 130.000000 240.000000 0.000000 \n", + "75% 61.000000 1.000000 2.000000 140.000000 274.500000 0.000000 \n", + "max 77.000000 1.000000 3.000000 200.000000 564.000000 1.000000 \n", + "\n", + " restecg thalach exang oldpeak slope ca \\\n", + "count 303.000000 303.000000 303.000000 303.000000 303.000000 303.000000 \n", + "mean 0.528053 149.646865 0.326733 1.039604 1.399340 0.729373 \n", + "std 0.525860 22.905161 0.469794 1.161075 0.616226 1.022606 \n", + "min 0.000000 71.000000 0.000000 0.000000 0.000000 0.000000 \n", + "25% 0.000000 133.500000 0.000000 0.000000 1.000000 0.000000 \n", + "50% 1.000000 153.000000 0.000000 0.800000 1.000000 0.000000 \n", + "75% 1.000000 166.000000 1.000000 1.600000 2.000000 1.000000 \n", + "max 2.000000 202.000000 1.000000 6.200000 2.000000 4.000000 \n", + "\n", + " thal target \n", + "count 303.000000 303.000000 \n", + "mean 2.313531 0.544554 \n", + "std 0.612277 0.498835 \n", + "min 0.000000 0.000000 \n", + "25% 2.000000 0.000000 \n", + "50% 2.000000 1.000000 \n", + "75% 3.000000 1.000000 \n", + "max 3.000000 1.000000 \n" + ] + } + ], + "source": [ + "#display statistics summary\n", + "print(df.describe())" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " age sex cp trestbps chol fbs \\\n", + "age 1.000000 -0.098447 -0.068653 0.279351 0.213678 0.121308 \n", + "sex -0.098447 1.000000 -0.049353 -0.056769 -0.197912 0.045032 \n", + "cp -0.068653 -0.049353 1.000000 0.047608 -0.076904 0.094444 \n", + "trestbps 0.279351 -0.056769 0.047608 1.000000 0.123174 0.177531 \n", + "chol 0.213678 -0.197912 -0.076904 0.123174 1.000000 0.013294 \n", + "fbs 0.121308 0.045032 0.094444 0.177531 0.013294 1.000000 \n", + "restecg -0.116211 -0.058196 0.044421 -0.114103 -0.151040 -0.084189 \n", + "thalach -0.398522 -0.044020 0.295762 -0.046698 -0.009940 -0.008567 \n", + "exang 0.096801 0.141664 -0.394280 0.067616 0.067023 0.025665 \n", + "oldpeak 0.210013 0.096093 -0.149230 0.193216 0.053952 0.005747 \n", + "slope -0.168814 -0.030711 0.119717 -0.121475 -0.004038 -0.059894 \n", + "ca 0.276326 0.118261 -0.181053 0.101389 0.070511 0.137979 \n", + "thal 0.068001 0.210041 -0.161736 0.062210 0.098803 -0.032019 \n", + "target -0.225439 -0.280937 0.433798 -0.144931 -0.085239 -0.028046 \n", + "\n", + " restecg thalach exang oldpeak slope ca \\\n", + "age -0.116211 -0.398522 0.096801 0.210013 -0.168814 0.276326 \n", + "sex -0.058196 -0.044020 0.141664 0.096093 -0.030711 0.118261 \n", + "cp 0.044421 0.295762 -0.394280 -0.149230 0.119717 -0.181053 \n", + "trestbps -0.114103 -0.046698 0.067616 0.193216 -0.121475 0.101389 \n", + "chol -0.151040 -0.009940 0.067023 0.053952 -0.004038 0.070511 \n", + "fbs -0.084189 -0.008567 0.025665 0.005747 -0.059894 0.137979 \n", + "restecg 1.000000 0.044123 -0.070733 -0.058770 0.093045 -0.072042 \n", + "thalach 0.044123 1.000000 -0.378812 -0.344187 0.386784 -0.213177 \n", + "exang -0.070733 -0.378812 1.000000 0.288223 -0.257748 0.115739 \n", + "oldpeak -0.058770 -0.344187 0.288223 1.000000 -0.577537 0.222682 \n", + "slope 0.093045 0.386784 -0.257748 -0.577537 1.000000 -0.080155 \n", + "ca -0.072042 -0.213177 0.115739 0.222682 -0.080155 1.000000 \n", + "thal -0.011981 -0.096439 0.206754 0.210244 -0.104764 0.151832 \n", + "target 0.137230 0.421741 -0.436757 -0.430696 0.345877 -0.391724 \n", + "\n", + " thal target \n", + "age 0.068001 -0.225439 \n", + "sex 0.210041 -0.280937 \n", + "cp -0.161736 0.433798 \n", + "trestbps 0.062210 -0.144931 \n", + "chol 0.098803 -0.085239 \n", + "fbs -0.032019 -0.028046 \n", + "restecg -0.011981 0.137230 \n", + "thalach -0.096439 0.421741 \n", + "exang 0.206754 -0.436757 \n", + "oldpeak 0.210244 -0.430696 \n", + "slope -0.104764 0.345877 \n", + "ca 0.151832 -0.391724 \n", + "thal 1.000000 -0.344029 \n", + "target -0.344029 1.000000 \n" + ] + } + ], + "source": [ + "#display correlation\n", + "print (df.corr())" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " age sex cp trestbps chol fbs \\\n", + "target \n", + "0 56.601449 0.826087 0.478261 134.398551 251.086957 0.159420 \n", + "1 52.496970 0.563636 1.375758 129.303030 242.230303 0.139394 \n", + "\n", + " restecg thalach exang oldpeak slope ca thal \n", + "target \n", + "0 0.449275 139.101449 0.550725 1.585507 1.166667 1.166667 2.543478 \n", + "1 0.593939 158.466667 0.139394 0.583030 1.593939 0.363636 2.121212 \n" + ] + } + ], + "source": [ + "# Print mean values for each column with and without disease\n", + "print(df.groupby('target').mean())" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " age sex cp trestbps chol fbs restecg thalach exang oldpeak \\\n", + "167 62 0 0 140 268 0 0 160 0 3.6 \n", + "181 65 0 0 150 225 0 0 114 0 1.0 \n", + "182 61 0 0 130 330 0 0 169 0 0.0 \n", + "190 51 0 0 130 305 0 1 142 1 1.2 \n", + "204 62 0 0 160 164 0 0 145 0 6.2 \n", + "\n", + " slope ca thal target \n", + "167 0 2 2 0 \n", + "181 1 3 3 0 \n", + "182 2 0 2 0 \n", + "190 1 0 3 0 \n", + "204 0 3 3 0 \n" + ] + } + ], + "source": [ + "# get table with selection on more than 1 column\n", + "df1 = df[(df[\"sex\"] == 0) & (df[\"target\"] == 0) ]\n", + "print (df1.head(5))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Plots" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 63\n", + "1 37\n", + "3 56\n", + "5 57\n", + "7 44\n", + " ..\n", + "295 63\n", + "297 59\n", + "299 45\n", + "300 68\n", + "301 57\n", + "Name: age, Length: 207, dtype: int64\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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yHh5ebm4krtb5vjf6polwgwA4K7FrSXXKqjxJ8wAAABLI8wAAHCX69mzpzp27OjqMvKNBcAAAPxJ6Ourb9u1Dk9sd9uudSdjZgYAAFgaYQYAAAtp1qyZXnrpJQ0ePFilS5dWYGCg5syZo7S0NPXq1Us+Pj669957tWbNGknX3obep08fhYWFydPTU9WqVdP06dNveA1jjCZPnqzKlSvL09NTdevW1fLly2/Hw8sXwgwAABazYMEClS1bVt99951eeuklvfjii3r66afVuHFjff/992rdurW6d++uCxcuKCMjQxUqVNCyZcuUkJCgN998U2+88YaWLVuW4/lHjRqlmJgYzZo1S/Hx8RoyZIiee+45xcbG3sZHmXs2Y4xxdRGF6dy5c/Lz89PZs2fl6+vr6nIA4LauySgod9rajosXL+rQoUMKCwtTiRIlnPYV9TUzzZo109WrV/X1119Lujbz4ufnp06dOmnhwoWSrn26cXBwsP773//qwQcfzHKOgQMH6sSJE47Zlp49e+rMmTNauXKl0tLSVLZsWW3atEmNGjVyHNO3b19duHBBixcvzs9DzdaNnoe8vH6zABgAAIupU6eO47+LFy8uf39/1a5d29EWGBgoSY6vC3jvvfc0b948HTlyRH/88YcuXbqkevXqZXvuhIQEXbx4US1btnRqv3Tpku67774CfiQFgzADAIDFuLu7O23bbDantswPo8vIyNCyZcs0ZMgQTZ06VY0aNZKPj4+mTJmi7du3Z3vujIwMSdLq1atVvnx5p312u70gH0aBIcwAAHAH+/rrr9W4cWMNGDDA0XbgwIEc+9esWVN2u12JiYmKjIy8HSXeMsIMAAB3sCpVqmjhwoVat26dwsLC9H//93+Ki4tTWFhYtv19fHw0bNgwDRkyRBkZGWratKnOnTunrVu3ytvbWz169LjNj+DmCDMAANzB+vfvr927d6tLly6y2Wzq2rWrBgwY4HjrdnbefvttBQQEaMKECTp48KBKlSql+vXr64033riNlece72YCgNuMdzO53o3eRYPbp6DezcTnzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEvj6wwAWJoVP00XuBXGGPXr10/Lly/X6dOntWvXLtWrV++213H48GGFhYW57Pp/RpgBAODPovxu47XO5vmQtWvXav78+dqyZYsqV66ssmXLFkJh1kKYAQDAQg4cOKDg4GA1btzY1aUUGayZAQDAInr27KmXXnpJiYmJstlsCg0NlTFGkydPVuXKleXp6am6detq+fLljmO2bNkim82mdevW6b777pOnp6ceeeQRpaSkaM2aNapRo4Z8fX3VtWtXXbhwwXHc2rVr1bRpU5UqVUr+/v56/PHHdeDAgRvWl5CQoLZt28rb21uBgYHq3r27fv/990Ibj0xFJsxMmDBBNptNgwcPdrQZYxQVFaWQkBB5enqqWbNmio+Pd12RAAC40PTp0/XWW2+pQoUKSkpKUlxcnEaNGqWYmBjNmjVL8fHxGjJkiJ577jnFxsY6HRsVFaUZM2Zo69atOnr0qDp37qxp06Zp8eLFWr16tTZs2KB//etfjv5paWkaOnSo4uLitHHjRhUrVkxPPPGEMjIysq0tKSlJkZGRqlevnnbs2KG1a9fqxIkT6ty5c6GOiVREbjPFxcVpzpw5qlOnjlP75MmTFR0drfnz56tq1aoaN26cWrZsqX379snHx8dF1QIA4Bp+fn7y8fFR8eLFFRQUpLS0NEVHR2vTpk1q1KiRJKly5cr65ptvNHv2bEVGRjqOHTdunJo0aSJJ6tOnj0aMGKEDBw6ocuXKkqSnnnpKmzdv1vDhwyVJTz75pNO133//fQUEBCghIUERERFZaps1a5bq16+v8ePHO9o++OADVaxYUT///LOqVq1asIPxJy6fmTl//ryeffZZzZ07V6VLl3a0G2M0bdo0jRw5Up06dVJERIQWLFigCxcuaPHixS6sGACAoiEhIUEXL15Uy5Yt5e3t7fhZuHBhlltCf54wCAwMlJeXlyPIZLalpKQ4tg8cOKBu3bqpcuXK8vX1VVhYmCQpMTEx21p27typzZs3O9VRvXp1x7kKk8tnZgYOHKh27drp0Ucf1bhx4xzthw4dUnJyslq1auVos9vtioyM1NatW9WvX79sz5eenq709HTH9rlz5wqveAAAXCjzls/q1atVvnx5p312u91p293d3fHfNpvNaTuz7c+3kNq3b6+KFStq7ty5CgkJUUZGhiIiInTp0qUca2nfvr0mTZqUZV9wcHDeHlgeuTTMLF26VN9//73i4uKy7EtOTpZ0LSn+WWBgoI4cOZLjOSdMmKCxY8cWbKEAABRBNWvWlN1uV2JiotMtpVt18uRJ/fTTT5o9e7YeeughSdI333xzw2Pq16+vTz75RKGhoXJzu73xwmW3mY4ePapBgwZp0aJFKlGiRI79bDab07YxJkvbn40YMUJnz551/Bw9erTAagYAoCjx8fHRsGHDNGTIEC1YsEAHDhzQrl279O9//1sLFizI93lLly4tf39/zZkzR7/88os2bdqkoUOH3vCYgQMH6tSpU+ratau+++47HTx4UOvXr1fv3r119erVfNeSGy6bmdm5c6dSUlJ0//33O9quXr2qr776SjNmzNC+ffskXZuh+fP0VEpKSpbZmj+z2+1ZptYAALhTvf322woICNCECRN08OBBlSpVSvXr19cbb7yR73MWK1ZMS5cu1csvv6yIiAhVq1ZN//znP9WsWbMcjwkJCdG3336r4cOHq3Xr1kpPT1elSpX02GOPqVixwp07sRljTKFeIQepqalZbhf16tVL1atX1/Dhw1WrVi2FhIRoyJAheu211yRJly5dUkBAgCZNmpTjmpnrnTt3Tn5+fjp79qx8fX0L/HEAcC2+zuD2ODyxnatLKFAXL17UoUOHFBYWdsO7AyhcN3oe8vL67bKZGR8fnyxv7SpZsqT8/f0d7YMHD9b48eMVHh6u8PBwjR8/Xl5eXurWrZsrSgYAAEWQy9/NdCOvvfaa/vjjDw0YMECnT59Ww4YNtX79ej5jBgAAOBSpMLNlyxanbZvNpqioKEVFRbmkHgAAUPS5/EPzAAAAbgVhBgBw13LRe2Dw/xXU+BNmAAB3ncxPv/3zt0Tj9ssc/+s/jTivitSaGQAAbofixYurVKlSju8i8vLyuuEHsqJgGWN04cIFpaSkqFSpUipevPgtnY8wAwC4KwUFBUmS05cr4vYqVaqU43m4FYQZAMBdyWazKTg4WAEBAbp8+bKry7nruLu73/KMTCbCDADgrla8ePECe1GFa7AAGAAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBph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nTt3zlMtvXv3VkJCguLi4hxte/bs0a5du9SzZ09J0ty5czVy5Ei98847+umnnzR+/HiNHj1aCxYscBzj4+Oj+fPnKyEhQdOnT9fcuXP17rvvOl3rl19+0bJly/TJJ59o9+7dSk5OVteuXdW7d2/99NNP2rJlizp16iS+4g5wMdd+zyUAK0pJSTGSHN8OPGvWLOPv72/++OMPR5+5c+caSWbXrl3GGGNGjx5tWrVq5XSeo0eP5vhtxMYYExMTY/z8/LK0t2nTxrz44ouO7cGDB5tmzZo5titWrGgWL17sdMzbb79tGjVqlONjmjx5srn//vsd22PGjDHu7u4mJSXF0bZz504jyRw+fDjH8xhjTKVKlcy77757wz4ACg4zMwBu6sCBA+rWrZsqV64sX19fhYWFSZISExMlSfv27VOdOnVUokQJxzF/+ctfnM6xc+dObd682bGuxNvbW9WrV3ecPy/+9re/acmSJbp48aIuX76sDz/8UL1795Yk/fbbbzp69Kj69OnjdK1x48Y5XWf58uVq2rSpgoKC5O3trdGjRzseT6ZKlSqpXLlyju26deuqRYsWql27tp5++mnNnTtXp0+fzlPtAAoeC4AB3FT79u1VsWJFzZ07VyEhIcrIyFBERIQuXbokSTLGyGazOR1jrrv1kpGRofbt22vSpElZzh8cHJzneux2u1asWCG73a709HQ9+eSTjutI1241NWzY0Om4zIW527Zt0zPPPKOxY8eqdevW8vPz09KlSzV16lSn/iVLlsxy/IYNG7R161atX79e//rXvzRy5Eht377dEfAA3H6EGQA3dPLkSf3000+aPXu2HnroIUnSN99849SnevXq+vDDD5Weni673S5J2rFjh1Of+vXr65NPPlFoaKjc3G7tnx43Nzf16NFDMTExstvteuaZZ+Tl5SVJCgwMVPny5XXw4EE9++yz2R7/7bffqlKlSho5cqSj7ciRI7m6ts1mU5MmTdSkSRO9+eabqlSpklasWKGhQ4fe0mMCkH+EGQA3VLp0afn7+2vOnDkKDg5WYmKiXn/9dac+3bp108iRI/XCCy/o9ddfV2Jiov7xj39IkmPGZuDAgZo7d666du2qV199VWXLltUvv/yipUuXau7cuXl+O3Pfvn1Vo0YNSdfCyZ9FRUXp5Zdflq+vr9q0aaP09HTt2LFDp0+f1tChQ1WlShUlJiZq6dKleuCBB7R69WqtWLHiptfcvn27Nm7cqFatWikgIEDbt2/Xb7/95qgDgGuwZgbADRUrVkxLly7Vzp07FRERoSFDhmjKlClOfXx9ffX5559r9+7dqlevnkaOHOl4m3TmOpqQkBB9++23unr1qlq3bq2IiAgNGjRIfn5+KlYs7/8UhYeHq3HjxqpWrVqW20l9+/bVvHnzNH/+fNWuXVuRkZGaP3++41ZQhw4dNGTIEP39739XvXr1tHXrVo0ePfqm1/T19dVXX32ltm3bqmrVqho1apSmTp2qNm3a5Ll+AAXHZq6/sQ0ABeDDDz9Ur169dPbsWXl6eubrHPPnz9fgwYN15syZLPuMMapevbr69etX5G7xhIaGavDgwZb4CgbgTsDMDIACsXDhQn3zzTc6dOiQVq5cqeHDh6tz5875DjKZzp49K29vb6fPrUlJSVF0dLSOHz+uXr163WrpBWb8+PHy9vbO8q4oAIWLmRkABWLy5MmaOXOmkpOTFRwcrI4dO+qdd95xLMzNj9TUVJ04cUKSVKpUKZUtW1bStXU4ZcuW1fTp09WtW7cCqb8gnDp1SqdOnZIklStXTn5+fi6uCLg7EGYAAIClcZsJAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABY2v8DrgH7vLhahUEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# age dirtibution group into male and female (1 = male; 0 = female)\n", + "# male\n", + "plt.title('age distribution according to Sex') \n", + "df[df[\"sex\"] == 1]['age'].plot.hist()\n", + "print(df[df[\"sex\"] > 0]['age'])\n", + "# female\n", + "df[df[\"sex\"] == 0]['age'].plot.hist()\n", + "plt.xlabel('age [years]')\n", + "plt.legend([\"male\", \"female\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 0, 'max heart rate')" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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atjb2yMjI0PX5VAZMTY2fu0jMjkYZoiISC8ZGhqW2ocdlW+8AJiIiIhkjWGGiIiIZI1hhoiIiGSNYYaIiIhkjWGGiIiIZI1hhoiIiGSNYYaIiIhkjWGGiIiIZI1hhoiIiGRNp2Fm1apVqF+/PqytrWFtbQ1fX1/s379fmj9s2DAoFAqtR5MmTXRYMREREekbnf6cQbVq1bBo0SLUrFkTALBx40Z0794dFy5cQL169QAAHTp0QGhoqLSMiYmJTmolIiIi/aTTMNO1a1et6f/+979YtWoVTp8+LYUZpVJZKr+oSUREROWT3lwzk5WVhbCwMKSlpcHX11dqP3bsGOzt7VGrVi2MHj260J+E12g0SE5O1noQERFR+aXzMHPlyhVYWlpCqVRi7Nix2LVrF+rWrQsA6NixI3744QccPXoUy5YtQ1RUFFq1agWNRpPv+oKDg6FSqaSHs7Pzm9oVIiIi0gGFEELosoD09HTExsbi6dOn2LFjB7799ltERkZKgebf4uLi4OLigrCwMPj7++e5Po1GoxV2kpOT4ezsjKSkJFhbW5fZfhARyZHrx3t1XYKWmEWddV0C6Ynk5GSoVKoifX7r9JoZ4OUFvTkXADdq1AhRUVH48ssvsWbNmlx91Wo1XFxccOvWrXzXp1QqoVQqy6xeIiIi0i86P830KiFEvqeREhMTcf/+fajV6jdcFREREekrnR6ZmTVrFjp27AhnZ2ekpKQgLCwMx44dw4EDB5CamoqgoCD06tULarUaMTExmDVrFipXroyePXvqsmwiIiLSIzoNMw8fPsTgwYMRFxcHlUqF+vXr48CBA2jbti2eP3+OK1euYNOmTXj69CnUajVatmyJbdu2wcrKSpdlExERkR7RaZhZv359vvPMzMxw8ODBN1gNERERyZHeXTNDREREVBwMM0RERCRrOr81m4iootC373TRR/o4RvzuG/3HIzNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzRERE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IiJZY5ghIiIiWWOYISIiIlljmCEiIiJZY5ghIiIiWWOYISIiIlljmCEiIiJZY5ghIiIiWdPrMBMUFASFQqH1cHR01HVZREREpEeMdF1AYerVq4fDhw9L04aGhjqshoiIiPSN3ocZIyMjHo0hIiKifOn1aSYAuHXrFpycnODm5oZ+/frh7t27BfbXaDRITk7WehAREVH5pddhxsfHB5s2bcLBgwexbt06xMfHo2nTpkhMTMx3meDgYKhUKunh7Oz8BismIiKiN00hhBC6LqKo0tLS8NZbb2H69OkIDAzMs49Go4FGo5Gmk5OT4ezsjKSkJFhbW7+pUul1BKl0XQERUaFcX2zRyXZjFnXWyXbftOTkZKhUqiJ9fuv9NTP/ZmFhAS8vL9y6dSvfPkqlEkql8g1WRURERLqk16eZXqXRaHD9+nWo1Wpdl0JERER6Qq/DzNSpUxEZGYno6Gj8/vvv6N27N5KTkzF06FBdl0ZERER6Qq9PM/3111/o378/Hj16hCpVqqBJkyY4ffo0XFxcdF0aERER6Qm9DjNhYWG6LoGIiIj0nF6fZiIiIiIqDMMMERERyRrDDBEREckawwwRERHJGsMMERERyRrDDBEREckawwwRERHJGsMMERERyRrDDBEREckawwwRERHJml7/nAGVoiCVrisgIqJS4PrxXl2XoCVmUWddl8AjM0RERCRvDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrDDNEREQkawwzREREJGsMM0RERCRrRrouQPaCVLqugIiIdCDGdICuSygS1xdbdF1CmeORGSIiIpI1hhkiIiKSNYYZIiIikjVZhJmVK1fCzc0NpqameOedd3DixAldl0RERER6Qu/DzLZt2zBp0iTMnj0bFy5cwPvvv4+OHTsiNjZW16URERGRHtD7MLN8+XKMHDkSo0aNQp06dRASEgJnZ2esWrVK16URERGRHtDrMJOeno5z586hXbt2Wu3t2rXDyZMndVQVERER6RO9/p6ZR48eISsrCw4ODlrtDg4OiI+Pz3MZjUYDjUYjTSclJQEAkpOTy6ZIjSib9RIREZWCbM2zMl1/WX2+5qxXiMI/Z/U6zORQKBRa00KIXG05goOD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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "# Plot maximum heart rate\n", + "# Heart disease (0 = no, 1 = yes)\n", + "plt.title('maximum heart rate according to heart disease') \n", + "df[df[\"target\"] == 1]['thalach'].plot.hist()\n", + "# no disease\n", + "df[df[\"target\"] == 0]['thalach'].plot.hist()\n", + "plt.legend([\"disease\", \"no disease\"])\n", + "plt.xlabel('max heart rate')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAHACAYAAACI8pP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABH70lEQVR4nO3dd3QU5f7H8c8mpFeIpGmoUqWDIlFMFAjSsYGAIFUwKAIiykUhKBKJgl5BxEaxAHotiPeCEgXpHUGaIBAglBgpJhBCAsnz+8OT/blpgAYySd6vc+Yc9plnZr4zs5P9MDM7azPGGAEAAFiIU3EXAAAAkBsBBQAAWA4BBQAAWA4BBQAAWA4BBQAAWA4BBQAAWA4BBQAAWA4BBQAAWA4BBQAAWA4BpZSYM2eObDabNm/enO/4jh07qkqVKte3qL9YvHixYmJirrh/3759ZbPZ7IOXl5eqVKmizp07a/bs2crIyMgzTWRkpCIjI4uu6BKmb9++efaxzWa7qu0uXf2+KmhZl3tP/h3Hjx9XTEyMtm3blmdcTEyMbDZbkS2rrMp9HB06dEg2m01z5sy57rUUtr//qcTEREVHR6tmzZry8PBQhQoVVL9+fQ0aNEiJiYlFvjxcvXLFXQDKhsWLF+utt966qg8+Dw8PLVu2TJKUnp6uxMRELVmyRIMGDdKUKVP07bff6qabbrL3nzFjRlGXXeKtW7fOYRtdib+zr/7usq7W8ePHNWHCBFWpUkWNGjVyGDdw4EDde++913T5ZVFISIjWrVun6tWrX/dlF7a//4mjR4+qSZMm8vf319NPP61atWopJSVFu3fv1meffaaDBw8qLCysyJaHv4eAgmvq/Pnz8vT0/FvTOjk56fbbb3do69Onj/r166eOHTvqwQcf1Pr16+3j6tat+49qLY1yb7+iZozRhQsX5OHhcc2XdTk33XTTNQ9IpUF6errc3d2v+GyTm5tbse/bovbee+/p5MmT2rhxo6pWrWpv79q1q/71r38pOzu7GKtDDi7xlGHGGM2YMUONGjWSh4eHypcvrwcffFAHDx506BcfH68uXbropptukru7u26++WYNHjxYJ0+edOiXc4p969atevDBB1W+fHlVr15dffv21VtvvSVJDpdtDh069LfqjoqK0qBBg7RhwwatXLnS3p7fJZ63335bDRs2lLe3t3x8fFS7dm3961//cuiTlJSkwYMH66abbpKrq6uqVq2qCRMm6NKlSw79JkyYoObNm6tChQry9fVVkyZN9MEHHyj3720uW7ZMkZGRCggIkIeHhypVqqQHHnhA58+ft/fJzMzUxIkTVbt2bbm5ualixYrq16+ffv/99yvaBnPmzFGtWrXk5uamOnXq6MMPP8y3X+7LLufPn9eoUaNUtWpVubu7q0KFCmrWrJnmz58vSZfdVzabTU888YRmzpypOnXqyM3NTXPnzs13WTnOnDmjfv36qUKFCvLy8lKnTp3yvMeqVKmivn375pn2r/v0xx9/1K233ipJ6tevn722nGXmd4knOztbcXFx9u0cGBioPn366OjRo3mWU69ePW3atEktW7aUp6enqlWrpldeeeWKPqzeeust3XXXXQoMDJSXl5fq16+vuLg4Xbx4MU/fb7/9Vq1atZKfn588PT1Vp04dxcbGOvTZsGGDOnXqpICAALm7u6t69eoaPny4Q5/Vq1erVatW8vHxkaenp8LDw/W///3PoU/OZbalS5eqf//+qlixojw9PZWRkSFjjOLi4lS5cmW5u7urSZMmWrJkSZ5687vEk7Otd+3apR49esjPz09BQUHq37+/UlJSHKb/448/NGDAAFWoUEHe3t7q0KGDDh48eNnLj5fb35K0aNEitWjRQp6envLx8VGbNm20bt26AueZ49SpU3JyclJgYGC+452cHD8aN2/erM6dO6tChQpyd3dX48aN9dlnn9nHnzx5UmFhYQoPD3fY57t375aXl5d69+592ZqQF2dQSpmsrKw8H6yS8nyIStLgwYM1Z84cDRs2TJMnT9bp06f14osvKjw8XNu3b1dQUJAk6cCBA2rRooUGDhwoPz8/HTp0SFOnTtWdd96pHTt2yMXFxWG+999/vx5++GENGTJEaWlpqlevntLS0vT55587/PEICQn52+vZuXNnzZgxQytXrtRdd92Vb58FCxYoOjpaTz75pF577TU5OTlp//792r17t71PUlKSbrvtNjk5OWncuHGqXr261q1bp4kTJ+rQoUOaPXu2ve+hQ4c0ePBgVapUSZK0fv16Pfnkkzp27JjGjRtn79OhQwe1bNlSs2bNkr+/v44dO6Zvv/1WmZmZ8vT0VHZ2trp06aJVq1Zp9OjRCg8P1+HDhzV+/HhFRkZq8+bN8vDwKHDd58yZo379+qlL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p6fnnfDPu0Ku33CVIiIizJ133unQduutt5pnn33WGGPM0qVLjbOzszly5Ih9/K5du4wks3Hjxnzn+c4775gKFSqYtLQ0e9vbb79tJJmffvrJGGPM8uXLjSRz5swZY4wx9evXNzExMfnO74UXXjBRUVEObYmJiUaS2bt3b77TJCcnG0lmx44dxhhjnnzySXPPPfeY7OzsPH1/+OEH4+vray5cuODQXr16dfPOO+/kO/9C9zlQklzvv1FWGVBmFPb5nRtnUCymQYMGDq9DQkLsj3Lfs2ePwsLCFBYWZh9ft25d+fv7a8+ePfnOb8+ePWrYsKHDg+tatGhRaA3Dhg3TxIkTdccdd2j8+PH6+eef7eO2bNmi5cuXy9vb2z7Url1bkuyXcQ4cOKCePXuqWrVq8vX1VdWqVSX9eXlKkvr27att27apVq1aGjZsmJYuXeow/3PnzikgIMBhGQkJCQ6XiQAApRs3yVqMi4uLw2ubzWa/NGKMyfehZAW154y7WgMHDlTbtm31v//9T0uXLlVsbKymTJmiJ598UtnZ2erUqZMmT56cZ7qc38Lp1KmTwsLC9N577yk0NFTZ2dmqV6+eMjMzJUlNmjRRQkKClixZou+//17dunVT69at9fnnnys7O1shISH68ccf88zf39//qtcFAFAyEVBKkLp16+rIkSNKTEy0n0XZvXu3UlJSVKdOnQKn+eijj5Senm7/3Zr169dfdllhYWEaMmSIhgwZojFjxui9997Tk08+qSZNmuiLL75QlSpVVK5c3rfPqVOntGfPHr3zzjtq2bKlJGn16tV5+vn6+qp79+7q3r27HnzwQd177706ffq0mjRpoqSkJJUrV85+XwoAoOzhEk8J0rp1azVo0EC9evXS1q1btXHjRvXp00cRERFq1qxZvtP07NlTTk5OGjBggHbv3q3FixfrtddeK3Q5w4cP13fffaeEhARt3bpVy5YtswegoUOH6vTp0+rRo4c2btyogwcPaunSperfv7+ysrJUvnx5BQQE6N1339X+/fu1bNkyjRw50mH+r7/+uhYsWKBffvlF+/bt03/+8x8FBwfL399frVu3VosWLdS1a1d99913OnTokNauXavnn39emzdvLpoNCQCwPAJKCWKz2bRw4UKVL19ed911l1q3bq1q1arp008/LXAab29vffPNN9q9e7caN26ssWPH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AABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYTrEGlBkzZqhq1apyd3dX06ZNtWrVquIsBwAAWESxBZRPP/1Uw4cP19ixY/XTTz+pZcuWateunY4cOVJcJQEAAIuwGWNMcSy4efPmatKkid5++217W506ddS1a1fFxsYWOm1qaqr8/PyUkpIiX1/fa12qtdhsxV1BsbCpWN6mxa54jk4UG47vMqUsHt9X8/ldLGdQMjMztWXLFkVFRTm0R0VFae3atcVREgAAsJByxbHQkydPKisrS0FBQQ7tQUFBSkpKytM/IyNDGRkZ9tcpKSmS/kxiKCvK5r7mLY6yoWy+0cvi8Z3zuX0lF2+KJaDksOU6nWmMydMmSbGxsZowYUKe9rCwsGtWG6zGr7gLKBZ+ZXO1UeaUzTd6WT6+z549K7/LbIBiCSg33HCDnJ2d85wtSU5OznNWRZLGjBmjkSNH2l9nZ2fr9OnTCggIyDfQoHRJTU1VWFiYEhMTy949R0Apx/FdthhjdPbsWYWGhl62b7EEFFdXVzVt2lTx8fG677777O3x8fHq0qVLnv5ubm5yc3NzaPP397/WZcJifH19+QMGlFIc32XH5c6c5Ci2SzwjR45U79691axZM7Vo0ULvvvuujhw5oiFDhhRXSQAAwCKKLaB0795dp06d0osvvqgTJ06oXr16Wrx4sSpXrlxcJQEAAIso1ptko6OjFR0dXZwloARwc3PT+PHj81zmA1DycXyjIMX2oDYAAICC8GOBAADAcggoAADAcggoAADAcggoAADAcggoAADAcor1a8ZAfo4ePaq3335ba9euVVJSkmw2m4KCghQeHq4hQ4bwG0wAUAbwNWNYyurVq9WuXTuFhYUpKipKQUFBMsYoOTlZ8fHxSkxM1JIlS3THHXcUd6kAroHExESNHz9es2bNKu5SUMwIKLCUW2+9VXfeeadef/31fMePGDFCq1ev1qZNm65zZQCuh+3bt6tJkybKysoq7lJQzAgosBQPDw9t27ZNtWrVynf8L7/8osaNGys9Pf06VwagKCxatKjQ8QcPHtTTTz9NQAH3oMBaQkJCtHbt2gIDyrp16xQSEnKdqwJQVLp27SqbzabC/m9ss9muY0WwKgIKLGXUqFEaMmSItmzZojZt2igoKEg2m01JSUmKj4/X+++/rzfeeKO4ywTwN4WEhOitt95S165d8x2/bds2NW3a9PoWBUsioMBSoqOjFRAQoNdff13vvPOO/TSvs7OzmjZtqg8//FDdunUr5ioB/F1NmzbV1q1bCwwolzu7grKDe1BgWRcvXtTJkyclSTfccINcXFyKuSIA/9SqVauUlpame++9N9/xaWlp2rx5syIiIq5zZbAaAgoAALAcniQLAAAsh4ACAAAsh4ACAAAsh4ACWNQHH3ygqKio4i7DkubMmSN/f//iLsOSfvzxR9lsNv3xxx9XPM2tt96qL7/88toVBfwNBBSgEMnJyRo8eLAqVaokNzc3BQcHq23btlq3bt01XW5GRobGjRunF154waH9iy++UN26deXm5qa6devqq6++uqZ1HDp0SDabLc/wyCOPXNPlFpennnpKTZs2lZubmxo1anRdlhkZGSmbzaZXXnklz7j27dvLZrMpJibmmtbwwgsv6LnnnlN2dvY1XQ5wNQgoQCEeeOABbd++XXPnztW+ffu0aNEiRUZG6vTp09d0uV988YW8vb3VsmVLe9u6devUvXt39e7dW9u3b1fv3r3VrVs3bdiw4ZrWIknff/+9Tpw4YR/eeuuta77M4mCMUf/+/dW9e/frutywsDDNnj3boe348eNatmzZdXlycocOHZSSkqLvvvvumi8LuFIEFKAAf/zxh1avXq3Jkyfr7rvvVuXKlXXbbbdpzJgx6tChg71fSkqKHnvsMQUGBsrX11f33HOPtm/fLkn6/fffFRwcrEmTJtn7b9iwQa6urlq6dGmBy16wYIE6d+7s0PbGG2+oTZs2GjNmjGrXrq0xY8aoVatW1+XJugEBAQoODrYPfn5+kgpfd0mKiYlRo0aNNGvWLFWqVEne3t56/PHHlZWVpbi4OAUHByswMFAvv/yyw/KmTp2q+vXry8vLS2FhYYqOjta5c+cKrfGbb75R06ZN5e7urmrVqmnChAm6dOnSVa3nm2++qaFDh6patWpXNd0/1bFjR506dUpr1qyxt82ZM0dRUVEKDAx06Pvxxx+rWbNm8vHxUXBwsHr27Knk5ORC57927Vrddddd8vDwUFhYmIYNG6a0tDT7eGdnZ7Vv317z588v2hUD/gECClAAb29veXt7a+HChcrIyMi3jzFGHTp0UFJSkhYvXqwtW7aoSZMmatWqlU6fPq2KFStq1qxZiomJ0ebNm3Xu3Dk98sgjio6OLvT+klWrVqlZs2YObevWrcszTdu2bbV27doC53PkyBH7ehQ0DBky5Cq2ypWve44DBw5oyZIl+vbbbzV//nzNmjVLHTp00NGjR7VixQpNnjxZzz//vNavX2+fxsnJSW+++aZ27typuXPnatmyZRo9enSBtXz33Xd65JFHNGzYMO3evVvvvPOO5syZkyf4XAvt2rW77Da+HFdXV/Xq1cvhLMqcOXPUv3//PH0zMzP10ksvafv27Vq4cKESEhLUt2/fAue9Y8cOtW3bVvfff79+/vlnffrpp1q9erWeeOIJh3633XabVq1adeUrDlxrBkCBPv/8c1O+fHnj7u5uwsPDzZgxY8z27dvt43/44Qfj6+trLly44DBd9erVzTvvvGN/HR0dbWrWrGl69epl6tWrZ9LT0wtc5pkzZ4wks3LlSod2FxcX88knnzi0ffLJJ8bV1bXAeV28eNH8+uuvhQ6//fZbgdMnJCQYScbDw8N4eXnZh61bt17Ruo8fP954enqa1NRU+/i2bduaKlWqmKysLHtbrVq1TGxsbIF1fPbZZyYgIMD+evbs2cbPz8/+umXLlmbSpEkO03z00UcmJCSkwHkWZvz48aZhw4ZX1Pfo0aOX3caFiYiIME899ZTZvn278fHxMefOnTMrVqwwgYGBJjMz0zRs2NCMHz++wOk3btxoJJmzZ88aY4xZvny5kWTOnDljjDGmd+/e5rHHHnOYZtWqVcbJycnhffj1118bJycnh/0CFCd+iwcoxAMPPKAOHTpo1apVWrdunb799lvFxcXp/fffV9++fbVlyxadO3dOAQEBDtOlp6frwIED9tevvfaa6tWrp88++0ybN2+Wu7t7gctMT0+XpHz75P6VV2NMob/8Wq5cOd18881XtK6F+fTTT1WnTh3767CwML355ptXtO5VqlSRj4+P/XVQUJCcnZ3l5OTk0PbXyxTLly/XpEmTtHv3bqWmpurSpUu6cOGC0tLS5OXllae+LVu2aNOmTQ5nTLKysnThwgWdP39enp6e/2wDFOLGG28skvk0aNBANWrU0Oeff67ly5erd+/e+f68w08//aSYmBht27ZNp0+ftt/YeuTIEdWtWzdP/y1btmj//v365JNP7G3GGGVnZyshIcG+Xz08PJSdna2MjAx5eHgUyToB/wQBBbgMd3d3tWnTRm3atNG4ceM0cOBAjR8/Xn379lV2drZCQkL0448/5pnur1+DPXjwoI4fP67s7GwdPnxYDRo0KHB5AQEBstlsOnPmjEN7cHCwkpKSHNqSk5MVFBRU4LwK+tD6q0ceeUQzZ84stE9YWFieoHOl6577Q9Zms+XblvNBe/jwYbVv315DhgzRSy+9pAoVKmj16tUaMGCALl68mG992dnZmjBhgu6///484woLg0WhXbt2l700crn7Z3L0799fb731lnbv3q2NGzfmGZ+WlqaoqChFRUXp448/VsWKFXXkyBG1bdtWmZmZ+c4zOztbgwcP1rBhw/KMq1Spkv3fp0+flqenJ+EElkFAAa5S3bp1tXDhQklSkyZNlJSUpHLlyqlKlSr59s/MzFSvXr3UvXt31a5dWwMGDNCOHTsKDBaurq6qW7eudu/e7XDPSYsWLRQfH68RI0bY25YuXarw8PACaw0NDdW2bdsKXR9fX99CxxfkStb979i8ebMuXbqkKVOm2M+yfPbZZ5etZe/evUVytuhqvf/++/azXv9Uz549NWrUKDVs2DDfYPnLL7/o5MmTeuWVVxQWFibpz+1VmCZNmmjXrl2X3TY7d+5UkyZN/n7xQBEjoAAFOHXqlB566CH1799fDRo0kI+PjzZv3qy4uDh16dJFktS6dWu1aNFCXbt21eTJk1WrVi0dP35cixcvVteuXdWsWTONHTtWKSkpevPNN+Xt7a0lS5ZowIAB+u9//1vgstu2bavVq1dr+PDh9rannnpKd911lyZPnqwuXbro66+/1vfff6/Vq1cXOJ+iusSTnytZ97+jevXqunTpkqZNm6ZOnTppzZo1lz3DM27cOHXs2FFhYWF66KGH5OTkpJ9//lk7duzQxIkTr3jZ+/fv17lz55SUlKT09HR7uKtbt65cXV3znaaoLvFIUvny5XXixIkCf7m7UqVKcnV11bRp0zRkyBDt3LlTL730UqHzfPbZZ3X77bdr6NChGjRokLy8vLRnzx7Fx8dr2rRp9n6rVq3iwYCwluK+CQawqgsXLpjnnnvONGnSxPj5+RlPT09Tq1Yt8/zzz5vz58/b+6Wmpponn3zShIaGGhcXFxMWFmZ69epljhw5YpYvX27KlStnVq1aZe9/+PBh4+fnZ2bMmFHgsvfs2WM8PDzMH3/84dD+n//8x9SqVcu4uLiY2rVrmy+++KLoV/wvcm6S/emnn/IdX9i6G5P/zaaPPvqo6dKli0Nbzo2iOaZOnWpCQkKMh4eHadu2rfnwww8dbvzMfZOsMcZ8++23Jjw83Hh4eBhfX19z2223mXfffddhuREREYWub0REhJGUZ0hISCh0un8i97rnlvsm2Xnz5pkqVaoYNzc306JFC7No0SKHfZT7Jllj/ryRtk2bNsbb29t4eXmZBg0amJdfftk+/ujRo8bFxcUkJiYW8doBf5/NGGOKLR0BKFC3bt3UuHFjjRkzprhLKRUiIyMVGRl5zZ/KWhI988wzSklJ0bvvvlvcpQB2PAcFsKhXX331ip6hgcs7e/asDhw4oFGjRhV3KZYUGBh42UtFwPXGGRQAAGA5nEEBAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACW83+CZ5HHqp2ebQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot sex and target in one histogramm via crosstab\n", + "pd.crosstab(df.sex,df.target).plot(kind=\"bar\",color=['red','blue' ])\n", + "plt.title('Heart Disease distribution according to Sex')\n", + "plt.xlabel('Sex (0 = Female, 1 = Male)')\n", + "plt.legend([\"no disease\", \"disease\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Frequency of Disease or Not')" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABNYAAAIhCAYAAACCMjckAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABg0klEQVR4nO3deZxO9f//8edl9p2xzJhmMBhbtiwJFcKUsZWiorIvIYSkfBOS3UT5WJIsRZbsFZnssu8lHyKMbbLvzDBzfn/0m+vjamaY67jGdeFxv92u2815n/c553Wd65ozzbP3OW+LYRiGAAAAAAAAANglm7MLAAAAAAAAAB5EBGsAAAAAAACACQRrAAAAAAAAgAkEawAAAAAAAIAJBGsAAAAAAACACQRrAAAAAAAAgAkEawAAAAAAAIAJBGsAAAAAAACACQRrAAAAAAAAgAkEawCA+2rKlCmyWCzaunVruuvr1aunAgUK3N+ibvPTTz+pX79+me7fokULWSwW68vPz08FChRQgwYNNHnyZCUmJqbZpnr16qpevbrjinZR/fr1szk3vr6+Cg8P1/PPP68vvvhCly9fTrNNixYt7P78T5w4oX79+mnnzp12bZfesSwWizp37mzXfu5m7NixmjJlSpr2w4cPy2KxpLvufurevbssFovq1avn1DruRep37XYFChRQixYtnFLH3V73+vP/999/q3fv3ipVqpT8/f3l7e2tqKgode3aVX/++ae1X4sWLeTv73+P78o+165dU79+/bRq1apM9U/9OUh9ZcuWTTlz5lRMTIw2bNhg9/HT+y6Y9e/re0av+/09AwC4FndnFwAAgCv56aef9J///MeucM3Hx0crVqyQJF2/fl1Hjx7VkiVL1LZtW40cOVJLly5VeHi4tf/YsWMdXbZLW7p0qYKCgpSUlKQTJ05o+fLl6tWrl4YPH67FixerTJky1r4fffSRunbtatf+T5w4of79+6tAgQIqW7Zsprczcywzxo4dq1y5cqX54ztv3rzasGGDChUqlOU1ZOTmzZv69ttvJf3zOR0/flyPPfaY0+pxpPnz5yswMPC+HrNNmzZ64YUXrMsnT55Uo0aN9M4776hp06bW9nupa/PmzapXr54Mw1Dnzp1VuXJleXp6at++ffr222/15JNP6vz58/f0Pu7FtWvX1L9/f0myK0BMPUfJycnas2eP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ltRnn33G1PIA7ptVq1apRo0aadqbN2+uKVOm3P+CADxyMnq27OTJk9WiRYv7WwyAR1br1q21fPlynTx5UkFBQSpdurTef/991a5d29ml4SFGsAYAAAAAAACYwDPWAAAAAAAAABMI1gAAAAAAAAATCNYAAAAAAAAAEwjWAAAAAAAAABMI1gAAAAAAAAATCNYAAAAAAAAAEwjWAAAAAAAAABMI1gAAAAAAAAATCNYAAACykMVi0YIFC5xdxj1btWqVLBaLLly44OxSAAAAXAbBGgAAgEkJCQl65513VLBgQXl5eSkiIkL169fX8uXL71sNLVq00IsvvpipfhaLRRaLRR4eHipYsKB69uypq1evZuo4VapU0cmTJxUUFGSqzn79+lmPn9Hr8OHDpvYNAADgLO7OLgAAAOBBdPjwYVWtWlXZs2fXsGHDVLp0ad28eVM///yzOnXqpP/+97/OLjGNF154QZMnT9bNmze1du1atWnTRlevXtW4cePuuq2np6dCQ0NNH7tnz57q0KGDdblixYpq166d2rZta23LnTu36f0DAAA4AyPWAAAATOjYsaMsFos2b96sV155RUWKFNHjjz+u7t27a+PGjTZ9z5w5o5deekm+vr6KiorSokWLbNb/8ccfiomJkb+/v0JCQvTmm2/qzJkz1vXff/+9SpUqJR8fH+XMmVO1atXS1atX1a9fP02dOlULFy60jvpatWpVhjV7eXkpNDRUERERatq0qZo1a2a9TfXbb79VhQoVFBAQoNDQUDVt2lSnTp2ybvvvW0GnTJmi7Nmz6+eff1bx4sXl7++vF154QSdPnkz32P7+/goNDbW+3NzcrMdatmyZHn/8cd26dctmm5dffllvvfWWpH9GvJUtW1YTJkxQRESEfH191bhx4zS3pk6ePFnFixeXt7e3ihUrprFjx2Z4PgAAAO4VwRoAAICdzp07p6VLl6pTp07y8/NLsz579uw2y/3791eTJk20e/duxcTEqFmzZjp37pwk6eTJk6pWrZrKli2rrVu3aunSpfr777/VpEkT6/rXX39drVq10t69e7Vq1So1atRIhmGoZ8+eatKkiTXQOnnypKpUqZLp9+Hj46ObN29KkpKSkvTJJ59o165dWrBggQ4dOqQWLVrccftr165pxIgR+uabb7RmzRrFx8erZ8+emT5+qsaNGys5OdkmcDxz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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot target and cp in one histogramm via crosstab\n", + "pd.crosstab(df.cp,df.target).plot(kind=\"bar\",figsize=(15,6),color=['#11A5AA','#AA1190' ])\n", + "plt.title('Heart Disease Distribution According To Chest Pain Type')\n", + "plt.xlabel('Chest Pain Type')\n", + "plt.xticks(rotation = 0)\n", + "plt.ylabel('Frequency of Disease or Not')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot correlations for target\n", + "plt.figure()\n", + "plt.scatter(x=df.age[df.target==1], y=df.thalach[(df.target==1)], c=\"red\")\n", + "plt.scatter(x=df.age[df.target==0], y=df.thalach[(df.target==0)])\n", + "plt.title('Age-max Heart Rate Plot')\n", + "plt.xlabel('age[years]')\n", + "plt.ylabel('max. heart rate')\n", + "plt.legend([\"Disease\", \"No Disease\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAACMIElEQVR4nO3deVxU5f4H8M9hQBbZBAUGNVfUFHOncN9IMrfINM1bXm3TFrG8+bMNbdH0mku3G5WZLaZeU1IrRTP31DBNc8tcMLdBFGRxA505vz/GGRmGmfMMHGaG8fN+vciYOZx5OJyZ8z3P832+jyTLsgwiIiIiD+Xl6gYQERERVSYGO0REROTRGOwQERGRR2OwQ0RERB6NwQ4RERF5NAY7RERE5NEY7BAREZFHY7BDREREHo3BDhEREXk0BjtEbu6DDz6AJEmIjY11dVPMzp8/j//7v/9Dy5YtERgYCD8/P8TExGDcuHE4evSoebuRI0ciMDBQ1deuX78+Ro4cqeo+Tc6dO4fJkydj7969lbJ/USNHjkT9+vWFtpMkyfzl6+uLpk2bIiUlBdevXzdvN3nyZEiSVK62LFq0CHPmzCnXzxK5C29XN4CI7Pv8888BAAcPHsSvv/6Ke++916XtycjIQL9+/SDLMp5//nnEx8ejWrVqOHLkCBYuXIi4uDhcunTJpW0sr3PnzmHKlCmoX78+Wrdu7ermCPH398eGDRsAAJcuXcLixYvx1ltv4c8//8T//ve/Cu9/0aJFOHDgAJKTkyu8LyJXYbBD5MZ+++037Nu3Dw8++CB+/PFHzJ8/36XBTkFBAQYOHAg/Pz9s374dderUMT/XvXt3PPPMM1i2bJnL2ueurl27Bj8/v3L3rtjj5eWF++67z/z9Aw88gJMnT2Lp0qWYNWsWateurfprElU1HMYicmPz588HALz33nvo2LEjlixZgqtXr1ptd+bMGQwePBhBQUEIDQ3FY489hl27dkGSJHzxxRcW2/72228YMGAAwsLC4OfnhzZt2mDp0qVC7Zk3bx6ysrIwY8YMi0CnpMGDB1s9duzYMfTt2xeBgYGoW7cuXn75ZRQVFVlsk5ubi7Fjx6J27dqoVq0aGjZsiNdee81qu7IUFBRgwoQJaNCgAapVq4batWsjOTkZV65csdju22+/xb333ouQkBAEBASgYcOGGDVqFABg06ZN6NChAwDgn//8p3loaPLkyeafFzl2X3zxBSRJwrp16zBq1CjUqlULAQEBKCoqgsFgwIwZM9CsWTP4+voiIiICjz/+OM6cOaP4OzrCFPz8/fffNrcRaUv37t3x448/4u+//7YYLiOqahjsELmpa9euYfHixejQoQNiY2MxatQoFBYW4ttvv7XY7sqVK+jRowc2btyI6dOnY+nSpYiMjMTQoUOt9rlx40Z06tQJeXl5+Pjjj7Fy5Uq0bt0aQ4cOtQqKyrJu3TpoNBr0799f+Pe4ceMGBgwYgF69emHlypUYNWoUZs+ejenTp5u3uX79Onr06IGvvvoKL730En788UeMGDECM2bMQFJSkt39X716Fd26dcOXX36JF198EWvWrMHEiRPxxRdfYMCAAZBlGQCwY8cODB06FA0bNsSSJUvw448/4s0338TNmzcBAG3btsWCBQsAAK+//jp27NiBHTt24MknnyzXsRs1ahR8fHzw9ddfY9myZfDx8cGYMWMwceJEJCQkYNWqVXj77beRnp6Ojh074uLFi8LHVMmxY8cAALVq1bK5jUhbPvroI3Tq1AlRUVHm47Fjxw7V2knkNDIRuaWvvvpKBiB//PHHsizLcmFhoRwYGCh36dLFYrv//ve/MgB5zZo1Fo8/88wzMgB5wYIF5seaNWsmt2nTRr5x44bFtv369ZO1Wq2s1+vttqlZs2ZyVFSU8O/wxBNPyADkpUuXWjzet29fuWnTpubvP/744zK3mz59ugxAXrdunfmxevXqyU888YT5+2nTpsleXl7yrl27LH522bJlMgB59erVsizL8syZM2UAcl5ens327tq1y+qYmYgeuwULFsgA5Mcff9xiu8OHD8sA5LFjx1o8/uuvv8oA5FdffdX82BNPPCHXq1fPZjtLble9enX5xo0b8o0bN+QLFy7Ic+fOlSVJkjt06GDeLiUlRS75ce9IWx588EGhthC5M/bsELmp+fPnw9/fH48++igAIDAwEI888gi2bt1qMeNp8+bNCAoKQmJiosXPDxs2zOL7Y8eO4c8//8Rjjz0GALh586b5q2/fvtDpdDhy5IjVczdv3jT3jpSHJElWPUH33HOPxRDLhg0bUL16dashMNOsq59//tnm/n/44QfExsaidevWFm3u06cPJEnCpk2bAMA8RDVkyBAsXboUZ8+eFf4dHDl2Jg8//LDF9xs3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Wruv/eSTT+If//gHZs+ejQULFmDo0KEICAgw71er1WLTpk1WPxcaGgoA+Ne//oW1a9di5syZaNy4Mfz9/TF48GCrJOTq1atbfN+2bVtkZmZizZo1WL9+PYYMGYLevXtj2bJldttLRJWPwQ4RqSonJweHDx/GJ598gi5dugAAtm3bZn6+WbNm+Oabb1BUVARfX18AwG+//Waxj7Zt22L58uWoX7++wzOt+vbti+rVqyM1NRVr1qzBli1bLPablZUFb29vm/k0W7duxciRI/HQQw8BMObwnDx5Uui1g4ODMXToUAwdOhSDBw9GYmIicnNzOQuLyMU4jEVEqqpRowbCw8Px6aef4tixY9iwYQNeeukl8/PDhw+HwWDA008/jcOHD5t7UQCYe3yee+455ObmYtiwYcjIyMCJEyewbt06jBo1Cnq93u7razQajBw5EpMmTULjxo0RHx9vfq53796Ij4/HoEGDsHbtWpw8eRLbt2/H66+/bg64GjdujLS0NOzduxf79u0zt1fJ7NmzsWTJEvz555/466+/8O233yIqKsrcY0RErsNgh4hU5eXlhSVLlmD37t2IjY3F+PHj8e9//9v8fHBwML7//nvs3bsXrVu3xmuvvYY333wTAMx5PNHR0fjll1+g1+vRp08fxMbGYty4cQgJCYGXl/LH1ujRo1FcXIxRo0ZZPC5JElavXo2uXbti1KhRaNKkCR599FGcPHkSkZGRAIxBS40aNdCxY0f0798fffr0Qdu2bRVfMzAwENOnT0f79u3RoUMHnDx5EqtXrxZqLxFVLkkuPVhORORk33zzDf75z38iPz8f/v7+Qj/TvXt3tG7dGnPmzLF67pdffkH37t1x5swZcxDjDjZt2oQePXrg0qVL7PEhciLechCR03311VfYtm0bMjMzsWLFCkycOBFDhgwRDnRMPvroIwQGBmL//v0AgKKiIhw7dgxvvPEGhgwZ4laBTosWLfDAAw+4uhlEdyQmKBOR02VlZeHNN99EVlYWtFotHnnkEbz77rsO7eObb77BtWvXAAB33XUXAGDx4sUYPXo0Wrduja+//lr1dlfE6tWrcePGDQDGoTwich4OYxEREZFH4zAWEREReTQGO0REROTRGOwQERGRR2OwQ0RERB6NwQ4RERF5NAY7RERE5NEY7BAREZFHY7BDREREHo3BDhEREXm0/wfv754+JCm9zQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.scatter(x=df.age[df.target==1], y=df.chol[(df.target==1)], c=\"red\")\n", + "plt.scatter(x=df.age[df.target==0], y=df.chol[(df.target==0)])\n", + "plt.title('Age-Cholesterol Plot')\n", + "plt.xlabel('age[years]')\n", + "plt.ylabel('Cholesterol')\n", + "plt.legend([\"Disease\", \"No Disease\"])" + ] + }, + { + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/02_fit_fitGraph.ipynb b/notebooks/02_fit_fitGraph.ipynb new file mode 100644 index 0000000..a8537eb --- /dev/null +++ b/notebooks/02_fit_fitGraph.ipynb @@ -0,0 +1,314 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Graph fit example within pyROOT" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Welcome to JupyROOT 6.20/08\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import ROOT\n", + "from ROOT import TF1, TVirtualFitter, TGraphErrors, TCanvas, TMinuit, TFitResult, gROOT, TGraph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define the data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "numDat = 10 \n", + "x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype='d')\n", + "dx = np.array([0.1,0.1,0.5,0.1,0.5,0.1,0.5,0.1,0.5,0.1], dtype='d')\n", + "y = np.array([1.1 ,2.3 ,2.7 ,3.2 ,3.1 ,2.4 ,1.7 ,1.5 ,1.5 ,1.7 ], dtype='d')\n", + "dy = np.array([0.15,0.22,0.29,0.39,0.31,0.21,0.13,0.15,0.19,0.13], dtype='d')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define fit function" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def myNFunc(x, p):\n", + " return p[0] + x[0]*p[1] + p[2]*x[0]**2 + p[3]*x[0]**3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create ROOT function and set start parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "func = TF1('func',myNFunc, 0.5 ,10.5, 4)\n", + "func.SetParameters(-1.3, 2.6 , -0.24 , 0.005)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create Graph with error bars" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "Graph = TGraphErrors(numDat, x, y, dx, dy)\n", + "Graph.SetTitle( 'Fit Graph' )\n", + "Graph.SetMarkerColor( 4 )\n", + "Graph.SetMarkerStyle( 21 )\n", + "Graph.SetMaximum(4.)\n", + "Graph.SetMinimum(-1.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Start fitter and return fit result for later processing" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " FCN=2.15982 FROM MINOS STATUS=SUCCESSFUL 90 CALLS 2039 TOTAL\n", + " EDM=4.56889e-09 STRATEGY= 1 ERROR MATRIX ACCURATE \n", + " EXT PARAMETER STEP FIRST \n", + " NO. NAME VALUE ERROR SIZE DERIVATIVE \n", + " 1 p0 -1.03327e+00 4.63548e-01 -1.99485e-03 1.64067e-03\n", + " 2 p1 2.54886e+00 3.59144e-01 2.70551e-03 -5.29683e-02\n", + " 3 p2 -4.84278e-01 7.01863e-02 -2.72411e-04 -7.70245e-01\n", + " 4 p3 2.56882e-02 3.97082e-03 3.97082e-03 -1.30073e+00\n" + ] + } + ], + "source": [ + "result = Graph.Fit(func, \"M E S\",\"\",0.5,10.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Confidence plot" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "values = result.GetConfidenceIntervals(0.66, False)\n", + "interval = TGraphErrors(Graph.GetN())\n", + "for i in range(Graph.GetN()):\n", + " interval.SetPoint(i, Graph.GetX()[i], func.Eval(Graph.GetX()[i] ))\n", + " interval.SetPointError(i, 0, values[i] )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Canvas for plotting" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "c = TCanvas( 'c', 'A Simple Fit',700, 500)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Draw canvas and graph and 1 sigma confidence" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Graph.Draw(\"AP\")\n", + "interval.SetFillColor(21)\n", + "interval.Draw(\"3\")\n", + "c.Draw()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create graph for confidence interval\n", + "\n", + "Compute the confidence intervals at the x points of the created graph" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "GraphConf = TGraphErrors(Graph.GetN())\n", + "GraphConf.SetTitle(\"Fit Polynomial with .95 confidence;x;f(x)\")\n", + "for i in range(Graph.GetN()):\n", + " GraphConf.SetPoint(i, Graph.GetX()[i],0 )" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + " \n", + "TVirtualFitter.GetFitter().GetConfidenceIntervals(GraphConf,0.95)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now the \"GraphConf\" graph contains function values as its y-coordinates\n", + "and confidence intervals as the errors on these coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "myC = TCanvas(\"myC\", \"Confidence Intervall\",800, 800);" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "GraphConf.SetLineColor(4)\n", + "GraphConf.Draw(\"AP\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "Graph.SetLineColor(2)\n", + "Graph.SetMarkerStyle(21)\n", + "Graph.Draw(\"P SAME\")\n", + "func.SetLineColor(4)\n", + "func.Draw(\"SAME\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "myC.Draw()" + ] + } + ], + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/02_fit_iminuitFit.ipynb b/notebooks/02_fit_iminuitFit.ipynb new file mode 100644 index 0000000..ff23941 --- /dev/null +++ b/notebooks/02_fit_iminuitFit.ipynb @@ -0,0 +1,291 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit with the python interface to Minuit 2 called iminuit\n", + "https://iminuit.readthedocs.io/en/stable/" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "plt.rcParams[\"font.size\"] = 20\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Data " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype='d')\n", + "dx = np.array([0.1,0.1,0.5,0.1,0.5,0.1,0.5,0.1,0.5,0.1], dtype='d')\n", + "y = np.array([1.1 ,2.3 ,2.7 ,3.2 ,3.1 ,2.4 ,1.7 ,1.5 ,1.5 ,1.7 ], dtype='d')\n", + "dy = np.array([0.15,0.22,0.29,0.39,0.31,0.21,0.13,0.15,0.19,0.13], dtype='d')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define fit function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def pol3(a0, a1, a2, a3):\n", + " return a0 + x*a1 + a2*x**2 + a3*x**3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "least-squares function: sum of data residuals squared" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def LSQ(a0, a1, a2, a3):\n", + " return np.sum((y - pol3(a0, a1, a2, a3)) ** 2 / dy ** 2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "import Minuit object" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from iminuit import Minuit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Minuit instance using LSQ function to minimize" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "LSQ.errordef = Minuit.LEAST_SQUARES\n", + "#LSQ.errordef = Minuit.LIKELIHOOD\n", + "m = Minuit(LSQ,a0=-1.3, a1=2.6 ,a2=-0.24 ,a3=0.005)\n", + "m.fixed[\"a3\"] = True \n", + "m.params" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "run migrad" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.fixed[\"a3\"] = False\n", + "m.params\n", + "m.migrad()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get contour" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.draw_mncontour(\"a2\", \"a3\", cl=[1, 2, 3])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Improve the fit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.hesse()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.minos()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "access fit results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(m.values,m.errors)\n", + "a0_fit = m.values[\"a0\"]\n", + "a1_fit = m.values[\"a1\"]\n", + "a2_fit = m.values[\"a2\"]\n", + "a3_fit = m.values[\"a3\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print (m.covariance)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "prepare data to display fitted function " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x_plot = np.linspace( 0.5, 10.5 , 500 )\n", + "y_fit = a0_fit + a1_fit * x_plot + a2_fit * x_plot**2 + a3_fit * x_plot**3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Minos algorithm uses the profile likelihood method to compute (generally asymmetric) confidence intervals. This can be plotted" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.draw_profile(\"a2\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get a 2D contour of the function around the minimum for 2 parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m.draw_mncontour(\"a2\", \"a3\" , cl=[1, 2, 3])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "lotlib" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure()\n", + "plt.errorbar(x, y, dy , dx, fmt=\"o\")\n", + "plt.plot(x_plot, y_fit)\n", + "plt.title(\"iminuit Fit Test\")\n", + "plt.xlim(-0.1, 10.1)\n", + "plt.show()" + ] + } + ], + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/02_fit_numpyFit.ipynb b/notebooks/02_fit_numpyFit.ipynb new file mode 100644 index 0000000..b3a228b --- /dev/null +++ b/notebooks/02_fit_numpyFit.ipynb @@ -0,0 +1,338 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit 3rd order Polynomial to graph data using numpy" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "plt.rcParams[\"font.size\"] = 20\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype='d')\n", + "dx = np.array([0.1,0.1,0.5,0.1,0.5,0.1,0.5,0.1,0.5,0.1], dtype='d')\n", + "y = np.array([1.1 ,2.3 ,2.7 ,3.2 ,3.1 ,2.4 ,1.7 ,1.5 ,1.5 ,1.7 ], dtype='d')\n", + "dy = np.array([0.15,0.22,0.29,0.39,0.31,0.21,0.13,0.15,0.19,0.13], dtype='d')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "create numpy array with weights as 1/error " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "ones = np.ones(10, dtype='d')\n", + "weight = ones/dy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "various fit options" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "n = 3 \n", + "#model = np.polyfit(x, y, n, 0 , 0, weight, cov='unscaled' )\n", + "#model, fitCov = np.polyfit(x, y, n , 0 , 0, weight, cov='unscaled' )\n", + "model, fitCov = np.polyfit(x, y, n , 0 , 0, weight, cov='unscaled' )\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "monitor printout of coefficient polynomial vector (model) and covariance matrix (fitCov)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0.02590585 -0.48405665 2.52045767 -0.98073638]\n", + "[[ 1.19801683e-05 -2.07833174e-04 9.95675425e-04 -9.97263377e-04]\n", + " [-2.07833174e-04 3.65835615e-03 -1.78482005e-02 1.83096634e-02]\n", + " [ 9.95675425e-04 -1.78482005e-02 8.93452262e-02 -9.59887600e-02]\n", + " [-9.97263377e-04 1.83096634e-02 -9.59887600e-02 1.19001618e-01]]\n" + ] + } + ], + "source": [ + "print (model)\n", + "print (fitCov)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "prepare errors for plotting, see\n", + "https://stackoverflow.com/questions/28505008/numpy-polyfit-how-to-get-1-sigma-uncertainty-around-the-estimated-curve/28528966\n", + "write polynomial as np.dot(yy, model) with yy=[x**n, x*n-1, ..., 1] and x can be a single value or \n", + "or a vector and model as coefficient vector. Since this a linear equation, with the covariance matrix\n", + "fitCov of model, the covariance matrix of the values is np.dot(yy, np.dot(model, yy.T))." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Do the interpolation for plotting" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "x_plot = np.linspace(0.1, 10.5, 500)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Matrix with rows 1, x, x**2, ..." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "YY = np.vstack([x_plot**(n-i) for i in range(n+1)]).T" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "matrix multiplication calculates the polynomial values" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "y_plot = np.dot(YY, model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Covariance_y = YY*Covariance*YY.T" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "fitCov_y_plot = np.dot(YY, np.dot(fitCov, YY.T))\n", + "Sigma_y_plot = np.sqrt(np.diag(fitCov_y_plot))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "model contains parameters in order highest power first! Define fit function " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def fitpol3(model):\n", + " return model[3] + model[2]*x + model[1]*x**2 + model[0]*x**3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "construct polynomial from coefficients in model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "predict = np.poly1d(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "r_2 coefficient of the determination of the regression score function\n", + "input are the y data values and the prediction from the fit with x data values \n", + "this is borrowed from scikit-learn" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.9486643210376879\n" + ] + } + ], + "source": [ + "from sklearn.metrics import r2_score\n", + "p = r2_score(y, predict(x))\n", + "print (p)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "plot data" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.errorbar(x, y, dy , dx, fmt=\"o\")\n", + "plt.plot(x, fitpol3(model) )\n", + "plt.title(\"numpy Fit Test\")\n", + "plt.xlim(-0.1, 10.1)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "plot data with covariance" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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CIK4atWqsNtaLBYxIyND2j6SH4Td6UkAFYu/c7Tvt1h/V4R6boIgdLtfURTF559/XnrM7Nmzu9y2vr5eVKlU0v5LS0u73X84x48fl57TzJkzu9x2QAdQt912W5fbWiyWdsGG2WzutE1/BFA/+9nPutxfcO4FAHHNmjVdbn/22WdL27777rvdHv/ss8/u9jndf//90vannXZayG3Gjx8vbbNu3bqw+7r11lul7W655ZZujx2J4AAq0n87duwIua+BFkA99dRT0uNuvPHGiB5z8803S4/573//2+6+ysrKbt8LkerL13Hz5s3Svk8//fRO9997773S/WVlZdIPlVDb/vrXv5a2ffjhh3v8XHobQMXiOy1awe+7WP176aWXetWOaN7/Xq9XHDJkiPTYu+66q9vH/OhHP5K2P++886Jua0fRnhNi9XeO9v0W6++KVsHP7corr4xov01NTVIgA0A8evRo2G2feeaZqM5n3Tn//PMj+gz19PsrYWfhBbviiiu6vD8lJUXKvRFFEWVlZf3RrE6WLl3a5f0TJkyQLmu1Wpx//vkRb3/8+PFuj3/99dd3u82yZcukyzt37kRjY2OnbX74wx9Kl1944YWQ+3G5XPjXv/4lXb/xxhu7PTb1zvvvvy9dvuqqqyJ6zDnnnCNd/vLLL9vdl5WVBa1WCwDYvXs3Pv/88xi0MvamTZsm5Xx8++23aG5ubnd/a07TiBEjUFRUJOU1dbUtEF3+U6wly3daIlm7dq30OmRkZOCBBx7o9jGnnXaadLmqqqqvmhZWvP7Osf6uCCXS/ZpMJlx00UXS9eDzRkevv/66dPn73/9+t/suKyvDW2+9hUceeQR33303brvtNtx6663Sv9bzpiiK2LlzZ0TtjUZSJJFPnDix220yMjKky10lD/al8ePHd3l/WlqadLmkpAQKRdcvf/D2rUl1XTn99NO73WbUqFHIyMiQktS/++47zJ8/v9021113He655x44nU7873//C5n4984776ChoQEAMHXq1E6JfrGwYsWKXlUiH2g2bdokXX7llVewevXqbh9TUVEhXS4vL293n1KpxJIlS/Cvf/0LPp8P5557Li6//HJcfvnlmDt3brvPVDwpFArMmTMH69atg9frxRdffCH9+LDZbNIU7Nb38fz58/HMM8902tbhcEiJx3q9HjNmzIjDswmIx3faypUr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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fg, ax = plt.subplots(1, 1)\n", + "ax.set_title(\"numpy Fit Test with $\\pm1\\sigma$ interval\")\n", + "ax.fill_between(x_plot, y_plot+Sigma_y_plot, y_plot-Sigma_y_plot, alpha=.25)\n", + "ax.plot(x_plot, y_plot,'-')\n", + "ax.errorbar(x, y,dy , dx, fmt='o')\n", + "ax.axis('tight')\n", + "\n", + "fg.canvas.draw()\n", + "plt.show()" + ] + }, + { + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/03_ml_basics_display_Clothing.ipynb b/notebooks/03_ml_basics_display_Clothing.ipynb new file mode 100644 index 0000000..36a5712 --- /dev/null +++ b/notebooks/03_ml_basics_display_Clothing.ipynb @@ -0,0 +1,122 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8f9f0e7b", + "metadata": {}, + "source": [ + "Display fashion_mnist dataset of clothes from Zalando" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc829d9a", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63348efe", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the MNIST Fashion dataset\n", + "(x_train, y_train), (x_test, y_test) = keras.datasets.fashion_mnist.load_data()\n", + "# Set the class names\n", + "class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', \n", + " 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6c86027", + "metadata": {}, + "outputs": [], + "source": [ + "# print the shape of the numpy arrays\n", + "print ('Print shape of pixel data')\n", + "print(x_train.shape)\n", + "print ('Print shape of labels')\n", + "print(y_train.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc58b142", + "metadata": {}, + "outputs": [], + "source": [ + "# Normalize pixel values to between 0 and 1\n", + "x_train = x_train.astype(\"float32\") / 255.0\n", + "x_test = x_test.astype(\"float32\") / 255.0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c7976111", + "metadata": {}, + "outputs": [], + "source": [ + "# choose an image num to print\n", + "num = 20\n", + "image = x_train[num]\n", + "label = y_train[num]\n", + "\n", + "print ('Print normailzed pixel data of image ',num, ' :')\n", + "print(x_train[num])\n", + "print ('Print label of image ',num , ' :' )\n", + "print(y_train[num])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64a46625", + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(10,10))\n", + "for i in range(25):\n", + " plt.subplot(5,5,i+1)\n", + " plt.xticks([])\n", + " plt.yticks([])\n", + " plt.grid(False)\n", + " plt.imshow(x_train[i], cmap=plt.cm.binary)\n", + " plt.xlabel(class_names[y_train[i]])\n", + "plt.show()" + ] + } + ], + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/03_ml_basics_display_HandWrt.ipynb b/notebooks/03_ml_basics_display_HandWrt.ipynb new file mode 100644 index 0000000..03f65e6 --- /dev/null +++ b/notebooks/03_ml_basics_display_HandWrt.ipynb @@ -0,0 +1,134 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "3644475e", + "metadata": {}, + "outputs": [], + "source": [ + "# Display hand writing dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8125479b", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d45b964f", + "metadata": {}, + "outputs": [], + "source": [ + "# Load training dataset of 60000 images with greyscale values in 28 x 28\n", + "# and labels \n", + "(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa8ae2a6", + "metadata": {}, + "outputs": [], + "source": [ + "# print the shape of the numpy arrays\n", + "print ('Print shape of pixel data')\n", + "print(x_train.shape)\n", + "print ('Print shape of labels')\n", + "print(y_train.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "be70973e", + "metadata": {}, + "outputs": [], + "source": [ + "# normalize pixel to 0-1\n", + "x_train = x_train / 255\n", + "x_test = x_test / 255" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55f457d5", + "metadata": {}, + "outputs": [], + "source": [ + "# choose an image num to display and print\n", + "num = 20\n", + "\n", + "image = x_train[num]\n", + "label = y_train[num]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "149788b7", + "metadata": {}, + "outputs": [], + "source": [ + "# plot the image using imshow\n", + "plt.imshow(image, cmap='gray')\n", + "# set the title\n", + "plt.title(\"Label: %d\" % label )\n", + "# remove the axis labels and ticks\n", + "plt.axis('off')\n", + "# show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "232ef6ca", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot 16 examples from the numpy array which was read in above\n", + "# and display it\n", + "fig, axes = plt.subplots(4, 4, figsize=(10, 10))\n", + "for i , ax in enumerate(axes.ravel()):\n", + " ax.imshow(x_train[num+i], cmap='gray')\n", + " ax.set_title(\"Label: %d\" % y_train[num+i])\n", + " ax.axis('off')\n", + "plt.suptitle(\"Examples of training set images\")\n", + "plt.show()" + ] + } + ], + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/03_ml_basics_display_HorseOrHuman.ipynb b/notebooks/03_ml_basics_display_HorseOrHuman.ipynb new file mode 100644 index 0000000..7efff50 --- /dev/null +++ b/notebooks/03_ml_basics_display_HorseOrHuman.ipynb @@ -0,0 +1,197 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2eaba66b", + "metadata": {}, + "source": [ + "Read and Display Horse or Human machine learning dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f1e48ac0", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "import tensorflow_datasets as tfds\n", + "from tensorflow.keras import regularizers\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "feda024e", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the horse or human dataset\n", + "#(300, 300, 3) unint8\n", + "dataset, label = tfds.load('horses_or_humans', with_info=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35991dec", + "metadata": {}, + "outputs": [], + "source": [ + "# Extract the horse/human class\n", + "horse_ds = dataset['train'].filter(lambda x: x['label'] == 0)\n", + "human_ds = dataset['train'].filter(lambda x: x['label'] == 1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fab03aa8", + "metadata": {}, + "outputs": [], + "source": [ + "# Take a few examples < 16\n", + "n_examples = 5\n", + "horse_examples = horse_ds.take(n_examples)\n", + "human_examples = human_ds.take(n_examples)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c33f1acd", + "metadata": {}, + "outputs": [], + "source": [ + "# Display the examples\n", + "fig, axes = plt.subplots(1, n_examples, figsize=(15, 15))\n", + "for i, example in enumerate(human_examples):\n", + " image = example['image']\n", + " axes[i].imshow(image)\n", + " axes[i].set_title(f\"humans {i+1}\")\n", + "plt.show()\n", + "\n", + "fig, axes = plt.subplots(1, n_examples, figsize=(15, 15))\n", + "for i, example in enumerate(horse_examples):\n", + " image = example['image']\n", + " axes[i].imshow(image)\n", + " axes[i].set_title(f\"horses {i+1}\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25f3eeb3", + "metadata": {}, + "outputs": [], + "source": [ + "# Split the dataset into training and validation sets\n", + "# as_supervised: Specifies whether to return the dataset as a tuple\n", + "# of (input, label) pairs.\n", + "train_dataset, valid_dataset = tfds.load('horses_or_humans', split=['train','test'], as_supervised=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29dc0e62", + "metadata": {}, + "outputs": [], + "source": [ + "# Get the number of elements in the training and validation dataset\n", + "train_size = tf.data.experimental.cardinality(train_dataset).numpy()\n", + "valid_size = tf.data.experimental.cardinality(valid_dataset).numpy()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db8aaf91", + "metadata": {}, + "outputs": [], + "source": [ + "IMG_SIZE = 300\n", + "NUM_CLASSES = 2\n", + "\n", + "def preprocess(image, label):\n", + " image = tf.cast(image, tf.float32)\n", + "# # Resize the images to a fixed size\n", + " image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))\n", + "# # Rescale the pixel values to be between 0 and 1\n", + " image = image / 255.0\n", + " label = tf.one_hot(label, NUM_CLASSES)\n", + " return image, label" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d59661c3", + "metadata": {}, + "outputs": [], + "source": [ + "# Apply the preprocessing function to the datasets\n", + "train_dataset = train_dataset.map(preprocess)\n", + "valid_dataset = valid_dataset.map(preprocess)\n", + "\n", + "# Batch and shuffle the datasets\n", + "train_dataset = train_dataset.shuffle(2000).batch(80)\n", + "valid_dataset = valid_dataset.batch(20)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9399bc99", + "metadata": {}, + "outputs": [], + "source": [ + "# Get the number of elements in the trainingand validation dataset\n", + "train_size = tf.data.experimental.cardinality(train_dataset).numpy()\n", + "valid_size = tf.data.experimental.cardinality(valid_dataset).numpy()\n", + "print(\"Training dataset size:\", train_size)\n", + "print(\"Validation dataset size:\", valid_size)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13af7d53", + "metadata": {}, + "outputs": [], + "source": [ + "# Store images and labels of the validation data for predictions\n", + "for images, labels in valid_dataset:\n", + " x_val = images\n", + " y_val = labels\n", + " \n", + "print(x_val.shape, y_val.shape)" + ] + } + ], + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/03_ml_basics_ex_4_mlp_clothing.ipynb b/notebooks/03_ml_basics_ex_4_mlp_clothing.ipynb new file mode 100644 index 0000000..a66819c --- /dev/null +++ b/notebooks/03_ml_basics_ex_4_mlp_clothing.ipynb @@ -0,0 +1,236 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "6c180d4b", + "metadata": {}, + "outputs": [], + "source": [ + "# Exercise 3\n", + "# fashion mnist data\n", + "# MLP model with two hidden layers, each with a ReLU activation function.\n", + "# Input data is flattened to a 1D array and passed to the model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b0e31b9c", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1ae1412e", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the MNIST Fashion dataset\n", + "(x_train, y_train), (x_test, y_test) = keras.datasets.fashion_mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f8814914", + "metadata": {}, + "outputs": [], + "source": [ + "# Normalize pixel values to between 0 and 1\n", + "x_train = x_train.astype(\"float32\") / 255.0\n", + "x_test = x_test.astype(\"float32\") / 255.0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2810da39", + "metadata": {}, + "outputs": [], + "source": [ + "# MNIST dataset images have a shape of (28, 28). The images are flattened\n", + "# into a 1D array of length 784 \n", + "x_train = x_train.reshape(-1, 784)\n", + "x_test = x_test.reshape(-1, 784)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96f7ff8a", + "metadata": {}, + "outputs": [], + "source": [ + "# The model is defined here with three dense (fully connected) layers\n", + "# The first layer is a Dense layer with 128 units and a ReLU activation\n", + "# function with an input shape of (784,). This layer serves as the input\n", + "# layer of the model.\n", + "# The second layer is also a Dense layer with 64 units and a ReLU activation\n", + "# function. This layer takes the output of the previous layer as input, and\n", + "# applies a non-linear transformation to it to produce a new set of features\n", + "# that the next layer can use.\n", + "# The third is another Dense layer, one for each class in the output. The\n", + "# output is raw scores or logits for each class since there is no activation\n", + "# function . This layer is responsible for producing the final output of the\n", + "# model, which can then be used to make predictions.\n", + "# With Dropout(0.2) 20 % of the input is randomly droped, this should reduce overfitting\n", + "model = keras.Sequential([\n", + " keras.layers.Dense(128, activation='relu', input_shape=(784,)),\n", + " # keras.layers.Dropout(0.2),\n", + " keras.layers.Dense(64, activation='relu'),\n", + " keras.layers.Dense(10)\n", + "])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fe609c", + "metadata": {}, + "outputs": [], + "source": [ + "# Compile the model\n", + "# adam = specifies the optimizer to use during training\n", + "# loss function to use during training, SparseCategoricalCrossentropy loss\n", + "# is commonly used for multi-class classification problems.\n", + "# from_logits=True indicates that the model's output is a raw score\n", + "# for each class and not a probability distribution.\n", + "model.compile(optimizer='adam',\n", + " loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),\n", + " metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf6c978d", + "metadata": {}, + "outputs": [], + "source": [ + "# Train the model\n", + "history = model.fit(x_train, y_train, epochs=10, validation_split=0.2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97fc2313", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Evaluate the model on the test set\n", + "test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)\n", + "print(\"Test accuracy:\", test_acc)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ef5f19d0", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the training and validation accuracy and loss over time\n", + "plt.figure(figsize=(10, 4))\n", + "plt.subplot(1, 2, 1)\n", + "plt.plot(history.history[\"accuracy\"])\n", + "plt.plot(history.history[\"val_accuracy\"])\n", + "plt.title(\"Model accuracy\")\n", + "plt.ylabel(\"Accuracy\")\n", + "plt.xlabel(\"Epoch\")\n", + "plt.legend([\"Train\", \"Validation\"], loc=\"lower right\")\n", + "\n", + "plt.subplot(1, 2, 2)\n", + "plt.plot(history.history[\"loss\"])\n", + "plt.plot(history.history[\"val_loss\"])\n", + "plt.title(\"Model loss\")\n", + "plt.ylabel(\"Loss\")\n", + "plt.xlabel(\"Epoch\")\n", + "plt.legend([\"Train\", \"Validation\"], loc=\"upper right\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c0ebddc4", + "metadata": {}, + "outputs": [], + "source": [ + "# Plot a confusion matrix of the test set predictions\n", + "test_preds = np.argmax(model.predict(x_test), axis=1)\n", + "conf_mat = tf.math.confusion_matrix(y_test, test_preds)\n", + "plt.imshow(conf_mat, cmap=\"Blues\")\n", + "plt.xlabel(\"Predicted labels\")\n", + "plt.ylabel(\"True labels\")\n", + "plt.xticks(np.arange(10))\n", + "plt.yticks(np.arange(10))\n", + "plt.colorbar()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9175d533", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Make predictions on the test set\n", + "y_pred = model.predict(x_test)\n", + "y_pred = np.argmax(y_pred, axis=1)\n", + "\n", + "# Plot some examples from the test set and their predictions\n", + "fig, axes = plt.subplots(4, 4, figsize=(18, 18))\n", + "for i, ax in enumerate(axes.ravel()):\n", + " ax.matshow(x_test[i].reshape(28, 28), cmap='gray')\n", + " ax.set_title(\"True: %d\\nPredict: %d\" % (y_test[i], y_pred[i]))\n", + " ax.axis(\"off\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4a6e85be", + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/03_ml_basics_minimizer.ipynb b/notebooks/03_ml_basics_minimizer.ipynb new file mode 100644 index 0000000..21058c9 --- /dev/null +++ b/notebooks/03_ml_basics_minimizer.ipynb @@ -0,0 +1,166 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "042acd49", + "metadata": {}, + "source": [ + "# Test a minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb51a492", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy.optimize import minimize\n", + "plt.style.use(\"ggplot\")\n", + "from matplotlib import colors, cm" + ] + }, + { + "cell_type": "markdown", + "id": "2ac3651a", + "metadata": {}, + "source": [ + "plt.rcParams controls the appearance of your plots globally,\n", + "affecting all subsequent plots created in your session." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97ef9933", + "metadata": {}, + "outputs": [], + "source": [ + "plt.rcParams[\"axes.grid\"] = False\n", + "plt.rcParams.update({'font.size': 20})\n", + "plt.rcParams.update({'figure.figsize': (12,9)})\n", + "plt.rcParams['lines.markersize'] = 8" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f15200f9", + "metadata": {}, + "outputs": [], + "source": [ + "# Generate data points with gaussian smearing\n", + "data = np.random.uniform(size=100)\n", + "labels = 5.*data*data*data + 1 + np.random.normal(loc=0.0, scale=0.1, size=100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7237f5ed", + "metadata": {}, + "outputs": [], + "source": [ + "# show plot\n", + "plt.scatter(data, labels, label=\"data\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d6e104c", + "metadata": {}, + "outputs": [], + "source": [ + "# define chi2 like cost function\n", + "def cost(params):\n", + " W, b = params\n", + " return np.mean((labels - (W*data*data*data + b))**2)" + ] + }, + { + "cell_type": "markdown", + "id": "8e00e16a", + "metadata": {}, + "source": [ + "call minimizer\n", + "provides a collection of optimization algorithms for finding the minimum or maximum of a given function. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "433975c3", + "metadata": {}, + "outputs": [], + "source": [ + "res = minimize(cost, [1., 1.])\n", + "# returns an OptimizeResult object\n", + "# x :the solution (minimum) of the optimization problem, represented as an\n", + "# array.\n", + "# Results of the minimization\n", + "W, b = res.x\n", + "print ('function value at the minimum and fitted parameters',res.fun,' ',W,' ',b)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e1f4e81", + "metadata": {}, + "outputs": [], + "source": [ + "points = np.linspace(0, 1, 100)\n", + "prediction = W*points*points*points + b" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d8de971e", + "metadata": {}, + "outputs": [], + "source": [ + "# plot fit model\n", + "plt.scatter(data, labels, label=\"data\")\n", + "plt.plot(points, prediction, label=\"model\", color=\"green\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4a7d62c2", + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/03_ml_basics_tf_broadcasting.ipynb b/notebooks/03_ml_basics_tf_broadcasting.ipynb new file mode 100644 index 0000000..93ba24f --- /dev/null +++ b/notebooks/03_ml_basics_tf_broadcasting.ipynb @@ -0,0 +1,118 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "df1f5eb3", + "metadata": {}, + "source": [ + "# demonstration of broadcasting in tensorflow" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1d61c70a", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38bca1cf", + "metadata": {}, + "outputs": [], + "source": [ + "# Define two tensors with different shapes\n", + "a = tf.constant([[1, 2, 3], [4, 5, 6]])\n", + "b = tf.constant([10, 20, 30])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3f382e3", + "metadata": {}, + "outputs": [], + "source": [ + "# Perform element-wise multiplication using broadcasting\n", + "c = a * b\n", + "# Print the result\n", + "print(c)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95683fe5", + "metadata": {}, + "outputs": [], + "source": [ + "# Broadcasting scalar to tensor\n", + "x = tf.constant([1, 2, 3])\n", + "y = 2\n", + "z = x + y # equivalent to tf.add(x, y)\n", + "print(z.numpy()) # [3 4 5]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8ed98565", + "metadata": {}, + "outputs": [], + "source": [ + "# Broadcasting vector to matrix\n", + "x = tf.constant([[1, 2], [3, 4]])\n", + "y = tf.constant([1, 2])\n", + "z = x + y # equivalent to tf.add(x, y)\n", + "print(z.numpy()) # [[2 4], [4 6]]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41f4196f", + "metadata": {}, + "outputs": [], + "source": [ + "# Broadcasting matrix to tensor\n", + "x = tf.constant([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])\n", + "y = tf.constant([[1], [2]])\n", + "z = x + y # equivalent to tf.add(x, y)\n", + "print(z.numpy()) # [[[2 3], [4 5]], [[7 8], [9 10]]]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "76a5108d", + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/03_ml_basics_tf_differentiate.ipynb b/notebooks/03_ml_basics_tf_differentiate.ipynb new file mode 100644 index 0000000..3df9807 --- /dev/null +++ b/notebooks/03_ml_basics_tf_differentiate.ipynb @@ -0,0 +1,102 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "eefe7571", + "metadata": {}, + "outputs": [], + "source": [ + "# show differentiation in Tensorflow" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a9d7c185", + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "584384f1", + "metadata": {}, + "outputs": [], + "source": [ + "# Define a function to differentiate\n", + "def f(x):\n", + " return x ** 2 + 2 * x + 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "70430402", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a TensorFlow variable\n", + "x = tf.Variable(2.0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45ea0a33", + "metadata": {}, + "outputs": [], + "source": [ + "# Use tf.GradientTape to record the gradients\n", + "with tf.GradientTape() as tape:\n", + " y = f(x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6b1ff27", + "metadata": {}, + "outputs": [], + "source": [ + "# Calculate the gradient of y with respect to x\n", + "dy_dx = tape.gradient(y, x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f581817", + "metadata": {}, + "outputs": [], + "source": [ + "# Print the result\n", + "print(dy_dx)" + ] + } + ], + "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.8.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}