|
|
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 igång med Python och Scikit-learn för regressionsmodeller
Sketchnote av Tomomi Imura
Förquiz innan lektionen
Den här lektionen finns också på R!
Introduktion
I dessa fyra lektioner kommer du att upptäcka hur man bygger regressionsmodeller. Vi diskuterar vad dessa används till inom kort. Men innan du gör något, säkerställ att du har rätt verktyg på plats för att starta processen!
I denna lektion kommer du att lära dig hur du:
- Konfigurerar din dator för lokala maskininlärningsuppgifter.
- Arbetar med Jupyter Notebooks.
- Använder Scikit-learn, inklusive installation.
- Utforskar linjär regression med en praktisk övning.
Installationer och konfigurationer
🎥 Klicka på bilden ovan för en kort video som går igenom att konfigurera din dator för ML.
-
Installera Python. Se till att Python är installerat på din dator. Du kommer att använda Python för många data science- och maskininlärningsuppgifter. De flesta datasystem har redan en Python-installation. Det finns också användbara Python Coding Packs tillgängliga för att förenkla installationen för vissa användare.
Vissa användningar av Python kräver dock en version av mjukvaran medan andra kräver en annan version. Av den anledningen är det bra att arbeta inom en virtuell miljö.
-
Installera Visual Studio Code. Kontrollera att du har Visual Studio Code installerat på din dator. Följ dessa instruktioner för att installera Visual Studio Code för en grundläggande installation. Du kommer att använda Python i Visual Studio Code i denna kurs, så du kanske vill fräscha upp dina kunskaper om hur man konfigurerar Visual Studio Code för Python-utveckling.
Bli bekväm med Python genom att gå igenom denna samling av Lär-moduler
🎥 Klicka på bilden ovan för en video: använda Python i VS Code.
-
Installera Scikit-learn genom att följa dessa instruktioner. Eftersom du måste säkerställa att du använder Python 3, rekommenderas det att du använder en virtuell miljö. Observera att om du installerar detta bibliotek på en M1 Mac finns det speciella instruktioner på sidan som länkas ovan.
-
Installera Jupyter Notebook. Du behöver installera Jupyter-paketet.
Din ML-utvecklingsmiljö
Du kommer att använda notebooks för att utveckla din Python-kod och skapa maskininlärningsmodeller. Denna typ av fil är ett vanligt verktyg för dataforskare och de kan identifieras på deras suffix eller filändelse .ipynb.
Notebooks är en interaktiv miljö som tillåter utvecklaren att både koda och lägga till anteckningar och skriva dokumentation kring koden vilket är mycket hjälpsamt för experimentella eller forskningsorienterade projekt.
🎥 Klicka på bilden ovan för en kort video som går igenom denna övning.
Övning - arbeta med en notebook
I denna mapp hittar du filen notebook.ipynb.
-
Öppna notebook.ipynb i Visual Studio Code.
En Jupyter-server startar med Python 3+ igång. Du kommer att hitta områden i notebooken som kan
köras, kodavsnitt. Du kan köra ett kodblock genom att välja ikonen som ser ut som en play-knapp. -
Välj
md-ikonen och lägg till lite markdown och följande text # Välkommen till din notebook.Nästa steg, lägg till lite Python-kod.
-
Skriv print('hello notebook') i kodblocket.
-
Välj pilen för att köra koden.
Du bör se det utskrivna uttalandet:
hello notebook
Du kan väva in din kod med kommentarer för att själv dokumentera notebooken.
✅ Tänk en stund på hur annorlunda en webbutvecklares arbetsmiljö är jämfört med en dataforskares.
Kom igång med Scikit-learn
Nu när Python är installerat i din lokala miljö och du är bekväm med Jupyter Notebooks, låt oss bli lika bekväma med Scikit-learn (uttalas sci som i science). Scikit-learn erbjuder ett omfattande API som hjälper dig att utföra ML-uppgifter.
Enligt deras webbplats, "Scikit-learn är ett öppen källkods-maskininlärningsbibliotek som stöder övervakad och oövervakad inlärning. Det tillhandahåller också olika verktyg för modellpassning, datarensning, modellurval och utvärdering samt många andra verktyg."
I denna kurs kommer du att använda Scikit-learn och andra verktyg för att bygga maskininlärningsmodeller för att utföra vad vi kallar 'traditionella maskininlärningsuppgifter'. Vi har medvetet undvikit neurala nätverk och djupinlärning, eftersom de behandlas bättre i vår kommande kurs 'AI för nybörjare'.
Scikit-learn gör det enkelt att bygga modeller och utvärdera dem för användning. Den är främst inriktad på att använda numeriska data och innehåller flera färdiga datamängder för användning som inlärningsverktyg. Den inkluderar också förbyggda modeller för studenter att prova. Låt oss utforska processen att ladda förpackade data och använda en inbyggd estimator för att skapa din första ML-modell med Scikit-learn med viss grundläggande data.
Övning - din första Scikit-learn notebook
Denna tutorial är inspirerad av exemplet för linjär regression på Scikit-learns webbplats.
🎥 Klicka på bilden ovan för en kort video som går igenom denna övning.
I filen notebook.ipynb som hör till denna lektion, rensa alla celler genom att trycka på 'papperskorgs'-ikonen.
I detta avsnitt kommer du att arbeta med en liten dataset om diabetes som är inbyggd i Scikit-learn för lärande ändamål. Föreställ dig att du ville testa en behandling för diabetiker. Maskininlärningsmodeller kan hjälpa dig att avgöra vilka patienter som skulle svara bättre på behandlingen baserat på kombinationer av variabler. Även en mycket grundläggande regressionsmodell, när den visualiseras, kan visa information om variabler som hjälper dig att organisera dina teoretiska kliniska studier.
✅ Det finns många typer av regressionsmetoder, och vilken du väljer beror på vilken fråga du vill besvara. Om du vill förutspå en sannolik längd för en person i en given ålder använder du linjär regression eftersom du söker ett numeriskt värde. Om du är intresserad av att upptäcka om en typ av kök ska klassas som veganskt eller inte, söker du en kategori-klassificering, så du skulle använda logistisk regression. Du kommer att lära dig mer om logistisk regression senare. Fundera lite på vilka frågor du kan ställa om data och vilken av dessa metoder som skulle vara lämpligare.
Låt oss börja med denna uppgift.
Importera bibliotek
För denna uppgift kommer vi att importera några bibliotek:
- matplotlib. Det är ett användbart grafverktyg som vi kommer att använda för att skapa ett linjediagram.
- numpy. numpy är ett användbart bibliotek för att hantera numeriska data i Python.
- sklearn. Det här är Scikit-learn-biblioteket.
Importera några bibliotek för att underlätta dina uppgifter.
-
Lägg till imports genom att skriva följande kod:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selectionOvan importerar du
matplotlib,numpyoch du importerardatasets,linear_modelochmodel_selectionfrånsklearn.model_selectionanvänds för att dela upp data i tränings- och testuppsättningar.
Diabetes-datasetet
Det inbyggda diabetes-datasetet innehåller 442 datapunkter om diabetes med 10 egenskapsvariabler, varav några är:
- age: ålder i år
- bmi: kroppsmassindex
- bp: genomsnittligt blodtryck
- s1 tc: T-celler (en typ av vita blodkroppar)
✅ Detta dataset inkluderar begreppet 'sex' som en egenskapsvariabel som är viktig för forskning kring diabetes. Många medicinska dataset använder denna typ av binär klassifikation. Fundera lite på hur kategoriseringar som denna kan utesluta vissa delar av en befolkning från behandlingar.
Ladda nu upp X- och y-data.
🎓 Kom ihåg, detta är övervakad inlärning och vi behöver ett namngivet mål 'y'.
I en ny kodcell, ladda diabetes-datasetet genom att anropa load_diabetes(). Argumentet return_X_y=True signalerar att X kommer att vara en datamatris och y kommer att vara regressionsmålet.
-
Lägg till några print-kommandon för att visa formen på datamatrisen och dess första element:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])Det du får tillbaka som svar är en tuple. Vad du gör är att tilldela de två första värdena i tuplen till
Xrespektivey. Läs mer om tupler.Du kan se att denna data har 442 objekt formade i arrayer med 10 element:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]✅ Fundera lite på relationen mellan data och regressionsmålet. Linjär regression förutspår relationer mellan egenskapen X och målet y. Kan du hitta målet för diabetes-datasetet i dokumentationen? Vad demonstrerar detta dataset, givet målet?
-
Välj sedan en del av detta dataset att plotta genom att välja den 3:e kolumnen i datasetet. Du kan göra detta genom att använda
:operatorn för att välja alla rader, och sedan välja den 3:e kolumnen med index (2). Du kan också omforma datat till en 2D-array – som krävs för plotten – genom att användareshape(rader, kolumner). Om en av parametrarna är -1 beräknas motsvarande dimension automatiskt.X = X[:, 2] X = X.reshape((-1,1))✅ Skriv ut datat när som helst för att kontrollera dess form.
-
Nu när du har data redo för plot, kan du se om en maskin kan hjälpa till att bestämma en logisk uppdelning mellan talen i detta dataset. För detta behöver du dela upp både data (X) och målet (y) i test- och träningsuppsättningar. Scikit-learn har ett enkelt sätt att göra detta; du kan dela upp din testdata vid en given punkt.
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
Nu är du redo att träna din modell! Ladda in den linjära regressionsmodellen och träna den med dina X- och y-träningsmängder med
model.fit():model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()är en funktion som du kommer att se i många ML-bibliotek som TensorFlow -
Skapa sedan en förutsägelse med testdatat, med funktionen
predict(). Denna används för att rita linjen mellan datagrupperna.y_pred = model.predict(X_test) -
Nu är det dags att visa datat i ett diagram. Matplotlib är ett mycket användbart verktyg för denna uppgift. Skapa ett scatterplot av all X och y testdata, och använd förutsägelsen för att rita en linje på den mest lämpliga platsen mellan modellens datagrupperingar.
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()✅ Fundera på vad som händer här. En rak linje går genom många små datapunkter, men vad gör den egentligen? Kan du se hur du ska kunna använda denna linje för att förutsäga var en ny, osedd datapunkt bör placeras i förhållande till plotens y-axel? Försök sätta ord på den praktiska användningen av denna modell.
Grattis, du har byggt din första linjära regressionsmodell, skapat en förutsägelse med den och visat den i ett diagram!
🚀Utmaning
Plotta en annan variabel från detta dataset. Tips: redigera denna rad: X = X[:,2]. Givet detta datasets mål, vad kan du upptäcka om diabetes som sjukdoms progression?
Quiz efter lektionen
Genomgång & Självstudier
I denna tutorial arbetade du med enkel linjär regression, snarare än univariat eller multipel linjär regression. Läs lite om skillnaderna mellan dessa metoder, eller titta på den här videon
Läs mer om begreppet regression och fundera på vilka typer av frågor som kan besvaras med denna teknik. Ta denna handledning för att fördjupa din förståelse.
Uppgift
Ansvarsfriskrivning: Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, var vänlig notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.






