|
|
3 weeks ago | |
|---|---|---|
| .. | ||
| solution | 8 months ago | |
| README.md | 3 weeks ago | |
| assignment.md | 8 months ago | |
| notebook.ipynb | 1 year ago | |
README.md
Početak s Pythonom i Scikit-learn za regresijske modele
Sketchnote autora Tomomi Imura
Kviz prije predavanja
Ova lekcija dostupna je i na R!
Uvod
U ovih četiriju lekcija otkrit ćete kako izraditi regresijske modele. Uskoro ćemo objasniti čemu oni služe. No prije nego što išta napravite, provjerite imate li potrebne alate za početak procesa!
U ovoj lekciji naučit ćete kako:
- Konfigurirati svoje računalo za zadatke lokalnog strojnog učenja.
- Raditi s Jupyter bilježnicama.
- Koristiti Scikit-learn, uključujući instalaciju.
- Istražiti linearnu regresiju kroz praktični zadatak.
Instalacije i konfiguracije
🎥 Kliknite gornju sliku za kratki video o konfiguriranju računala za ML.
-
Instalirajte Python. Provjerite je li Python instaliran na vašem računalu. Python ćete koristiti za mnoge zadatke u znanosti o podacima i strojnog učenja. Većina računala već ima instaliran Python. Također postoje korisni Python paketi za kodiranje koji olakšavaju postavljanje nekim korisnicima.
Neki slučajevi upotrebe Pythona zahtijevaju jednu verziju softvera, dok drugi zahtijevaju drugu. Zato je korisno raditi unutar virtualnog okruženja.
-
Instalirajte Visual Studio Code. Provjerite imate li Visual Studio Code instaliran na računalu. Slijedite upute za instalaciju Visual Studio Code za osnovnu instalaciju. U ovom tečaju koristit ćete Python u Visual Studio Codeu, stoga se možda želite upoznati s načinom na koji se može konfigurirati Visual Studio Code za razvoj u Pythonu.
Udobno se upoznajte s Pythonom radeći kroz ovaj skup Learn modula
🎥 Kliknite gornju sliku za video: korištenje Pythona unutar VS Code-a.
-
Instalirajte Scikit-learn, slijedeći ove upute. Budući da trebate koristiti Python 3, preporuča se virtualno okruženje. Napomena, ako instalirate ovu biblioteku na M1 Mac, na povezanoj stranici postoje posebne upute.
-
Instalirajte Jupyter Notebook. Trebat ćete instalirati paket Jupyter.
Vaše okruženje za razvoj ML-a
Koristit ćete bilježnice za razvoj Python koda i izradu modela strojnog učenja. Ova vrsta datoteke često se koristi kod znanstvenika podataka, a prepoznaje se po sufiksu ili ekstenziji .ipynb.
Bilježnice su interaktivno okruženje koje programeru omogućuje i kodiranje i dodavanje bilješki te pisanje dokumentacije oko koda, što je vrlo korisno za eksperimentalne ili istraživačke projekte.
🎥 Kliknite gornju sliku za kratki video kroz ovaj zadatak.
Vježba - rad s bilježnicom
U ovoj mapi pronaći ćete datoteku notebook.ipynb.
-
Otvorite notebook.ipynb u Visual Studio Codeu.
Jupyter poslužitelj će se pokrenuti s Python 3+. Naći ćete dijelove bilježnice koji se mogu
pokrenuti, odnosno blokove koda. Kôd se može pokrenuti klikom na ikonu koja izgleda kao tipka za reprodukciju. -
Odaberite
mdikonu i dodajte malo markdowna i sljedeći tekst # Dobrodošli u vašu bilježnicu.Zatim dodajte malo Python koda.
-
Upisujte print('hello notebook') u blok koda.
-
Kliknite strelicu da pokrenete kod.
Trebali biste vidjeti ispisanu izjavu:
hello notebook
Kod možete ispreplitati s komentarima radi samodokumentiranja bilježnice.
✅ Razmislite na trenutak koliko se radno okruženje web programera razlikuje od okruženja znanstvenika podataka.
Pokretanje sa Scikit-learn
Sada kada je Python postavljen u vašem lokalnom okruženju i kada ste upoznati s Jupyter bilježnicama, upoznajmo se jednako s Scikit-learnom (izgovara se sci kao u znanost). Scikit-learn pruža opširan API za pomoć u izvršavanju ML zadataka.
Prema njihovoj web stranici, "Scikit-learn je open source biblioteka za strojno učenje koja podržava nadzirano i nenadzirano učenje. Također pruža razne alate za namještanje modela, predobradu podataka, odabir i evaluaciju modela, te mnoge druge korisne funkcije."
U ovom tečaju koristit ćete Scikit-learn i ostale alate za izradu modela strojnog učenja za izvođenje zadataka koje nazivamo 'tradicionalnim strojnim učenjem'. Namjerno smo izbjegli neuronske mreže i duboko učenje, jer su oni bolje pokriveni u našem budućem programu 'AI za početnike'.
Scikit-learn olakšava izradu modela i njihovu evaluaciju za uporabu. Primarno je fokusiran na uporabu numeričkih podataka i sadrži nekoliko pripremljenih skupova podataka za učenje. Također uključuje gotove modele za isprobavanje. Istražimo postupak učitavanja unaprijed spremljenih podataka i korištenja ugrađenog estimator za izradu prvog ML modela sa Scikit-learnom na osnovnim podacima.
Vježba - vaša prva Scikit-learn bilježnica
Ovaj vodič inspiriran je primjerom linearne regresije na službenoj stranici Scikit-learna.
🎥 Kliknite sliku iznad za kratki video kroz ovaj zadatak.
U datoteci notebook.ipynb povezanoj s ovom lekcijom obrišite sve ćelije pritiskom na ikonu 'kanta za smeće'.
U ovom dijelu radit ćete s malim skupom podataka o dijabetesu koji je ugrađen u Scikit-learn radi učenja. Zamislite da želite testirati tretman za dijabetičare. Modeli strojnog učenja mogli bi vam pomoći utvrditi koji bi pacijenti bolje reagirali na tretman, na temelju kombinacija varijabli. Čak i vrlo osnovni regresijski model, kad se prikaže grafički, mogao bi pokazati informacije o varijablama koje bi vam pomogle organizirati vaše teorijske kliničke pokuse.
✅ Postoje mnoge metode regresije, a koju ćete odabrati ovisi o pitanju na koje tražite odgovor. Ako želite predvidjeti vjerojatnu visinu osobe određene dobi, koristit ćete linearnu regresiju jer tražite numeričku vrijednost. Ako vas zanima je li neka vrsta kuhinje veganska ili ne, tražite pridruživanje kategoriji pa biste koristili logističku regresiju. O logističkoj regresiji naučit ćete više kasnije. Razmislite o nekim pitanjima koja možete postaviti podacima i koja bi metoda bila prikladnija.
Krenimo s ovim zadatkom.
Uvoz biblioteka
Za ovaj zadatak uvest ćemo nekoliko biblioteka:
- matplotlib. Koristan je alat za grafove i upotrijebit ćemo ga za crtanje linijskog grafa.
- numpy. numpy je korisna biblioteka za rukovanje numeričkim podacima u Pythonu.
- sklearn. To je Scikit-learn biblioteka.
Uvezite neke biblioteke koje će vam pomoći u zadacima.
-
Dodajte uvoze upisujući sljedeći kod:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selectionGore uvozite
matplotlib,numpytedatasets,linear_modelimodel_selectionizsklearn.model_selectionse koristi za razdvajanje podataka na trening i test skupove.
Skup podataka o dijabetesu
Ugrađeni skup podataka o dijabetesu sadrži 442 uzorka podataka o dijabetesu s 10 značajki, od kojih su neke:
- age: starost u godinama
- bmi: indeks tjelesne mase
- bp: prosječni krvni tlak
- s1 tc: T-stanice (vrsta bijelih krvnih stanica)
✅ Ovaj skup podataka uključuje 'spol' kao značajku važnu za istraživanje dijabetesa. Mnogi medicinski skupovi podataka sadrže ovu vrstu binarne klasifikacije. Razmislite kako ovakve kategorizacije mogu isključiti određene dijelove populacije iz tretmana.
Sada učitajte podatke X i y.
🎓 Zapamtite, ovo je nadzirano učenje i potreban nam je cilj 'y' s imenom.
U novoj ćeliji koda učitajte skup podataka o dijabetesu pozivom load_diabetes(). Ulaz return_X_y=True označava da će X biti matrica podataka, a y cilj regresije.
-
Dodajte naredbe za ispis da prikažete oblik matrice podataka i njezin prvi element:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])Ono što dobivate kao odgovor je 'tuple'. Ono što radite je da prva dva vrijednosna elementa tuplea dodijelite
Xiy. Više o tupleima.Vidite da ovi podaci imaju 442 stavke oblikovane u nizove od 10 elemenata:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]✅ Razmislite o odnosu između podataka i cilja regresije. Linearna regresija predviđa odnose između značajke X i ciljne varijable y. Možete li pronaći cilj za skup podataka o dijabetesu u dokumentaciji? Što ovaj skup podataka pokazuje, s obzirom na cilj?
-
Zatim odaberite dio ovog skupa podataka za prikaz crtežom, odabirom 3. stupca skupa podataka. To možete napraviti operatorom
:koji odabire sve retke, a zatim odabirom 3. stupca korištenjem indeksa (2). Također možete promijeniti oblik podataka u 2D niz - što je potrebno za crtanje - korištenjemreshape(n_rows, n_columns). Ako je jedan od parametara -1, odgovarajuća dimenzija se računa automatski.X = X[:, 2] X = X.reshape((-1,1))✅ Uvijek ispišite podatke da provjerite njihov oblik.
-
Sada kada imate podatke spremne za crtanje, provjerite može li stroj pomoći u određivanju logičnog razdvajanja među brojevima u ovom skupu podataka. Za to trebate podijeliti i podatke (X) i cilj (y) na testne i trening skupove. Scikit-learn ima jednostavan način za to; podatke za test možete podijeliti na određenoj točki.
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
Sada ste spremni za treniranje modela! Učitajte model linearne regresije i trenirajte ga s vašim X i y trening skupovima koristeći
model.fit():model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()je funkcija koju ćete vidjeti u mnogim ML bibliotekama poput TensorFlowa -
Zatim napravite predviđanje koristeći testne podatke, koristeći funkciju
predict(). Ona će se koristiti za crtanje linije između skupina podatakay_pred = model.predict(X_test) -
Vrijeme je da prikažete podatke na grafu. Matplotlib je vrlo koristan alat za ovaj zadatak. Napravite scatter plot svih X i y testnih podataka, i upotrijebite predviđanje za crtanje linije na najprikladnijem mjestu između skupina modela.
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()✅ Razmislite malo o tome što se događa. Ravna linija prolazi kroz mnogo malih točaka podataka, ali što točno radi? Možete li vidjeti kako biste mogli koristiti ovu liniju da predvidite gdje bi nova, neviđena točka podataka trebala stati u odnosu na y os grafa? Pokušajte riječima opisati praktičnu upotrebu ovog modela.
Čestitamo, izradili ste svoj prvi model linearne regresije, napravili predviđanje i prikazali ga na grafu!
🚀Izazov
Prikažite drugu varijablu iz ovog skupa podataka. Savjet: uredite ovaj redak: X = X[:,2]. S obzirom na cilj ovog skupa podataka, što možete otkriti o progresiji dijabetesa kao bolesti?
Kviz nakon predavanja
Pregled i samostalno učenje
U ovom vodiču radili ste s jednostavnom linearnom regresijom, a ne univarijatnom ili višestrukom linearnom regresijom. Pročitajte malo o razlikama između ovih metoda, ili pogledajte ovaj video
Pročitajte više o konceptu regresije i razmislite o vrstama pitanja na koja se ovom tehnikom može odgovoriti. Prođite kroz ovaj tutorial kako biste produbili svoje razumijevanje.
Zadatak
Napomena: Ovaj dokument je preveden korištenjem AI prevoditeljskog servisa Co-op Translator. Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati greške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za važne informacije preporuča se profesionalni ljudski prijevod. Nismo odgovorni za bilo kakva nesporazumevanja ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.






