You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/hr/2-Regression/1-Tools
localizeflow[bot] f7c5c5f753
[sr,hr,sl] chore(i18n): sync translations
1 month ago
..
solution chore(i18n): sync translations with latest source changes (chunk 1/1, 300 changes) 7 months ago
README.md [sr,hr,sl] chore(i18n): sync translations 1 month ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 300 changes) 7 months ago
notebook.ipynb 🌐 Update translations via Co-op Translator 12 months ago

README.md

Počnite s Pythonom i Scikit-learn za modele regresije

Sažetak regresija u sketchnote

Sketchnote autora Tomomi Imura

Pre-lecture kviz

Ova lekcija je dostupna na R!

Uvod

U ove četiri lekcije otkrit ćete kako izgraditi regresijske modele. Uskoro ćemo razgovarati čemu oni služe. No prije nego što išta napravite, pobrinite se da imate odgovarajuće alate za početak procesa!

U ovoj lekciji naučit ćete kako:

  • Konfigurirati svoje računalo za lokalne zadatke strojnog učenja.
  • Raditi s Jupyter Notebookovima.
  • Koristiti Scikit-learn, uključujući instalaciju.
  • Istražiti linearnu regresiju kroz praktičnu vježbu.

Instalacije i konfiguracije

ML za početnike - Postavite svoje alate spremne za izgradnju modela strojnog učenja

🎥 Kliknite na gornju sliku za kratak video o konfiguriranju računala za ML.

  1. Instalirajte Python. Provjerite je li Python instaliran na vašem računalu. Python ćete koristiti za mnoge zadatke iz znanosti o podacima i strojnog učenja. Većina računarskih sustava već ima instaliran Python. Tu su i korisni Python Coding Packovi koji mogu olakšati postavljanje nekim korisnicima.

    Međutim, neke primjene Pythona zahtijevaju određenu verziju softvera, dok druge zahtijevaju drugu verziju. Zbog toga je korisno raditi unutar virtualnog okruženja.

  2. Instalirajte Visual Studio Code. Pobrinite se da imate instaliran Visual Studio Code na računalu. Slijedite ove upute za instalaciju Visual Studio Code za osnovnu instalaciju. U ovom ćete tečaju koristiti Python u Visual Studio Code-u, pa bi bilo korisno da se upoznate kako konfigurirati Visual Studio Code za razvoj u Pythonu.

    Udobno se upoznajte s Pythonom radeći kroz ovu zbirku Learn modula

    Postavljanje Pythona s Visual Studio Code

    🎥 Kliknite na gornju sliku za video: korištenje Pythona unutar VS Code.

  3. Instalirajte Scikit-learn prema ovim uputama. Budući da morate koristiti Python 3, preporučuje se rad u virtualnom okruženju. Ako instalirate ovu biblioteku na M1 Mac, postoje posebne upute na gore povezanom linku.

  4. Instalirajte Jupyter Notebook. Trebat ćete instalirati Jupyter paket.

Vaše razvojno okruženje za ML

Koristit ćete notebookove za razvoj vašeg Python koda i kreiranje modela strojnog učenja. Ova vrsta datoteke je uobičajeni alat za znanstvenike podataka, a može se prepoznati po nastavku .ipynb.

Notebookovi su interaktivno okruženje koje omogućuje programeru da istovremeno piše kod i dodaje bilješke i dokumentaciju oko koda, što je vrlo korisno za eksperimentalne ili istraživačke projekte.

ML za početnike - Postavite Jupyter Notebookove za početak izgradnje regresijskih modela

🎥 Kliknite na gornju sliku za kratak video vezano uz ovu vježbu.

Vježba - rad s notebookom

U ovoj mapi pronaći ćete datoteku notebook.ipynb.

  1. Otvorite notebook.ipynb u Visual Studio Code.

    Pokrenut će se Jupyter server s Pythonom 3+. Naći ćete dijelove notebooka koje možete pokrenuti, odnosno zasebne dijelove koda. Kodni blok možete pokrenuti klikom na ikonu koja izgleda kao tipka play.

  2. Odaberite ikonu md i dodajte malo markdown teksta, a zatim unesite sljedeći tekst: # Dobrodošli u svoj notebook.

    Sljedeće, dodajte malo Python koda.

  3. Upišite print('hello notebook') u kodni blok.

  4. Kliknite strelicu za pokretanje koda.

    Trebali biste vidjeti ispisanu izjavu:

    hello notebook
    

