Skip to content

Instantly share code, notes, and snippets.

@NassimElH01
Last active December 14, 2024 10:46
Show Gist options
  • Select an option

  • Save NassimElH01/0864262cf43f4be38a7bc686ff78c6e3 to your computer and use it in GitHub Desktop.

Select an option

Save NassimElH01/0864262cf43f4be38a7bc686ff78c6e3 to your computer and use it in GitHub Desktop.
Nassim - Linear_Regression.ipynb ( OPG 1A )
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/NassimElH01/0864262cf43f4be38a7bc686ff78c6e3/nassim-linear_regression-ipynb-opg-1a.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"### Ensure that we use Python 3.7 or above:"
],
"metadata": {
"id": "cifewyhF9BAO"
}
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "8KOQTcKX8bg2"
},
"outputs": [],
"source": [
"import sys\n",
"\n",
"assert sys.version_info >= (3, 7)"
]
},
{
"cell_type": "markdown",
"source": [
"### Ensure that we use at least Scikit-Learn 1.0.1"
],
"metadata": {
"id": "MdUYfAR79gu8"
}
},
{
"cell_type": "code",
"source": [
"from packaging import version\n",
"import sklearn\n",
"\n",
"assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")"
],
"metadata": {
"id": "cEyMjLcU86Dw"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### Let us set up the fonts in mathplotlib"
],
"metadata": {
"id": "y2xAwFNX-Q0D"
}
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.rc('font', size=12)\n",
"plt.rc('axes', labelsize=14, titlesize=14)\n",
"plt.rc('legend', fontsize=12)\n",
"plt.rc('xtick', labelsize=10)\n",
"plt.rc('ytick', labelsize=10)"
],
"metadata": {
"id": "gwi4DUJV-K1b"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### Import important libraries 'numpy' and 'pandas'"
],
"metadata": {
"id": "tvKLkp_dHHwf"
}
},
{
"cell_type": "code",
"source": [
"import numpy as np\n",
"import pandas as pd"
],
"metadata": {
"id": "gK4Onnhy-6o8"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# Make reference to life satifaction data file"
],
"metadata": {
"id": "zZoc-LzQHYcB"
}
},
{
"cell_type": "code",
"source": [
"datafile = \"https://github.com/ageron/data/raw/main/lifesat/lifesat.csv\"\n",
"\n",
"##Try with this one later\n",
"##datafile = \"https://raw.githubusercontent.com/jpandersen61/Machine-Learning/main/InjuredandkilledintrafikDK.csv\""
],
"metadata": {
"id": "1EB-X59l_zgg"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### Excercise(s):"
],
"metadata": {
"id": "GLUiNLM-HqXJ"
}
},
{
"cell_type": "markdown",
"source": [
"Try viewing this file in your internet browser"
],
"metadata": {
"id": "Xd2829tIAimY"
}
},
{
"cell_type": "markdown",
"source": [
"### Load the data file"
],
"metadata": {
"id": "yWx2mhWjIMq4"
}
},
{
"cell_type": "code",
"source": [
"lifesat = pd.read_csv(datafile)\n"
],
"metadata": {
"id": "9g1ETm1Y_Q2c"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### Excercise(s)"
],
"metadata": {
"id": "JBJfOo9HFmhK"
}
},
{
"cell_type": "markdown",
"source": [
"1. Make a new code cell below and evaluate 'lifesat'"
],
"metadata": {
"id": "IuZ12x0WF6QK"
}
},
{
"cell_type": "code",
"source": [
"lifesat"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 886
},
"id": "PBQsMeE7Goed",
"outputId": "3d8aa509-18bc-4e29-cacb-bf4f32cc5030"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Country GDP per capita (USD) Life satisfaction\n",
"0 Russia 26456.387938 5.8\n",
"1 Greece 27287.083401 5.4\n",
"2 Turkey 28384.987785 5.5\n",
"3 Latvia 29932.493910 5.9\n",
"4 Hungary 31007.768407 5.6\n",
"5 Portugal 32181.154537 5.4\n",
"6 Poland 32238.157259 6.1\n",
"7 Estonia 35638.421351 5.7\n",
"8 Spain 36215.447591 6.3\n",
"9 Slovenia 36547.738956 5.9\n",
"10 Lithuania 36732.034744 5.9\n",
"11 Israel 38341.307570 7.2\n",
"12 Italy 38992.148381 6.0\n",
"13 United Kingdom 41627.129269 6.8\n",
"14 France 42025.617373 6.5\n",
"15 New Zealand 42404.393738 7.3\n",
"16 Canada 45856.625626 7.4\n",
"17 Finland 47260.800458 7.6\n",
"18 Belgium 48210.033111 6.9\n",
"19 Australia 48697.837028 7.3\n",
"20 Sweden 50683.323510 7.3\n",
"21 Germany 50922.358023 7.0\n",
"22 Austria 51935.603862 7.1\n",
"23 Iceland 52279.728851 7.5\n",
"24 Netherlands 54209.563836 7.4\n",
"25 Denmark 55938.212809 7.6\n",
"26 United States 60235.728492 6.9"
],
"text/html": [
"\n",
" <div id=\"df-4bd382f6-8b82-462e-87e7-791496cf5c32\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Country</th>\n",
" <th>GDP per capita (USD)</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Russia</td>\n",
" <td>26456.387938</td>\n",
" <td>5.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Greece</td>\n",
" <td>27287.083401</td>\n",
" <td>5.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Turkey</td>\n",
" <td>28384.987785</td>\n",
" <td>5.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Latvia</td>\n",
" <td>29932.493910</td>\n",
" <td>5.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Hungary</td>\n",
" <td>31007.768407</td>\n",
" <td>5.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Portugal</td>\n",
" <td>32181.154537</td>\n",
" <td>5.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Poland</td>\n",
" <td>32238.157259</td>\n",
" <td>6.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Estonia</td>\n",
" <td>35638.421351</td>\n",
" <td>5.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Spain</td>\n",
" <td>36215.447591</td>\n",
" <td>6.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Slovenia</td>\n",
" <td>36547.738956</td>\n",
" <td>5.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Lithuania</td>\n",
" <td>36732.034744</td>\n",
" <td>5.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Israel</td>\n",
" <td>38341.307570</td>\n",
" <td>7.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Italy</td>\n",
" <td>38992.148381</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>United Kingdom</td>\n",
" <td>41627.129269</td>\n",
" <td>6.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>France</td>\n",
" <td>42025.617373</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>New Zealand</td>\n",
" <td>42404.393738</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Canada</td>\n",
" <td>45856.625626</td>\n",
" <td>7.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Finland</td>\n",
" <td>47260.800458</td>\n",
" <td>7.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Belgium</td>\n",
" <td>48210.033111</td>\n",
" <td>6.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Australia</td>\n",
" <td>48697.837028</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Sweden</td>\n",
" <td>50683.323510</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Germany</td>\n",
" <td>50922.358023</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Austria</td>\n",
" <td>51935.603862</td>\n",
" <td>7.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Iceland</td>\n",
" <td>52279.728851</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Netherlands</td>\n",
" <td>54209.563836</td>\n",
" <td>7.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Denmark</td>\n",
" <td>55938.212809</td>\n",
" <td>7.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>United States</td>\n",
" <td>60235.728492</td>\n",
" <td>6.9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4bd382f6-8b82-462e-87e7-791496cf5c32')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-4bd382f6-8b82-462e-87e7-791496cf5c32 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-4bd382f6-8b82-462e-87e7-791496cf5c32');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-384f2af9-3afe-40a8-9f13-a61af7bfc0c1\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-384f2af9-3afe-40a8-9f13-a61af7bfc0c1')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-384f2af9-3afe-40a8-9f13-a61af7bfc0c1 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_369dbce8-7881-4571-9f77-6dae2f683a7c\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('lifesat')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_369dbce8-7881-4571-9f77-6dae2f683a7c button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('lifesat');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "lifesat",
"summary": "{\n \"name\": \"lifesat\",\n \"rows\": 27,\n \"fields\": [\n {\n \"column\": \"Country\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 27,\n \"samples\": [\n \"Spain\",\n \"United Kingdom\",\n \"Slovenia\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"GDP per capita (USD)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 9631.452318546564,\n \"min\": 26456.3879381321,\n \"max\": 60235.7284916969,\n \"num_unique_values\": 27,\n \"samples\": [\n 36215.4475907307,\n 41627.129269425,\n 36547.7389559849\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Life satisfaction\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7656068482934607,\n \"min\": 5.4,\n \"max\": 7.6,\n \"num_unique_values\": 19,\n \"samples\": [\n 5.8,\n 6.1,\n 6.5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "markdown",
"source": [
"2. Get some information about the kind of data structure, that life satisfaction data is store in. Usefuk to know when using the data afterwards in Python: Make a new code cell below and evaluate 'type(lifesat)'"
],
"metadata": {
"id": "aDwhNpA3Cyp0"
}
},
{
"cell_type": "code",
"source": [
"type(lifesat)"
],
"metadata": {
"id": "kz_axOl2HSLG",
"outputId": "db8b77b9-deb5-4576-9089-365e576f784b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 203
}
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"pandas.core.frame.DataFrame"
],
"text/html": [
"<div style=\"max-width:800px; border: 1px solid var(--colab-border-color);\"><style>\n",
" pre.function-repr-contents {\n",
" overflow-x: auto;\n",
" padding: 8px 12px;\n",
" max-height: 500px;\n",
" }\n",
"\n",
" pre.function-repr-contents.function-repr-contents-collapsed {\n",
" cursor: pointer;\n",
" max-height: 100px;\n",
" }\n",
" </style>\n",
" <pre style=\"white-space: initial; background:\n",
" var(--colab-secondary-surface-color); padding: 8px 12px;\n",
" border-bottom: 1px solid var(--colab-border-color);\"><b>pandas.core.frame.DataFrame</b><br/>def __init__(data=None, index: Axes | None=None, columns: Axes | None=None, dtype: Dtype | None=None, copy: bool | None=None) -&gt; None</pre><pre class=\"function-repr-contents function-repr-contents-collapsed\" style=\"\"><a class=\"filepath\" style=\"display:none\" href=\"#\">/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py</a>Two-dimensional, size-mutable, potentially heterogeneous tabular data.\n",
"\n",
"Data structure also contains labeled axes (rows and columns).\n",
"Arithmetic operations align on both row and column labels. Can be\n",
"thought of as a dict-like container for Series objects. The primary\n",
"pandas data structure.\n",
"\n",
"Parameters\n",
"----------\n",
"data : ndarray (structured or homogeneous), Iterable, dict, or DataFrame\n",
" Dict can contain Series, arrays, constants, dataclass or list-like objects. If\n",
" data is a dict, column order follows insertion-order. If a dict contains Series\n",
" which have an index defined, it is aligned by its index. This alignment also\n",
" occurs if data is a Series or a DataFrame itself. Alignment is done on\n",
" Series/DataFrame inputs.\n",
"\n",
" If data is a list of dicts, column order follows insertion-order.\n",
"\n",
"index : Index or array-like\n",
" Index to use for resulting frame. Will default to RangeIndex if\n",
" no indexing information part of input data and no index provided.\n",
"columns : Index or array-like\n",
" Column labels to use for resulting frame when data does not have them,\n",
" defaulting to RangeIndex(0, 1, 2, ..., n). If data contains column labels,\n",
" will perform column selection instead.\n",
"dtype : dtype, default None\n",
" Data type to force. Only a single dtype is allowed. If None, infer.\n",
"copy : bool or None, default None\n",
" Copy data from inputs.\n",
" For dict data, the default of None behaves like ``copy=True``. For DataFrame\n",
" or 2d ndarray input, the default of None behaves like ``copy=False``.\n",
" If data is a dict containing one or more Series (possibly of different dtypes),\n",
" ``copy=False`` will ensure that these inputs are not copied.\n",
"\n",
" .. versionchanged:: 1.3.0\n",
"\n",
"See Also\n",
"--------\n",
"DataFrame.from_records : Constructor from tuples, also record arrays.\n",
"DataFrame.from_dict : From dicts of Series, arrays, or dicts.\n",
"read_csv : Read a comma-separated values (csv) file into DataFrame.\n",
"read_table : Read general delimited file into DataFrame.\n",
"read_clipboard : Read text from clipboard into DataFrame.\n",
"\n",
"Notes\n",
"-----\n",
"Please reference the :ref:`User Guide &lt;basics.dataframe&gt;` for more information.\n",
"\n",
"Examples\n",
"--------\n",
"Constructing DataFrame from a dictionary.\n",
"\n",
"&gt;&gt;&gt; d = {&#x27;col1&#x27;: [1, 2], &#x27;col2&#x27;: [3, 4]}\n",
"&gt;&gt;&gt; df = pd.DataFrame(data=d)\n",
"&gt;&gt;&gt; df\n",
" col1 col2\n",
"0 1 3\n",
"1 2 4\n",
"\n",
"Notice that the inferred dtype is int64.\n",
"\n",
"&gt;&gt;&gt; df.dtypes\n",
"col1 int64\n",
"col2 int64\n",
"dtype: object\n",
"\n",
"To enforce a single dtype:\n",
"\n",
"&gt;&gt;&gt; df = pd.DataFrame(data=d, dtype=np.int8)\n",
"&gt;&gt;&gt; df.dtypes\n",
"col1 int8\n",
"col2 int8\n",
"dtype: object\n",
"\n",
"Constructing DataFrame from a dictionary including Series:\n",
"\n",
"&gt;&gt;&gt; d = {&#x27;col1&#x27;: [0, 1, 2, 3], &#x27;col2&#x27;: pd.Series([2, 3], index=[2, 3])}\n",
"&gt;&gt;&gt; pd.DataFrame(data=d, index=[0, 1, 2, 3])\n",
" col1 col2\n",
"0 0 NaN\n",
"1 1 NaN\n",
"2 2 2.0\n",
"3 3 3.0\n",
"\n",
"Constructing DataFrame from numpy ndarray:\n",
"\n",
"&gt;&gt;&gt; df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),\n",
"... columns=[&#x27;a&#x27;, &#x27;b&#x27;, &#x27;c&#x27;])\n",
"&gt;&gt;&gt; df2\n",
" a b c\n",
"0 1 2 3\n",
"1 4 5 6\n",
"2 7 8 9\n",
"\n",
"Constructing DataFrame from a numpy ndarray that has labeled columns:\n",
"\n",
"&gt;&gt;&gt; data = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)],\n",
"... dtype=[(&quot;a&quot;, &quot;i4&quot;), (&quot;b&quot;, &quot;i4&quot;), (&quot;c&quot;, &quot;i4&quot;)])\n",
"&gt;&gt;&gt; df3 = pd.DataFrame(data, columns=[&#x27;c&#x27;, &#x27;a&#x27;])\n",
"...\n",
"&gt;&gt;&gt; df3\n",
" c a\n",
"0 3 1\n",
"1 6 4\n",
"2 9 7\n",
"\n",
"Constructing DataFrame from dataclass:\n",
"\n",
"&gt;&gt;&gt; from dataclasses import make_dataclass\n",
"&gt;&gt;&gt; Point = make_dataclass(&quot;Point&quot;, [(&quot;x&quot;, int), (&quot;y&quot;, int)])\n",
"&gt;&gt;&gt; pd.DataFrame([Point(0, 0), Point(0, 3), Point(2, 3)])\n",
" x y\n",
"0 0 0\n",
"1 0 3\n",
"2 2 3\n",
"\n",
"Constructing DataFrame from Series/DataFrame:\n",
"\n",
"&gt;&gt;&gt; ser = pd.Series([1, 2, 3], index=[&quot;a&quot;, &quot;b&quot;, &quot;c&quot;])\n",
"&gt;&gt;&gt; df = pd.DataFrame(data=ser, index=[&quot;a&quot;, &quot;c&quot;])\n",
"&gt;&gt;&gt; df\n",
" 0\n",
"a 1\n",
"c 3\n",
"\n",
"&gt;&gt;&gt; df1 = pd.DataFrame([1, 2, 3], index=[&quot;a&quot;, &quot;b&quot;, &quot;c&quot;], columns=[&quot;x&quot;])\n",
"&gt;&gt;&gt; df2 = pd.DataFrame(data=df1, index=[&quot;a&quot;, &quot;c&quot;])\n",
"&gt;&gt;&gt; df2\n",
" x\n",
"a 1\n",
"c 3</pre>\n",
" <script>\n",
" if (google.colab.kernel.accessAllowed && google.colab.files && google.colab.files.view) {\n",
" for (const element of document.querySelectorAll('.filepath')) {\n",
" element.style.display = 'block'\n",
" element.onclick = (event) => {\n",
" event.preventDefault();\n",
" event.stopPropagation();\n",
" google.colab.files.view(element.textContent, 509);\n",
" };\n",
" }\n",
" }\n",
" for (const element of document.querySelectorAll('.function-repr-contents')) {\n",
" element.onclick = (event) => {\n",
" event.preventDefault();\n",
" event.stopPropagation();\n",
" element.classList.toggle('function-repr-contents-collapsed');\n",
" };\n",
" }\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"execution_count": 9
}
]
},
{
"cell_type": "markdown",
"source": [
"### Extract the learning set 'X' and its labels 'y'"
],
"metadata": {
"id": "cj4YKu6oFI3Q"
}
},
{
"cell_type": "code",
"source": [
"X = lifesat[[\"GDP per capita (USD)\"]].values\n",
"y = lifesat[[\"Life satisfaction\"]].values\n",
"\n"
],
"metadata": {
"id": "NtovVwne_pM7"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### Exercises:"
],
"metadata": {
"id": "HSYpesjdEwCn"
}
},
{
"cell_type": "markdown",
"source": [
"Make a new code cell below and evaluate 'X'\n",
"\n",
"\n",
"\n"
],
"metadata": {
"id": "pcR9Ia3VDmWw"
}
},
{
"cell_type": "code",
"source": [
"X"
],
"metadata": {
"id": "b49rv5CGHeHQ",
"outputId": "ef1ed5cd-97f0-468c-ab7a-1b8cea602178",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[26456.38793813],\n",
" [27287.08340093],\n",
" [28384.98778463],\n",
" [29932.49391006],\n",
" [31007.76840654],\n",
" [32181.15453723],\n",
" [32238.15725928],\n",
" [35638.42135118],\n",
" [36215.44759073],\n",
" [36547.73895598],\n",
" [36732.03474403],\n",
" [38341.30757041],\n",
" [38992.14838075],\n",
" [41627.12926943],\n",
" [42025.61737306],\n",
" [42404.39373816],\n",
" [45856.62562648],\n",
" [47260.80045844],\n",
" [48210.03311134],\n",
" [48697.83702825],\n",
" [50683.32350972],\n",
" [50922.35802345],\n",
" [51935.60386182],\n",
" [52279.72885136],\n",
" [54209.56383573],\n",
" [55938.2128086 ],\n",
" [60235.7284917 ]])"
]
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "markdown",
"source": [
"Make a new code cell below and evaluate 'y'"
],
"metadata": {
"id": "vDQPFB9AEMMR"
}
},
{
"cell_type": "code",
"source": [
"y"
],
"metadata": {
"id": "x4tI9BKoHe20",
"outputId": "6780fbd2-558e-4938-a639-7c5a2a229aae",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[5.8],\n",
" [5.4],\n",
" [5.5],\n",
" [5.9],\n",
" [5.6],\n",
" [5.4],\n",
" [6.1],\n",
" [5.7],\n",
" [6.3],\n",
" [5.9],\n",
" [5.9],\n",
" [7.2],\n",
" [6. ],\n",
" [6.8],\n",
" [6.5],\n",
" [7.3],\n",
" [7.4],\n",
" [7.6],\n",
" [6.9],\n",
" [7.3],\n",
" [7.3],\n",
" [7. ],\n",
" [7.1],\n",
" [7.5],\n",
" [7.4],\n",
" [7.6],\n",
" [6.9]])"
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "markdown",
"source": [
"### Let us plot the life satisfaction data and introduce a model"
],
"metadata": {
"id": "WGVG7gP1EcIx"
}
},
{
"cell_type": "code",
"source": [
"lifesat.plot(kind='scatter', grid=True,\n",
" x=\"GDP per capita (USD)\", y=\"Life satisfaction\")\n",
"plt.axis([23_500, 62_500, 4, 9])\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 460
},
"id": "uuQq8nUOERM8",
"outputId": "4f4c39ce-94a8-46b5-afcd-4fba9f50bf3d"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAG7CAYAAAALy3WMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFU0lEQVR4nO3dd3xUVf7/8fcwKRAgBJLQSYFQFGnSNiKhi9jQVVRQxIhd7HXdLxAQVCz8dLGhrhRXwbpW1AUkICgQSuggEJooJqEkIcEQkvP7w80sk4SUyYSZO/N6Ph556D33zJ3PZ85APtx7z7k2Y4wRAACARdTydAAAAABVQfECAAAsheIFAABYCsULAACwFIoXAABgKRQvAADAUiheAACApVC8AAAAS6F4AQAAlkLxAgAALMXripecnBw98MADio6OVp06dXTBBRcoJSXF02EBAAAv4XXFy6233qqFCxfq3Xff1aZNm3TRRRdp8ODBOnjwoKdDAwAAXsDmTQ9mPHHihOrXr6/PP/9cl156qaO9e/fuGjZsmKZMmeLB6AAAgDcI8HQApzt16pQKCwtVu3Ztp/Y6depo+fLlZb4mPz9f+fn5ju2ioiIdOXJE4eHhstlsNRovAABwD2OMcnJy1Lx5c9WqVcGFIeNl4uPjTb9+/czBgwfNqVOnzLvvvmtq1apl2rVrV2b/iRMnGkn88MMPP/zww48P/Bw4cKDCWsGrLhtJ0u7du3XLLbdo2bJlstvtOv/889WuXTutXbtW27ZtK9W/5JmXrKwsRUVFac+ePapfv361YikoKNCSJUs0YMAABQYGVutYVuTP+ftz7hL5+3P+/py75N/5ezr3nJwcxcbG6tixY2rQoEG5fb3qspEktWnTRkuXLlVubq6ys7PVrFkzXXfddWrdunWZ/YODgxUcHFyqvVGjRgoNDa1WLAUFBQoJCVF4eLjffYkl/87fn3OXyN+f8/fn3CX/zt/TuRe/Z2Vu+fC62UbF6tatq2bNmuno0aP67rvvNHz4cE+HBAAAvIDXnXn57rvvZIxR+/bttWvXLj366KPq0KGDEhMTPR0aAADwAl535iUrK0v33HOPOnTooJtuukkXXnihvvvuO787fQcAAMrmdWderr32Wl177bWeDgMAAHgprzvzAgAAUB6KFwAAYCkULwAAwFIoXgAAgKVQvAAAAEuheAEAAJZC8QIAACyF4gUAAFgKxQsAALAUihcAAGApFC8AAMBSKF4AAIClULwAAABLoXgBAACWQvECAAAsheIFAABYCsULAACwFIoXAABgKRQvAADAUiheAACApVC8AAAAS6F4AQAAlkLxAgAALIXiBQAAWArFCwAAsBSKFwAAYCkULwAAwFIoXgAAgKVQvAAAAEuheAEAAJZC8QIAACyF4gUAAFgKxQsAALAUihcAAGApFC8AAMBSKF4AAIClULwAAABLoXgBAACWQvECAAAsheIFAABYCsULAACwFIoXAABgKRQvAADAUiheAACApVC8AAAAS6F4AQAAlkLxAgAALIXiBQAAWArFCwAAsBSKFwAAYCkULwAAwFIoXgAAgKVQvAAAAEuheAEAAJZC8QIAACyF4gUAAFgKxQsAALAUihcAAGApFC8AAMBSKF4AAIClULwAAABLoXgBAACWQvECAAAsxeuKl8LCQo0fP16xsbGqU6eO2rRpo6eeekrGGE+HBgAAvECApwMoadq0aXr99dc1Z84cdezYUWvWrFFiYqIaNGig++67z9PhAQAAD/O64uXHH3/U8OHDdemll0qSYmJiNG/ePK1evdrDkQEAAG/gdcXLBRdcoDfffFM///yz2rVrpw0bNmj58uWaPn16mf3z8/OVn5/v2M7OzpYkFRQUqKCgoFqxFL++usexKn/O359zl8jfn/P359wl/87f07lX5X1txstuJikqKtKTTz6p5557Tna7XYWFhZo6dar+9re/ldk/KSlJkyZNKtX+/vvvKyQkpKbDBQAAbpCXl6dRo0YpKytLoaGh5fb1uuJl/vz5evTRR/X888+rY8eOSk1N1QMPPKDp06drzJgxpfqXdealVatWyszMrDD5ihQUFGjhwoUaMmSIAgMDq3UsK/Ln/P05d4n8/Tl/f85d8u/8PZ17dna2IiIiKlW8eN1lo0cffVRPPPGErr/+eklSp06dtG/fPj3zzDNlFi/BwcEKDg4u1R4YGOi2D9+dx7Iif87fn3OXyN+f8/fn3CX/zt9TuVflPb1uqnReXp5q1XIOy263q6ioyEMRAQAAb+J1Z14uv/xyTZ06VVFRUerYsaPWr1+v6dOn65ZbbvF0aAAAwAt4XfEyY8YMjR8/XnfffbfS09PVvHlz3XHHHZowYYKnQwMAAF7A64qX+vXr66WXXtJLL73k6VAA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4eGl2gEAgH/yyqnS3iI4OFgTJ04sdVnKX/hz/v6cu0T+/py/P+cu+Xf+Vsrdq27YBQAAqAhnXgAAgKVQvAAAAEuheAEAAJZC8QIAACzFp4qXZ555Rj179lT9+vXVuHFjXXnlldqxY4dTn/79+8tmszn93HnnnU599u/fr0svvVQhISFq3LixHn30UZ06dcqpT3Jyss4//3wFBwcrLi5Os2fPLhXPq6++qpiYGNWuXVu9e/fW6tWr3Z7z6V5//XV17tzZscBQfHy8vvnmG8f+P/74Q/fcc4/Cw8NVr149XX311fr999+djmHV3KWK8/flsS/p2Weflc1m0wMPPOBo8/XxL1ZW7r489klJSaVy69Chg2O/r497Rfn78thL0sGDB3XjjTcqPDxcderUUadOnbRmzRrHfmOMJkyYoGbNmqlOnToaPHiwdu7c6XSMI0eO6IYbblBoaKjCwsI0duxYHT9+3KnPxo0b1bdvX9WuXVutWrXSc889VyqWjz76SB06dFDt2rXVqVMnLViwoGaS/m9iPmPo0KFm1qxZZvPmzSY1NdVccsklJioqyhw/ftzRp1+/fua2224zv/32m+MnKyvLsf/UqVPmvPPOM4MHDzbr1683CxYsMBEREeZvf/ubo09aWpoJCQkxDz30kNm6dauZMWOGsdvt5ttvv3X0mT9/vgkKCjLvvPOO2bJli7nttttMWFiY+f3332ss/y+++MJ8/fXX5ueffzY7duwwTz75pAkMDDSbN282xhhz5513mlatWpnFixebNWvWmL/85S/mggsu8IncK5O/L4/96VavXm1iYmJM586dzf333+9o9/XxLy93Xx77iRMnmo4dOzrllpGR4djv6+NeUf6+PPZHjhwx0dHR5uabbzarVq0yaWlp5rvvvjO7du1y9Hn22WdNgwYNzGeffWY2bNhgrrjiChMbG2tOnDjh6HPxxRebLl26mJUrV5offvjBxMXFmZEjRzr2Z2VlmSZNmpgbbrjBbN682cybN8/UqVPHzJw509FnxYoVxm63m+eee85s3brV/N///Z8JDAw0mzZtqpHcfap4KSk9Pd1IMkuXLnW09evXz+kvtZIWLFhgatWqZQ4dOuRoe/31101oaKjJz883xhjz2GOPmY4dOzq97rrrrjNDhw51bPfq1cvcc889ju3CwkLTvHlz88wzz1Q3rSpp2LCh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kaN9w4YNJigoyERGRpq8vDxHe8kzL8ZUfNno999/d4qx2Jw5c4wkM2XKlHLzL/b1118bSebvf/97mftdPfPy0EMPGUkmNjbWTJs2zfz4448mNze33OO4+n0tlpWVZSSZhISEco8BuBPFC1DCOeecYySZbdu2ldq3ZMkSM3HiRKefkpdKKvPLYNu2bUaSOeeccxxtxb8427Rp4zj2I488Yvr27Wskmdq1a5sff/yxwviLi5fBgweX2peTk2PCwsJMaGio43LFp59+aiSZyZMnl3m8v/71r6ZWrVomKyvLKcegoCCTkZFRYTzFCgoKTP369U2DBg2cLg9V1SeffGIkmdmzZzu1SzJ2u73My1xjx441kszHH3/saHOleDmToqIiExoaavr371+p/jNnzjSSzD/+8Y8y97tavJw4ccLcfPPNplatWo5izm63m/PPP9889dRTpe53Mcb17+vpateubVq3bl3uMQB3qtr5bsDPJScna9KkSaXa+/fv77b32L17t+M9AgMD1aRJE40aNUpPPPGEOnXqVOnj9O3bt1RbvXr11LVrVyUnJystLU1xcXFauXKlpD/X7UhKSir1mkOHDqmoqEg///yzevTo4WiPjY1VREREpePZvn27cnJyNHjwYDVs2LDC/jk5OXrhhRf02Wefaffu3aWm+JZ1aSQqKkrR0dGl2vv27at//vOfWr9+va6++upKx1yWTz/9VDNnztS6det09OhRFRYWlhtTWQ4fPixJCgsLq1YsJdWuXVuzZs3SU089pQULFmj16tVavXq11q1bp3Xr1mnmzJlaunSpWrdu7db3bdSokTIzM916TKA8FC9ACU2aNNG2bdv066+/qkOHDk77kpKSHL/g58+fr5EjR7r0HsW/5Mq6p2bo0KH69ttvXTru6Zo0aVJue/H9GUeOHJEkvffee+Uer2TxcKbjn0nx+50+rfxMTp48qf79+2vdunXq1q2bRo8erfDwcAUEBGjv3r2aM2eO8vPzS72usjm76sUXX9QjjzyiyMhIXXTRRWrZsqXq1KkjSXrppZfKjKksxa/5448/ytxffB9MUVHRGe+JKSoqOuM9UC1bttTtt9/uWPxu9+7duuWWW7Rs2TI9+OCD+vzzzysVZ7Hyvq/Sn/cyFU83B84GiheghAsuuEDJyclasmSJBg4cWCPvUbyqa8+ePWvk+JL0+++/l9veoEEDSXLcZPvll1/qsssuq/Txq3LzsPS/swwHDx6ssO/nn3+udevWaezYsXr77bed9s2fP19z5swp83WVzdkVp06d0lNPPaVmzZopNTVVjRs3duwzxui5556r9LGKi4DiwrGk4jgPHz5cZsFgjNGRI0cqnU+bNm00e/ZstW7dWt9//32l4yxW3ve1qKhIWVlZ6tixY5WPC7iK2UZACWPGjFGtWrX05ptv1sip8IyMDM2cOVOSdP3117v9+MV++OGHUm3Hjx9XamqqQkNDHZcOevfuLUn66aefaiwW6c8VWUNDQ5WSklJqtlNJu3fvliQNHz681L6y8iq2f/9+pxlLJV/TrVu3ct/XbrdLktOloGKZmZnKyspSfHy8U+EiSWvWrNGJEyfKPfbpii//7dixo9z9ZxqTjRs3Kjc3V507d670e9arV6/SfU9X0fd1586dKioqqtIlTaC6KF6AEtq1a6fHHntM6enpGjZsmHbt2lVmv2PHjlX52Fu2bNFFF12k9PR0jRkzxukeEndbtGiRvvvuO6e2qVOn6tixY7rpppsclyOGDx+uqKgoTZ8+XcuWLSt1nIKCAi1fvrza8QQEBOiOO+5QVlaW7r///lIFQlZWlo4fPy5JjvtWSr7v0qVL9dZbb53xPQoLC/Xkk086rTq7ceNGvfvuu4qMjNQll1xSbowNGzaUzWbTgQMHSu1r3Lix6tSpo3Xr1ikvL8/RfvToUd17773lHrekTp06qVGjRlq1alWZ+8eMGSNJmjBhQqnvWX5+vh577DFJ0k033eS0b/LkyWXGbozRs88+K0m68MILKx1nZb6vxTn069ev0scFqovLRkAZpk6dqpMnT2r69Onq0KGDEhIS1KVLF4WEhCg9PV0bN27U6tWrHTfAlpSZmem4N+bUqVM6fPiw1q1bp9WrV0uSbr31Vr366qs1msNll12myy+/XNdcc41iYmK0cuVKLVmyRG3atNHkyZMd/YKDg/Xxxx9r2LBh6tevnwYOHKhOnTrJZrNp3759+uGHHxQeHq7t27dXO6bJkydr5cqVevfdd7Vy5UoNGzZMwcHBSktL07fffqvly5era9euuvzyyxUTE6PnnntOmzdv1nnnnacdO3boq6++0lVXXaWPP/64zON37txZy5cvV8+ePTV48GBlZGTogw8+0KlTp/Tmm2867jU5k3r16qlnz55atmyZRo8erbZt26pWrVoaPXq0oqOjdffdd+vFF19Uly5ddPnllys7O1vffPONoqOj1bx580p/DjabTcOHD9fs2bP1yy+/qGXLlk77Bw0apPvvv18vv/yy2rVrpyuuuEJNmzbV4cOHtWDBAu3fv19XXXWVEhMTnV43ffp0JSUlqUePHurevbsaNWqkw4cPa8mSJfr5558VHh6uF198sVQ81fm+Lly4UAEBAVW65AhUm2cnOwHebd26deb22283HTp0MPXq1TOBgYGmSZMmZuDAgeb5558vc1VVlVidNTg42DRu3Nj06dPHPPLII2bDhg1lvld567xUxZlW2A0PDzc333yz+e2338p83S+//GLuv/9+07ZtWxMcHGxCQ0PNOeecY2699dZSa96oGo8q+OOPP8wLL7xgunbtaurUqWPq1atnzj33XPPwww87TeVNS0szV199tYmMjDQhISGmZ8+eZv78+WbJkiVGkpk4cWKZMR04cMBcd911plGjRqZ27domPj7e/Oc//ykVR1lTpY35c4XlSy65xISFhRmbzebU5+TJk2bq1KmOzygqKso8/PDDJicnx0RHR5vo6OhKfw6rVq0yksy0adPO2OeTTz4xQ4cONRERESYgIMCEhYWZhIQE8/bbb5e5Mu+yZcvME088YeLj403z5s1NYGCgqVevnuncubN55JFHzK+//lrqNa5+X40xJjc319SrV89ceeWVlc4bcAcezAj4mNmzZysxMVGzZs06a09H9gY2m039+vVz3FxqBX379lVGRoa2bt3q1pV2z5a3335bt912m5YuXaqEhARPhwM/Yr0/LQDgI55//nnt2LFD8+fP93QoVXbq1Ck9/fTTuuKKKyhccNZxzwsAeMhf/vIXzZw5s8zZTd5u//79uummmzR69GhPhwI/RPECAB5UvJCc1bRu3brMFZmBs4F7XgAAgKVwzwsAALAUihcAAGApFC8AAMBSKF4AAIClULwAAABLoXgBAACWQvECAAAsheIFAABYCsULAACwlP8P7S9ItBkYeAoAAAAASUVORK5CYII=\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"### Excercise(s):"
],
"metadata": {
"id": "JIXI1IL6JvVm"
}
},
{
"cell_type": "markdown",
"source": [
"Define various 't0' and 't1' (thetas) and observe how it affects our model"
],
"metadata": {
"id": "EA7d6lEBJ4OK"
}
},
{
"cell_type": "code",
"source": [
"t0, t1 = 6.75, 6.78e-05\n",
"\n",
"from sklearn import linear_model\n",
"min_gdp = 23_500\n",
"max_gdp = 62_500\n",
"min_life_sat = 4\n",
"max_life_sat = 9\n",
"\n",
"lifesat.plot(kind='scatter', figsize=(5, 3), grid=True,\n",
" x=\"GDP per capita (USD)\", y=\"Life satisfaction\")\n",
"\n",
"X = np.linspace(min_gdp, max_gdp, 1000)\n",
"plt.plot(X, t0 + t1 * X, \"b\")\n",
"\n",
"plt.text(max_gdp - 20_000, min_life_sat + 1.9,\n",
" fr\"$\\theta_0 = {t0:.2f}$\", color=\"b\")\n",
"plt.text(max_gdp - 20_000, min_life_sat + 1.3,\n",
" fr\"$\\theta_1 = {t1 * 1e5:.2f} \\times 10^{{-5}}$\", color=\"b\")\n",
"\n",
"plt.axis([min_gdp, max_gdp, min_life_sat, max_life_sat])\n",
"\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 321
},
"id": "HXN6ixwFIzii",
"outputId": "8826fbe4-da0c-4cf0-e8f0-bf539c07341b"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 500x300 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"### Establish the model"
],
"metadata": {
"id": "J0iRLACuXH79"
}
},
{
"cell_type": "code",
"source": [
"from sklearn import linear_model\n",
"\n",
"X_features = lifesat[[\"GDP per capita (USD)\"]]\n",
"y_labels = lifesat[[\"Life satisfaction\"]]\n",
"\n",
"lin1 = linear_model.LinearRegression()\n",
"lin1.fit(X_features, y_labels)\n",
"\n",
"t0, t1 = lin1.intercept_[0], lin1.coef_[0][0]\n",
"print(f\"θ0={t0:.2f}, θ1={t1:.2e}\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "BylN6risXh1C",
"outputId": "3a2c34bf-8dd5-4085-fe39-95da191b0ba4"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"θ0=3.75, θ1=6.78e-05\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"X_pred = 40000\n",
"y_pred = lin1.predict([[X_pred]])[0,0]"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "i7nan8QdT8ZO",
"outputId": "c7e06e12-5d31-473e-a852-1a159e98af04"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.10/dist-packages/sklearn/base.py:493: UserWarning: X does not have valid feature names, but LinearRegression was fitted with feature names\n",
" warnings.warn(\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"y_pred"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "xgXDykJWUgcU",
"outputId": "050649f4-2f8b-455a-af03-b1adbbee64e2"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"6.4606093051133975"
]
},
"metadata": {},
"execution_count": 17
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn import linear_model\n",
"min_gdp = 23_500\n",
"max_gdp = 62_500\n",
"min_life_sat = 4\n",
"max_life_sat = 9\n",
"\n",
"lifesat.plot(kind='scatter', figsize=(5, 3), grid=True,\n",
" x=\"GDP per capita (USD)\", y=\"Life satisfaction\")\n",
"\n",
"X = np.linspace(min_gdp, max_gdp, 1000)\n",
"plt.plot(X, t0 + t1 * X, \"b\")\n",
"\n",
"plt.text(max_gdp - 20_000, min_life_sat + 1.9,\n",
" fr\"$\\theta_0 = {t0:.2f}$\", color=\"b\")\n",
"plt.text(max_gdp - 20_000, min_life_sat + 1.3,\n",
" fr\"$\\theta_1 = {t1 * 1e5:.2f} \\times 10^{{-5}}$\", color=\"b\")\n",
"\n",
"plt.axis([min_gdp, max_gdp, min_life_sat, max_life_sat])\n",
"\n",
"plt.plot([X_pred, X_pred],\n",
" [min_life_sat, y_pred], \"r--\")\n",
"plt.plot(X_pred, y_pred, \"ro\")\n",
"\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 321
},
"id": "J2vqshOxZMXt",
"outputId": "83afec30-4995-4de4-ac88-293d8eb75451"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 500x300 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"### Excercise(s):\n"
],
"metadata": {
"id": "mrttlJ7yPI7m"
}
},
{
"cell_type": "markdown",
"source": [
"1. Try with another dataset https://raw.githubusercontent.com/jpandersen61/Machine-Learning/main/InjuredandkilledintrafikDK.csv"
],
"metadata": {
"id": "rvGBeixgPRTH"
}
},
{
"cell_type": "code",
"source": [
"datafiles = \"https://raw.githubusercontent.com/jpandersen61/Machine-Learning/main/InjuredandkilledintrafikDK.csv\""
],
"metadata": {
"id": "O4NPUCygPYr3"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"Injuries = pd.read_csv(datafiles)"
],
"metadata": {
"id": "iiZYvjhHJboV"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"Injuries"
],
"metadata": {
"id": "IZY9mc8-JlPg",
"outputId": "4367e168-c2c6-4ec5-f4bd-665c213c9783",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 731
}
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" year quantity\n",
"0 2001 8896\n",
"1 2002 9254\n",
"2 2003 8844\n",
"3 2004 7915\n",
"4 2005 6919\n",
"5 2006 6821\n",
"6 2007 7062\n",
"7 2008 6329\n",
"8 2009 5250\n",
"9 2010 4408\n",
"10 2011 4259\n",
"11 2012 3778\n",
"12 2013 3585\n",
"13 2014 3375\n",
"14 2015 3334\n",
"15 2016 3439\n",
"16 2017 3318\n",
"17 2018 3458\n",
"18 2019 3275\n",
"19 2020 2914\n",
"20 2021 2737\n",
"21 2022 2917"
],
"text/html": [
"\n",
" <div id=\"df-0fdcf617-a70f-4c03-abfa-42f004c47cbb\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>quantity</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2001</td>\n",
" <td>8896</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2002</td>\n",
" <td>9254</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2003</td>\n",
" <td>8844</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2004</td>\n",
" <td>7915</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2005</td>\n",
" <td>6919</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2006</td>\n",
" <td>6821</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2007</td>\n",
" <td>7062</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2008</td>\n",
" <td>6329</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2009</td>\n",
" <td>5250</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2010</td>\n",
" <td>4408</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2011</td>\n",
" <td>4259</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2012</td>\n",
" <td>3778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2013</td>\n",
" <td>3585</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2014</td>\n",
" <td>3375</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2015</td>\n",
" <td>3334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2016</td>\n",
" <td>3439</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2017</td>\n",
" <td>3318</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>2018</td>\n",
" <td>3458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>2019</td>\n",
" <td>3275</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>2020</td>\n",
" <td>2914</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>2021</td>\n",
" <td>2737</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>2022</td>\n",
" <td>2917</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0fdcf617-a70f-4c03-abfa-42f004c47cbb')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-0fdcf617-a70f-4c03-abfa-42f004c47cbb button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-0fdcf617-a70f-4c03-abfa-42f004c47cbb');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-fb1389a6-52a7-40ab-9500-63f1d69bece6\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-fb1389a6-52a7-40ab-9500-63f1d69bece6')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-fb1389a6-52a7-40ab-9500-63f1d69bece6 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_f4f562d2-b940-4ca0-bef0-f611cb27d741\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('Injuries')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_f4f562d2-b940-4ca0-bef0-f611cb27d741 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('Injuries');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "Injuries",
"summary": "{\n \"name\": \"Injuries\",\n \"rows\": 22,\n \"fields\": [\n {\n \"column\": \"year\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 6,\n \"min\": 2001,\n \"max\": 2022,\n \"num_unique_values\": 22,\n \"samples\": [\n 2001,\n 2014,\n 2009\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"quantity\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2221,\n \"min\": 2737,\n \"max\": 9254,\n \"num_unique_values\": 22,\n \"samples\": [\n 8896,\n 3375,\n 5250\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 21
}
]
},
{
"cell_type": "code",
"source": [
"type[Injuries]"
],
"metadata": {
"id": "jj2pz5dXJ2wN",
"outputId": "3c8fd9cd-09dd-409f-d260-c45aa9a17896",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"type[ year quantity\n",
"0 2001 8896\n",
"1 2002 9254\n",
"2 2003 8844\n",
"3 2004 7915\n",
"4 2005 6919\n",
"5 2006 6821\n",
"6 2007 7062\n",
"7 2008 6329\n",
"8 2009 5250\n",
"9 2010 4408\n",
"10 2011 4259\n",
"11 2012 3778\n",
"12 2013 3585\n",
"13 2014 3375\n",
"14 2015 3334\n",
"15 2016 3439\n",
"16 2017 3318\n",
"17 2018 3458\n",
"18 2019 3275\n",
"19 2020 2914\n",
"20 2021 2737\n",
"21 2022 2917]"
]
},
"metadata": {},
"execution_count": 22
}
]
},
{
"cell_type": "code",
"source": [
"x= Injuries[[\"year\"]].values\n",
"Y= Injuries[[\"quantity\"]].values"
],
"metadata": {
"id": "klS08wCWMmTV"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"x"
],
"metadata": {
"id": "-2To-gTARXUc",
"outputId": "0035fb03-aa3c-4bdf-80d7-7d24c8084df0",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[2001],\n",
" [2002],\n",
" [2003],\n",
" [2004],\n",
" [2005],\n",
" [2006],\n",
" [2007],\n",
" [2008],\n",
" [2009],\n",
" [2010],\n",
" [2011],\n",
" [2012],\n",
" [2013],\n",
" [2014],\n",
" [2015],\n",
" [2016],\n",
" [2017],\n",
" [2018],\n",
" [2019],\n",
" [2020],\n",
" [2021],\n",
" [2022]])"
]
},
"metadata": {},
"execution_count": 24
}
]
},
{
"cell_type": "code",
"source": [
"Y"
],
"metadata": {
"id": "A_RXK_SXRaU4",
"outputId": "510462c4-b754-4d63-e0f0-26dd9d558305",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[8896],\n",
" [9254],\n",
" [8844],\n",
" [7915],\n",
" [6919],\n",
" [6821],\n",
" [7062],\n",
" [6329],\n",
" [5250],\n",
" [4408],\n",
" [4259],\n",
" [3778],\n",
" [3585],\n",
" [3375],\n",
" [3334],\n",
" [3439],\n",
" [3318],\n",
" [3458],\n",
" [3275],\n",
" [2914],\n",
" [2737],\n",
" [2917]])"
]
},
"metadata": {},
"execution_count": 25
}
]
},
{
"cell_type": "code",
"source": [
"Injuries.plot(kind='scatter', grid=True,\n",
" x=\"year\", y=\"quantity\")\n",
"plt.axis([2000, 2024, 1000, 10000])\n",
"plt.show()"
],
"metadata": {
"id": "6ECRF3jUR3iW",
"outputId": "b9d4d883-50a2-4140-e5c8-919539283641",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 460
}
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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/qVO3ngSR86XoU749W7kh/LKMHP7aWxMGNSsdbdntugNtRz2R77YG/lib5rvTr4/h7xqz6Jjx44ICgrC1atXsXfvXjzxxBMICwuDWq3G/v37xTqj0YisrCxoNBoAgEajQXl5udUerAMHDqC+vh6DBw8WazIzM62Ok+p0OoSHh9/ysF5Lyi+pRGZeCeoEwWq8ThCQmVeCglJ5PWQ4v6QSGeeKZTcvIiIiW3PIPVJ79+6FIAgIDw/H+fPnMWvWLERERGDixIlQKBRISkrC66+/jh49eiAsLAyvvPIKgoODMWrUKABAz5498eijj2LKlClYs2YNzGYzpk+fjrFjxyI4OBgA8Mwzz2DBggVISEjAnDlzcPr0aSxfvhzLli1r9e29WNb4sdoLV6pkcVPN8upavLQlB5l5JeJYZA9/pI3rD093/r8jIiJqexxyj1RFRQUSExMRERGBCRMmYNiwYdi7d6+4K2727NmYMWMGpk6digcffBCVlZXYs2eP1ZV+mzZtQkREBB555BH8/ve/x7Bhw6zuEeXp6YkvvvgCBQUFGDhwIP785z8jJSXF6l5TrSXUp/ET1bv62j9EAcBLW3Jw5Hyp1diR86WYseWknWZERETUshxyj9RTTz2Fp5566rbLFQoFFi5ciIULF962xsfHB5s3b270c/r27Ysvv/xS8jxtpZt/J0T28MeR86VWh/ecFQoM7e4ni71RlsOPN7vx8KMc5klERGRLDrlHqj1KG9cfQ7v7WY0N7e6HtHH97TQja005/EhERNTWOOQeqfbI012JjQmDUFBahQtXqtDVV14PG3aUw49ERES2xCDlYML85BWgLBzh8CMREZGt8dAe2YzcDz8SERHZGvdIkc3I/fAjERGRrTFIkc3J9fAjERGRrfHQHhEREZFEDFJEREREEjFIEREREUnEIEVEREQkEYMUERERkUQMUkREREQSMUgRERERScQgRURERCQRgxQRERGRRAxSRERERBIxSBERERFJxCBFREREJBGDFBEREZFEDFJEREREEjFIEREREUnEIEVEREQkEYMUERERkUQMUkREREQSMUgRERERScQgRURERCQRgxQRERGRRAxSRERERBIxSBERERFJxCBFREREJJHDBam6ujq88sorCAsLg5ubG+655x689tprEARBrBEEASkpKQgKCoKbmxuio6ORl5dntZ6ysjKMHz8eHh4e8PLyQkJCAiorK61qvvnmGwwfPhyurq4ICQlBampqq2wjEREROQaHC1KLFy/Gu+++i5UrV+Ls2bNYvHgxUlNTkZaWJtakpqZixYoVWLNmDbKystCxY0dotVrU1NSINePHj0dubi50Oh127dqFzMxMTJ06VVxuNBoRExOD0NBQZGdnY8mSJZg/fz7Wrl3bqttLRERE8tXB3hO4U0ePHsUTTzyB2NhYAEDXrl2xZcsWHD9+HMAve6PeeecdzJs3D0888QQAYOPGjQgMDMTOnTsxduxYnD17Fnv27MGJEyfwwAMPAADS0tLw+9//Hm+99RaCg4OxadMm1NbW4v3334eLiwvuu+8+5OTk4O2337YKXERERNR+OVyQ+t3vfoe1a9fiu+++w7333ouvv/4ahw8fxttvvw0AKCgogMFgQHR0tPgeT09PDB48GHq9HmPHjoVer4eXl5cYogAgOjoaTk5OyMrKwujRo6HX6xEZGQkXFxexRqvVYvHixbh69Sq8vb0bzM1kMsFkMomvjUYjAMBsNsNsNtv8uyDpLP1gX+SJ/ZEv9ka+2BvbuZPv0OGC1F/+8hcYjUZERETA2dkZdXV1eOONNzB+/HgAgMFgAAAEBgZavS8wMFBcZjAYEBAQYLW8Q4cO8PHxsaoJCwtrsA7LslsFqUWLFmHBggUNxjMyMuDu7i5lc6mF6XQ6e0+BGsH+yBd7I1/sTfNVV1c3udbhgtS2bduwadMmbN68WTzclpSUhODgYMTHx9t1bnPnzkVycrL42mg0IiQkBFFRUfD19bXjzBxXxc+1mP3RKRz5vlQcG3qPH5b8qS883JSS12s2m6HT6TBy5EgoldLXQy2D/ZEv9ka+2BvbsRxRagqHC1KzZs3CX/7yF4wdOxYA0KdPH1y8eBGLFi1CfHw81Go1AKCoqAhBQUHi+4qKitCvXz8AgFqtRnFxsdV6r1+/jrKyMvH9arUaRUVFVjWW15aam6lUKqhUqgbjSqWSv9QSJW88iSPny1AnKMSxQ3llmLn9NDYmDGr2+tkbeWN/5Iu9kS/2pvnu5PtzuKv2qqur4eRkPW1nZ2fU19cDAMLCwqBWq7F//35xudFoRFZWFjQaDQBAo9GgvLwc2dnZYs2BAwdQX1+PwYMHizWZmZlWx0l1Oh3Cw8NveViPbC+/pBKZeSWou+HWFgBQJwjIzCtBQWmVnWZGRET0C4cLUn/4wx/wxhtvYPfu3bhw4QJ27NiBt99+G6NHjwYAKBQKJCUl4fXXX8cnn3yCU6dOYcKECQgODsaoUaMAAD179sSjjz6KKVOm4Pjx4zhy5AimT5+OsWPHIjg4GADwzDPPwMXFBQkJCcjNzcXWrVuxfPlyq0N31LIuljV+jPrCFQYpIiKyL4c7tJeWloZXXnkFL774IoqLixEcHIznn38eKSkpYs3s2bNRVVWFqVOnory8HMOGDcOePXvg6uoq1mzatAnTp0/HI488AicnJ8TFxWHFihXick9PT3zxxRdITEzEwIED4efnh5SUFN76oBWF+jR+gn5X346tNBMiIqJbc7ggddddd+Gdd97BO++8c9sahUKBhQsXYuHChbet8fHxwebNmxv9rL59++LLL7+UOlVqpm7+nRDZwx9HzpdaHd5zVigwtLsfwvwYpIiIyL4c7tAetS9p4/pjaHc/q7Gh3f2QNq6/nWZERET0K4fbI0Xti6e7EhsTBqGgtAoXrlShq29H7okiIiLZYJAihxDmxwBFRETyw0N7RERERBIxSBERERFJxCBFREREJBGDFBEREZFEDFJEREREEjFIEREREUnEIEVEREQkEYMUERERkUQMUkREREQSMUgRERERScQgRURERCQRgxQRERGRRAxSRERERBIxSBERERFJxCBFREREJBGDFBEREZFEDFJEREREEjFIEREREUnEIEVEREQkEYMUERERkUQMUkREREQSMUgRERERScQgRURERCQRgxQRERGRRAxSRERERBJ1sPcEiOj28ksqcbGsGl19OyLMr6O9p0NERDdhkCKSofLqWry0JQeZeSXiWGQPf6SN6w9Pd6UdZ0ZERDdyyEN7Xbt2hUKhaPCTmJgIAKipqUFiYiJ8fX3RqVMnxMXFoaioyGodhYWFiI2Nhbu7OwICAjBr1ixcv37dqubgwYMYMGAAVCoVunfvjvT09NbaRGrnXtqSgyPnS63GjpwvxYwtJ+00IyIiuhWHDFInTpzA5cuXxR+dTgcAePLJJwEAM2fOxKeffort27fj0KFDuHTpEsaMGSO+v66uDrGxsaitrcXRo0exYcMGpKenIyUlRawpKChAbGwsoqKikJOTg6SkJEyePBl79+5t3Y2ldie/pBKZeSWoEwSr8TpBQGZeCQpKq+w0MyIiuplD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AcnJyfDx8YGHhwdmzJgBjUaDIUOGAABiYmLQq1cvPPfcc0hNTYXBYMC8efOQmJgo7lGaNm0aVq5cidmzZ2PSpEk4cOAAtm3bht27d9tt24mIiEheHG6P1LvvvouKigqMGDECQUFB4s/WrVvFmmXLluHxxx9HXFwcIiMjoVar8e9//1tc7uzsjF27dsHZ2RkajQbPPvssJkyYgIULF4o1YWFh2L17N3Q6He6//34sXboU7733Hm99QERERCKH2yMlCMJv1ri6umLVqlVYtWrVbWtCQ0Px2WefNbqeESNG4OTJk3c8RyIiImofHG6PFBEREZFcMEgRERERScQgRURERCQRgxQRERGRRAxSRERERBIxSBERERFJxCBFREREJBGDFBEREZFEDFJEREREEjFIEREREUnEIEVEREQkEYMUERERkUQMUkREREQSMUgRERERScQgRURERCQRgxQRERGRRAxSRERERBIxSBERERFJxCBFREREJBGDFBEREZFEDFJEREREEjFIEREREUnEIEVEREQkEYMUERERkUQMUkREREQSMUgRERERScQgRURERCQRgxQRERGRRAxSRERERBIxSBERERFJ5JBBKjMzE3/4wx8QHBwMhUKBnTt3Wi0XBAEpKSkICgqCm5sboqOjkZeXZ1VTVlaG8ePHw8PDA15eXkhISEBlZaVVzTfffIPhw4fD1dUVISEhSE1NbelNIyIiIgfikEGqqqoK999/P1atWnXL5ampqVixYgXWrFmDrKwsdOzYEVqtFjU1NWLN+PHjkZubC51Oh127diEzMxNTp04VlxuNRsTExCA0NBTZ2dlYsmQJ5s+fj7Vr17b49hEREZFj6GDvCUjx2GOP4bHHHrvlMkEQ8M4772DevHl44oknAAAbN25EYGAgdu7cibFjx+Ls2bPYs2cPTpw4gQceeAAAkJaWht///vd46623EBwcjE2bNqG2thbvv/8+XFxccN999yEnJwdvv/22VeAiIiKi9sshg1RjCgoKYDAYEB0dLY55enpi8ODB0Ov1GDt2LPR6Pby8vMQQBQDR0dFwcnJCVlYWRo8eDb1ej8jISLi4uIg1Wq0WixcvxtWrV+Ht7d3gs00mE0wmk/i6oqICwC+HEUlezGYzqqurceXKFSiVSntPh27C/sgXeyNf7I3tXLt2DcAvO2d+S5sLUgaDAQAQGBho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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"# prompt: Try with another dataset https://raw.githubusercontent.com/jpandersen61/Machine-Learning/main/InjuredandkilledintrafikDK.csv\n",
"\n",
"# Assuming you want to create a linear regression model for the 'Injuries' dataset.\n",
"# Load the dataset\n",
"datafiles = \"https://raw.githubusercontent.com/jpandersen61/Machine-Learning/main/InjuredandkilledintrafikDK.csv\"\n",
"Injuries = pd.read_csv(datafiles)\n",
"\n",
"# Extract features (X) and labels (y)\n",
"X = Injuries[[\"year\"]].values\n",
"y = Injuries[[\"quantity\"]].values\n",
"\n",
"# Create a linear regression model\n",
"lin_reg = linear_model.LinearRegression()\n",
"lin_reg.fit(X, y)\n",
"\n",
"# Get the model parameters (intercept and slope)\n",
"t0 = lin_reg.intercept_[0]\n",
"t1 = lin_reg.coef_[0][0]\n",
"\n",
"# Print the model parameters\n",
"print(f\"θ0={t0:.2f}, θ1={t1:.2e}\")\n",
"\n",
"# Make predictions\n",
"X_pred = 2025\n",
"y_pred = lin_reg.predict([[X_pred]])[0, 0]\n",
"\n",
"# Plot the data and the regression line\n",
"Injuries.plot(kind='scatter', figsize=(5, 3), grid=True,\n",
" x=\"year\", y=\"quantity\")\n",
"\n",
"X = np.linspace(Injuries['year'].min(), Injuries['year'].max(), 1000)\n",
"plt.plot(X, t0 + t1 * X, \"b\")\n",
"\n",
"plt.text(Injuries['year'].max() - 2, Injuries['quantity'].min() + 1000,\n",
" fr\"$\\theta_0 = {t0:.2f}$\", color=\"b\")\n",
"plt.text(Injuries['year'].max() - 2, Injuries['quantity'].min() + 500,\n",
" fr\"$\\theta_1 = {t1:.2e}$\", color=\"b\")\n",
"\n",
"plt.axis([Injuries['year'].min() - 1, Injuries['year'].max() + 1, Injuries['quantity'].min() - 500, Injuries['quantity'].max() + 500])\n",
"\n",
"plt.plot([X_pred, X_pred],\n",
" [Injuries['quantity'].min(), y_pred], \"r--\")\n",
"plt.plot(X_pred, y_pred, \"ro\")\n",
"\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 333
},
"id": "TiFoe21gdLGb",
"outputId": "adca9996-f14b-4e70-bacb-c58a4919955a"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"θ0=651608.68, θ1=-3.21e+02\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 500x300 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"### Questions"
],
"metadata": {
"id": "xpgWXfOyA23y"
}
},
{
"cell_type": "markdown",
"source": [
"1. How would you define Machine Learning?\n"
],
"metadata": {
"id": "rOIfHyJcA8C8"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: Is the study of computer algorithms that improve automatically through experience"
],
"metadata": {
"id": "bq3i-aI1BH9Q"
}
},
{
"cell_type": "markdown",
"source": [
"2. Can you name four types of problems where it shines?"
],
"metadata": {
"id": "wMA1G2PPBwpU"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here:\n",
"- Stock prices (daily)\n",
"- Volumes sold ( Weekly)\n",
"- Active users (monthly )\n",
"- Birth/death rates (annually)"
],
"metadata": {
"id": "QAcDslfMBtVj"
}
},
{
"cell_type": "markdown",
"source": [
"3. What is a labeled training set?"
],
"metadata": {
"id": "i0M6EMx8B71g"
}
},
{
"cell_type": "markdown",
"source": [],
"metadata": {
"id": "JSO8YkGRLFBD"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: Units of information that teacg the machine trends and similarities derived from the data"
],
"metadata": {
"id": "fipL2K_FBtin"
}
},
{
"cell_type": "markdown",
"source": [
"4. What are the two most common supervised tasks?"
],
"metadata": {
"id": "43FAK9O-CE8K"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here:\n",
"- Speed\n",
"- Type of traffic\n",
"- Percentage of sicount\n",
"- Time of day"
],
"metadata": {
"id": "JjakH8_HBtmV"
}
},
{
"cell_type": "markdown",
"source": [
"5. Can you name four common unsupervised tasks?\n",
"\n",
"\n",
"\n"
],
"metadata": {
"id": "6_5YsjSzCJes"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here:\n",
"- Clustering\n",
"- Dimensionality reduction\n",
"- Anomaly reduction\n",
"-Network intrusion detection"
],
"metadata": {
"id": "aPFI1nvxBtp4"
}
},
{
"cell_type": "markdown",
"source": [
"6. What type of Machine Learning algorithm would you use to allow\n",
"a robot to walk in various unknown terrains?\n"
],
"metadata": {
"id": "DwIRcR9YCNb5"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: Reinforcement learning"
],
"metadata": {
"id": "E8SE6UvrBtuJ"
}
},
{
"cell_type": "markdown",
"source": [
"7. What type of algorithm would you use to segment your customers\n",
"into multiple groups?"
],
"metadata": {
"id": "ZflRQBbbCRwX"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: Clustering algorytmer"
],
"metadata": {
"id": "7QcbHPkBBtwI"
}
},
{
"cell_type": "markdown",
"source": [
"8. Would you frame the problem of spam detection as a supervised\n",
"learning problem or an unsupervised learning problem?"
],
"metadata": {
"id": "X0fKgGXsLq6o"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: Supervised"
],
"metadata": {
"id": "nLnPVahlBty_"
}
},
{
"cell_type": "markdown",
"source": [
"9. What is an online learning system?\n"
],
"metadata": {
"id": "n7CHmnsdCeY3"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: refers to an algorithm that updates its model incrementally as new data arrives, rather than being trained on a fixed dataset all at once (as is done in batch learning). This approach is particularly useful in scenarios where data is continuously generated, and the system needs to adapt in real-time."
],
"metadata": {
"id": "0YRkRS_7Bt2I"
}
},
{
"cell_type": "markdown",
"source": [
"10. What is out-of-core learning?"
],
"metadata": {
"id": "UKkgQ_veCsN_"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: Out-of-core learning is a technique used in machine learning to handle datasets that are too large to fit into a computer's main memory (RAM). Instead of loading the entire dataset into memory at once, out-of-core learning processes the data in smaller chunks that can be managed within the available memory."
],
"metadata": {
"id": "0raVrt27Bt5U"
}
},
{
"cell_type": "markdown",
"source": [
"11. What type of learning algorithm relies on a similarity measure to\n",
"make predictions?"
],
"metadata": {
"id": "alMcqdhaCt8m"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: Time series forecasting or K-NN ( a k-nearst neighborg )\n",
"\n"
],
"metadata": {
"id": "NzHnn7Q5Bt8C"
}
},
{
"cell_type": "markdown",
"source": [
"12. What is the difference between a model parameter and a learning\n",
"algorithm’s hyperparameter?"
],
"metadata": {
"id": "lpvdcsj2CznS"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: model parameters are the values that the model learns from the data, while hyperparameters are the settings that you configure before the learning process begins, and they control how the model learns."
],
"metadata": {
"id": "22JFh-dABt_J"
}
},
{
"cell_type": "markdown",
"source": [
"13. What do model-based learning algorithms search for? What is the\n",
"most common strategy they use to succeed? How do they make\n",
"predictions?"
],
"metadata": {
"id": "fwVjj-WkC4U5"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here: Model-based learning algorithms search for the best model parameters that will allow the model to make accurate predictions on new, unseen data. These parameters define the specific form of the model, such as the weights in a linear regression or the coefficients in a decision tree."
],
"metadata": {
"id": "c8Q85u6RBuCH"
}
},
{
"cell_type": "markdown",
"source": [
"14. Can you name four of the main challenges in Machine Learning?"
],
"metadata": {
"id": "wkKbPfjODAj-"
}
},
{
"cell_type": "markdown",
"source": [
"Write your answer here:\n",
"\n",
"- overfitting/underfitting\n",
"- data quality/quantity\n",
"- bias/fairness\n",
"- interpretability/explainabilit"
],
"metadata": {
"id": "HznUcxBmBuFH"
}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment