mirror of
https://github.com/bvanroll/college-datascience.git
synced 2025-08-29 12:02:45 +00:00
eeyyyyyyyyyyyyyy
This commit is contained in:
124
6/Labo6.ipynb
Normal file
124
6/Labo6.ipynb
Normal file
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"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 : <http://benalexkeen.com/correlation-in-python/>\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
|
||||
}
|
Reference in New Issue
Block a user