VS Code sa otvorenim notebookom

Kod možete isprekidati komentarima kako biste sami dokumentirali notebook.

Razmislite na trenutak koliko se radno okruženje web developera razlikuje od onog znanstvenika podataka.

Pokretanje sa Scikit-learn

Sada kada je Python postavljen u vašem lokalnom okruženju i kada ste upoznati s Jupyter Notebookovima, upoznajmo se i sa Scikit-learnom (izgovara se sci kao u riječi znanost). Scikit-learn nudi opširan API koji vam pomaže u izvođenju zadataka strojnog učenja.

Prema njihovoj web stranici, "Scikit-learn je biblioteka strojnog učenja otvorenog koda koja podržava nadzirano i nenadzirano učenje. Također pruža različite alate za prilagođavanje modela, prethodnu obradu podataka, izbor i evaluaciju modela te mnoge druge korisnosti."

U ovom tečaju koristiti ćete Scikit-learn i druge alate za izgradnju modela strojnog učenja za ono što zovemo 'tradicionalni zadaci strojnog učenja'. Namjerno smo izbjegli neuronske mreže i duboko učenje jer su bolje obrađeni u našem nadolazećem kurikulumu 'AI za početnike'.

Scikit-learn olakšava izgradnju i evaluaciju modela za upotrebu. Primarno je fokusiran na numeričke podatke i sadrži nekoliko gotovih datasetova za učenje. Uključuje i unaprijed izgrađene modele koje studenti mogu isprobati. Istražimo proces učitavanja prethodno pripremljenih podataka i korištenje ugrađenog estimator - prvog ML modela sa Scikit-lernom s osnovnim podacima.

Vježba - vaš prvi Scikit-learn notebook

Ovaj je vodič inspiriran primjerom linearne regresije na Scikit-learn web stranici.

ML za početnike - Vaš prvi projekt linearne regresije u Pythonu

🎥 Kliknite na gornju sliku za kratak video vezano uz ovu vježbu.

U datoteci notebook.ipynb povezanoj s ovom lekcijom, očistite sve ćelije pritiskom na ikonu 'kanta za smeće'.

U ovom dijelu ćete raditi s malim datasetom o dijabetesu koji je ugrađen u Scikit-learn za svrhe učenja. Zamislite da želite ispitati liječenje za dijabetičke pacijente. Modeli strojnog učenja mogli bi vam pomoći odrediti koji bi pacijenti bolje reagirali na liječenje, na temelju kombinacija varijabli. Čak i vrlo osnovni regresijski model, kada se vizualizira, može pokazati informacije o varijablama koje bi vam pomogle organizirati vaše teoretske kliničke studije.

Postoji mnogo vrsta regresijskih metoda, a koju ćete odabrati ovisi o pitanju na koje želite odgovoriti. Ako želite predvidjeti vjerojatnu visinu za osobu određene dobi, koristili biste linearnu regresiju jer tražite numeričku vrijednost. Ako ste zainteresirani otkriti treba li neki tip kuhinje smatrati veganskim ili ne, tražite kategorizaciju, pa biste koristili logističku regresiju. O logističkoj regresiji ćete kasnije naučiti više. Razmislite malo o nekim pitanjima koja možete postaviti podacima i koja bi metoda od njih bila prikladnija.

Krenimo s ovim zadatkom.

Uvezite biblioteke

Za ovaj zadatak uvest ćemo neke biblioteke:

  • matplotlib. Koristan je alat za grafove i koristit ćemo ga za crtanje linijskog grafikona.
  • numpy. numpy je korisna biblioteka za rukovanje numeričkim podacima u Pythonu.
  • sklearn. Ovo je biblioteka Scikit-learn.

Uvezite neke biblioteke koje će vam pomoći u zadacima.

  1. Dodajte uvoze upisujući sljedeći kod:

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import datasets, linear_model, model_selection
    

    Gore uvozite matplotlib, numpy te uvozite datasets, linear_model i model_selection iz sklearn. model_selection se koristi za dijeljenje podataka na trening i test skupove.

Dataset o dijabetesu

