{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Labo 6 Data Science : Lineaire Modellen" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Oefening 1** : **Regressie via Lineaire Modellen**\n", "\n", "Gegeven de uitgebreidere data van de auto.csv met extra features : auto_extra.txt. De taak blijft nog steeds om de target _miles_per_gallon_ ($mpg$) te voorspellen.\n", "\n", "Uit de oorspronkelijke beschrijving van de data set :\n", "\n", " \"The data concerns city-cycle fuel consumption in miles per gallon,\n", " to be predicted in terms of 3 multivalued discrete and 5 continuous\n", " attributes.\" (Quinlan, 1993)\n", " Number of Instances: 398\n", " Number of Attributes: 9 including the class attribute\n", " Attribute Information:\n", "\n", " 1. mpg: continuous\n", " 2. cylinders: multi-valued discrete\n", " 3. displacement: continuous\n", " 4. horsepower: continuous\n", " 5. weight: continuous\n", " 6. acceleration: continuous\n", " 7. model year: multi-valued discrete\n", " 8. origin: multi-valued discrete\n", " 9. car name: string (unique for each instance)\n", "\n", "Lees de data in via volgend commando :\n", "\n", "```\n", "data = pd.read_table('auto_extra.txt', delim_whitespace=True)\n", "```\n", "- Inspecteer de data en merk op dat het type van de kolom _horsepower_ geen $float$ is zoals men zou verwachten. Waarom niet? Kan je dit herstellen?\n", "\n", "- Doe eerst de selectie van features : bereken de **correlatiematrix** en ga op basis hiervan na welke features je zou meenemen.\n", "Gebruik volgende tutorial om de correlatiematrix te berekenen en te plotten : \n", "\n", "- Op basis van de geselecteerde features kan je nu een regressiemodel opstellen. Test de verschillende algoritmen die je gezien hebt : Lineair Regression, Ridge en Lasso. Doe een grondige analyse van de parameters $\\alpha$ vooraleer je accuracy scores berekent en vergelijkt.\n", "\n", "- Gebruik je 3 modellen om de mpg van een moderne wagen te voorspellen : \n", " toyota_prius : cylinders : 4, displacement : 497, horsepower: 72, weight: 3626, acceleration : 13.4. De werkelijke mpg is $28.93593047$\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Oefening 2** : **Classificatie a.d.h.v. lineaire modellen**\n", "\n", "De taak is om op basis van 2 examenresultaten van studenten te gaan voorspellen of ze toegelaten zullen worden om in te schrijven voor een bepaalde cursus. \n", "\n", "- Lees de txt file : cijfers.txt in via pandas. Zorg ervoor dat je tabel de volgende kolomhoofden heeft : 'Examen1', 'Examen2', 'Toegelaten'. \n", "- Visualiseer deze data door een scatterplot te maken van de aanwezige data. Geef elke klasse een andere kleur.\n", "- Stel een model op via LogisticRegression, splits je data in een trainings en testset ($25\\%$ van de data hou je om de testen)\n", "- Bereken de **accuracy van je model** en plot de lineaire **decision boundary** die je bekomt bovenop je scatterplot. Je model zal 2 coƫfficienten weergeven ($a_1$ en $a_2*$ want er zijn 2 features aanwezig) en een intercept($a_0$). Deze kan je opvragen via \n", "\n", "```\n", "model.coef_[0]\n", "model.intercept_[0]\n", "```\n", "\n", "De vergelijking van je decision boundary verkrijg je als volgt :\n", "\n", "\\begin{equation}\n", "0 = a_0 + a_1 * x_1 + a_2x_2 \\\\\n", "x_2 = - \\frac{a_0 + a_1 * x_1}{a_2}\n", "\\end{equation}\n", "\n", "- Tenslotte varieer je volgende parameters om je accuracy te verhogen :\n", "\n", " - De parameter $C$ waarmee je de waarde van regularizatie aanpast. Hoe kleiner $C$ hoe sterker de regularizatie.\n", " - De parameter $random\\_state$ die de seed van de pseudo random generator in de $train\\_test\\_split$ methode instelt\n", " \n", " Ga ook telkens visueel na wat het effect is op je decision boundary.\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }