|
|
3 weeks ago | |
|---|---|---|
| .. | ||
| solution | 8 months ago | |
| README.md | 3 weeks ago | |
| assignment.md | 8 months ago | |
| notebook.ipynb | 1 year ago | |
README.md
Kom i gang med Python og Scikit-learn for regresjonsmodeller
Sketchnote av Tomomi Imura
Pre-forelesningsquiz
Denne leksjonen er tilgjengelig i R!
Introduksjon
I disse fire leksjonene vil du oppdage hvordan du bygger regresjonsmodeller. Vi skal snart diskutere hva de brukes til. Men før du starter, sørg for at du har de riktige verktøyene på plass for å starte prosessen!
I denne leksjonen vil du lære hvordan du:
- Konfigurerer datamaskinen din for lokale maskinlæringsoppgaver.
- Arbeider med Jupyter Notebooks.
- Bruker Scikit-learn, inkludert installasjon.
- Utforsker lineær regresjon med en praktisk øvelse.
Installasjoner og konfigurasjoner
🎥 Klikk på bildet over for en kort video som viser konfigurasjon av datamaskinen for ML.
-
Installer Python. Sørg for at Python er installert på datamaskinen din. Du vil bruke Python til mange data science- og maskinlæringsoppgaver. De fleste datasystemer har allerede en Python-installasjon. Det finnes også nyttige Python-kodepakker som gjør oppsettet enklere for noen brukere.
Noen bruksområder av Python krever imidlertid én versjon av programvaren, mens andre krever en annen versjon. Derfor er det nyttig å jobbe innenfor et virtuelt miljø.
-
Installer Visual Studio Code. Sørg for at du har Visual Studio Code installert på datamaskinen din. Følg disse instruksjonene for å installere Visual Studio Code for grunninstallasjonen. Du skal bruke Python i Visual Studio Code i dette kurset, så det kan være lurt å friske opp hvordan du konfigurerer Visual Studio Code for Python-utvikling.
Bli komfortabel med Python ved å jobbe deg gjennom denne samlingen av Lær-moduler
🎥 Klikk på bildet over for en video: bruk av Python i VS Code.
-
Installer Scikit-learn, ved å følge disse instruksjonene. Siden du må være sikker på at du bruker Python 3, anbefales det å bruke et virtuelt miljø. Merk at hvis du installerer dette biblioteket på en M1 Mac, finnes det spesielle instruksjoner på siden som er lenket ovenfor.
-
Installer Jupyter Notebook. Du må installere Jupyter-pakken.
Ditt ML-utviklingsmiljø
Du skal bruke notebooks for å utvikle Python-kode og lage maskinlæringsmodeller. Denne filtypen er et vanlig verktøy for dataforskere, og de kan identifiseres ved sin suffiks eller filendelse .ipynb.
Notebooks er et interaktivt miljø som lar utvikleren både kode og legge til notater og skrive dokumentasjon rundt koden, noe som er svært nyttig for eksperimentelle eller forskningsorienterte prosjekter.
🎥 Klikk på bildet over for en kort video hvor du jobber gjennom denne øvelsen.
Øvelse - arbeid med en notebook
I denne mappen finner du filen notebook.ipynb.
-
Åpne notebook.ipynb i Visual Studio Code.
En Jupyter-server vil starte med Python 3+ aktivert. Du vil finne deler av notebooken som kan
kjøres, kodebiter. Du kan kjøre en kodeblokk ved å klikke på ikonet som ser ut som en avspillingsknapp. -
Velg
md-ikonet og legg til litt markdown med følgende tekst # Velkommen til din notebook.Legg deretter til litt Python-kode.
-
Skriv print('hello notebook') i kodeblokken.
-
Velg pilen for å kjøre koden.
Du bør se den utskrevne setningen:
hello notebook
Du kan veksle mellom kode og kommentarer for å selvdokumentere notebooken.
✅ Tenk et øyeblikk på hvor forskjellig en webutviklers arbeidsmiljø er sammenlignet med en dataforskers.
Kom i gang med Scikit-learn
Nå som Python er satt opp i ditt lokale miljø, og du er komfortabel med Jupyter Notebooks, la oss bli like komfortable med Scikit-learn (uttales sci som i science). Scikit-learn tilbyr en omfattende API som hjelper deg med å utføre ML-oppgaver.
Ifølge deres nettside, "Scikit-learn er et åpen kildekode maskinlæringsbibliotek som støtter veiledet og ikke-veiledet læring. Det tilbyr også flere verktøy for modelltilpasning, datapreprosessering, modellvalg og evaluering, og mange andre verktøy."
I dette kurset skal du bruke Scikit-learn og andre verktøy for å bygge maskinlæringsmodeller for det vi kaller 'tradisjonelle maskinlæringsoppgaver'. Vi unngår bevisst nevrale nettverk og dyp læring, da disse dekkes bedre i vårt kommende 'AI for nybegynnere'-pensum.
Scikit-learn gjør det enkelt å bygge modeller og evaluere dem til bruk. Det fokuserer primært på numeriske data og inneholder flere ferdiglagde datasett som læringsverktøy. Det inkluderer også ferdigbygde modeller som studenter kan prøve. La oss utforske prosessen med å laste forhåndspakket data og bruke en innebygd estimator for å lage din første ML-modell med Scikit-learn med noen grunnleggende data.
Øvelse - din første Scikit-learn-notebook
Denne veiledningen er inspirert av lineær regresjons-eksemplet på Scikit-learns nettsted.
🎥 Klikk på bildet over for en kort video hvor du jobber gjennom denne øvelsen.
I filen notebook.ipynb knyttet til denne leksjonen, slett alle cellene ved å trykke på 'papirkurv'-ikonet.
I denne delen skal du arbeide med et lite datasett om diabetes som er innebygd i Scikit-learn for læringsformål. Tenk deg at du ønsker å teste en behandling for diabetikere. Maskinlæringsmodeller kan hjelpe deg å avgjøre hvilke pasienter som vil svare best på behandlingen, basert på kombinasjoner av variabler. Selv en veldig enkel regresjonsmodell, når den visualiseres, kan vise informasjon om variabler som kan hjelpe deg å organisere dine teoretiske kliniske studier.
✅ Det finnes mange typer regresjonsmetoder, og hvilken du velger avhenger av svaret du leter etter. Hvis du vil forutsi sannsynlig høyde for en person i en gitt alder, bruker du lineær regresjon, siden du søker en numerisk verdi. Hvis du er interessert i å finne ut om en type mat skal klassifiseres som vegansk eller ikke, søker du en kategori-tilordning, så du ville bruke logistisk regresjon. Du vil lære mer om logistisk regresjon senere. Tenk litt på spørsmål du kan stille data, og hvilken av disse metodene som passer best.
La oss komme i gang med denne oppgaven.
Importer biblioteker
For denne oppgaven vil vi importere noen biblioteker:
- matplotlib. Det er et nyttig grafikkverktøy som vi skal bruke for å lage en linjegraf.
- numpy. numpy er et nyttig bibliotek for håndtering av numeriske data i Python.
- sklearn. Dette er Scikit-learn-biblioteket.
Importer noen biblioteker for å hjelpe med oppgavene dine.
-
Legg til importene ved å skrive følgende kode:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selectionOvenfor importerer du
matplotlib,numpyog importererdatasets,linear_modelogmodel_selectionfrasklearn.model_selectionbrukes for å splitte data i trenings- og testsett.
Diabetes-datasettet
Det innebygde diabetes-datasettet inneholder 442 datapunkter om diabetes, med 10 forklaringsvariabler, noen av dem er:
- alder: alder i år
- bmi: kroppsmasseindeks
- bp: gjennomsnittlig blodtrykk
- s1 tc: T-celler (en type hvite blodceller)
✅ Dette datasettet inkluderer begrepet 'kjønn' som en forklaringsvariabel viktig for diabetesforskning. Mange medisinske datasett inneholder denne typen binær klassifisering. Tenk litt på hvordan slike kategoriseringer kan ekskludere deler av befolkningen fra behandlinger.
Nå, last inn X- og y-dataene.
🎓 Husk at dette er veiledet læring, og vi trenger et navngitt 'y'-mål.
I en ny kodecelle, last diabetes-datasettet ved å kalle load_diabetes(). Argumentet return_X_y=True signaliserer at X blir en datamatris, og y vil være regresjonsmålet.
-
Legg til noen print-kommandoer for å vise formen på datamatrisen og det første elementet:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])Det du får tilbake som svar, er en tuppel. Du tildeler de to første verdiene i tuppelen til
Xogyhenholdsvis. Lær mer om tupler.Du kan se at denne dataen har 442 elementer formet som arrayer med 10 elementer:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]✅ Tenk litt på forholdet mellom dataen og regresjonsmålet. Lineær regresjon forutsier forholdet mellom egenskap X og målet y. Kan du finne målet for diabetes-datasettet i dokumentasjonen? Hva demonstrerer dette datasettet, gitt målet?
-
Velg så en del av dette datasettet for å lage en graf ved å velge 3. kolonne. Du kan gjøre dette med
:-operatoren for å velge alle rader, og deretter velge kolonne 3 med indeks (2). Du kan også omforme dataen til en 2D-array - som kreves for plott - ved å brukereshape(n_rader, n_kolonner). Hvis en av parameterne er -1, beregnes den tilsvarende dimensjonen automatisk.X = X[:, 2] X = X.reshape((-1,1))✅ Skriv ut data når som helst for å sjekke formen på den.
-
Nå som du har data klar for plott, kan du se om en maskin kan hjelpe med å bestemme en logisk inndeling mellom tallene i datasettet. For dette må du dele både data (X) og mål (y) i test- og treningssett. Scikit-learn har en enkel måte å gjøre dette på; du kan dele testdataen på et gitt punkt.
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
Nå er du klar til å trene modellen din! Last inn lineær regresjonsmodell og tren den med treningssettene X og y med
model.fit():model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()er en funksjon du finner i mange ML-biblioteker som TensorFlow -
Lag deretter en prediksjon ved å bruke testdata med funksjonen
predict(). Dette skal brukes til å tegne linjen mellom datagruppene.y_pred = model.predict(X_test) -
Nå er det tid for å vise dataen i en graf. Matplotlib er et veldig nyttig verktøy for denne oppgaven. Lag et scatterplot av alle X- og y-testdataene, og bruk prediksjonen til å tegne en linje på det mest passende stedet mellom modellens datagrupper.
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()✅ Tenk litt på hva som skjer her. En rett linje går gjennom mange små datapunkter, men hva gjør den egentlig? Kan du se hvordan du skal kunne bruke denne linjen til å forutsi hvor et nytt, ukjent datapunkt bør passe i forhold til plottets y-akse? Prøv å sette ord på den praktiske bruken av denne modellen.
Gratulerer, du har bygget din første lineære regresjonsmodell, laget en prediksjon med den, og vist den i en graf!
🚀Utfordring
Lag en graf for en annen variabel fra dette datasettet. Tips: endre denne linjen: X = X[:,2]. Med tanke på datasetts mål, hva kan du oppdage om utviklingen av diabetes som sykdom?
Post-forelesningsquiz
Gjennomgang & Selvstudium
I denne veiledningen jobbet du med enkel lineær regresjon, i stedet for univariat eller multippel lineær regresjon. Les litt om forskjellene mellom disse metodene, eller ta en titt på denne videoen
Les mer om konseptet regresjon og tenk på hvilke typer spørsmål som kan besvares med denne teknikken. Ta denne veiledningen for å utdype din forståelse.
Oppgave
Ansvarsfraskrivelse: Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.