Ugrađeni diabetes dataset uključuje 442 uzorka podataka o dijabetesu, s 10 značajki, od kojih su neke:

  • starost: starost u godinama
  • bmi: indeks tjelesne mase
  • bp: prosječni krvni tlak
  • s1 tc: T-ćelije (vrsta bijelih krvnih stanica)

Ovaj dataset uključuje koncept 'spola' kao važnu značajku za istraživanje dijabetesa. Mnogi medicinski datasetovi uključuju ovaj tip binarne klasifikacije. Razmislite malo o tome kako takve kategorizacije mogu isključiti određene dijelove populacije iz liječenja.

Sada učitajte X i y podatke.

🎓 Zapamtite, ovo je nadzirano učenje i potreban nam je nazvani cilj 'y'.

U novoj ćeliji za kod učitajte dataset o dijabetesu pozivajući load_diabetes(). Ulaz return_X_y=True označava da će X biti matrica podataka, a y cilj regresije.

  1. Dodajte naredbe za ispis da pokažete dimenzije matrice podataka i njen 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 jest da prve dvije vrijednosti tupla dodjeljujete X i y redom. Saznajte više o tupleima.

    Možete vidjeti da ovaj dataset ima 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 malo o odnosu između podataka i cilja regresije. Linearna regresija predviđa odnose između značajke X i ciljane varijable y. Možete li pronaći cilj za diabetes dataset u dokumentaciji? Što ovaj dataset demonstrira, s obzirom na cilj?

  2. Zatim, odaberite dio ovog dataseta za iscrtavanje birajući 3. stupac dataseta. To možete napraviti korištenjem operatora : za odabir svih redaka, a zatim odabirom 3. stupca s indeksom (2). Također možete promijeniti oblik podataka u 2D niz - kako je potrebno za crtanje - korištenjem reshape(broj_redaka, broj_stupaca). Ako je jedan od parametara -1, odgovarajuća dimenzija se automatski izračunava.

    X = X[:, 2]
    X = X.reshape((-1,1))
    

    U bilo kojem trenutku, ispišite podatke da provjerite njihov oblik.

  3. Sada kada imate podatke spremne za crtanje, možete vidjeti može li vam stroj pomoći da odredite logičku granicu između brojeva u ovom datasetu. Da biste to učinili, morate podijeliti i podatke (X) i ciljeve (y) u testne i trening skupove. Scikit-learn ima jednostavan način za to; možete podijeliti svoje testne podatke u određenoj točki.

    X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
    
  4. Sada ste spremni za treniranje modela! Učitajte model linearne regresije i trenirajte ga s vašim X i y trening skupovima korištenjem 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

  5. Zatim, napravite predikciju koristeći test podatke, koristeći funkciju predict(). Ona će služiti za crtanje linije između skupina podataka

    y_pred = model.predict(X_test)
    
  6. Sada je vrijeme prikazati podatke na grafikonu. Matplotlib je vrlo koristan alat za ovaj zadatak. Napravite scatterplot svih X i y test podataka i upotrijebite predikciju da nacrtate liniju na najprikladnijem mjestu između grupacija podataka 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()
    

    scatterplot koji prikazuje točke podataka o dijabetesu

    Razmislite malo o tome što se ovdje događa. Prava linija prolazi kroz mnoge male točke podataka, ali što točno radi? Možete li vidjeti kako biste trebali moći koristiti ovu liniju za predviđanje gdje bi nova, neviđena točka podataka trebala stati u odnosu na y-osu na grafikonu? Pokušajte riječima objasniti praktičnu upotrebu ovog modela.

Čestitamo, izgradili ste svoj prvi model linearne regresije, stvorili predviđanje pomoću njega i prikazali ga na grafikonu!


🚀Izazov

Prikazujte drugu varijablu iz ovog skupa podataka. Nagovještaj: uredite ovaj redak: X = X[:,2]. S obzirom na cilj ovog skupa podataka, što možete otkriti o napredovanju dijabetesa kao bolesti?

Kviz nakon predavanja

Sažetak i samostalan rad

U ovom vodiču radili ste s jednostavnom linearnom regresijom, umjesto s 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 ovaj vodič kako biste produbili svoje razumijevanje.

Zadatak

Drugi skup podataka


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.