|
|
3 weeks ago | |
|---|---|---|
| .. | ||
| solution | 8 months ago | |
| README.md | 3 weeks ago | |
| assignment.md | 8 months ago | |
| notebook.ipynb | 1 year ago | |
README.md
Aan de slag met Python en Scikit-learn voor regressiemodellen
Sketchnote door Tomomi Imura
Pre-college quiz
Deze les is ook beschikbaar in R!
Introductie
In deze vier lessen ontdek je hoe je regressiemodellen bouwt. We zullen zo bespreken waar die voor zijn. Maar voordat je iets doet, zorg dat je de juiste tools klaar hebt staan om het proces te starten!
In deze les leer je hoe je:
- Je computer configureert voor lokale machine learning taken.
- Werkt met Jupyter Notebooks.
- Scikit-learn gebruikt, inclusief installatie.
- Lineaire regressie verkent met een praktische oefening.
Installaties en configuraties
🎥 Klik op de afbeelding hierboven voor een korte video waarin je door de configuratie van je computer voor ML wordt geleid.
-
Installeer Python. Zorg dat Python op je computer is geïnstalleerd. Je gebruikt Python voor veel data science en machine learning taken. De meeste computersystemen hebben al een Python-installatie. Er zijn ook handige Python Coding Packs beschikbaar om het opzetten voor sommige gebruikers makkelijker te maken.
Sommige toepassingen van Python vereisen echter één versie van de software, terwijl andere een andere versie behoeven. Daarom is het handig om binnen een virtuele omgeving te werken.
-
Installeer Visual Studio Code. Zorg dat Visual Studio Code op je computer is geïnstalleerd. Volg deze instructies om Visual Studio Code te installeren voor de basisinstallatie. Je gaat Python in Visual Studio Code gebruiken in deze cursus, dus je kunt ook de tijd nemen om te leren hoe je Visual Studio Code configureert voor Python-ontwikkeling.
Raken vertrouwd met Python door deze verzameling Learn-modules door te werken.
🎥 Klik op de afbeelding hierboven voor een video: Python gebruiken binnen VS Code.
-
Installeer Scikit-learn, door de instructies hier te volgen. Omdat je moet zorgen dat je Python 3 gebruikt, is het aan te raden om een virtuele omgeving te gebruiken. Let op: als je deze bibliotheek op een M1 Mac installeert, zijn er speciale instructies op de bovenstaande pagina.
-
Installeer Jupyter Notebook. Je moet het Jupyter pakket installeren.
Je ML ontwikkelomgeving
Je gaat notebooks gebruiken om je Python-code te ontwikkelen en machine learning modellen te maken. Dit type bestand is een veelgebruikt hulpmiddel voor datawetenschappers en ze zijn te herkennen aan hun suffix of extensie .ipynb.
Notebooks zijn een interactieve omgeving die de ontwikkelaar in staat stelt om zowel code te schrijven als notities en documentatie toe te voegen rondom de code, wat erg nuttig is voor experimentele of onderzoeksgerichte projecten.
🎥 Klik op de afbeelding hierboven voor een korte video die deze oefening doorloopt.
Oefening - werk met een notebook
In deze map vind je het bestand notebook.ipynb.
-
Open notebook.ipynb in Visual Studio Code.
Er zal een Jupyter server starten met Python 3+ actief. Je vindt gedeeltes van het notebook die je kunt
runnen, stukjes code. Je kunt een codeblok uitvoeren door te klikken op het icoontje dat eruitziet als een afspeelknop. -
Selecteer het
mdicoon en voeg wat markdown toe, en de volgende tekst # Welkom in je notebook.Voeg daarna wat Python code toe.
-
Typ print('hello notebook') in het codeblok.
-
Selecteer de pijl om de code te runnen.
Je zou de volgende afgedrukte tekst moeten zien:
hello notebook
Je kunt je code afwisselen met commentaren om je notebook zelf te documenteren.
✅ Denk even na over hoe anders de werkomgeving van een webontwikkelaar is in vergelijking met die van een datawetenschapper.
Aan de slag met Scikit-learn
Nu Python is ingesteld op je lokale omgeving en je vertrouwd bent met Jupyter Notebooks, laten we ook vertrouwd raken met Scikit-learn (spreek uit als sci zoals in science). Scikit-learn biedt een uitgebreide API om je te helpen ML taken uit te voeren.
Volgens hun website, "Scikit-learn is een open source machine learning bibliotheek die zowel supervised als unsupervised learning ondersteunt. Het biedt ook diverse tools voor model fitting, datapreprocessing, modelselectie en evaluatie, en vele andere hulpmiddelen."
In deze cursus gebruik je Scikit-learn en andere tools om machine learning modellen te bouwen waarmee we 'traditionele machine learning' taken uitvoeren. We hebben bewust neurale netwerken en deep learning vermeden, omdat die beter behandeld worden in ons aankomende curriculum 'AI voor Beginners'.
Scikit-learn maakt het gemakkelijk om modellen te bouwen en te evalueren. Het is vooral gericht op het gebruik van numerieke data en bevat verschillende kant-en-klare datasets om te gebruiken als leermiddelen. Het bevat ook vooraf gebouwde modellen voor studenten om te proberen. Laten we het proces verkennen van het laden van voorverpakte data en het gebruiken van een ingebouwde estimator om je eerste ML-model te maken met Scikit-learn met wat basisdata.
Oefening - je eerste Scikit-learn notebook
Deze tutorial is geïnspireerd door het lineaire regressie voorbeeld op de Scikit-learn website.
🎥 Klik op de afbeelding hierboven voor een korte video waarin deze oefening wordt doorlopen.
In het bestand notebook.ipynb dat bij deze les hoort, maak alle cellen leeg door op het 'prullenbak' icoon te klikken.
In deze sectie werk je met een kleine dataset over diabetes die ingebouwd is in Scikit-learn voor leermiddelen. Stel je voor dat je een behandeling voor diabetici wilde testen. Machine learning modellen kunnen je helpen bepalen welke patiënten beter op de behandeling reageren op basis van combinaties van variabelen. Zelfs een heel eenvoudig regressiemodel kan, wanneer gevisualiseerd, informatie tonen over variabelen die je zouden helpen je theoretische klinische onderzoeken te organiseren.
✅ Er zijn veel soorten regressiemethoden, en welke je kiest hangt af van het antwoord dat je zoekt. Wil je de waarschijnlijke lengte voorspellen voor een persoon van een bepaalde leeftijd, gebruik je lineaire regressie, omdat je een numerieke waarde zoekt. Ben je geïnteresseerd in te ontdekken of een keuken als veganistisch beschouwd moet worden, dan zoek je een categorietoewijzing en gebruik je logistische regressie. Je leert later meer over logistische regressie. Denk even na over de vragen die je aan data kunt stellen en welke van deze methoden het meest geschikt is.
Laten we aan deze taak beginnen.
Bibliotheken importeren
Voor deze taak importeren we een paar bibliotheken:
- matplotlib. Het is een handige grafiektool en we gebruiken het om een lijngrafiek te maken.
- numpy. numpy is een handige bibliotheek voor het omgaan met numerieke data in Python.
- sklearn. Dit is de Scikit-learn bibliotheek.
Importeer enkele bibliotheken om je te helpen met je taken.
-
Voeg de imports toe door de volgende code te typen:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selectionBoven importeer je
matplotlib,numpyen je importeertdatasets,linear_modelenmodel_selectionvansklearn.model_selectionwordt gebruikt om data in trainings- en testsets te splitsen.
De diabetes dataset
De ingebouwde diabetes dataset bevat 442 datasets over diabetes, met 10 feature-variabelen, waaronder:
- leeftijd: leeftijd in jaren
- bmi: body mass index
- bp: gemiddelde bloeddruk
- s1 tc: T-cellen (een type witte bloedcellen)
✅ Deze dataset bevat het concept 'geslacht' als een belangrijke featurevariabele in het onderzoek rondom diabetes. Veel medische datasets bevatten dit type binaire classificatie. Denk na over hoe zulke categoriseringen bepaalde delen van de bevolking kunnen uitsluiten van behandelingen.
Laad nu de X- en y-data.
🎓 Denk eraan, dit is supervised learning en we hebben een benoemde 'y' target nodig.
Laad in een nieuwe codecel de diabetes dataset door load_diabetes() aan te roepen. De invoer return_X_y=True betekent dat X een datamatrijs zal zijn, en y het regressiedoel.
-
Voeg printopdrachten toe om de vorm van de datamatrijs en het eerste element te tonen:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])Wat je terugkrijgt als respons is een tuple. Wat je doet is de eerste twee waarden van de tuple toewijzen aan respectievelijk
Xeny. Lees meer over tuples.Je ziet dat deze data 442 items bevat, geordend in arrays van 10 elementen:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]✅ Denk even na over de relatie tussen de data en het regressiedoel. Lineaire regressie voorspelt relaties tussen feature X en targetvariabele y. Kun je het target voor de diabetes dataset in de documentatie vinden? Wat toont deze dataset, gegeven dat target?
-
Selecteer vervolgens een deel van deze dataset om te plotten door de 3e kolom van de dataset te nemen. Dit doe je door de
:operator te gebruiken om alle rijen te selecteren en de 3e kolom te selecteren met index (2). Je kunt de data ook opnieuw vormgeven tot een 2D-array - zoals nodig is om te plotten - metreshape(n_rows, n_columns). Als een van de parameters -1 is, wordt de overeenkomstige dimensie automatisch berekend.X = X[:, 2] X = X.reshape((-1,1))✅ Print de data op elk moment om de vorm te checken.
-
Nu je data klaar is om te plotten, kun je zien of een machine kan helpen bij het bepalen van een logische scheiding tussen de getallen in deze dataset. Hiervoor moet je zowel de data (X) als het target (y) splitsen in test- en trainingssets. Scikit-learn heeft hier een eenvoudige manier voor; je kunt je testdata op een punt splitsen.
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
Nu ben je klaar om je model te trainen! Laad het lineaire regressiemodel en train het met je X- en y-trainingssets via
model.fit():model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()is een functie die je in veel ML-bibliotheken ziet, zoals TensorFlow -
Maak vervolgens een voorspelling met de testdata, met de functie
predict(). Dit wordt gebruikt om de lijn te trekken tussen de gegevensgroepen.y_pred = model.predict(X_test) -
Tijd om de data weer te geven in een plot. Matplotlib is erg handig voor deze taak. Maak een scatterplot van alle X en y testdata en gebruik de voorspelling om een lijn te tekenen op de meest logische plek tussen de modelgegevensgroepen.
plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.xlabel('Scaled BMIs') plt.ylabel('Disease Progression') plt.title('A Graph Plot Showing Diabetes Progression Against BMI') plt.show()✅ Denk na over wat hier gebeurt. Een rechte lijn gaat door veel kleine stippen data heen, maar wat doet hij precies? Zie je hoe je deze lijn zou kunnen gebruiken om te voorspellen waar een nieuwe, ongeziene datapunt zou moeten passen ten opzichte van de y-as van de plot? Probeer in woorden te vatten wat het praktische nut is van dit model.
Gefeliciteerd, je hebt je eerste lineaire regressiemodel gebouwd, een voorspelling gemaakt en die geplot!
🚀Uitdaging
Plot een andere variabele uit deze dataset. Tip: bewerk deze regel: X = X[:,2]. Gegeven het target van deze dataset, wat kun je ontdekken over de progressie van diabetes als ziekte?
Post-college quiz
Review & Zelfstudie
In deze tutorial werkte je met eenvoudige lineaire regressie, in plaats van univariate of multivariate lineaire regressie. Lees wat over de verschillen tussen deze methoden, of bekijk deze video
Lees meer over het concept regressie en denk na over welke soorten vragen met deze techniek beantwoord kunnen worden. Volg deze tutorial om je begrip te verdiepen.
Opdracht
Disclaimer: Dit document is vertaald met behulp van de AI vertaaldienst Co-op Translator. Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.






