chore(i18n): sync translations with latest source changes (chunk 1/1, 21 changes)

update-translations
localizeflow[bot] 2 weeks ago
parent 688a592c6b
commit 961e834fed

@ -30,8 +30,8 @@
"language_code": "hr"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T12:41:59+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:47:14+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "hr"
},
@ -90,8 +90,8 @@
"language_code": "hr"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T11:27:31+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:48:29+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "hr"
},
@ -186,8 +186,8 @@
"language_code": "hr"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T13:14:16+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:48:52+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "hr"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "hr"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:42:35+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "hr"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T13:16:42+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "hr"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:42:41+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "hr"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T13:10:42+00:00",
@ -540,8 +552,8 @@
"language_code": "hr"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T09:07:40+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:47:08+00:00",
"source_file": "README.md",
"language_code": "hr"
},

@ -2,15 +2,17 @@
## Upute
U ovoj lekciji ste naučili o Responsible AI Toolbox, "projektu otvorenog koda vođenom zajednicom koji pomaže znanstvenicima za podatke u analizi i poboljšanju AI sustava." Za ovaj zadatak, istražite jedan od [notebookova](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) RAI Toolboxa i iznesite svoja otkrića u radu ili prezentaciji.
U ovoj ste lekciji naučili o Responsible AI Toolbox, "projektu otvorenog koda i vođenom od zajednice koji pomaže znanstvenicima podataka da analiziraju i poboljšaju AI sustave." Za ovaj zadatak istražite jedan od RAI Toolboxovih [bilježnica](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) i izvijestite o svojim nalazima u radu ili prezentaciji.
## Rubrika
## Kriteriji
| Kriterij | Izvrsno | Zadovoljavajuće | Potrebno poboljšanje |
| Kriteriji | Izvrsno | Dovoljno | Potrebno poboljšanje |
| -------- | --------- | -------- | ----------------- |
| | Predstavljen je rad ili PowerPoint prezentacija koja raspravlja o sustavima Fairlearn, pokrenutom notebooku i zaključcima donesenim na temelju njegovog pokretanja | Predstavljen je rad bez zaključaka | Rad nije predstavljen |
| | Predstavljen je rad ili PowerPoint prezentacija koja raspravlja o Fairlearn sustavima, bilježnici koja je pokrenuta i zaključcima dobivenim pokretanjem | Predstavljen je rad bez zaključaka | Nije predstavljen rad |
---
**Odricanje od odgovornosti**:
Ovaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati mjerodavnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane stručnjaka. Ne preuzimamo odgovornost za bilo kakva nesporazuma ili pogrešna tumačenja koja mogu proizaći iz korištenja ovog prijevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Izjava o odricanju od odgovornosti**:
Ovaj dokument preveden je korištenjem AI usluge prevođenja [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo postići točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na njegovom izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakve nesporazume ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,124 +1,136 @@
# Izgradnja regresijskog modela koristeći Scikit-learn: četiri načina regresije
# Izgradite regresijski model koristeći Scikit-learn: regresija na četiri načina
![Infografika linearne i polinomne regresije](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## Bilješka za početnike
Linearna regresija se koristi kada želimo predvidjeti **numeričku vrijednost** (na primjer, cijenu kuće, temperaturu ili prodaju).
Radi tako da pronalazi pravu liniju koja najbolje predstavlja odnos između ulaznih značajki i izlaza.
U ovom dijelu fokusiramo se na razumijevanje koncepta prije nego što istražimo naprednije tehnike regresije.
![Infografika linearne nasuprot polinomnoj regresiji](../../../../translated_images/hr/linear-polynomial.5523c7cb6576ccab.webp)
> Infografika od [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Kviz prije predavanja](https://ff-quizzes.netlify.app/en/ml/)
> ### [Ova lekcija je dostupna u R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [Ovaj je lekciju dostupan i u R-u!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Uvod
Do sada ste istražili što je regresija koristeći uzorke podataka iz skupa podataka o cijenama bundeva, koji ćemo koristiti tijekom ove lekcije. Također ste vizualizirali podatke koristeći Matplotlib.
Do sada ste istraživali što je regresija koristeći uzorak podataka prikupljenih iz skupa podataka o cijenama bundeva kojeg koristimo kroz cijelu ovu lekciju. Također ste ga vizualizirali koristeći Matplotlib.
Sada ste spremni dublje zaroniti u regresiju za strojno učenje. Dok vizualizacija omogućuje razumijevanje podataka, prava snaga strojnog učenja dolazi iz _treniranja modela_. Modeli se treniraju na povijesnim podacima kako bi automatski uhvatili ovisnosti podataka i omogućili predviđanje ishoda za nove podatke koje model nije prethodno vidio.
Sada ste spremni dublje zaroniti u regresiju za ML. Dok vizualizacija omogućuje razumijevanje podataka, prava moć strojnog učenja dolazi iz _treniranja modela_. Modeli se treniraju na povijesnim podacima kako bi automatski uhvatili ovisnosti podataka, i omogućuju vam da predviđate ishode za nove podatke koje model ranije nije vidio.
U ovoj lekciji naučit ćete više o dvije vrste regresije: _osnovnoj linearnoj regresiji_ i _polinomnoj regresiji_, zajedno s nekim matematičkim osnovama ovih tehnika. Ti modeli omogućit će nam predviđanje cijena bundeva ovisno o različitim ulaznim podacima.
U ovoj lekciji naučit ćete više o dvije vrste regresije: _osnovna linearna regresija_ i _polinomna regresija_, zajedno s dijelom matematike koja stoji iza ovih tehnika. Ti modeli će nam omogućiti predviđanje cijene bundeva ovisno o različitim ulaznim podacima.
[![ML za početnike - Razumijevanje linearne regresije](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML za početnike - Razumijevanje linearne regresije")
[![ML za početnike - Razumijevanje linearne regresije](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 Kliknite na sliku iznad za kratki video pregled linearne regresije.
> 🎥 Kliknite na slikovnu poveznicu za kratki video pregled linearne regresije.
> Tijekom ovog kurikuluma pretpostavljamo minimalno znanje matematike i nastojimo ga učiniti dostupnim studentima iz drugih područja, pa obratite pažnju na bilješke, 🧮 matematičke primjere, dijagrame i druge alate za učenje koji pomažu u razumijevanju.
> Kroz ovaj kurikulum pretpostavljamo minimalno matematičko znanje i nastojimo ga učiniti pristupačnim studentima iz drugih područja, pa pripazite na napomene, 🧮 objašnjenja, dijagrame i druge alate za učenje koji pomažu razumijevanju.
### Preduvjeti
Do sada biste trebali biti upoznati sa strukturom podataka o bundevama koje analiziramo. Možete ih pronaći unaprijed učitane i očišćene u datoteci _notebook.ipynb_ ove lekcije. U datoteci je cijena bundeve prikazana po bušelu u novom podatkovnom okviru. Provjerite možete li pokrenuti ove bilježnice u kernelima u Visual Studio Codeu.
Do sada biste trebali biti upoznati sa strukturom podataka o bundevama koje proučavamo. Možete ih pronaći predinstalirane i predobrijeđene u _notebook.ipynb_ datoteci ove lekcije. U datoteci se prikazuje cijena bundeve po bushelu u novom okviru podataka. Provjerite da možete pokrenuti ove bilježnice u Visual Studio Code kernelima.
### Priprema
Podsjetnik: učitavate ove podatke kako biste postavili pitanja o njima.
Kao podsjetnik, učitavate ove podatke kako biste ih mogli ispitivati.
- Kada je najbolje vrijeme za kupnju bundeva?
- Koju cijenu mogu očekivati za kutiju minijaturnih bundeva?
- Trebam li ih kupiti u košarama od pola bušela ili u kutijama od 1 1/9 bušela?
Nastavimo istraživati ove podatke.
- Koju cijenu mogu očekivati za paket minijaturnih bundeva?
- Trebam li ih kupiti u košarama od pola bushela ili u kutiji od 1 1/9 bushela?
Nastavimo s ispitivanjem ovih podataka.
U prethodnoj lekciji kreirali ste Pandas podatkovni okvir i popunili ga dijelom izvornog skupa podataka, standardizirajući cijene po bušelu. Međutim, na taj način uspjeli ste prikupiti samo oko 400 podatkovnih točaka i to samo za jesenske mjesece.
U prethodnoj ste lekciji kreirali Pandas okvir podataka i ispunili ga dijelom izvornog skupa podataka, standardizirajući cijene po bushelu. Međutim, učinili ste to samo za oko 400 podataka i samo za jesenske mjesece.
Pogledajte podatke koje smo unaprijed učitali u bilježnici koja prati ovu lekciju. Podaci su unaprijed učitani, a početni dijagram raspršenja je nacrtan kako bi prikazao podatke po mjesecima. Možda možemo dobiti malo više detalja o prirodi podataka ako ih dodatno očistimo.
Pogledajte podatke koje smo predinstalirali u bilježnici ove lekcije. Podaci su učitani, a prikazan je početni scatterplot koji prikazuje podatke mjeseci. Možemo li možda dobiti malo više detalja o prirodi podataka čišćenjem?
## Linija linearne regresije
Kao što ste naučili u Lekciji 1, cilj vježbe linearne regresije je moći nacrtati liniju kako bi:
Kao što ste naučili u Lekciji 1, cilj linearne regresije je biti u stanju nacrtati liniju koja:
- **Prikazuje odnose među varijablama**. Prikazuje odnos između varijabli
- **Daje predviđanja**. Točno predviđa gdje bi novi podatak pao u odnosu na tu liniju.
Tipično je za **metodu najmanjih kvadrata** crtanje takve linije. Pojam "najmanjih kvadrata" odnosi se na proces minimiziranja ukupne greške u našem modelu. Za svaku točku mjerimo vertikalnu udaljenost (nazvanu residuum) između stvarne točke i naše regresijske linije.
- **Prikazali odnose varijabli**. Prikazali odnos između varijabli
- **Napravili predviđanja**. Napravili točna predviđanja o tome gdje bi nova podatkovna točka mogla pasti u odnosu na tu liniju.
Te udaljenosti kvadriramo zbog dva glavna razloga:
Tipično je za **regresiju metodom najmanjih kvadrata** nacrtati ovu vrstu linije. Pojam 'najmanji kvadrati' znači da su sve podatkovne točke oko regresijske linije kvadrirane i zatim zbrojene. Idealno, taj konačni zbroj je što manji, jer želimo mali broj pogrešaka, ili `najmanje kvadrate`.
1. **Magnitude nad smjerom:** Želimo tretirati grešku -5 isto kao i grešku +5. Kvadriranje sve vrijednosti čini pozitivnima.
To radimo jer želimo modelirati liniju koja ima najmanju kumulativnu udaljenost od svih naših podatkovnih točaka. Također kvadriramo vrijednosti prije zbrajanja jer nas zanima njihova veličina, a ne smjer.
2. **Kaznjavanje odmetnika:** Kvadriranje daje veću težinu većim greškama, prisiljavajući liniju da ostane bliže udaljenim točkama.
Zatim zbrojimo sve te kvadrirane vrijednosti. Naš cilj je pronaći točnu liniju gdje je taj konačni zbroj najmanji (najmanja moguća vrijednost)—otuda naziv "najmanjih kvadrata."
> **🧮 Pokaži mi matematiku**
>
> Ova linija, nazvana _linija najboljeg pristajanja_, može se izraziti [jednadžbom](https://en.wikipedia.org/wiki/Simple_linear_regression):
> Ta linija, nazvana _linija najboljeg pristajanja_, može se izraziti [jednadžbom](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` je 'objašnjavajuća varijabla'. `Y` je 'ovisna varijabla'. Nagib linije je `b`, a `a` je presjek s y-osom, koji se odnosi na vrijednost `Y` kada je `X = 0`.
> `X` je 'objašnjavajuća varijabla'. `Y` je 'ovisna varijabla'. Nagib linije je `b`, a `a` je odsječak na y-osi, što se odnosi na vrijednost `Y` kada je `X = 0`.
>
>![izračunaj nagib](../../../../2-Regression/3-Linear/images/slope.png)
>![izračunaj nagib](../../../../translated_images/hr/slope.f3c9d5910ddbfcf9.webp)
>
> Prvo, izračunajte nagib `b`. Infografika od [Jen Looper](https://twitter.com/jenlooper)
>
> Drugim riječima, i referirajući se na izvorno pitanje o podacima o bundevama: "predvidite cijenu bundeve po bušelu po mjesecu", `X` bi se odnosio na cijenu, a `Y` na mjesec prodaje.
> Drugim riječima, i referirajući se na naše izvornog pitanje o bundevama: "predvidjeti cijenu bundeve po bushelu prema mjesecu", `X` bi se odnosilo na cijenu, a `Y` na mjesec prodaje.
>
>![dovršite jednadžbu](../../../../2-Regression/3-Linear/images/calculation.png)
>![dovrši jednadžbu](../../../../translated_images/hr/calculation.a209813050a1ddb1.webp)
>
> Izračunajte vrijednost Y. Ako plaćate oko $4, mora da je travanj! Infografika od [Jen Looper](https://twitter.com/jenlooper)
> Izračunajte vrijednost Y. Ako plaćate oko 4 dolara, mora biti travanj! Infografika od [Jen Looper](https://twitter.com/jenlooper)
>
> Matematika koja izračunava liniju mora pokazati nagib linije, koji također ovisi o presjeku, odnosno gdje se `Y` nalazi kada je `X = 0`.
> Matematika koja izračunava liniju mora pokazati nagib linije, koji također ovisi o odsječku ili gdje se `Y` nalazi kada je `X = 0`.
>
> Metodu izračuna ovih vrijednosti možete vidjeti na web stranici [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Također posjetite [ovaj kalkulator najmanjih kvadrata](https://www.mathsisfun.com/data/least-squares-calculator.html) kako biste vidjeli kako vrijednosti brojeva utječu na liniju.
> Metodu izračuna ovih vrijednosti možete promatrati na web stranici [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Također posjetite [ovaj kalkulator najmanjih kvadrata](https://www.mathsisfun.com/data/least-squares-calculator.html) da vidite kako vrijednosti brojeva utječu na liniju.
## Korelacija
Još jedan pojam koji treba razumjeti je **koeficijent korelacije** između danih X i Y varijabli. Koristeći dijagram raspršenja, možete brzo vizualizirati ovaj koeficijent. Dijagram s podatkovnim točkama raspoređenim u urednu liniju ima visoku korelaciju, dok dijagram s podatkovnim točkama raspršenim svugdje između X i Y ima nisku korelaciju.
Još jedan pojam koji treba razumjeti jest **koeficijent korelacije** između zadanih X i Y varijabli. Koristeći scatterplot, brzo možete vizualizirati ovaj koeficijent. Grafikon s točkama raspoređenim uredno u liniji ima visoku korelaciju, dok grafikon s točkama raštrkanima posvuda između X i Y ima nisku korelaciju.
Dobar model linearne regresije bit će onaj koji ima visok (bliži 1 nego 0) koeficijent korelacije koristeći metodu najmanjih kvadrata s regresijskom linijom.
✅ Pokrenite bilježnicu koja prati ovu lekciju i pogledajte dijagram raspršenja Mjesec prema Cijeni. Čini li se da podaci koji povezuju Mjesec s Cijenom za prodaju bundeva imaju visoku ili nisku korelaciju, prema vašoj vizualnoj interpretaciji dijagrama raspršenja? Mijenja li se to ako koristite precizniju mjeru umjesto `Mjesec`, npr. *dan u godini* (tj. broj dana od početka godine)?
✅ Pokrenite bilježnicu uz ovu lekciju i pogledajte scatterplot Mjesec prema Cijeni. Ima li podataka koji povezuju mjesec s cijenom prodaje bundeva visoku ili nisku korelaciju, prema vašoj vizualnoj interpretaciji scatterplota? Mijenja li se to ako koristite finiju mjeru umjesto `Month`, npr. *dan u godini* (broj dana od početka godine)?
U kodu ispod pretpostavit ćemo da smo očistili podatke i dobili podatkovni okvir nazvan `new_pumpkins`, sličan sljedećem:
U sljedećem kodu pretpostavit ćemo da smo očistili podatke i dobili okvir podataka nazvan `new_pumpkins`, sličan sljedećem:
ID | Mjesec | DanUGodini | Vrsta | Grad | Paket | Najniža cijena | Najviša cijena | Cijena
---|--------|------------|-------|------|-------|----------------|----------------|-------
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> Kod za čišćenje podataka dostupan je u [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Proveli smo iste korake čišćenja kao u prethodnoj lekciji i izračunali stupac `DanUGodini` koristeći sljedeći izraz:
> Kod za čišćenje podataka nalazi se u [`notebook.ipynb`](notebook.ipynb). Izveli smo iste korake čišćenja kao u prethodnoj lekciji te izračunali stupac `DayOfYear` koristeći sljedeći izraz:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Sada kada razumijete matematiku iza linearne regresije, kreirajmo regresijski model kako bismo vidjeli možemo li predvidjeti koji paket bundeva će imati najbolje cijene bundeva. Netko tko kupuje bundeve za blagdanski vrt bundeva možda želi ove informacije kako bi optimizirao svoje kupnje paketa bundeva za vrt.
Sada kad imate razumijevanje matematike iza linearne regresije, kreirajmo regresijski model da vidimo možemo li predvidjeti koji paket bundeva će imati najbolje cijene. Netko tko kupuje bundeve za blagdanski prikaz bundeva može htjeti ovu informaciju kako bi optimizirao kupnju paketa bundeva za prikaz.
## Traženje korelacije
[![ML za početnike - Traženje korelacije: Ključ za linearnu regresiju](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML za početnike - Traženje korelacije: Ključ za linearnu regresiju")
[![ML za početnike - Traženje korelacije: Ključ za linearnu regresiju](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 Kliknite na sliku iznad za kratki video pregled korelacije.
> 🎥 Kliknite na slikovnu poveznicu za kratki video pregled korelacije.
Iz prethodne lekcije vjerojatno ste vidjeli da prosječna cijena za različite mjesece izgleda ovako:
<img alt="Prosječna cijena po mjesecu" src="../../../../translated_images/hr/barchart.a833ea9194346d76.webp" width="50%"/>
To sugerira da bi mogla postojati neka korelacija, i možemo pokušati trenirati model linearne regresije kako bismo predvidjeli odnos između `Mjesec` i `Cijena`, ili između `DanUGodini` i `Cijena`. Evo dijagrama raspršenja koji pokazuje potonji odnos:
To sugerira da bi trebala postojati neka korelacija, i možemo pokušati trenirati linearni regresijski model da predvidi odnos između `Month` i `Price`, ili između `DayOfYear` i `Price`. Evo scatterplota koji prikazuje ovaj zadnji odnos:
<img alt="Dijagram raspršenja Cijena vs. Dan u godini" src="../../../../translated_images/hr/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot cijena u odnosu na dan u godini" src="../../../../translated_images/hr/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Pogledajmo postoji li korelacija koristeći funkciju `corr`:
Pogledajmo ima li korelacije koristeći funkciju `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Čini se da je korelacija prilično mala, -0.15 za `Mjesec` i -0.17 za `DanUGodini`, ali mogla bi postojati druga važna veza. Izgleda da postoje različiti klasteri cijena koji odgovaraju različitim vrstama bundeva. Da bismo potvrdili ovu hipotezu, nacrtajmo svaku kategoriju bundeva koristeći različitu boju. Prosljeđivanjem parametra `ax` funkciji za crtanje raspršenja možemo nacrtati sve točke na istom grafikonu:
Izgleda da je korelacija prilično mala, -0.15 prema `Month` i -0.17 prema `DayOfMonth`, ali moglo bi postojati još neki važan odnos. Čini se da postoje različiti klasteri cijena koji odgovaraju različitim vrstama bundeva. Da bismo potvrdili ovu hipotezu, nacrtajmo svaku kategoriju bundeva različitom bojom. Prosljeđivanjem parametra `ax` funkciji `scatter` možemo nacrtati sve točke na istom grafikonu:
```python
ax=None
@ -128,42 +140,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Dijagram raspršenja Cijena vs. Dan u godini" src="../../../../translated_images/hr/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Scatter plot cijena u odnosu na dan u godini s bojama" src="../../../../translated_images/hr/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Naša istraga sugerira da vrsta bundeve ima veći utjecaj na ukupnu cijenu nego stvarni datum prodaje. To možemo vidjeti s dijagramom stupaca:
Naša istraga sugerira da sorta ima veći utjecaj na ukupnu cijenu nego stvarni datum prodaje. To možemo vidjeti na stupčastom grafikonu:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Dijagram stupaca cijena vs vrsta" src="../../../../translated_images/hr/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Stupčasti grafikon cijene po vrstama" src="../../../../translated_images/hr/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Usredotočimo se za trenutak samo na jednu vrstu bundeve, 'pie type', i pogledajmo kakav učinak datum ima na cijenu:
Usredotočimo se na trenutak samo na jednu vrstu bundeve, 'pie type', i vidimo kakav utjecaj datum ima na cijenu:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Dijagram raspršenja Cijena vs. Dan u godini" src="../../../../translated_images/hr/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Scatter plot cijena u odnosu na dan u godini za pie vrste bundeva" src="../../../../translated_images/hr/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Ako sada izračunamo korelaciju između `Cijena` i `DanUGodini` koristeći funkciju `corr`, dobit ćemo nešto poput `-0.27` - što znači da treniranje prediktivnog modela ima smisla.
Ako sad izračunamo korelaciju između `Price` i `DayOfYear` koristeći funkciju `corr`, dobit ćemo nešto oko `-0.27` - što znači da ima smisla trenirati prediktivni model.
> Prije treniranja modela linearne regresije, važno je osigurati da su naši podaci čisti. Linearna regresija ne funkcionira dobro s nedostajućim vrijednostima, stoga ima smisla riješiti se svih praznih ćelija:
> Prije treniranja modela linearne regresije važno je osigurati da su naši podaci čisti. Linearna regresija ne funkcionira dobro s nedostajućim vrijednostima, stoga ima smisla ukloniti sve prazne ćelije:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Drugi pristup bio bi popuniti te prazne vrijednosti srednjim vrijednostima iz odgovarajućeg stupca.
Drugi pristup bio bi popuniti prazne vrijednosti prosječnim vrijednostima iz odgovarajućeg stupca.
## Jednostavna linearna regresija
[![ML za početnike - Linearna i polinomna regresija koristeći Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML za početnike - Linearna i polinomna regresija koristeći Scikit-learn")
[![ML za početnike - Linearna i polinomna regresija koristeći Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 Kliknite na sliku iznad za kratki video pregled linearne i polinomne regresije.
> 🎥 Kliknite na slikovnu poveznicu za kratki video pregled linearne i polinomne regresije.
Za treniranje našeg modela linearne regresije koristit ćemo biblioteku **Scikit-learn**.
Za treniranje našeg modela linearne regresije koristit ćemo **Scikit-learn** biblioteku.
```python
from sklearn.linear_model import LinearRegression
@ -171,31 +183,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Počinjemo razdvajanjem ulaznih vrijednosti (značajki) i očekivanog izlaza (oznaka) u zasebne numpy nizove:
Započinjemo razdvajanjem ulaznih vrijednosti (značajki) i očekivanog izlaza (oznake) u zasebne numpy nizove:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Napomena: morali smo izvršiti `reshape` na ulaznim podacima kako bi paket za linearnu regresiju ispravno razumio podatke. Linearna regresija očekuje 2D-niz kao ulaz, gdje svaki redak niza odgovara vektoru ulaznih značajki. U našem slučaju, budući da imamo samo jedan ulaz, trebamo niz oblika N×1, gdje je N veličina skupa podataka.
> Primijetite da smo morali napraviti `reshape` ulaznih podataka kako bi Linear Regression paket ispravno razumio podatke. Linearna regresija očekuje 2D niz kao ulaz, gdje svaki redak niza odgovara vektoru ulaznih značajki. U našem slučaju, budući da imamo samo jedan ulaz, potrebna nam je matrica dimenzija N&times;1, gdje je N veličina skupa podataka.
Zatim trebamo podijeliti podatke na skupove za treniranje i testiranje, kako bismo mogli validirati naš model nakon treniranja:
Zatim trebamo podijeliti podatke na trening i test skupove, kako bismo mogli validirati naš model nakon treniranja:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Na kraju, treniranje stvarnog modela linearne regresije traje samo dva retka koda. Definiramo objekt `LinearRegression` i prilagodimo ga našim podacima koristeći metodu `fit`:
Na kraju, treniranje stvarnog modela linearne regresije traje samo dvije linije koda. Definiramo objekt `LinearRegression` i prilagođavamo ga našim podacima korištenjem metode `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Objekt `LinearRegression` nakon prilagodbe (`fit`) sadrži sve koeficijente regresije, koji se mogu pristupiti koristeći svojstvo `.coef_`. U našem slučaju postoji samo jedan koeficijent, koji bi trebao biti oko `-0.017`. To znači da se cijene čini da malo padaju s vremenom, ali ne previše, oko 2 centa dnevno. Također možemo pristupiti točki presjeka regresije s Y-osom koristeći `lin_reg.intercept_` - ona će biti oko `21` u našem slučaju, što ukazuje na cijenu na početku godine.
Objekt `LinearRegression` nakon `fit`-iranja sadrži sve koeficijente regresije, kojima se može pristupiti pomoću `.coef_` svojstva. U našem slučaju postoji samo jedan koeficijent, koji bi trebao biti oko `-0.017`. To znači da cijene izgledaju kao da malo padaju s vremenom, ali ne previše, oko 2 centa dnevno. Također možemo pristupiti sjecištu regresije s Y-osi pomoću `lin_reg.intercept_` - ono će biti oko `21` u našem slučaju, što označava cijenu na početku godine.
Kako bismo vidjeli koliko je naš model točan, možemo predvidjeti cijene na testnom skupu podataka, a zatim izmjeriti koliko su naše predikcije blizu očekivanim vrijednostima. To se može učiniti koristeći metriku srednje kvadratne pogreške (MSE), koja je srednja vrijednost svih kvadriranih razlika između očekivane i predviđene vrijednosti.
Da bismo vidjeli koliko je naš model točan, možemo predvidjeti cijene na testnom skupu podataka, a zatim izmjeriti koliko su naša predviđanja bliska očekivanim vrijednostima. To se može učiniti pomoću metrike srednje kvadratne pogreške (MSE), što je srednja vrijednost svih kvadratnih razlika između očekivane i predviđene vrijednosti.
```python
pred = lin_reg.predict(X_test)
@ -203,36 +215,37 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
Naša pogreška čini se da se kreće oko 2 točke, što je ~17%. Nije baš dobro. Još jedan pokazatelj kvalitete modela je **koeficijent determinacije**, koji se može dobiti ovako:
Naša pogreška izgleda da je oko 2 boda, što je ~17%. Nije baš dobro. Još jedan pokazatelj kvalitete modela je **koeficijent determinacije**, koji se može dobiti ovako:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Ako je vrijednost 0, to znači da model ne uzima ulazne podatke u obzir i ponaša se kao *najgori linearni prediktor*, što je jednostavno prosječna vrijednost rezultata. Vrijednost 1 znači da možemo savršeno predvidjeti sve očekivane izlaze. U našem slučaju, koeficijent je oko 0.06, što je prilično nisko.
```
Ako je vrijednost 0, to znači da model ne uzima u obzir ulazne podatke i djeluje kao *najgori linearni prediktor*, što je jednostavno srednja vrijednost rezultata. Vrijednost 1 znači da možemo savršeno predvidjeti sve očekivane izlaze. U našem slučaju, koeficijent je oko 0.06, što je prilično nisko.
Također možemo prikazati testne podatke zajedno s regresijskom linijom kako bismo bolje vidjeli kako regresija funkcionira u našem slučaju:
Također možemo prikazati testne podatke zajedno s regresijskom linijom kako bismo bolje vidjeli kako regresija radi u našem slučaju:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Linear regression" src="../../../../translated_images/hr/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polinomijalna regresija
## Polinomska regresija
Druga vrsta linearne regresije je polinomijalna regresija. Iako ponekad postoji linearna veza između varijabli - što je veća bundeva po volumenu, to je viša cijena - ponekad te veze ne mogu biti prikazane kao ravnina ili ravna linija.
Druga vrsta linearne regresije je polinomska regresija. Dok ponekad postoji linearna veza između varijabli - što je bundeva veća po volumenu, to je viša cijena - ponekad ove veze ne mogu biti prikazane kao ravnina ili ravna linija.
✅ Evo [nekoliko primjera](https://online.stat.psu.edu/stat501/lesson/9/9.8) podataka koji bi mogli koristiti polinomijalnu regresiju.
✅ Evo [još nekoliko primjera](https://online.stat.psu.edu/stat501/lesson/9/9.8) podataka koji bi mogli koristiti polinomsku regresiju
Pogledajte ponovno vezu između datuma i cijene. Čini li se ovaj dijagram raspršenosti kao da bi nužno trebao biti analiziran ravnom linijom? Zar cijene ne mogu fluktuirati? U ovom slučaju možete pokušati s polinomijalnom regresijom.
Pogledajte ponovno odnos između Datuma i Cijene. Izgleda li ovaj scatterplot kao da ga nužno treba analizirati ravnom linijom? Ne mogu li cijene varirati? U tom slučaju možete pokušati polinomsku regresiju.
✅ Polinomi su matematički izrazi koji mogu sadržavati jednu ili više varijabli i koeficijenata.
✅ Polinomi su matematički izrazi koji mogu sadržavati jednu ili više varijabli i koeficijenata.
Polinomijalna regresija stvara zakrivljenu liniju kako bi bolje odgovarala nelinearnim podacima. U našem slučaju, ako uključimo kvadratnu varijablu `DayOfYear` u ulazne podatke, trebali bismo moći prilagoditi naše podatke paraboličnoj krivulji, koja će imati minimum u određenom trenutku unutar godine.
Polinomska regresija stvara zakrivljenu liniju koja bolje pristaje nelinearnim podacima. U našem slučaju, ako u ulazne podatke uključimo kvadratnu varijablu `DayOfYear`, trebali bismo moći modelirati podatke parabolom koja će imati minimum u nekoj točki tijekom godine.
Scikit-learn uključuje koristan [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) za kombiniranje različitih koraka obrade podataka. **Pipeline** je lanac **procjenitelja**. U našem slučaju, stvorit ćemo pipeline koji prvo dodaje polinomijalne značajke našem modelu, a zatim trenira regresiju:
Scikit-learn uključuje korisno [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) za kombiniranje različitih koraka obrade podataka zajedno. **Pipeline** je lanac **procjenitelja**. U našem slučaju, stvorit ćemo pipeline koji prvo dodaje polinomske značajke našem modelu, a zatim trenira regresiju:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -241,62 +254,62 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
Korištenje `PolynomialFeatures(2)` znači da ćemo uključiti sve polinome drugog stupnja iz ulaznih podataka. U našem slučaju to će jednostavno značiti `DayOfYear`<sup>2</sup>, ali s obzirom na dvije ulazne varijable X i Y, to će dodati X<sup>2</sup>, XY i Y<sup>2</sup>. Također možemo koristiti polinome višeg stupnja ako želimo.
Korištenje `PolynomialFeatures(2)` znači da ćemo uključiti sve polinome drugog stupnja iz ulaznih podataka. U našem slučaju to će jednostavno značiti `DayOfYear`<sup>2</sup>, ali s dvije ulazne varijable X i Y, to će dodati X<sup>2</sup>, XY i Y<sup>2</sup>. Također možemo koristiti polinome višeg stupnja ako želimo.
Pipeline se može koristiti na isti način kao i originalni objekt `LinearRegression`, tj. možemo koristiti `fit` za treniranje pipelinea, a zatim `predict` za dobivanje rezultata predikcije. Evo grafikona koji prikazuje testne podatke i aproksimacijsku krivulju:
Pipelinove se mogu koristiti na isti način kao izvorni objekt `LinearRegression`, tj. možemo `fit`-ati pipeline, a zatim koristiti `predict` za dobivanje predviđanja. Evo grafikona koji prikazuje testne podatke i aproksimacijsku krivulju:
<img alt="Polynomial regression" src="../../../../translated_images/hr/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/hr/poly-results.ee587348f0f1f60b.webp" width="50%" />
Korištenjem polinomijalne regresije možemo dobiti nešto niži MSE i viši koeficijent determinacije, ali ne značajno. Moramo uzeti u obzir i druge značajke!
Korištenjem polinomske regresije možemo dobiti nešto nižu MSE i viši koeficijent determinacije, ali ne značajno. Moramo uzeti u obzir i druge značajke!
> Možete vidjeti da su minimalne cijene bundeva zabilježene negdje oko Noći vještica. Kako to možete objasniti?
> Možete vidjeti da su minimalne cijene bundeva opažene negdje oko Noći vještica. Kako to možete objasniti?
🎃 Čestitamo, upravo ste stvorili model koji može pomoći u predviđanju cijene bundeva za pite. Vjerojatno možete ponoviti isti postupak za sve vrste bundeva, ali to bi bilo zamorno. Sada naučimo kako uzeti u obzir raznolikost bundeva u našem modelu!
🎃 Čestitamo, upravo ste stvorili model koji može pomoći u predviđanju cijene pita od bundeva. Vjerojatno možete ponoviti isti postupak za sve vrste bundeva, ali to bi bilo zamorno. Naučimo sada kako u model uključiti vrstu bundeve!
## Kategorijalne značajke
## Kategorijske značajke
U idealnom svijetu želimo moći predvidjeti cijene za različite vrste bundeva koristeći isti model. Međutim, stupac `Variety` je donekle drugačiji od stupaca poput `Month`, jer sadrži nenumeričke vrijednosti. Takvi stupci nazivaju se **kategorijalni**.
U idealnom svijetu želimo moći predvidjeti cijene za različite sorte bundeva koristeći isti model. Međutim, stupac `Variety` se razlikuje od stupaca poput `Month`, jer sadrži nenumeričke vrijednosti. Takvi se stupci nazivaju **kategorijskim**.
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
[![ML za početnike - Predviđanja kategorijskih značajki linearnom regresijom](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML za početnike - Predviđanja kategorijskih značajki linearnom regresijom")
> 🎥 Kliknite na sliku iznad za kratki video pregled korištenja kategorijalnih značajki.
> 🎥 Kliknite gornju sliku za kratak video pregled korištenja kategorijskih značajki.
Ovdje možete vidjeti kako prosječna cijena ovisi o vrsti:
Ovdje možete vidjeti kako prosječna cijena ovisi o sorti:
<img alt="Average price by variety" src="../../../../translated_images/hr/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/hr/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Kako bismo uzeli u obzir vrstu, prvo je moramo pretvoriti u numerički oblik, odnosno **kodirati**. Postoji nekoliko načina kako to možemo učiniti:
Da bismo uzeli sortu u obzir, prvo je moramo pretvoriti u numerički oblik, ili je **enkodirati**. Postoji nekoliko načina kako to možemo učiniti:
* Jednostavno **numeričko kodiranje** će izgraditi tablicu različitih vrsta, a zatim zamijeniti naziv vrste indeksom u toj tablici. Ovo nije najbolja ideja za linearnu regresiju, jer linearna regresija uzima stvarnu numeričku vrijednost indeksa i dodaje je rezultatu, množeći je nekim koeficijentom. U našem slučaju, veza između broja indeksa i cijene očito nije linearna, čak i ako osiguramo da su indeksi poredani na neki specifičan način.
* **One-hot kodiranje** će zamijeniti stupac `Variety` s 4 različita stupca, po jedan za svaku vrstu. Svaki stupac će sadržavati `1` ako odgovarajući redak pripada određenoj vrsti, a `0` inače. To znači da će u linearnom regresijskom modelu postojati četiri koeficijenta, po jedan za svaku vrstu bundeve, odgovorna za "početnu cijenu" (ili radije "dodatnu cijenu") za tu određenu vrstu.
* Jednostavna **numerička enkodiranja** će napraviti tablicu različitih sorti, a zatim zamijeniti ime sorte indeksom u toj tablici. To nije najbolja ideja za linearnu regresiju, jer linearna regresija uzima stvarnu numeričku vrijednost indeksa i dodaje je rezultatu množeći s nekim koeficijentom. U našem slučaju, veza između broja indeksa i cijene je jasno nelinearna, čak i ako osiguramo da su indeksi uređeni na neki specifičan način.
* **One-hot enkodiranje** zamijenit će stupac `Variety` s 4 različita stupca, po jedan za svaku sortu. Svaki stupac će sadržavati `1` ako je odgovarajući redak određene sorte, a `0` inače. To znači da će postojati četiri koeficijenta u linearnoj regresiji, po jedan za svaku sortu bundeve, koji će biti odgovorni za "početnu cijenu" (ili bolje rečeno "dodatnu cijenu") za tu određenu sortu.
Kod ispod pokazuje kako možemo one-hot kodirati vrstu:
Donji kôd pokazuje kako možemo one-hot enkodirati sortu:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
Kako bismo trenirali linearnu regresiju koristeći one-hot kodiranu vrstu kao ulaz, samo trebamo ispravno inicijalizirati podatke `X` i `y`:
Da bismo trenirali linearnu regresiju koristeći one-hot enkodiranu sortu kao ulaz, samo trebamo pravilno inicijalizirati podatke `X` i `y`:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
Ostatak koda je isti kao što smo koristili gore za treniranje linearne regresije. Ako ga isprobate, vidjet ćete da je srednja kvadratna pogreška otprilike ista, ali dobivamo puno viši koeficijent determinacije (~77%). Kako bismo dobili još točnija predviđanja, možemo uzeti u obzir više kategorijalnih značajki, kao i numeričke značajke poput `Month` ili `DayOfYear`. Kako bismo dobili jedan veliki niz značajki, možemo koristiti `join`:
Ostatak koda je isti kao što smo gore koristili za treniranje Linearne Regresije. Ako to probate, vidjet ćete da je srednja kvadratna pogreška približno ista, ali dobivamo puno veći koeficijent determinacije (~77%). Da bismo dobili još točnija predviđanja, možemo uzeti u obzir još kategorijskih značajki, kao i numeričkih značajki, poput `Month` ili `DayOfYear`. Da bismo dobili jedan veliki niz značajki, možemo koristiti `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -304,68 +317,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
```
Ovdje također uzimamo u obzir `City` i vrstu `Package`, što nam daje MSE 2.84 (10%) i determinaciju 0.94!
Ovdje također uzimamo u obzir `City` i tip `Package`, što nam daje MSE 2.84 (10%), i determinaciju 0.94!
## Sve zajedno
## Sve spojeno
Kako bismo napravili najbolji model, možemo koristiti kombinirane (one-hot kodirane kategorijalne + numeričke) podatke iz gornjeg primjera zajedno s polinomijalnom regresijom. Evo kompletnog koda za vašu praktičnost:
Da bismo napravili najbolji model, možemo koristiti kombinirane (one-hot enkodirane kategorijske + numeričke) podatke iz prethodnog primjera zajedno s polinomskom regresijom. Evo kompletnog koda radi vaše udobnosti:
```python
# set up training data
# postavi podatke za trening
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# napravi podjelu podataka na trening i test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# postavi i treniraj pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# predvidi rezultate za testne podatke
pred = pipeline.predict(X_test)
# calculate MSE and determination
# izračunaj MSE i koeficijent determinacije
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
Ovo bi nam trebalo dati najbolji koeficijent determinacije od gotovo 97% i MSE=2.23 (~8% pogreške u predviđanju).
To bi nam trebalo dati najbolji koeficijent determinacije od gotovo 97%, i MSE=2.23 (~8% pogreška predviđanja).
| Model | MSE | Determinacija |
|-------|-----|---------------|
| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
| `Variety` Linear | 5.24 (19.7%) | 0.77 |
| Sve značajke Linear | 2.84 (10.5%) | 0.94 |
| Sve značajke Polynomial | 2.23 (8.25%) | 0.97 |
| Model | MSE | Determinacija |
|-------|-----|--------------|
| Linearni `DayOfYear` | 2.77 (17.2%) | 0.07 |
| Polinomski `DayOfYear` | 2.73 (17.0%) | 0.08 |
| Linearna `Variety` | 5.24 (19.7%) | 0.77 |
| Sve značajke Linearno | 2.84 (10.5%) | 0.94 |
| Sve značajke Polinomski | 2.23 (8.25%) | 0.97 |
🏆 Bravo! Stvorili ste četiri regresijska modela u jednoj lekciji i poboljšali kvalitetu modela na 97%. U završnom dijelu o regresiji naučit ćete o logističkoj regresiji za određivanje kategorija.
🏆 Svaka čast! Stvorili ste četiri modela regresije u jednoj lekciji i poboljšali kvalitetu modela na 97%. U završnom dijelu o regresiji naučit ćete o logističkoj regresiji za određivanje kategorija.
---
## 🚀Izazov
---
## 🚀Izazov
Testirajte nekoliko različitih varijabli u ovom notebooku kako biste vidjeli kako korelacija odgovara točnosti modela.
Testirajte nekoliko različitih varijabli u ovom bilježniku da vidite kako korelacija odgovara točnosti modela.
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## [Kviz nakon predavanja](https://ff-quizzes.netlify.app/en/ml/)
## Pregled i samostalno učenje
## Pregled i samostalan rad
U ovoj lekciji naučili smo o linearnoj regresiji. Postoje i druge važne vrste regresije. Pročitajte o tehnikama Stepwise, Ridge, Lasso i Elasticnet. Dobar tečaj za daljnje učenje je [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
U ovoj lekciji smo naučili o linearnoj regresiji. Postoje i druge važne vrste regresije. Pročitajte o tehnikama Stepwise, Ridge, Lasso i Elasticnet. Dobar tečaj za daljnje proučavanje je [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Zadatak
## Zadatak
[Izgradite model](assignment.md)
[Izradi model](assignment.md)
---
**Odricanje od odgovornosti**:
Ovaj dokument je preveden pomoću AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane ljudskog prevoditelja. Ne preuzimamo odgovornost za bilo kakve nesporazume ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Odricanje od odgovornosti**:
Ovaj je dokument preveden pomoću AI usluge prevođenja [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati greške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporuča se profesionalni prijevod ljudskog prevoditelja. Ne snosimo odgovornost za bilo kakva nesporazumevanja ili pogrešne interpretacije nastale korištenjem ovog prijevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,42 +1,42 @@
# Klasifikatori kuhinja 2
U ovoj drugoj lekciji o klasifikaciji istražit ćete više načina za klasifikaciju numeričkih podataka. Također ćete naučiti o posljedicama odabira jednog klasifikatora u odnosu na drugi.
U ovoj drugoj lekciji o klasifikaciji, istražit ćete više načina za klasifikaciju numeričkih podataka. Također ćete naučiti o posljedicama odabira jednog klasifikatora u odnosu na drugi.
## [Kviz prije predavanja](https://ff-quizzes.netlify.app/en/ml/)
### Preduvjeti
### Pretpostavka
Pretpostavljamo da ste završili prethodne lekcije i da imate očišćeni skup podataka u svojoj mapi `data` pod nazivom _cleaned_cuisines.csv_ u korijenu ove mape s 4 lekcije.
Pretpostavljamo da ste završili prethodne lekcije i imate očišćeni skup podataka u svojoj `data` mapi pod nazivom _cleaned_cuisines.csv_ u korijenu ove mape s 4 lekcije.
### Priprema
Učitali smo vašu datoteku _notebook.ipynb_ s očišćenim skupom podataka i podijelili je u X i y podatkovne okvire, spremne za proces izgradnje modela.
Učitani su vam _notebook.ipynb_ datoteka s očišćenim skupom podataka i podijelili smo ga u X i y datafrejmove, spremne za proces izgradnje modela.
## Karta klasifikacije
Ranije ste naučili o raznim opcijama koje imate pri klasifikaciji podataka koristeći Microsoftov vodič. Scikit-learn nudi sličan, ali detaljniji vodič koji može dodatno pomoći u sužavanju izbora procjenitelja (drugi naziv za klasifikatore):
Prije ste naučili o različitim opcijama koje imate kod klasificiranja podataka koristeći Microsoftovu varalicu. Scikit-learn nudi sličnu, ali detaljniju varalicu koja može dodatno pomoći pri sužavanju vaših procjenitelja (drugi izraz za klasifikatore):
![ML Karta iz Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Savjet: [posjetite ovu kartu online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) i kliknite na putanju kako biste pročitali dokumentaciju.
![ML karta iz Scikit-learn](../../../../translated_images/hr/map.e963a6a51349425a.webp)
> Savjet: [posjetite ovu kartu online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) i klikajte duž staze da pročitate dokumentaciju.
### Plan
Ova karta je vrlo korisna kada imate jasno razumijevanje svojih podataka, jer možete 'hodati' njenim stazama do odluke:
Ova karta je vrlo korisna kad imate jasno razumijevanje svojih podataka, jer možete 'šetati' njenim stazama do odluke:
- Imamo >50 uzoraka
- Želimo predvidjeti kategoriju
- Imamo označene podatke
- Imamo manje od 100K uzoraka
- ✨ Možemo odabrati Linear SVC
- ✨ Možemo odabrati Linearni SVC
- Ako to ne uspije, budući da imamo numeričke podatke
- Možemo pokušati ✨ KNeighbors Classifier
- Ako to ne uspije, pokušajte ✨ SVC i ✨ Ensemble Classifiers
- Možemo pokušati sa ✨ KNeighbors klasifikatorom
- Ako to ne uspije, pokušajte ✨ SVC i ✨ Ensemble klasifikatore
Ovo je vrlo koristan put za slijediti.
Ovo je vrlo korisna staza za praćenje.
## Vježba - podijelite podatke
Slijedeći ovu putanju, trebali bismo započeti uvozom nekih biblioteka koje ćemo koristiti.
Prateći ovu stazu, trebali bismo započeti uvozom nekih biblioteka za korištenje.
1. Uvezite potrebne biblioteke:
@ -50,31 +50,31 @@ Slijedeći ovu putanju, trebali bismo započeti uvozom nekih biblioteka koje će
import numpy as np
```
1. Podijelite svoje podatke za treniranje i testiranje:
1. Podijelite svoje podatke za trening i test:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linear SVC klasifikator
## Linearni SVC klasifikator
Support-Vector clustering (SVC) je dio obitelji tehnika strojnog učenja Support-Vector machines (SVM) (saznajte više o njima dolje). U ovoj metodi možete odabrati 'kernel' kako biste odlučili kako grupirati oznake. Parametar 'C' odnosi se na 'regularizaciju' koja regulira utjecaj parametara. Kernel može biti jedan od [nekoliko](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); ovdje ga postavljamo na 'linear' kako bismo osigurali korištenje linearne SVC. Vjerojatnost je prema zadanim postavkama 'false'; ovdje je postavljamo na 'true' kako bismo dobili procjene vjerojatnosti. Postavljamo random state na '0' kako bismo promiješali podatke za dobivanje vjerojatnosti.
Support-Vector clustering (SVC) je član obitelji Support-Vector strojeva za ML tehnike (saznajte više o njima dolje). U ovoj metodi možete odabrati 'kernel' kojim odlučujete kako grupirati oznake. Parametar 'C' odnosi se na 'regularizaciju' koja regulira utjecaj parametara. Kernel može biti jedan od [više](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); ovdje smo ga postavili na 'linearni' da osiguramo korištenje linearnog SVC-a. Vjerojatnost je prema zadanim postavkama 'false'; ovdje smo je postavili na 'true' da prikupimo procjene vjerojatnosti. Postavili smo random_state na '0' da promiješamo podatke za dobivanje vjerojatnosti.
### Vježba - primijenite linearni SVC
Započnite stvaranjem niza klasifikatora. Postupno ćete dodavati ovom nizu dok testiramo.
Započnite stvaranjem niza klasifikatora. Postupno ćete dodavati u ovaj niz dok testiramo.
1. Započnite s Linear SVC:
1. Započnite s linearnim SVC:
```python
C = 10
# Create different classifiers.
# Izradite različite klasifikatore.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Trenirajte svoj model koristeći Linear SVC i ispišite izvještaj:
2. Naučite svoj model koristeći Linearni SVC i ispišite izvještaj:
```python
n_classifiers = len(classifiers)
@ -107,13 +107,13 @@ Započnite stvaranjem niza klasifikatora. Postupno ćete dodavati ovom nizu dok
## K-Neighbors klasifikator
K-Neighbors je dio obitelji metoda strojnog učenja "neighbors", koje se mogu koristiti za nadzirano i nenadzirano učenje. U ovoj metodi unaprijed definirani broj točaka se stvara, a podaci se prikupljaju oko tih točaka kako bi se predvidjele generalizirane oznake za podatke.
K-Neighbors je dio obitelji "neighbors" ML metoda, koje se mogu koristiti za nadzirano i nenadzirano učenje. U ovoj metodi se stvara unaprijed definirani broj točaka i podaci se skupljaju oko tih točaka tako da se mogu predvidjeti generalizirane oznake za podatke.
### Vježba - primijenite K-Neighbors klasifikator
Prethodni klasifikator je bio dobar i dobro je radio s podacima, ali možda možemo postići bolju točnost. Pokušajte s K-Neighbors klasifikatorom.
Prethodni klasifikator je bio dobar i dobro je radio s podacima, ali možda možemo postići bolju točnost. Isprobajte K-Neighbors klasifikator.
1. Dodajte liniju svom nizu klasifikatora (dodajte zarez nakon stavke Linear SVC):
1. Dodajte liniju u svoj niz klasifikatora (dodajte zarez nakon stavke Linearni SVC):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -136,23 +136,23 @@ Prethodni klasifikator je bio dobar i dobro je radio s podacima, ali možda mož
weighted avg 0.76 0.74 0.74 1199
```
✅ Saznajte više o [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ Saznajte o [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Support Vector Classifier
Support-Vector klasifikatori su dio obitelji metoda strojnog učenja [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) koje se koriste za zadatke klasifikacije i regresije. SVM "mapira primjere za treniranje na točke u prostoru" kako bi maksimizirao udaljenost između dvije kategorije. Naknadni podaci se mapiraju u ovaj prostor kako bi se predvidjela njihova kategorija.
Support-Vector klasifikatori su dio obitelji [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) ML metoda koje se koriste za klasifikacijske i regresijske zadatke. SVM-ovi "mapiraju primjere treninga u točke u prostoru" kako bi maksimalizirali udaljenost između dvije kategorije. Sljedeći podaci se mapiraju u taj prostor kako bi se mogla predvidjeti njihova kategorija.
### Vježba - primijenite Support Vector Classifier
Pokušajmo postići malo bolju točnost s Support Vector Classifier.
Pokušajmo dobiti malo bolju točnost s Support Vector Classifierom.
1. Dodajte zarez nakon stavke K-Neighbors, a zatim dodajte ovu liniju:
1. Dodajte zarez nakon stavke K-Neighbors, pa zatim dodajte ovu liniju:
```python
'SVC': SVC(),
```
Rezultat je vrlo dobar!
Rezultat je prilično dobar!
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ Pokušajmo postići malo bolju točnost s Support Vector Classifier.
weighted avg 0.84 0.83 0.83 1199
```
✅ Saznajte više o [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ Saznajte o [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ensemble Classifiers
## Ensemble klasifikatori
Slijedimo put do samog kraja, iako je prethodni test bio vrlo dobar. Pokušajmo s 'Ensemble Classifiers', konkretno Random Forest i AdaBoost:
Slijedimo stazu do samog kraja, iako je prethodni test bio prilično dobar. Isprobajmo neke 'Ensemble klasifikatore', konkretno Random Forest i AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
Rezultat je vrlo dobar, posebno za Random Forest:
Rezultat je vrlo dobar, osobito za Random Forest:
```output
Accuracy (train) for RFST: 84.5%
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ Saznajte više o [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
✅ Saznajte o [Ensemble klasifikatorima](https://scikit-learn.org/stable/modules/ensemble.html)
Ova metoda strojnog učenja "kombinira predviđanja nekoliko osnovnih procjenitelja" kako bi poboljšala kvalitetu modela. U našem primjeru koristili smo Random Trees i AdaBoost.
Ova metoda strojnog učenja "kombinira predviđanja nekoliko osnovnih procjenitelja" kako bi poboljšala kvalitetu modela. U našem smo primjeru koristili Random Trees i AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), metoda prosjeka, gradi 'šumu' 'odlučujućih stabala' s dodanom slučajnošću kako bi se izbjeglo prekomjerno prilagođavanje. Parametar n_estimators postavljen je na broj stabala.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), metoda prosječavanja, gradi 'šumu' 'odlučnih stabala' obogaćenu slučajnostima kako bi se izbjeglo prekomjerno prilagođavanje. Parametar n_estimators postavljen je na broj stabala.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) prilagođava klasifikator skupu podataka, a zatim prilagođava kopije tog klasifikatora istom skupu podataka. Fokusira se na težine pogrešno klasificiranih stavki i prilagođava fit za sljedeći klasifikator kako bi ih ispravio.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) trenira klasifikator na skupu podataka, a zatim trenira kopije tog klasifikatora na istom skupu podataka. Fokusira se na težine pogrešno klasificiranih elemenata i prilagođava fit sljedećem klasifikatoru da ispravi.
---
## 🚀Izazov
Svaka od ovih tehnika ima veliki broj parametara koje možete prilagoditi. Istražite zadane parametre svake od njih i razmislite što bi prilagodba tih parametara značila za kvalitetu modela.
Svaka od ovih tehnika ima veliki broj parametara koje možete mijenjati. Istražite zadane parametre svakog i razmislite što bi mijenjanje tih parametara značilo za kvalitetu modela.
## [Kviz nakon predavanja](https://ff-quizzes.netlify.app/en/ml/)
## Pregled i samostalno učenje
## Pregled i samostalna studija
U ovim lekcijama ima puno stručnih izraza, pa odvojite trenutak da pregledate [ovaj popis](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) korisne terminologije!
U ovim lekcijama ima puno žargona, pa odvojite minutu da pregledate [ovaj popis](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) korisne terminologije!
## Zadatak
## Zadatak
[Parametarska igra](assignment.md)
[Igra s parametrima](assignment.md)
---
**Odricanje od odgovornosti**:
Ovaj dokument je preveden pomoću AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane ljudskog prevoditelja. Ne preuzimamo odgovornost za bilo kakve nesporazume ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Napomena**:
Ovaj je dokument preveden pomoću AI usluge prevođenja [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba se smatrati službenim i autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne preuzimamo odgovornost za nesporazume ili kriva tumačenja koja proizlaze iz uporabe ovog prijevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Izgradnja modela za klasifikaciju\n"
"# Izgradnja modela klasifikacije\n"
]
},
{
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Odricanje od odgovornosti**: \nOvaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati mjerodavnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane stručnjaka. Ne preuzimamo odgovornost za bilo kakve nesporazume ili pogrešne interpretacije proizašle iz korištenja ovog prijevoda.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Izjava o odricanju od odgovornosti**: \nOvaj dokument je preveden pomoću AI usluge za prevod [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo postići točnost, imajte na umu da automatizirani prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba se smatrati službenim i autoritativnim izvorom. Za kritične informacije preporučujemo profesionalni ljudski prijevod. Ne preuzimamo odgovornost za nesporazume ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -152,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-04T08:32:08+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "hr"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# Izgradite više modela za klasifikaciju\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pokušajte različite klasifikatore\n"
"# Isprobajte različite klasifikatore\n"
]
},
{
@ -146,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -261,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Odricanje od odgovornosti**: \nOvaj dokument je preveden korištenjem AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati mjerodavnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane stručnjaka. Ne preuzimamo odgovornost za bilo kakve nesporazume ili pogrešne interpretacije proizašle iz korištenja ovog prijevoda.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Odricanje od odgovornosti**: \nOvaj je dokument preveden pomoću AI usluge za prevođenje [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo biti točni, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati vjerodostojnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakva nesporazuma ili pogrešne interpretacije proizašle iz uporabe ovog prijevoda.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-04T08:32:55+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "hr"
}
},
"nbformat": 4,

@ -8,78 +8,88 @@
[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
### 🌐 Višejezična podrška
### 🌐 Podrška za više jezika
#### Podržano putem GitHub akcije (Automatski i uvijek ažurirano)
#### Podržano putem GitHub Actiona (Automatski & Uvijek ažurirano)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](./README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Radije klonirati lokalno?**
> Ovaj repozitorij uključuje prijevode na više od 50 jezika što znatno povećava veličinu preuzimanja. Za kloniranje bez prijevoda koristite sparse checkout:
>
> Ovaj repozitorij uključuje prijevode na više od 50 jezika što značajno povećava veličinu preuzimanja. Za kloniranje bez prijevoda, koristite sparse checkout:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> Ovo vam daje sve što vam je potrebno za završetak tečaja uz znatno brže preuzimanje.
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Ovo vam daje sve što vam je potrebno za završetak tečaja s puno bržim preuzimanjem.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Pridružite se našoj zajednici
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Imamo seriju "Uči s AI" na Discordu, saznajte više i pridružite se na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. rujna 2025. Dobit ćete savjete i trikove za korištenje GitHub Copilot za Data Science.
Imamo Discord seriju "Uči s AI", saznajte više i pridružite nam se na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. rujna 2025. godine. Dobit ćete savjete i trikove za korištenje GitHub Copilota za znanost o podacima.
![Learn with AI series](../../translated_images/hr/3.9b58fd8d6c373c20.webp)
![Serija Uči s AI](../../translated_images/hr/3.9b58fd8d6c373c20.webp)
# Strojno učenje za početnike - Kurikulum
# Strojno učenje za početnike - kurikulum
> 🌍 Putujte oko svijeta dok istražujemo Strojno učenje kroz kulture svijeta 🌍
> 🌍 Putujte oko svijeta dok istražujemo strojno učenje kroz svjetske kulture 🌍
Cloud Advocates u Microsoftu s ponosom nude 12-tjedni, 26-lekcijski kurikulum posvećen **Strojnom učenju**. U ovom kurikulumu ćete naučiti o onome što se ponekad naziva **klasičnim strojnim učenjem**, koristeći prvenstveno biblioteku Scikit-learn i izbjegavajući duboko učenje, koje je obrađeno u našem [AI for Beginners' kurikulumu](https://aka.ms/ai4beginners). Uparite ove lekcije i s našim ['Data Science for Beginners' kurikulumom](https://aka.ms/ds4beginners).
Cloud Advocates u Microsoftu s veseljem vam nude 12-tjedni kurikulum sa 26 lekcija o **Strojnom učenju**. U ovom kurikulumu naučit ćete o onome što se ponekad naziva **klasično strojno učenje**, koristeći prvenstveno Scikit-learn kao biblioteku i izbjegavajući duboko učenje, koje je obrađeno u našem [AI for Beginners' kurikulumu](https://aka.ms/ai4beginners). Također uparite ove lekcije s našim ['Data Science for Beginners' kurikulumom](https://aka.ms/ds4beginners)!
Putujte s nama oko svijeta dok primjenjujemo ove klasične tehnike na podatke iz raznih dijelova svijeta. Svaka lekcija uključuje kvizove prije i nakon lekcije, pisane upute za dovršetak lekcije, rješenje, zadatak i još mnogo toga. Naša metodologija zasnovana na projektima omogućuje vam učenje kroz izgradnju, što je dokazano učinkovit način da nova znanja "ostanu".
Putujte s nama diljem svijeta dok primjenjujemo ove klasične tehnike na podatke iz mnogih dijelova svijeta. Svaka lekcija uključuje kvizove prije i poslije lekcije, pisane upute za dovršetak lekcije, rješenje, zadatak i više. Naša pedagoška metoda zasnovana na projektima omogućuje vam učenje dok gradite, što je dokazani način da nove vještine 'zadrže'.
**✍️ Veliko hvala našim autorima** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu i Amy Boyd
**✍️ Srdačna zahvala našim autorima** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu i Amy Boyd
**🎨 Zahvale i našim ilustratorima** Tomomi Imura, Dasani Madipalli i Jen Looper
**🎨 Zahvala i našim ilustratorima** Tomomi Imuri, Dasani Madipalli i Jen Looper
**🙏 Posebna zahvala 🙏 našim Microsoft Student Ambassador autorima, recenzentima i suradnicima sadržaja**, posebno Rishitu Dagliju, Muhammadu Sakib Khanu Inanu, Rohanu Raju, Alexandruu Petrescuu, Abhisheku Jaiswalu, Nawrin Tabassumu, Ioanu Samuili i Snigdhi Agarwalu
**🙏 Posebna hvala 🙏 Microsoft Student Ambassador autorima, recenzentima i suradnicima**, naročito Rishitu Dagliju, Muhammadu Sakib Khanu Inanu, Rohanu Raju, Alexandruu Petrescuu, Abhisheku Jaiswalu, Nawrin Tabassumu, Ioanu Samuili i Snigdhi Agarwal
**🤩 Posebna zahvalnost Microsoft Student Ambassadorima Eric Wanjau, Jasleen Sondhi i Vidushi Gupta za naše R lekcije!**
**🤩 Dodatna zahvalnost Microsoft Student Ambassadors Ericu Wanjauu, Jasleen Sondhiju i Vidushi Gupti za naše R lekcije!**
# Početak rada
# Početak
Slijedite ove korake:
1. **Forkajte repozitorij**: Kliknite na gumb "Fork" u gornjem desnom kutu ove stranice.
2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [pronađite sve dodatne resurse za ovaj tečaj u našoj Microsoft Learn kolekciji](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [pronađite sve dodatne materijale za ovaj tečaj u našoj kolekciji Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Trebate pomoć?** Pogledajte naš [Vodič za rješavanje problema](TROUBLESHOOTING.md) za rješenja čestih problema s instalacijom, postavljanjem i izvođenjem lekcija.
> 🔧 **Trebate pomoć?** Pogledajte naš [Vodič za rješavanje problema](TROUBLESHOOTING.md) za rješenja uobičajenih problema s instalacijom, postavljanjem i izvođenjem lekcija.
**[Učenici](https://aka.ms/student-page)**, za korištenje ovog kurikuluma, forkajte cijeli repozitorij na vlastiti GitHub račun i dovršavajte vježbe samostalno ili u grupi:
**[Studenti](https://aka.ms/student-page)**, za korištenje ovog kurikuluma, forkajte cijeli repozitorij na svoj GitHub račun i vježbajte sami ili u grupi:
- Počnite s kvizom prije predavanja.
- Pročitajte predavanje i dovršite aktivnosti, zaustavljajući se i razmišljajući na svakoj provjeri znanja.
- Pokušajte stvoriti projekte razumijevanjem lekcija, a ne samo pokretanjem rješenja; međutim, taj je kod dostupan u mapama `/solution` u svakoj lekciji usmjerenoj na projekte.
- Uradite kviz nakon predavanja.
- Dovršite izazov.
- Dovršite zadatak.
- Nakon završetka grupe lekcija, posjetite [Diskusijski forum](https://github.com/microsoft/ML-For-Beginners/discussions) i "učite naglas" ispunjavanjem odgovarajućeg PAT obrasca. 'PAT' je alat za procjenu napretka koji ispunjavate za daljnje učenje. Također možete reagirati na druge PAT-ove kako bismo zajedno učili.
- Pročitajte predavanje i obavite aktivnosti, pauzirajući i razmišljajući na svakom provjeri znanja.
- Pokušajte sami napraviti projekte razumijevanjem lekcija, a ne samo pokretanjem rješenja; taj kod je dostupan u mapama `/solution` u svakom lekcijom usmjerenom na projekt.
- Polažite kviz nakon predavanja.
- Završite izazov.
- Završite zadatak.
- Nakon dovršetka skupa lekcija, posjetite [Diskusijsku ploču](https://github.com/microsoft/ML-For-Beginners/discussions) i "učite na glas" ispunjavanjem odgovarajuće PAT ocjene. 'PAT' je alat za procjenu napretka, ocjenjivački listić koji ispunjavate kako biste unaprijedili svoje učenje. Također možete reagirati na druge PATove kako bismo učili zajedno.
> Za daljnje učenje preporučujemo praćenje ovih [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modula i obrazovnih putanja.
> Za daljnje učenje preporučujemo praćenje ovih [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modula i nastavnih putova.
**Nastavnici**, uključili smo [neke prijedloge](for-teachers.md) o tome kako koristiti ovaj kurikulum.
**Nastavnici**, dali smo [neke prijedloge](for-teachers.md) o tome kako koristiti ovaj kurikulum.
---
## Video vodiči
Neke lekcije dostupne su u obliku kratkih video zapisa. Sve ih možete pronaći unutar lekcija ili na [ML for Beginners playlisti na Microsoft Developer YouTube kanalu](https://aka.ms/ml-beginners-videos) klikom na donju sliku.
Neke lekcije dostupne su kao kratki videozapisi. Sve ih možete pronaći unutar lekcija, ili na [ML for Beginners playlisti na Microsoft Developer YouTube kanalu](https://aka.ms/ml-beginners-videos) klikom na sliku ispod.
[![ML for beginners banner](../../translated_images/hr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -89,108 +99,108 @@ Neke lekcije dostupne su u obliku kratkih video zapisa. Sve ih možete pronaći
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif autora** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif autor** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Kliknite gornju sliku za video o projektu i ljudima koji su ga stvorili!
> 🎥 Kliknite sliku gore za video o projektu i ljudima koji su ga stvorili!
---
## Pedagogija
Pri izradi ovog kurikuluma odabrali smo dva pedagoška principa: osigurati da je praktičan i **zasnovan na projektima** te da uključuje **učestale kvizove**. Osim toga, ovaj kurikulum ima zajedničku **temu** za koheziju.
Odabrali smo dva pedagoška načela prilikom izrade ovog kurikuluma: osigurati da je praktičan i **zasnovan na projektima** te da uključuje **učestale kvizove**. Također, ovaj kurikulum ima zajedničku **temu** radi kohezije.
Osiguravajući da se sadržaj uskladi s projektima, proces učenja postaje zanimljiviji za učenike i poboljšava zadržavanje pojmova. Uz to, kviz s niskim ulogom prije nastave usmjerava namjeru učenika ka učenju teme, dok drugi kviz nakon nastave osigurava dodatno usvajanje znanja. Ovaj je kurikulum osmišljen kao fleksibilan i zabavan te se može koristiti u cijelosti ili djelomično. Projekti počinju jednostavni i postaju sve složeniji do kraja 12-tjednog ciklusa. Kurikulum također uključuje epilog o stvarnim primjenama strojnog učenja, koji se može koristiti kao dodatni bodovi ili kao osnova za raspravu.
Osiguravajući usklađenost sadržaja s projektima, proces učenja je zanimljiviji za studente i povećava zadržavanje pojmova. Osim toga, kviz niskog rizika prije nastave postavlja obrazovne namjere učenika, dok drugi kviz nakon nastave osigurava dodatno zadržavanje. Ovaj kurikulum dizajniran je da bude fleksibilan i zabavan, može se raditi u cijelosti ili dijelom. Projekti kreću od jednostavnih do složenijih do kraja 12-tjednog ciklusa. Kurikulum također uključuje postskriptum o stvarnim primjenama ML-a, koji se može koristiti kao dodatni bodovi ili kao osnova za raspravu.
> Pronađite naš [Kodeks ponašanja](CODE_OF_CONDUCT.md), [Pravila za doprinos](CONTRIBUTING.md), [Prijevode](TRANSLATIONS.md) i [Vodič za rješavanje problema](TROUBLESHOOTING.md). Dobrodošao je vaš konstruktivan feedback!
> Pronađite naša [Pravila ponašanja](CODE_OF_CONDUCT.md), [Upute za doprinos](CONTRIBUTING.md), [Prijevode](TRANSLATIONS.md) i [Vodič za rješavanje problema](TROUBLESHOOTING.md). Dobrodošla su vaša konstruktivna mišljenja!
## Svaka lekcija uključuje
- neobaveznu skicu bilješki
- neobavezni dopunski video
- video vodič (samo neke lekcije)
- [pripremni kviz prije predavanja](https://ff-quizzes.netlify.app/en/ml/)
- opcionalne skice
- opcionalni dodatni video
- video vodič (samo za neke lekcije)
- [kratki kviz prije predavanja](https://ff-quizzes.netlify.app/en/ml/)
- pisanu lekciju
- za lekcije temeljene na projektima, vodiče korak-po-korak za izradu projekta
- za projekte, korak-po-korak vodiče kako izgraditi projekt
- provjere znanja
- izazov
- dodatno čitanje
- dodatnu literaturu
- zadatak
- [kviz nakon predavanja](https://ff-quizzes.netlify.app/en/ml/)
> **Napomena o jezicima**: Ove su lekcije prvenstveno napisane u Pythonu, ali mnoge su dostupne i u R-u. Za dovršetak R lekcije, idite u mapu `/solution` i potražite R lekcije. One uključuju .rmd ekstenziju koja predstavlja **R Markdown** datoteku, što se može jednostavno definirati kao umetanje `code chunks` (R ili drugih jezika) i `YAML zaglavlja` (koje usmjerava kako formatirati izlaze kao PDF) u `Markdown dokument`. Kao takav, služi kao izvrstan okvir za autorstvo za data science jer vam dopušta kombinirati vaš kod, njegov izlaz i vaše misli pisanjem u Markdownu. Nadalje, R Markdown dokumenti mogu se izvesti u izlazne formate poput PDF, HTML ili Word.
> **Napomena o kvizovima**: Svi kvizovi su sadržani u [Quiz App folderu](../../quiz-app), ukupno 52 kviza sa po tri pitanja. Linkani su unutar lekcija, no aplikaciju za kvizove moguće je pokrenuti lokalno; slijedite upute u `quiz-app` folderu za lokalno hostanje ili deploy na Azure.
| Broj lekcije | Tema | Grupiranje lekcija | Ciljevi učenja | Povezana lekcija | Autor |
| :----------: | :----------------------------------------------------------: | :----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: |
| 01 | Uvod u strojno učenje | [Uvod](1-Introduction/README.md) | Naučiti osnovne pojmove strojnog učenja | [Lekcija](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Povijest strojnog učenja | [Uvod](1-Introduction/README.md) | Naučiti povijest ovog područja | [Lekcija](1-Introduction/2-history-of-ML/README.md) | Jen i Amy |
| 03 | Pravednost i strojno učenje | [Uvod](1-Introduction/README.md) | Koja su važna filozofska pitanja o pravednosti koja učenici trebaju razmotriti pri izgradnji i primjeni ML modela? | [Lekcija](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Tehnike za strojno učenje | [Uvod](1-Introduction/README.md) | Koje tehnike istraživači strojnog učenja koriste za izgradnju ML modela? | [Lekcija](1-Introduction/4-techniques-of-ML/README.md) | Chris i Jen |
| 05 | Uvod u regresiju | [Regresija](2-Regression/README.md) | Početak rada s Pythonom i Scikit-learn za regresijske modele | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Cijene bundeva u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Vizualizirati i očistiti podatke kao pripremu za ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Cijene bundeva u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Izraditi linearne i polinomijalne regresijske modele | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen i Dmitry • Eric Wanjau |
| 08 | Cijene bundeva u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Izraditi logistički regresijski model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Web aplikacija 🔌 | [Web App](3-Web-App/README.md) | Izgraditi web aplikaciju za upotrebu vašeg istreniranog modela | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Uvod u klasifikaciju | [Klasifikacija](4-Classification/README.md) | Očistiti, pripremiti i vizualizirati podatke; uvod u klasifikaciju | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen i Cassie • Eric Wanjau |
| 11 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Uvod u klasifikatore | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen i Cassie • Eric Wanjau |
| 12 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Više klasifikatora | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen i Cassie • Eric Wanjau |
| 13 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Izraditi web aplikaciju za preporuke koristeći vaš model | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Uvod u klasteriranje | [Klasteriranje](5-Clustering/README.md) | Očistiti, pripremiti i vizualizirati podatke; uvod u klasteriranje | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Istraživanje nigerijskih glazbenih ukusa 🎧 | [Klasteriranje](5-Clustering/README.md) | Istražiti K-Means metodu klasteriranja | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Uvod u obradu prirodnog jezika ☕️ | [Obrada prirodnog jezika](6-NLP/README.md) | Naučiti osnove NLP-a kroz izgradnju jednostavnog bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Uobičajeni NLP zadaci ☕️ | [Obrada prirodnog jezika](6-NLP/README.md) | Produbiti svoje znanje NLP-a razumijevanjem čestih zadataka u radu s jezičnim strukturama | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Prevođenje i analiza sentimenta ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Prevođenje i analiza sentimenta s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantični hoteli Europe ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Analiza sentimenta s recenzijama hotela 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantični hoteli Europe ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Analiza sentimenta s recenzijama hotela 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Uvod u predviđanje vremenskih serija | [Vremenske serije](7-TimeSeries/README.md) | Uvod u predviđanje vremenskih serija | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Svjetska potrošnja energije ⚡️ - predviđanje vremenskih serija s ARIMA | [Vremenske serije](7-TimeSeries/README.md) | Predviđanje vremenskih serija s ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Svjetska potrošnja energije ⚡️ - predviđanje vremenskih serija sa SVR | [Vremenske serije](7-TimeSeries/README.md) | Predviđanje vremenskih serija pomoću regresora s podrškom vektora | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Uvod u učenje s pojačanjem | [Učenje s pojačanjem](8-Reinforcement/README.md) | Uvod u učenje s pojačanjem pomoću Q-Learninga | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Pomozite Peteru izbjeći vuka! 🐺 | [Učenje s pojačanjem](8-Reinforcement/README.md) | Učenje s pojačanjem uz Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Poslije | Scenariji i primjene stvarnog svijeta s ML | [ML u stvarnom svijetu](9-Real-World/README.md) | Zanimljive i otkrivajuće stvarne primjene klasičnog strojnog učenja | [Lekcija](9-Real-World/1-Applications/README.md) | Tim |
| Poslije | Debugiranje modela u ML s RAI dashboardom | [ML u stvarnom svijetu](9-Real-World/README.md) | Debugiranje modela u strojnome učenju koristeći komponente Responsible AI dashboarda | [Lekcija](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> **Napomena o jezicima**: Ove lekcije su prvenstveno napisane u Pythonu, ali mnoge su također dostupne u R. Za dovršetak R lekcije, idite u mapu `/solution` i potražite R lekcije. One uključuju .rmd ekstenziju koja predstavlja **R Markdown** datoteku, koju je jednostavno definirati kao ugrađivanje `code chunks` (R ili drugih jezika) i `YAML header` (koji vodi kako formatirati izlaze poput PDF-a) u `Markdown dokument`. Kao takav, služi kao uzorni okvir za autorstvo za znanost o podacima budući da vam omogućuje da kombinirate svoj kod, njegov izlaz i svoje misli dopuštajući vam da ih zapišete u Markdownu. Štoviše, R Markdown dokumenti se mogu prikazati u izlazne formate poput PDF, HTML ili Word.
> **Napomena o kvizovima**: Svi kvizovi nalaze se u [Quiz App folder](../../quiz-app), ukupno 52 kvizova sa po tri pitanja. Linkani su unutar lekcija, ali aplikaciju za kviz možete pokrenuti lokalno; slijedite upute u mapi `quiz-app` za lokalno hostanje ili objavu na Azure.
| Broj lekcije | Tema | Grupiranje lekcija | Ciljevi učenja | Povezana lekcija | Autor |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | Uvod u strojno učenje | [Uvod](1-Introduction/README.md) | Naučite osnovne pojmove strojnog učenja | [Lekcija](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Povijest strojnog učenja | [Uvod](1-Introduction/README.md) | Naučite povijest ovog područja | [Lekcija](1-Introduction/2-history-of-ML/README.md) | Jen i Amy |
| 03 | Pravednost i strojno učenje | [Uvod](1-Introduction/README.md) | Koja su važna filozofska pitanja oko pravednosti koja bi učenici trebali razmotriti pri izgradnji i primjeni ML modela? | [Lekcija](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Tehnike za strojno učenje | [Uvod](1-Introduction/README.md) | Koje tehnike koriste istraživači strojnog učenja za izgradnju ML modela? | [Lekcija](1-Introduction/4-techniques-of-ML/README.md) | Chris i Jen |
| 05 | Uvod u regresiju | [Regresija](2-Regression/README.md) | Počnite s Pythonom i Scikit-learn za regresijske modele | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Cijene američkih bundeva 🎃 | [Regresija](2-Regression/README.md) | Vizualizirajte i očistite podatke u pripremi za ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Cijene američkih bundeva 🎃 | [Regresija](2-Regression/README.md) | Izgradite linearne i polinomijalne regresijske modele | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen i Dmitry • Eric Wanjau |
| 08 | Cijene američkih bundeva 🎃 | [Regresija](2-Regression/README.md) | Izgradite logistički regresijski model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Web aplikacija 🔌 | [Web App](3-Web-App/README.md) | Izgradite web aplikaciju za korištenje vašeg treniranog modela | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Uvod u klasifikaciju | [Klasifikacija](4-Classification/README.md) | Očistite, pripremite i vizualizirajte svoje podatke; uvod u klasifikaciju | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen i Cassie • Eric Wanjau |
| 11 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Uvod u klasifikatore | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen i Cassie • Eric Wanjau |
| 12 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Više klasifikatora | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen i Cassie • Eric Wanjau |
| 13 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Izgradite web aplikaciju preporučitelja koristeći svoj model | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Uvod u klasteriranje | [Klasteriranje](5-Clustering/README.md) | Očistite, pripremite i vizualizirajte svoje podatke; Uvod u klasteriranje | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Istraživanje nigerijskih glazbenih ukusa 🎧 | [Klasteriranje](5-Clustering/README.md) | Istražite K-Means metodu klasteriranja | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Uvod u obradu prirodnog jezika ☕️ | [Obrada prirodnog jezika](6-NLP/README.md) | Naučite osnove NLP-a izgradnjom jednostavnog bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Uobičajeni NLP zadaci ☕️ | [Obrada prirodnog jezika](6-NLP/README.md) | Produbite svoje NLP znanje razumijevanjem uobičajenih zadataka potrebnih za rad sa strukturama jezika | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Prevođenje i analiza sentimenta ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Prevođenje i analiza sentimenta s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantični hoteli Europe ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Analiza sentimenta s recenzijama hotela 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantični hoteli Europe ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Analiza sentimenta s recenzijama hotela 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Uvod u predviđanje vremenskih serija | [Vremenske serije](7-TimeSeries/README.md) | Uvod u predviđanje vremenskih serija | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Svjetska potrošnja energije ⚡️ - predviđanje vremenskih serija s ARIMA | [Vremenske serije](7-TimeSeries/README.md) | Predviđanje vremenskih serija s ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Svjetska potrošnja energije ⚡️ - predviđanje vremenskih serija sa SVR | [Vremenske serije](7-TimeSeries/README.md) | Predviđanje vremenskih serija s regresorom potpornih vektora | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Uvod u učenje pojačanjem | [Učenje pojačanjem](8-Reinforcement/README.md) | Uvod u učenje pojačanjem putem Q-Learninga | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Pomozi Petru da izbjegne vuka! 🐺 | [Učenje pojačanjem](8-Reinforcement/README.md) | Učenje pojačanjem Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Scenariji i primjene strojnog učenja u stvarnom svijetu | [ML u stvarnom svijetu](9-Real-World/README.md) | Zanimljive i otkrivajuće primjene klasičnog strojnog učenja u stvarnom svijetu | [Lekcija](9-Real-World/1-Applications/README.md) | Tim |
| Postscript | Debugiranje modela u strojnog učenja koristeći RAI nadzornu ploču | [ML u stvarnom svijetu](9-Real-World/README.md) | Debugiranje modela u strojnog učenja koristeći komponente Responsible AI nadzorne ploče | [Lekcija](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [pronađite sve dodatne resurse za ovaj tečaj u našoj Microsoft Learn kolekciji](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline pristup
## Pristup offline
Ovu dokumentaciju možete pokrenuti offline koristeći [Docsify](https://docsify.js.org/#/). Forkajte ovaj repozitorij, [instalirajte Docsify](https://docsify.js.org/#/quickstart) na svoj lokalni uređaj i u korijenskom direktoriju repozitorija upišite `docsify serve`. Web stranica će biti dostupna na portu 3000 na vašem localhostu: `localhost:3000`.
Ovu dokumentaciju možete pokrenuti offline koristeći [Docsify](https://docsify.js.org/#/). Forkajte ovaj repozitorij, [instalirajte Docsify](https://docsify.js.org/#/quickstart) na svoj lokalni uređaj, a zatim u korijenskoj mapi ovog repozitorija upišite `docsify serve`. Web stranica će biti poslužena na portu 3000 na vašem localhostu: `localhost:3000`.
## PDF-ovi
## PDF datoteke
Pronađite pdf nastavnog plana s linkovima [ovdje](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Pronađite pdf nastavnog plana s poveznicama [ovdje](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Drugi tečajevi
## 🎒 Ostali tečajevi
Naš tim proizvodi i druge tečajeve! Pogledajte:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j za početnike](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js za početnike](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain za početnike](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agenti
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
### Azure / Edge / MCP / Agent
[![AZD za početnike](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI za početnike](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP za početnike](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI agenti za početnike](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Serija generativne umjetne inteligencije
[![Generative AI za početnike](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### Serija Generativne AI
[![Generativna AI za početnike](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generativna AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generativna AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generativna AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### Osnovno učenje
[![ML za početnike](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science za početnike](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![Strojno učenje za početnike](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Podatkovna znanost za početnike](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI za početnike](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Kibernetička sigurnost za početnike](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Web razvoj za početnike](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
@ -200,24 +210,29 @@ Naš tim proizvodi i druge tečajeve! Pogledajte:
---
### Serija Copilot
[![Copilot za AI upareno programiranje](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot za AI u paru programiranje](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot za C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot avantura](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## Dobivanje pomoći
Ako zapnete ili imate pitanja o izgradnji AI aplikacija. Pridružite se drugim učenicima i iskusnim programerima u raspravama o MCP-u. To je podržavajuća zajednica gdje su pitanja dobrodošla i znanje se slobodno dijeli.
Ako zapnete ili imate pitanja o izradi AI aplikacija. Pridružite se ostalim učenicima i iskusnim programerima u raspravama o MCP. To je podržavajuća zajednica gdje su pitanja dobrodošla i znanje se slobodno dijeli.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Ako imate povratne informacije o proizvodu ili greške tijekom izrade, posjetite:
Ako imate povratne informacije o proizvodu ili pogreške tijekom izrade, posjetite:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Dodatni savjeti za učenje
- Pregledajte bilježnice nakon svake lekcije za bolje razumijevanje.
- Vježbajte sami implementirati algoritme.
- Istražujte stvarne skupove podataka koristeći naučene koncepte.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Odricanje od odgovornosti**:
Ovaj dokument preveden je korištenjem AI prevoditeljskog servisa [Co-op Translator](https://github.com/Azure/co-op-translator). Iako nastojimo postići točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku smatra se službenim i autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Nismo odgovorni za bilo kakve nesporazume ili kriva tumačenja koja proizlaze iz korištenja ovog prijevoda.
**Izjava o odricanju od odgovornosti**:
Ovaj dokument preveden je pomoću AI prevoditeljskog servisa [Co-op Translator](https://github.com/Azure/co-op-translator). Iako se trudimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba se smatrati autoritativnim izvorom. Za važne informacije preporučuje se profesionalni ljudski prijevod. Ne odgovaramo za bilo kakva nesporazuma ili pogrešna tumačenja proizašla iz korištenja ovog prijevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "sl"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T12:42:06+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:50:21+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "sl"
},
@ -90,8 +90,8 @@
"language_code": "sl"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T11:28:40+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:51:29+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "sl"
},
@ -186,8 +186,8 @@
"language_code": "sl"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T13:14:38+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:51:51+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "sl"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "sl"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:42:46+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "sl"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T13:16:46+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "sl"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:42:51+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "sl"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T13:11:19+00:00",
@ -540,8 +552,8 @@
"language_code": "sl"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T09:09:35+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:50:14+00:00",
"source_file": "README.md",
"language_code": "sl"
},

@ -1,16 +1,18 @@
# Raziskovanje orodja Responsible AI Toolbox
# Raziščite Orodjarno za odgovorno umetno inteligenco
## Navodila
V tej lekciji ste spoznali orodje Responsible AI Toolbox, "projekt odprte kode, ki ga vodi skupnost, z namenom pomagati podatkovnim znanstvenikom analizirati in izboljšati sisteme umetne inteligence." Za to nalogo raziščite enega od [zvezkov](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) orodja RAI Toolbox in svoje ugotovitve predstavite v obliki poročila ali predstavitve.
V tej lekciji ste spoznali Orodjarno za odgovorno umetno inteligenco, "projekt odprte kode, ki ga vodi skupnost, da pomaga podatkovnim znanstvenikom analizirati in izboljšati sisteme umetne inteligence." Za to nalogo raziščite eno od RAI Toolbox [zvezkov](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) in poročajte o svojih ugotovitvah v referatu ali predstavitvi.
## Merila ocenjevanja
## Merila
| Merila | Odlično | Zadostno | Potrebne izboljšave |
| ------- | -------- | -------- | ------------------- |
| | Predstavljeno je poročilo ali PowerPoint predstavitev, ki obravnava sisteme Fairlearn, zvezek, ki je bil izveden, in sklepe, ki so bili sprejeti na podlagi izvedbe | Predstavljeno je poročilo brez sklepov | Poročilo ni predstavljeno |
| Merila | Odlično | Zadostno | Potrebuje izboljšave |
| -------- | --------- | -------- | ----------------- |
| | Predložen je referat ali predstavitev v PowerPointu, ki obravnava sisteme Fairlearn, zvezek, ki je bil izveden, in zaključke, pridobljene z izvajanjem | Predložen je referat brez zaključkov | Referat ni predložen |
---
**Omejitev odgovornosti**:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitne nesporazume ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Opozorilo**:
Ta dokument je bil preveden z uporabo storitve za avtomatski prevod [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, upoštevajte, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v izvorni jezik velja za avtoritativni vir. Za ključne informacije priporočamo strokovni prevod, opravljen s strani človeka. Ne odgovarjamo za morebitne nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,124 +1,136 @@
# Ustvarjanje regresijskega modela s Scikit-learn: štiri načini regresije
# Ustvarjanje regresijskega modela z uporabo Scikit-learn: regresija na štiri načine
![Infografika linearne in polinomske regresije](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## Opomba za začetnike
Linearna regresija se uporablja, kadar želimo napovedati **številsko vrednost** (na primer cena hiše, temperatura ali prodaja).
Deluje tako, da najde ravno črto, ki najbolje predstavlja razmerje med vhodnimi značilnostmi in izhodom.
V tej lekciji se osredotočamo na razumevanje koncepta, preden raziskujemo bolj napredne regresijske tehnike.
![Linearna proti polinomska regresija infografika](../../../../translated_images/sl/linear-polynomial.5523c7cb6576ccab.webp)
> Infografika avtorja [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Predavanje kviz](https://ff-quizzes.netlify.app/en/ml/)
## [Predpredavalni kviz](https://ff-quizzes.netlify.app/en/ml/)
> ### [To lekcijo lahko najdete tudi v jeziku R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [Ta lekcija je na voljo v R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Uvod
Do sedaj ste raziskali, kaj je regresija, z vzorčnimi podatki iz nabora podatkov o cenah buč, ki ga bomo uporabljali skozi celotno lekcijo. Prav tako ste podatke vizualizirali z uporabo knjižnice Matplotlib.
Do zdaj ste raziskali, kaj je regresija na podlagi vzorčnih podatkov iz nabora podatkov o cenah buč, ki jih bomo uporabljali skozi to lekcijo. Prav tako ste jih vizualizirali z uporabo Matplotlib.
Zdaj ste pripravljeni, da se poglobite v regresijo za strojno učenje. Medtem ko vizualizacija omogoča razumevanje podatkov, je prava moč strojnega učenja v _treningu modelov_. Modele treniramo na zgodovinskih podatkih, da samodejno zajamejo odvisnosti podatkov, kar omogoča napovedovanje rezultatov za nove podatke, ki jih model še ni videl.
Zdaj ste pripravljeni, da se poglobite v regresijo za ML. Medtem ko vizualizacija omogoča razumevanje podatkov, prava moč strojnega učenja izvira iz _usposabljanja modelov_. Modele usposabljamo na zgodovinskih podatkih, da samodejno zajamejo odvisnosti podatkov, in omogočajo napovedovanje izidov za nove podatke, ki jih model še ni videl.
V tej lekciji boste izvedeli več o dveh vrstah regresije: _osnovni linearni regresiji_ in _polinomski regresiji_, skupaj z nekaj matematike, ki stoji za temi tehnikami. Ti modeli nam bodo omogočili napovedovanje cen buč glede na različne vhodne podatke.
V tej lekciji boste izvedeli več o dveh vrstah regresije: _osnovni linearni regresiji_ in _polinomski regresiji_, skupaj z nekaj matematike, ki je osnova teh tehnik. Ti modeli nam bodo omogočili napovedovanje cen buč glede na različne vhodne podatke.
[![ML za začetnike - Razumevanje linearne regresije](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML za začetnike - Razumevanje linearne regresije")
> 🎥 Kliknite zgornjo sliko za kratek video pregled linearne regresije.
> 🎥 Kliknite na sliko zgoraj za kratek video pregled linearne regresije.
> Skozi celoten učni načrt predpostavljamo minimalno matematično predznanje in si prizadevamo, da bi bilo gradivo dostopno študentom iz drugih področij. Zato bodite pozorni na opombe, 🧮 poudarke, diagrame in druga učna orodja, ki pomagajo pri razumevanju.
> V celotnem učnem načrtu predvidevamo minimalno znanje matematike in želimo, da je dostopen študentom iz drugih področij, zato bodite pozorni na opombe, 🧮 klice, diagrame in druge učne pripomočke, ki pomagajo pri razumevanju.
### Predpogoji
### Predpogoj
Do zdaj bi morali biti že seznanjeni s strukturo podatkov o bučah, ki jih preučujemo. Najdete jih prednaložene in predhodno očiščene v datoteki _notebook.ipynb_ te lekcije. V datoteki so cene buč prikazane na bušel v novem podatkovnem okviru. Prepričajte se, da lahko zaženete te beležnice v jedrih Visual Studio Code.
Ugotoviti bi morali, da se seznanjate s strukturo podatkov o bučah, ki jih preučujemo. Najdete jih naložene in očiščene v datoteki _notebook.ipynb_ te lekcije. V tej datoteki je cena buče prikazana na mero bushela v novi podatkovni tabeli. Prepričajte se, da lahko te zvezke zaženete v okolju Visual Studio Code.
### Priprava
Kot opomnik, te podatke nalagate, da bi si zastavili vprašanja, kot so:
Za opomnik, ta podatke nalagate zato, da bi lahko zastavljali vprašanja o njih.
- Kdaj je najboljši čas za nakup buč?
- Kakšno ceno lahko pričakujem za zabojček mini buč?
- Ali naj jih kupim v polovičnih bušelskih košarah ali v škatlah velikosti 1 1/9 bušla?
Poglobimo se v te podatke.
- Kakšno ceno lahko pričakujem za škatlo mini buč?
- Naj jih kupim v košarah za pol bushela ali v škatlah za 1 1/9 bushel?
Poglejmo torej podrobneje v te podatke.
V prejšnji lekciji ste ustvarili Pandasovo podatkovno tabelo in jo napolnili z delom izvirnega nabora podatkov ter standardizirali cene glede na mero bushela. S tem pa ste pridobili le približno 400 podatkovnih točk in samo za jesenske mesece.
Poglejte si podatke, ki smo jih prednaložili v spremljajočem zvezku za to lekcijo. Podatki so prednaloženi, začetni razpršeni graf pa prikazuje mesečne podatke. Morda lahko z dodatnim čiščenjem pridobimo več podrobnosti o naravi podatkov.
V prejšnji lekciji ste ustvarili podatkovni okvir Pandas in ga napolnili z delom izvirnega nabora podatkov, standardizirali cene na bušel. S tem pa ste lahko zbrali le približno 400 podatkovnih točk in le za jesenske mesece.
## Linearna regresijska črta
Oglejte si podatke, ki so prednaloženi v beležnici, ki spremlja to lekcijo. Podatki so prednaloženi, začetni raztrosni diagram pa je narisan, da prikaže podatke po mesecih. Morda lahko z dodatnim čiščenjem pridobimo več podrobnosti o naravi podatkov.
Kot ste se naučili v Lekciji 1, je cilj linearne regresije narisati črto, ki:
## Linearna regresijska premica
- **Prikazuje odnose med spremenljivkami**. Prikaže povezavo med spremenljivkami
- **Naredi napovedi**. Accurate napove, kje bo nova podatkovna točka glede na to črto.
Kot ste se naučili v 1. lekciji, je cilj linearne regresije narisati premico, ki:
Običajno za **najmanjše kvadrate regresije** narišemo tovrstno črto. Izraz "Najmanjši kvadrati" se nanaša na proces minimizacije skupne napake v našem modelu. Za vsako podatkovno točko izmerimo vertikalno razdaljo (katerakoli ostanek) med dejansko točko in regresijsko črto.
- **Prikaže odnose med spremenljivkami**. Prikaže razmerje med spremenljivkami.
- **Omogoča napovedi**. Omogoča natančne napovedi, kje bi nova podatkovna točka padla v razmerju do te premice.
Te razdalje kvadriramo iz dveh glavnih razlogov:
Za risanje te vrste premice je značilna metoda **najmanjših kvadratov**. Izraz 'najmanjši kvadrati' pomeni, da so vse podatkovne točke okoli regresijske premice kvadrirane in nato seštejejo. Idealno je, da je ta končna vsota čim manjša, saj želimo nizko število napak ali `najmanjše kvadrate`.
1. **Velikost nad smerjo:** Želimo, da je napaka -5 enaka napaki +5. Kvadriranje pretvori vse vrednosti v pozitivne.
To storimo, ker želimo modelirati premico, ki ima najmanjšo kumulativno razdaljo od vseh naših podatkovnih točk. Člene kvadriramo pred seštevanjem, saj nas zanima njihova velikost, ne pa smer.
2. **Kaznovanje odstopanj:** Kvadriranje daje večjo težo večjim napakam, zaradi česar mora črta ostati bližje točkam, ki so daleč stran.
Nato seštejemo vse te kvadrirane vrednosti. Naš cilj je najti točno tisto linijo, kjer je ta končni vsota najmanjša (najmanjša možna vrednost)—od tod ime "najmanjši kvadrati".
> **🧮 Pokaži mi matematiko**
>
> Ta premica, imenovana _premica najboljše prileganja_, je izražena z [enačbo](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> Ta črta, imenovana _črta najboljšega prileganja_, je izražena z [enačbo](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` je 'pojasnjevalna spremenljivka'. `Y` je 'odvisna spremenljivka'. Naklon premice je `b`, `a` pa je presečišče z osjo y, kar se nanaša na vrednost `Y`, ko `X = 0`.
> `X` je 'razlagaška spremenljivka'. `Y` je 'odvisna spremenljivka'. Naklon črte je `b`, `a` pa je y-presek, ki označuje vrednost `Y`, ko je `X = 0`.
>
>![izračun naklona](../../../../2-Regression/3-Linear/images/slope.png)
>![izračun naklona](../../../../translated_images/sl/slope.f3c9d5910ddbfcf9.webp)
>
> Najprej izračunajte naklon `b`. Infografika avtorja [Jen Looper](https://twitter.com/jenlooper)
> Najprej izračunaj naklon `b`. Infografika avtorja [Jen Looper](https://twitter.com/jenlooper)
>
> Z drugimi besedami, glede na naše izvirno vprašanje o podatkih o bučah: "napovedati ceno buče na bušel glede na mesec", bi `X` predstavljal ceno, `Y` pa mesec prodaje.
> Z drugimi besedami, in se sklicujoč na prvotno vprašanje glede naših podatkov o bučah: "napovedati ceno buče na bushel glede na mesec", bi `X` predstavljal ceno, `Y` pa mesec prodaje.
>
>![dopolnitev enačbe](../../../../2-Regression/3-Linear/images/calculation.png)
>![dopolni enačbo](../../../../translated_images/sl/calculation.a209813050a1ddb1.webp)
>
> Izračunajte vrednost Y. Če plačujete približno 4 $, mora biti april! Infografika avtorja [Jen Looper](https://twitter.com/jenlooper)
> Izračunaj vrednost Y. Če plačuješ okoli 4 $, mora biti april! Infografika avtorja [Jen Looper](https://twitter.com/jenlooper)
>
> Matematika, ki izračuna premico, mora prikazati njen naklon, ki je odvisen tudi od presečišča, torej od tega, kje se `Y` nahaja, ko `X = 0`.
> Matematika, ki izračuna črto, mora upoštevati naklon črte, ki je odvisen tudi od preseka, torej kje je `Y`, ko je `X = 0`.
>
> Metodo izračuna teh vrednosti si lahko ogledate na spletnem mestu [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Obiščite tudi [ta kalkulator najmanjših kvadratov](https://www.mathsisfun.com/data/least-squares-calculator.html), da vidite, kako vrednosti številk vplivajo na premico.
> Metode za izračun teh vrednosti si lahko ogledate na spletni strani [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Prav tako obiščite [ta kalkulator najmanjših kvadratov](https://www.mathsisfun.com/data/least-squares-calculator.html), kjer lahko vidite, kako vrednosti števil vplivajo na črto.
## Korelacija
Še en izraz, ki ga je treba razumeti, je **koeficient korelacije** med danima spremenljivkama X in Y. Z raztrosnim diagramom lahko hitro vizualizirate ta koeficient. Diagram s podatkovnimi točkami, razporejenimi v ravni črti, ima visoko korelacijo, medtem ko ima diagram s podatkovnimi točkami, razpršenimi povsod med X in Y, nizko korelacijo.
Še en pojem, ki ga je treba razumeti, je **koeficient korelacije** med danima spremenljivkama X in Y. Z uporabo razpršenega grafa lahko hitro vizualizirate ta koeficient. Graf s podatkovnimi točkami, razporejenimi v lepo črto, ima visoko korelacijo, medtem ko graf s podatkovnimi točkami, raztresenimi povsod med X in Y, ima nizko korelacijo.
Dober model linearne regresije bo tisti, ki ima visok (bližje 1 kot 0) koeficient korelacije z uporabo metode najmanjših kvadratov in regresijske premice.
Dober linearni regresijski model je tisti, ki ima visok (bližji 1 kot 0) koeficient korelacije, izračunan z metodo najmanjših kvadratov s črto regresije.
✅ Zaženite beležnico, ki spremlja to lekcijo, in si oglejte raztrosni diagram meseca in cene. Ali se vam zdi, da imajo podatki, ki povezujejo mesec in ceno prodaje buč, visoko ali nizko korelacijo glede na vašo vizualno interpretacijo raztrosnega diagrama? Ali se to spremeni, če uporabite bolj natančno merilo namesto `Mesec`, npr. *dan v letu* (tj. število dni od začetka leta)?
✅ Zaženite zvezek, ki spremlja to lekcijo, in si oglejte razpršeni graf Mesecev proti Ceni. Ali se zdi, da ima podatek, ki povezuje mesec s ceno pri prodaji buč, visoko ali nizko korelacijo glede na vašo vizualno interpretacijo razpršenega grafa? Ali se kaj spremeni, če uporabite bolj natančno meritev namesto `Month`, npr. *dan v letu* (to je število dni od začetka leta)?
V spodnji kodi bomo predpostavili, da smo očistili podatke in pridobili podatkovni okvir z imenom `new_pumpkins`, podoben naslednjemu:
V spodnji kodi bomo predpostavili, da smo podatke očistili in pridobili podatkovno tabelo z imenom `new_pumpkins`, podobno spodnjemu:
ID | Mesec | DanVLeto | Vrsta | Mesto | Paket | Najnižja cena | Najvišja cena | Cena
---|-------|----------|-------|-------|-------|---------------|---------------|------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 škatle | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 škatle | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 škatle | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 škatle | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 škatle | 15.0 | 15.0 | 13.636364
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> Koda za čiščenje podatkov je na voljo v datoteki [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Izvedli smo enake korake čiščenja kot v prejšnji lekciji in izračunali stolpec `DanVLeto` z naslednjim izrazom:
> Koda za čiščenje podatkov je na voljo v [`notebook.ipynb`](notebook.ipynb). Izvedli smo enake korake čiščenja kot v prejšnji lekciji in izračunali stolpec `DayOfYear` z naslednjim izrazom:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Zdaj, ko razumete matematiko za linearno regresijo, ustvarimo regresijski model, da preverimo, ali lahko napovemo, kateri paket buč bo imel najboljše cene. Nekdo, ki kupuje buče za praznični bučni nasad, bi morda želel te informacije, da bi optimiziral svoje nakupe paketov buč za nasad.
Zdaj, ko imate razumevanje matematike za linearno regresijo, ustvarimo regresijski model, da vidimo, ali lahko napovemo, katera embalaža buč bo imela najboljše cene. Nekdo, ki kupuje buče za praznični bučni vrt, bi želel te informacije, da bi lahko optimiziral svoj nakup.
## Iskanje korelacije
[![ML za začetnike - Iskanje korelacije: Ključ do linearne regresije](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML za začetnike - Iskanje korelacije: Ključ do linearne regresije")
[![ML za začetnike - Iskanje korelacije: ključ linearne regresije](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML za začetnike - Iskanje korelacije: ključ linearne regresije")
> 🎥 Kliknite zgornjo sliko za kratek video pregled korelacije.
> 🎥 Kliknite na sliko zgoraj za kratek video pregled korelacije.
Iz prejšnje lekcije ste verjetno videli, da povprečna cena za različne mesece izgleda takole:
Iz prejšnje lekcije ste verjetno videli, da povprečna cena v različnih mesecih izgleda tako:
<img alt="Povprečna cena po mesecih" src="../../../../translated_images/sl/barchart.a833ea9194346d76.webp" width="50%"/>
To nakazuje, da bi morala obstajati neka korelacija, in lahko poskusimo trenirati linearni regresijski model za napovedovanje razmerja med `Mesec` in `Cena` ali med `DanVLeto` in `Cena`. Tukaj je raztrosni diagram, ki prikazuje slednje razmerje:
To kaže, da mora obstajati neka korelacija in lahko poskusimo usposobiti linearni regresijski model za napovedovanje odnosa med `Month` in `Price` ali med `DayOfYear` in `Price`. Tukaj je razpršeni graf, ki prikazuje slednji odnos:
<img alt="Raztrosni diagram cene glede na dan v letu" src="../../../../translated_images/sl/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Razpršeni graf Price proti Day of Year" src="../../../../translated_images/sl/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Preverimo, ali obstaja korelacija, z uporabo funkcije `corr`:
Poglejmo, ali obstaja korelacija z uporabo funkcije `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Zdi se, da je korelacija precej majhna, -0,15 za `Mesec` in -0,17 za `DanVLeto`, vendar bi lahko obstajalo drugo pomembno razmerje. Zdi se, da obstajajo različni grozdi cen, ki ustrezajo različnim vrstam buč. Da potrdimo to hipotezo, narišimo vsako kategorijo buč z drugo barvo. S posredovanjem parametra `ax` funkciji za risanje raztrosa lahko narišemo vse točke na isti grafikon:
Zdi se, da je korelacija precej majhna, -0,15 glede na `Month` in -0,17 glede na `DayOfMonth`, lahko pa obstaja druga pomembna povezava. Zdi se, da so različni grozdi cen, ki ustrezajo različnim sortam buč. Da potrdimo to hipotezo, narišimo vsako kategorijo buč z drugo barvo. Tako da podamo parameter `ax` funkciji `scatter` lahko vse točke narišemo v isti graf:
```python
ax=None
@ -128,42 +140,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Raztrosni diagram cene glede na dan v letu" src="../../../../translated_images/sl/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Razpršeni graf Price proti Day of Year s barvami" src="../../../../translated_images/sl/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Naša raziskava nakazuje, da ima vrsta buče večji vpliv na skupno ceno kot dejanski datum prodaje. To lahko vidimo z barvnim grafom:
Naše raziskave nakazujejo, da ima sorta večji vpliv na skupno ceno kot dejanski datum prodaje. To lahko vidimo z stolpičnim grafom:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Barvni graf cene glede na vrsto" src="../../../../translated_images/sl/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Stolpični graf cen glede na sorto buče" src="../../../../translated_images/sl/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Osredotočimo se za trenutek samo na eno vrsto buč, 'pie type', in preverimo, kakšen vpliv ima datum na ceno:
Za zdaj se osredotočimo samo na eno sorto buč, 'pie type', in poglejmo, kakšen vpliv ima datum na ceno:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Raztrosni diagram cene glede na dan v letu" src="../../../../translated_images/sl/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Razpršeni graf Price proti Day of Year za sorto pie type" src="../../../../translated_images/sl/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Če zdaj izračunamo korelacijo med `Cena` in `DanVLeto` z uporabo funkcije `corr`, bomo dobili nekaj okoli `-0,27` - kar pomeni, da ima smisel trenirati napovedni model.
Če zdaj izračunamo korelacijo med `Price` in `DayOfYear` z uporabo funkcije `corr`, bomo dobili nekaj takega kot `-0.27` kar pomeni, da smiselno trenirati napovedni model.
> Pred treningom linearnega regresijskega modela je pomembno zagotoviti, da so naši podatki čisti. Linearna regresija ne deluje dobro z manjkajočimi vrednostmi, zato je smiselno odstraniti vse prazne celice:
> Preden usposobimo linearen regresijski model, je pomembno zagotoviti, da so naši podatki čisti. Linearna regresija ne deluje dobro z manjkajočimi vrednostmi, zato je smiselno odstraniti vse prazne celice:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Drugi pristop bi bil zapolniti te prazne vrednosti s povprečnimi vrednostmi iz ustreznega stolpca.
Druga možnost je, da te prazne vrednosti zapolnimo s povprečnimi vrednostmi iz ustreznega stolpca.
## Enostavna linearna regresija
[![ML za začetnike - Linearna in polinomska regresija z uporabo Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML za začetnike - Linearna in polinomska regresija z uporabo Scikit-learn")
> 🎥 Kliknite zgornjo sliko za kratek video pregled linearne in polinomske regresije.
> 🎥 Kliknite na sliko zgoraj za kratek video pregled linearne in polinomske regresije.
Za treniranje našega linearnega regresijskega modela bomo uporabili knjižnico **Scikit-learn**.
Za usposabljanje našega modela linearne regresije bomo uporabili knjižnico **Scikit-learn**.
```python
from sklearn.linear_model import LinearRegression
@ -171,31 +183,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Začnemo z ločevanjem vhodnih vrednosti (značilnosti) in pričakovanega izhoda (oznake) v ločena numpy polja:
Začnemo tako, da ločimo vhodne vrednosti (značilnosti) in pričakovani izhod (oznako) v ločene numpy polja:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Upoštevajte, da smo morali izvesti `reshape` na vhodnih podatkih, da jih Linear Regression paket pravilno razume. Linearna regresija pričakuje 2D polje kot vhod, kjer vsaka vrstica polja ustreza vektorju vhodnih značilnosti. V našem primeru, ker imamo samo en vhod, potrebujemo polje oblike N×1, kjer je N velikost nabora podatkov.
> Upoštevajte, da smo morali na vhodne podatke uporabiti `reshape`, da jih je paket LinearRegression pravilno razumel. Linearna regresija namreč pričakuje vhod v obliki 2D polja, kjer vsak vrstični vektor predstavlja vektor vhodnih značilnosti. V našem primeru, ker imamo samo en vhod, potrebujemo polje oblike N&times;1, kjer je N velikost nabora podatkov.
Nato moramo podatke razdeliti na učni in testni nabor, da lahko po treningu preverimo naš model:
Nato moramo podatke razdeliti na učni in testni sklop, da lahko model preverimo po usposabljanju:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Na koncu trening dejanskega linearnega regresijskega modela zahteva le dve vrstici kode. Definiramo objekt `LinearRegression` in ga prilagodimo našim podatkom z uporabo metode `fit`:
Na koncu usposabljanje modela linearne regresije traja le dve vrstici kode. Definiramo objekt `LinearRegression` in ga prilagodimo našim podatkom z metodo `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Objekt `LinearRegression` po prilagoditvi vsebuje vse koeficiente regresije, do katerih lahko dostopamo z lastnostjo `.coef_`. V našem primeru je le en koeficient, ki bi moral biti okoli `-0,017`. To pomeni, da se cene zdi, da rahlo padajo s časom, vendar ne preveč, približno 2 centa na dan. Prav tako lahko dostopamo do presečišča regresije z osjo Y z uporabo `lin_reg.intercept_` - v našem primeru bo to okoli `21`, kar kaže na ceno na začetku leta.
Objekt `LinearRegression` po prilagoditvi (`fit`) vsebuje vse koeficiente regresije, do katerih lahko dostopamo z lastnostjo `.coef_`. V našem primeru je samo en koeficient, ki bi moral biti okoli `-0.017`. To pomeni, da se cene zdi, da nekoliko padajo s časom, vendar ne preveč, približno 2 centa na dan. Do presečišča regresije z Y-osjo lahko dostopamo tudi z `lin_reg.intercept_` - v našem primeru bo okoli `21`, kar daje informacijo o ceni na začetku leta.
Da vidimo, kako natančen je naš model, lahko napovemo cene na testnem naboru podatkov in nato izmerimo, kako blizu so naše napovedi pričakovanim vrednostim. To lahko storimo z uporabo metrike srednje kvadratne napake (MSE), ki je povprečje vseh kvadratnih razlik med pričakovano in napovedano vrednostjo.
Za preverjanje točnosti našega modela lahko napovemo cene na testnem naboru podatkov in nato merimo, kako blizu so naše napovedi pričakovanim vrednostim. To lahko storimo z merjenjem srednje kvadratne napake (MSE), kar je srednja vrednost vseh kvadratov razlik med pričakovano in napovedano vrednostjo.
```python
pred = lin_reg.predict(X_test)
@ -203,36 +215,37 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
Naša napaka se zdi okoli 2 točk, kar je približno 17 %. Ni ravno dobro. Drug kazalnik kakovosti modela je **koeficient determinacije**, ki ga lahko pridobimo na naslednji način:
Naša napaka je okoli 2 točki, kar je ~17 %. Ni ravno dobro. Drug indikator kakovosti modela je **koeficient determinacije**, ki ga lahko pridobimo na naslednji način:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Če je vrednost 0, to pomeni, da model ne upošteva vhodnih podatkov in deluje kot *najslabši linearni napovedovalec*, kar je preprosto povprečna vrednost rezultata. Vrednost 1 pomeni, da lahko popolnoma napovemo vse pričakovane izhode. V našem primeru je koeficient okoli 0,06, kar je precej nizko.
Če je vrednost 0, pomeni, da model ne upošteva vhodnih podatkov in deluje kot *najslabši linearni napovedovalec*, ki je preprosto povprečna vrednost rezultata. Vrednost 1 pomeni, da lahko popolnoma napovemo vse pričakovane izide. V našem primeru je koeficient okoli 0.06, kar je precej nizko.
Prav tako lahko narišemo testne podatke skupaj z regresijsko premico, da bolje vidimo, kako regresija deluje v našem primeru:
Testne podatke lahko tudi narišemo skupaj z regresijsko premico, da bolje vidimo, kako regresija deluje v našem primeru:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
<img alt="Linearna regresija" src="../../../../translated_images/sl/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/sl/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polinomska regresija
Druga vrsta linearne regresije je polinomska regresija. Čeprav včasih obstaja linearna povezava med spremenljivkami večja kot je buča po prostornini, višja je cena včasih teh povezav ni mogoče prikazati kot ravnino ali premico.
Druga vrsta linearne regresije je polinomska regresija. Čeprav obstaja včasih linearna povezava med spremenljivkami - večja kot je buča po prostornini, višja je cena - včasih teh povezav ni mogoče prikazati kot ravnino ali ravno črto.
✅ Tukaj so [nekateri dodatni primeri](https://online.stat.psu.edu/stat501/lesson/9/9.8) podatkov, ki bi lahko uporabili polinomsko regresijo.
✅ Tu je [še nekaj primerov](https://online.stat.psu.edu/stat501/lesson/9/9.8) podatkov, kjer bi lahko uporabili polinomsko regresijo.
Poglejte še enkrat razmerje med datumom in ceno. Ali se zdi, da bi moral biti ta raztros nujno analiziran s premico? Ali cene ne morejo nihati? V tem primeru lahko poskusite polinomsko regresijo.
Oglejmo si še enkrat odnos med Datumom in Ceno. Ali ta diagram razpršitve nujno kaže, da se mora analizirati z ravno črto? Ali cene ne morejo nihati? V tem primeru lahko poskusimo polinomsko regresijo.
✅ Polinomi so matematični izrazi, ki lahko vsebujejo eno ali več spremenljivk in koeficientov.
✅ Polinomi so matematični izrazi, ki so lahko sestavljeni iz ene ali več spremenljivk in koeficientov.
Polinomska regresija ustvari ukrivljeno premico, ki bolje ustreza nelinearnim podatkom. V našem primeru, če v vhodne podatke vključimo kvadratno spremenljivko `DayOfYear`, bi morali biti sposobni prilagoditi naše podatke s parabolično krivuljo, ki bo imela minimum na določenem mestu v letu.
Polinomska regresija ustvari ukrivljeno črto, da bolje ustreza nelinearnim podatkom. V našem primeru, če vključimo kvadratno variablo `DayOfYear`, bi morali podatke prilagoditi paraboli, ki bo imela minimum v določenem trenutku v letu.
Scikit-learn vključuje uporabno [API za pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), ki združuje različne korake obdelave podatkov. **Pipeline** je veriga **ocenjevalcev**. V našem primeru bomo ustvarili pipeline, ki najprej doda polinomske značilnosti našemu modelu, nato pa izvede regresijo:
Scikit-learn vključuje uporabno [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) za združevanje različnih korakov obdelave podatkov skupaj. **Pipeline** je veriga **ocenjevalcev**. V našem primeru bomo ustvarili pipeline, ki najprej doda polinomske značilnosti modelu, nato pa izvede učenje regresije:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -243,36 +256,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
Uporaba `PolynomialFeatures(2)` pomeni, da bomo vključili vse polinome druge stopnje iz vhodnih podatkov. V našem primeru to pomeni le `DayOfYear`<sup>2</sup>, vendar ob dveh vhodnih spremenljivkah X in Y to doda X<sup>2</sup>, XY in Y<sup>2</sup>. Uporabimo lahko tudi polinome višjih stopenj, če želimo.
Uporaba `PolynomialFeatures(2)` pomeni, da bomo vključili vse polinome drugega reda iz vhodnih podatkov. V našem primeru to pomeni samo `DayOfYear`<sup>2</sup>, vendar če imamo dve vhodni spremenljivki X in Y, bo to dodalo X<sup>2</sup>, XY in Y<sup>2</sup>. Uporabimo lahko tudi poljuben višji red polinomov, če želimo.
Pipeline lahko uporabljamo na enak način kot originalni objekt `LinearRegression`, tj. lahko uporabimo `fit` za prilagoditev modela in nato `predict` za pridobitev rezultatov napovedi. Tukaj je graf, ki prikazuje testne podatke in aproksimacijsko krivuljo:
Pipepline lahko uporabljamo na enak način kot izvirni objekt `LinearRegression`, torej lahko na pipeline uporabimo `fit`, nato pa uporabimo `predict` za pridobitev rezultatov napovedi. Tu je graf, ki prikazuje testne podatke in približno krivuljo:
<img alt="Polinomska regresija" src="../../../../translated_images/sl/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/sl/poly-results.ee587348f0f1f60b.webp" width="50%" />
S polinomsko regresijo lahko dosežemo nekoliko nižji MSE in višji koeficient determinacije, vendar ne bistveno. Upoštevati moramo tudi druge značilnosti!
Z uporabo polinomske regresije lahko dosežemo nekoliko nižjo vrednost MSE in višji koeficient determinacije, vendar ne bistveno. Potrebno je upoštevati tudi druge značilnosti!
> Opazite, da so najnižje cene buč opazovane nekje okoli noči čarovnic. Kako to razložite?
> Vidite, da so minimalne cene buč opazne nekje okoli noči čarovnic. Kako bi to razložili?
🎃 Čestitke, pravkar ste ustvarili model, ki lahko pomaga napovedati ceno buč za pite. Verjetno lahko ponovite isti postopek za vse vrste buč, vendar bi bilo to zamudno. Zdaj se naučimo, kako upoštevati različne vrste buč v našem modelu!
🎃 Čestitamo, ustvarili ste model, ki lahko napove ceno buč za pito. Verjetno lahko isto proceduro ponovite za vse vrste buč, ampak to bi bilo zamudno. Naučimo se zdaj, kako upoštevati vrsto buče v našem modelu!
## Kategorijske značilnosti
## Kategorikalne značilnosti
V idealnem svetu bi želeli napovedati cene za različne vrste buč z istim modelom. Vendar je stolpec `Variety` nekoliko drugačen od stolpcev, kot je `Month`, saj vsebuje nenumerične vrednosti. Takšni stolpci se imenujejo **kategorijski**.
V idealnem svetu želimo napovedovati cene za različne vrste buč z uporabo istega modela. Vendar pa je stolpec `Variety` nekoliko drugačen od stolpcev, kot je `Month`, ker vsebuje nenumerične vrednosti. Takim stolpcem pravimo **kategorikalni**.
[![ML za začetnike - Napovedovanje kategorijskih značilnosti z linearno regresijo](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML za začetnike - Napovedovanje kategorijskih značilnosti z linearno regresijo")
[![ML za začetnike - Napovedi kategorialnih značilnosti z linearno regresijo](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML za začetnike - Napovedi kategorialnih značilnosti z linearno regresijo")
> 🎥 Kliknite zgornjo sliko za kratek video pregled uporabe kategorijskih značilnosti.
> 🎥 Kliknite sliko zgoraj za kratek video pregled uporabe kategorikalnih značilnosti.
Tukaj lahko vidite, kako povprečna cena odvisna od vrste buče:
Tukaj si lahko ogledate, kako povprečna cena zavisi od vrste:
<img alt="Povprečna cena po vrsti" src="../../../../translated_images/sl/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/sl/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Da upoštevamo vrsto buče, jo moramo najprej pretvoriti v numerično obliko, ali jo **kodirati**. Obstaja več načinov, kako to storiti:
Za upoštevanje vrste moramo najprej pretvoriti podatke v številčno obliko, oziroma jih **kodirati**. Obstaja več načinov za to:
* Preprosto **numerično kodiranje** bo ustvarilo tabelo različnih vrst in nato zamenjalo ime vrste z indeksom v tej tabeli. To ni najboljša ideja za linearno regresijo, saj linearna regresija upošteva dejansko numerično vrednost indeksa in jo doda rezultatu, pomnoženo z nekim koeficientom. V našem primeru je razmerje med številko indeksa in ceno očitno nelinearno, tudi če poskrbimo, da so indeksi urejeni na določen način.
* **One-hot kodiranje** bo zamenjalo stolpec `Variety` s 4 različnimi stolpci, enim za vsako vrsto. Vsak stolpec bo vseboval `1`, če je ustrezna vrstica določene vrste, in `0` sicer. To pomeni, da bo v linearni regresiji štiri koeficiente, po enega za vsako vrsto buče, ki bodo odgovorni za "začetno ceno" (ali bolje "dodatno ceno") za to določeno vrsto.
* Preprosta **numerična koda** bo sestavila tabelo različnih vrst, nato pa zamenjala ime vrstice z indeksom v tej tabeli. To ni najboljša ideja za linearno regresijo, ker linearna regresija vzame dejansko numerično vrednost indeksa in jo doda rezultatu, pomnoženo z nekim koeficientom. V našem primeru je odnos med številom indeksa in ceno očitno nelinearen, tudi če zagotovimo, da so indeksi urejeni na določen način.
* **One-hot kodiranje** bo stolpec `Variety` nadomestilo s 4 različnimi stolpci, po enim za vsako vrsto. Vsak stolpec bo vseboval `1`, če je ustrezni vrstici določena vrsta, in `0` sicer. To pomeni, da bo v linearni regresiji štiri koeficiente, po enega za vsako vrsto buče, ki bo odgovoren za "začetno ceno" (ali bolj "dodatno ceno") za določeno vrsto.
Spodnja koda prikazuje, kako lahko izvedemo one-hot kodiranje vrste:
Spodnja koda prikazuje, kako lahko one-hot kodiramo vrsto:
```python
pd.get_dummies(new_pumpkins['Variety'])
@ -289,14 +302,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
Za treniranje linearne regresije z uporabo one-hot kodirane vrste kot vhodnih podatkov moramo le pravilno inicializirati podatke `X` in `y`:
Za učenje linearne regresije z one-hot kodirano vrsto kot vhodom moramo samo pravilno pripraviti podatka `X` in `y`:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
Preostala koda je enaka kot tista, ki smo jo uporabili zgoraj za treniranje linearne regresije. Če jo preizkusite, boste videli, da je povprečna kvadratna napaka približno enaka, vendar dobimo veliko višji koeficient determinacije (~77 %). Za še bolj natančne napovedi lahko upoštevamo več kategorijskih značilnosti, pa tudi numerične značilnosti, kot sta `Month` ali `DayOfYear`. Za pridobitev ene velike matrike značilnosti lahko uporabimo `join`:
Preostanek kode je enak tisti, ki smo jo uporabili prej za učenje linearne regresije. Če to poskusite, boste videli, da je srednja kvadratna napaka približno enaka, vendar bomo dobili precej višji koeficient determinacije (~77 %). Za še natančnejše napovedi lahko upoštevamo več kategorikalnih značilnosti ter tudi numerične, kot sta `Month` ali `DayOfYear`. Za združitev vseh značilnosti v eno veliko tabelo lahko uporabimo `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -306,31 +319,31 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Tukaj upoštevamo tudi `City` in vrsto `Package`, kar nam daje MSE 2,84 (10 %) in determinacijo 0,94!
Tukaj upoštevamo tudi `City` in tip `Package`, kar nam da MSE 2.84 (10 %) in koeficient determinacije 0.94!
## Vse skupaj
Za najboljši model lahko uporabimo kombinirane (one-hot kodirane kategorijske + numerične) podatke iz zgornjega primera skupaj s polinomsko regresijo. Tukaj je celotna koda za vašo uporabo:
Za najboljši model lahko uporabimo združene (one-hot kodirane kategorikalne in numerične) podatke iz zgornjega primera skupaj s polinomsko regresijo. Tukaj je celotna koda za vašo udobje:
```python
# set up training data
# nastavi učne podatke
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# naredi razdelitev na učno in testno množico
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# nastavi in izuči cevovod
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# napovej rezultate za testne podatke
pred = pipeline.predict(X_test)
# calculate MSE and determination
# izračunaj MSE in koeficient determinacije
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
@ -338,34 +351,36 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
To bi nam moralo dati najboljši koeficient determinacije skoraj 97 % in MSE=2,23 (~8 % napake pri napovedi).
To nam mora dati najboljši koeficient determinacije skoraj 97 % in MSE=2.23 (~8 % napake napovedi).
| Model | MSE | Determinacija |
|-------|-----|---------------|
| `DayOfYear` Linear | 2,77 (17,2 %) | 0,07 |
| `DayOfYear` Polinomski | 2,73 (17,0 %) | 0,08 |
| `Variety` Linear | 5,24 (19,7 %) | 0,77 |
| Vse značilnosti Linear | 2,84 (10,5 %) | 0,94 |
| Vse značilnosti Polinomski | 2,23 (8,25 %) | 0,97 |
| Model | MSE | Koeficient determinacije |
|-------|-----|--------------------------|
| Linearni `DayOfYear` | 2.77 (17,2 %) | 0.07 |
| Polinomski `DayOfYear` | 2.73 (17,0 %) | 0.08 |
| Linearni `Variety` | 5.24 (19,7 %) | 0.77 |
| Linearni - vse značilnosti | 2.84 (10,5 %) | 0.94 |
| Polinomski - vse značilnosti | 2.23 (8,25 %) | 0.97 |
🏆 Odlično! Ustvarili ste štiri regresijske modele v eni lekciji in izboljšali kakovost modela na 97 %. V zadnjem delu o regresiji se boste naučili o logistični regresiji za določanje kategorij.
🏆 Odlično! V eni lekciji ste ustvarili štiri regresijske modele in izboljšali kakovost modela na 97 %. V zadnjem delu o regresiji se boste naučili o logistični regresiji za določanje kategorij.
---
## 🚀Izziv
## 🚀Izazov
Preizkusite več različnih spremenljivk v tej beležnici, da vidite, kako korelacija ustreza natančnosti modela.
Preizkusite več različnih spremenljivk v tej zvezki, da vidite, kako korelacija ustreza natančnosti modela.
## [Kvizi po predavanju](https://ff-quizzes.netlify.app/en/ml/)
## [Kviz po predavanju](https://ff-quizzes.netlify.app/en/ml/)
## Pregled in samostojno učenje
V tej lekciji smo se naučili o linearni regresiji. Obstajajo tudi druge pomembne vrste regresije. Preberite o tehnikah Stepwise, Ridge, Lasso in Elasticnet. Dober tečaj za nadaljnje učenje je [Stanfordov tečaj statističnega učenja](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
V tej lekciji smo se naučili o linearni regresiji. Obstajajo še druge pomembne vrste regresije. Preberite o tehnikah Stepwise, Ridge, Lasso in Elasticnet. Dober tečaj za nadaljnje učenje je [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Naloga
## Naloga
[Ustvarite model](assignment.md)
[Ustvari model](assignment.md)
---
**Omejitev odgovornosti**:
Ta dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Omejitev odgovornosti**:
Ta dokument je bil preveden z uporabo AI prevajalske storitve [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da avtomatizirani prevodi lahko vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Nismo odgovorni za kakršnekoli nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# Razvrščevalniki kuhinj 2
# Razvrščevalci kuhinj 2
V tej drugi lekciji o razvrščanju boste raziskali več načinov za razvrščanje numeričnih podatkov. Prav tako boste spoznali posledice izbire enega razvrščevalnika namesto drugega.
V tej drugi lekciji o razvrščanju boste raziskali več načinov razvrščanja številskih podatkov. Naučili se boste tudi posledic izbire enega razvrščevalca namesto drugega.
## [Predhodni kviz](https://ff-quizzes.netlify.app/en/ml/)
## [Kviz pred predavanjem](https://ff-quizzes.netlify.app/en/ml/)
### Predpogoji
### Predpogoj
Predvidevamo, da ste zaključili prejšnje lekcije in imate očiščen nabor podatkov v svoji mapi `data`, imenovan _cleaned_cuisines.csv_, ki se nahaja v korenski mapi tega 4-lekcijskega sklopa.
Predvidevamo, da ste opravili prejšnje lekcije in imate v vaši mapi `data` očiščeno podatkovno zbirko imenovano _cleaned_cuisines.csv_ v korenu te 4-lekcijske mape.
### Priprava
Vaša datoteka _notebook.ipynb_ je bila naložena z očiščenim naborom podatkov, ki je razdeljen na podatkovna okvira X in y, pripravljena za proces gradnje modela.
Naložili smo vašo datoteko _notebook.ipynb_ z očiščeno podatkovno zbirko in jo razdelili v podatkovni okvir X in y, pripravljena za proces gradnje modela.
## Zemljevid razvrščanja
Prej ste se naučili o različnih možnostih razvrščanja podatkov z uporabo Microsoftovega priročnika. Scikit-learn ponuja podoben, vendar bolj podroben priročnik, ki vam lahko dodatno pomaga zožiti izbiro ocenjevalnikov (drugi izraz za razvrščevalnike):
Prej ste spoznali različne možnosti, ki jih imate pri razvrščanju podatkov z uporabo Microsoftovega prevarantskega lista. Scikit-learn ponuja podoben, a bolj podroben prevarantski list, ki lahko še dodatno pomaga zožiti vaše ocenovalce (drug izraz za razvrščevalce):
![ML Zemljevid iz Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Nasvet: [obiskujte ta zemljevid na spletu](https://scikit-learn.org/stable/tutorial/machine_learning_map/) in kliknite po poti za branje dokumentacije.
![ML Map from Scikit-learn](../../../../translated_images/sl/map.e963a6a51349425a.webp)
> Namig: [obiščite ta zemljevid na spletu](https://scikit-learn.org/stable/tutorial/machine_learning_map/) in klikajte po poti, da preberete dokumentacijo.
### Načrt
Ta zemljevid je zelo koristen, ko imate jasno predstavo o svojih podatkih, saj lahko 'hodite' po njegovih poteh do odločitve:
Ta zemljevid je zelo koristen, ko imate jasen vpogled v svoje podatke, saj lahko hodite po njegovih poteh do odločitve:
- Imamo >50 vzorcev
- Želimo napovedati kategorijo
- Imamo označene podatke
- Imamo manj kot 100K vzorcev
- Imamo manj kot 100.000 vzorcev
- ✨ Lahko izberemo Linear SVC
- Če to ne deluje, ker imamo numerične podatke
- Lahko poskusimo ✨ KNeighbors Classifier
- Če to ne deluje, poskusimo ✨ SVC in ✨ Ensemble Classifiers
- Če to ne deluje, ker imamo številske podatke
- Lahko poskusimo s ✨ KNeighbors Classifier
- Če tudi to ne deluje, poskusimo ✨ SVC in ✨ Ensemble Classifiers
To je zelo koristna pot za sledenje.
To je zelo uporabna slediti.
## Naloga - razdelite podatke
## Vaja - razdelite podatke
Sledimo tej poti in začnemo z uvozom nekaterih knjižnic za uporabo.
Sledi tej poti, začnemo z uvozom nekaterih knjižnic, ki jih bomo uporabili.
1. Uvozite potrebne knjižnice:
1. Uvoz potrebnih knjižnic:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@ Sledimo tej poti in začnemo z uvozom nekaterih knjižnic za uporabo.
import numpy as np
```
1. Razdelite svoje podatke na trening in test:
1. Razdelite svoje trening in testne podatke:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linearni SVC razvrščevalnik
## Linearni SVC razvrščevalec
Support-Vector clustering (SVC) je del družine tehnik strojnega učenja Support-Vector Machines (več o tem spodaj). Pri tej metodi lahko izberete 'jedro' za odločanje, kako razvrstiti oznake. Parameter 'C' se nanaša na 'regularizacijo', ki uravnava vpliv parametrov. Jedro je lahko eno izmed [več možnosti](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); tukaj ga nastavimo na 'linearno', da zagotovimo uporabo linearnega SVC. Privzeta vrednost za verjetnost je 'false'; tukaj jo nastavimo na 'true', da pridobimo ocene verjetnosti. Naključno stanje nastavimo na '0', da premešamo podatke za pridobitev verjetnosti.
Support-Vector clustering (SVC) je del družine metod strojnega učenja Support-Vector machines (SVM) (o njih več spodaj). Pri tej metodi lahko izberete 'jedro' (kernel), da določite, kako zgrupirate oznake. Parameter 'C' se nanaša na 'regularizacijo', ki uravnava vpliv parametrov. Jedro je lahko eno izmed [več](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); tukaj ga nastavimo na 'linear', da zagotovimo uporabo linearnega SVC. Privzeto je Probability nastavljeno na 'false'; tukaj smo ga nastavili na 'true', da zberemo ocene verjetnosti. Za naključno stanje smo nastavili '0', da premešamo podatke za verjetnosti.
### Naloga - uporabite linearni SVC
### Vaja - uporabite linearen SVC
Začnite z ustvarjanjem matrike razvrščevalnikov. Postopoma boste dodajali tej matriki, ko bomo testirali.
Začnite z ustvarjanjem tabele razvrščevalcev. Postopoma boste dodajali elemente v to tabelo, ko boste testirali.
1. Začnite z Linearnim SVC:
1. Začnite z Linear SVC:
```python
C = 10
# Create different classifiers.
# Ustvari različne klasifikatorje.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Natrenirajte svoj model z Linearnim SVC in natisnite poročilo:
2. Naučite svoj model z uporabo Linear SVC in izpišite poročilo:
```python
n_classifiers = len(classifiers)
@ -105,21 +105,21 @@ Začnite z ustvarjanjem matrike razvrščevalnikov. Postopoma boste dodajali tej
weighted avg 0.79 0.79 0.79 1199
```
## K-Neighbors razvrščevalnik
## K-najbližjih sosedov razvrščevalec
K-Neighbors je del družine metod strojnega učenja "neighbors", ki se lahko uporablja za nadzorovano in nenadzorovano učenje. Pri tej metodi se ustvari vnaprej določeno število točk, okoli katerih se zbirajo podatki, da se lahko za podatke napovejo posplošene oznake.
K-najbližjih sosedov spada v družino metod strojnega učenja "neighbors", ki se lahko uporabljajo tako za nadzorovano kot nenadzorovano učenje. Pri tej metodi se ustvari preddefinirano število točk in podatki se zbirajo okoli teh točk, tako da je mogoče napovedati posplošene oznake za podatke.
### Naloga - uporabite K-Neighbors razvrščevalnik
### Vaja - uporabite K-najbližjih sosedov
Prejšnji razvrščevalnik je bil dober in je dobro deloval s podatki, vendar morda lahko dosežemo boljšo natančnost. Poskusite K-Neighbors razvrščevalnik.
Prejšnji razvrščevalec je bil dober in je deloval dobro s podatki, vendar morda lahko dosežemo boljšo natančnost. Poskusite s K-najbližjih sosedov.
1. Dodajte vrstico v svojo matriko razvrščevalnikov (dodajte vejico za element Linear SVC):
1. Dodajte vrstico v svojo tabelo razvrščevalcev (dodajte vejico za Linear SVC elementom):
```python
'KNN classifier': KNeighborsClassifier(C),
```
Rezultat je nekoliko slabši:
Rezultat je malo slabši:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ Prejšnji razvrščevalnik je bil dober in je dobro deloval s podatki, vendar mo
weighted avg 0.76 0.74 0.74 1199
```
Preberite več o [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
Spoznajte [K-najbližjih sosedov](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Support Vector razvrščevalnik
## Support Vector razvrščevalec
Support-Vector razvrščevalniki so del družine metod strojnega učenja [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine), ki se uporabljajo za naloge razvrščanja in regresije. SVM "preslika primere treninga v točke v prostoru", da maksimizira razdaljo med dvema kategorijama. Naknadni podatki so preslikani v ta prostor, da se lahko napove njihova kategorija.
Support-Vector razvrščevalci so del družine [Support-Vector Machines](https://wikipedia.org/wiki/Support-vector_machine) metod strojnega učenja, ki se uporabljajo za razvrščanje in regresijo. SVM “preslika trening primere v točke v prostoru”, da maksimira razdaljo med dvema kategorijama. Kasnejši podatki so preslikani v ta prostor, da je mogoče napovedati njihovo kategorijo.
### Naloga - uporabite Support Vector razvrščevalnik
### Vaja - uporabite Support Vector razvrščevalec
Poskusimo doseči nekoliko boljšo natančnost s Support Vector razvrščevalnikom.
Poskusimo doseči malo boljšo natančnost s Support Vector razvrščevalcem.
1. Dodajte vejico za element K-Neighbors in nato dodajte to vrstico:
1. Dodajte vejico za K-najbližjih sosedov elementom in nato dodajte to vrstico:
```python
'SVC': SVC(),
```
Rezultat je zelo dober!
Rezultat je precej dober!
```output
Accuracy (train) for SVC: 83.2%
@ -169,11 +169,11 @@ Poskusimo doseči nekoliko boljšo natančnost s Support Vector razvrščevalnik
weighted avg 0.84 0.83 0.83 1199
```
Preberite več o [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
Spoznajte [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ensemble razvrščevalniki
## Ensemble razvrščevalci
Sledimo poti do samega konca, čeprav je bil prejšnji test zelo dober. Poskusimo nekaj 'Ensemble razvrščevalnikov', natančneje Random Forest in AdaBoost:
Pojdimo do konca poti, čeprav je bil prejšnji test precej dober. Poskusimo nekaj 'Ensemble razvrščevalcev', natančneje Random Forest in AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
Preberite več o [Ensemble razvrščevalnikih](https://scikit-learn.org/stable/modules/ensemble.html)
Spoznajte [Ensemble razvrščevalce](https://scikit-learn.org/stable/modules/ensemble.html)
Ta metoda strojnega učenja "združuje napovedi več osnovnih ocenjevalnikov", da izboljša kakovost modela. V našem primeru smo uporabili Random Trees in AdaBoost.
Ta metoda strojnega učenja "združuje napovedi več osnovnih ocenjevalcev", da izboljša kakovost modela. V našem primeru smo uporabili Random Trees in AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), metoda povprečenja, gradi 'gozd' 'odločilnih dreves', ki so prežeta z naključnostjo, da se izogne prekomernemu prileganju. Parameter n_estimators je nastavljen na število dreves.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), metoda povprečenja, gradi 'gosto' drevo 'odločilnih dreves' vpeto z naključnostjo, da prepreči prekomerno prileganje (overfitting). Parameter n_estimators je nastavljen na število dreves.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) prilagodi razvrščevalnik naboru podatkov in nato prilagodi kopije tega razvrščevalnika istemu naboru podatkov. Osredotoča se na uteži nepravilno razvrščenih elementov in prilagodi prileganje za naslednji razvrščevalnik, da jih popravi.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) prilagodi razvrščevalec na podatkovno množico in nato prilagodi kopije tega razvrščevalca na isti podatkovni množici. Osredotoča se na uteži nepravilno razvrščenih elementov in prilagaja prileganje za naslednjega razvrščevalca, da to popravi.
---
## 🚀Izziv
Vsaka od teh tehnik ima veliko število parametrov, ki jih lahko prilagodite. Raziskujte privzete parametre vsake metode in razmislite, kaj bi pomenilo prilagajanje teh parametrov za kakovost modela.
Vsaka od teh tehnik ima veliko parametrov, ki jih lahko spreminjate. Raziskujte privzete nastavitve vsakega in razmislite, kaj bi pomenilo prilagajanje teh parametrov za kakovost modela.
## [Zaključni kviz](https://ff-quizzes.netlify.app/en/ml/)
## [Kviz po predavanju](https://ff-quizzes.netlify.app/en/ml/)
## Pregled in samostojno učenje
V teh lekcijah je veliko žargona, zato si vzemite trenutek za pregled [tega seznama](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) uporabne terminologije!
V teh lekcijah je veliko strokovnega besedišča, zato si vzemite trenutek za pregled [tega seznama](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) uporabne terminologije!
## Naloga
## Domača naloga
[Parameter play](assignment.md)
[Igra s parametri](assignment.md)
---
**Omejitev odgovornosti**:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni prevod s strani človeka. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Zavrnitev odgovornosti**:
Ta dokument je bil preveden z uporabo AI prevajalske storitve [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatski prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za pomembne informacije priporočamo strokovni prevod s strani človeka. Za morebitna nesporazume ali napačne razlage, ki izhajajo iz uporabe tega prevoda, ne prevzemamo odgovornosti.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Ustvari Model za Klasifikacijo\n"
"# Izdelava modela za razvrščanje\n"
]
},
{
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Omejitev odgovornosti**: \nTa dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Omejitev odgovornosti**:\nTa dokument je bil preveden z uporabo storitve umetne inteligence za prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, prosimo, upoštevajte, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za pomembne informacije priporočamo strokoven človeški prevod. Za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda, ne odgovarjamo.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -152,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-06T14:42:15+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "sl"
}
},
"nbformat": 4,

@ -2,7 +2,7 @@
"cells": [
{
"source": [
"# Zgradite več klasifikacijskih modelov\n"
"# Zgradi več klasifikacijskih modelov\n"
],
"cell_type": "markdown",
"metadata": {}
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Poskusite različne klasifikatorje\n"
"# Preizkusi različne klasifikatorje\n"
]
},
{
@ -148,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -263,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Omejitev odgovornosti**: \nTa dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Opozorilo**:\nTa dokument je bil preveden z uporabo storitve za avtomatski prevod AI [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da lahko avtomatski prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvorno jeziku velja za avtoritativni vir. Za ključne informacije je priporočljiv strokovni človeški prevod. Nismo odgovorni za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -291,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-06T14:42:43+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "sl"
}
},
"nbformat": 4,

@ -1,95 +1,104 @@
[![GitHub license](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
[![GitHub licence](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
[![GitHub prispevki](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
[![GitHub težave](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
[![GitHub opazovalci](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
[![GitHub vilice](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub zvezde](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
### 🌐 Podpora za več jezikov
#### Podprto preko GitHub akcije (avtomatizirano in vedno posodobljeno)
#### Podprto preko GitHub Action (Avtomatizirano in vedno posodobljeno)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](./README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
[Arabski](../ar/README.md) | [Bengalski](../bn/README.md) | [Bolgarščina](../bg/README.md) | [Burmanski (Myanmar)](../my/README.md) | [Kitajski (poenostavljeni)](../zh-CN/README.md) | [Kitajski (tradicionalni, Hong Kong)](../zh-HK/README.md) | [Kitajski (tradicionalni, Macau)](../zh-MO/README.md) | [Kitajski (tradicionalni, Tajvan)](../zh-TW/README.md) | [Hrvaški](../hr/README.md) | [Češki](../cs/README.md) | [Danski](../da/README.md) | [Nizozemski](../nl/README.md) | [Estonščina](../et/README.md) | [Finščina](../fi/README.md) | [Francoski](../fr/README.md) | [Nemški](../de/README.md) | [Grški](../el/README.md) | [Hebrejski](../he/README.md) | [Hindski](../hi/README.md) | [Madžarski](../hu/README.md) | [Indonezijski](../id/README.md) | [Italijanski](../it/README.md) | [Japonski](../ja/README.md) | [Kannada](../kn/README.md) | [Korejski](../ko/README.md) | [Litovski](../lt/README.md) | [Malezijski](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalski](../ne/README.md) | [Nigerijski pidžin](../pcm/README.md) | [Norveški](../no/README.md) | [Perzijski (Farsi)](../fa/README.md) | [Poljski](../pl/README.md) | [Portugalski (Brazilija)](../pt-BR/README.md) | [Portugalski (Portugal)](../pt-PT/README.md) | [Pandžabski (Gurmukhi)](../pa/README.md) | [Romunski](../ro/README.md) | [Ruski](../ru/README.md) | [Srbščina (cirilica)](../sr/README.md) | [Slovaški](../sk/README.md) | [Slovenski](./README.md) | [Španski](../es/README.md) | [Svahili](../sw/README.md) | [Švedski](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamilski](../ta/README.md) | [Telugu](../te/README.md) | [Tajski](../th/README.md) | [Turški](../tr/README.md) | [Ukrajinski](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamski](../vi/README.md)
> **Raje klonirati lokalno?**
> Ta repozitorij vsebuje prevode v več kot 50 jezikov, kar znatno poveča velikost prenosa. Za kloniranje brez prevodov uporabite sparse checkout:
>
> Ta repozitorij vključuje več kot 50 jezikovnih prevodov, zaradi česar se velikost prenosa znatno poveča. Če želite klonirati brez prevodov, uporabite razdeljeni checkout:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> To vam omogoča vse, kar potrebujete za opravljanje tečaja, s precej hitrejšim prenosom.
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Tako dobite vse, kar potrebujete za dokončanje tečaja, z veliko hitrejšim prenosom.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Pridružite se naši skupnosti
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Imamo tekočo serijo Learn with AI na Discordu, več o tem in pridružitev na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. septembra 2025. Prejeli boste nasvete in trike za uporabo GitHub Copilot za podatkovno znanost.
Imamo tekočo serijo "Learn with AI" na Discordu, izvedite več in se nam pridružite na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. septembra 2025. Dobili boste nasvete in trike za uporabo GitHub Copilot za podatkovno znanost.
![Learn with AI series](../../translated_images/sl/3.9b58fd8d6c373c20.webp)
![Serija Learn with AI](../../translated_images/sl/3.9b58fd8d6c373c20.webp)
# Strojno učenje za začetnike učni načrt
# Strojno učenje za začetnike - Kurikulum
> 🌍 Potujte po svetu, ko raziskujemo strojno učenje preko svetovnih kultur 🌍
> 🌍 Potujte po svetu, ko raziskujemo Strojno učenje skozi svetovne kulture 🌍
Cloud Advocates pri Microsoftu so z veseljem pripravili 12-tedenski, 26-lekcijski učni načrt, ki govori o **strojnem učenju**. V tem učnem načrtu boste spoznali t.i. **klasično strojno učenje**, ki uporablja predvsem knjižnico Scikit-learn in se izogiba globokemu učenju, ki je zajeto v našem učnem načrtu [AI za začetnike](https://aka.ms/ai4beginners). Združite te lekcije tudi z našim [učnim načrtom za podatkovno znanost za začetnike](https://aka.ms/ds4beginners)!
Zagovorniki oblaka pri Microsoftu z veseljem ponujajo 12-tedenski, 26-lekcijski kurikulum, ki govori o **Strojnem učenju**. V tem kurikulumu boste spoznali tisto, kar se včasih imenuje **klasično strojno učenje**, ki uporablja predvsem knjižnico Scikit-learn in se izogiba globokemu učenju, ki je zajeto v našem [kurikulumu AI za začetnike](https://aka.ms/ai4beginners). Združite te lekcije tudi z našim [kurikulumom »Podatkovna znanost za začetnike«](https://aka.ms/ds4beginners)!
Potujte z nami okoli sveta, ko uporabljamo te klasične tehnike na podatkih iz različnih področij sveta. Vsaka lekcija vsebuje kvize pred in po lekciji, pisna navodila za izvedbo lekcije, rešitev, nalogo in več. Naš projektno usmerjen pouk vam omogoča učenje preko gradnje, kar je preverjen način za boljše pomnjenje novih veščin.
Potujte z nami po svetu, ko uporabljamo te klasične tehnike na podatkih iz različnih delov sveta. Vsaka lekcija vključuje kvize pred in po lekciji, pisna navodila za izvedbo lekcije, rešitev, nalogo in še več. Naša projektno usmerjena pedagogika vam omogoča učenje med gradnjo, kar je preverjen način, da nove spretnosti zares osvojite.
**✍️ Iskrena zahvala našim avtorjem** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu in Amy Boyd
**✍️ Iskreno hvala našim avtorjem** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu in Amy Boyd
**🎨 Hvala tudi našim ilustratorjem** Tomomi Imura, Dasani Madipalli in Jen Looper
**🙏 Posebna zahvala 🙏 avtorjem, recenzentom in prispevkarjem vsebin Microsoft Student Ambassador,** predvsem Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila in Snigdha Agarwal
**🙏 Posebna zahvala 🙏 našim Microsoft Student Ambassadorjem avtorjem, recenzentom in vsebinskim prispevkarjem**, zlasti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila in Snigdha Agarwal
**🤩 Dodatna hvala Microsoft Student Ambassador Eric Wanjau, Jasleen Sondhi in Vidushi Gupta za naše lekcije v R-u!**
**🤩 Dodatna hvala Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi in Vidushi Gupta za naše R lekcije!**
# Začetek
Sledite tem korakom:
1. **Razvezi repozitorij**: Kliknite gumb "Fork" v zgornjem desnem kotu te strani.
2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
1. **Razvežite repozitorij**: Kliknite na gumb "Fork" v zgornjem desnem kotu te strani.
2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [vse dodatne vire za ta tečaj najdete v naši zbirki Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [najdite vse dodatne vire za ta tečaj v naši zbirki Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Potrebujete pomoč?** Oglejte si naš [Vodnik za odpravljanje težav](TROUBLESHOOTING.md) za rešitve pogostih težav pri namestitvi, nastavitvi in izvajanju lekcij.
> 🔧 **Potrebujete pomoč?** Preverite naš [Vodnik za odpravljanje težav](TROUBLESHOOTING.md) za rešitve pogostih težav z namestitvijo, nastavitvijo in izvajanjem lekcij.
**[Študenti](https://aka.ms/student-page)**, za uporabo tega učnega načrta razvejite celoten repozitorij na svoj GitHub račun in vaje rešujte sami ali v skupini:
**[Študenti](https://aka.ms/student-page)**, za uporabo tega kurikuluma si razvejajte celoten repozitorij na svoj lasten GitHub račun in izvajajte vaje sami ali v skupini:
- Začnite s kvizom pred predavanjem.
- Preberite predavanje in dokončajte dejavnosti, ob vsakem preverjanju znanja naredite pavzo in razmislite.
- Poskušajte ustvariti projekte z razumevanjem lekcij, namesto samo z izvajanjem rešitvenih kod; te so vseeno na voljo v mapah `/solution` v vsaki lekciji, usmerjeni v projekte.
- Naredite kviz po predavanju.
- Opravite izziv.
- Izpolnite nalogo.
- Po zaključku skupine lekcij obiščite [razpravno ploščo](https://github.com/microsoft/ML-For-Beginners/discussions) in "učite se naglas" tako, da izpolnite ustrezno rubriko PAT. 'PAT' je Orodje za ocenjevanje napredka, kjer izpolnite rubriko, ki vam pomaga pri učenju. Prav tako lahko reagirate na druge PAT, da se učimo skupaj.
- Preberite predavanje in dokončajte aktivnosti, ustavljajte se in premišljujte ob vsakem preverjanju znanja.
- Poskusite ustvariti projekte z razumevanjem lekcij, namesto da samo zaženete kodo rešitve; koda rešitev pa je na voljo v mapah `/solution` v posameznih lekcijah, usmerjenih v projekt.
- Rešite kviz po predavanju.
- Izvedite izziv.
- Izvedite nalogo.
- Po končani skupini lekcij obiščite [Forum za razpravo](https://github.com/microsoft/ML-For-Beginners/discussions) in se "učite na glas" z izpolnjevanjem ustrezne PAT rubric. 'PAT' je Orodje za oceno napredka, to je rubrika, ki jo izpolnite za nadaljnje učenje. Prav tako lahko reagirate na druge PAT, da se učimo skupaj.
> Za dodatno študijo priporočamo sledenje tem [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulom in učnim potem.
> Za nadaljnje študije priporočamo spremljanje teh [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulov in učnih poti.
**Učitelji**, vključili smo nekaj [predlogov](for-teachers.md) o tem, kako uporabiti ta učni načrt.
**Učitelji**, vključili smo nekaj [predlogov](for-teachers.md), kako uporabljati ta kurikulum.
---
## Video predstavitve
## Video vodiči
Nekatere lekcije so na voljo tudi kot kratki videoposnetki. Vse te najdete v lekcijah ali na [predvajalnem seznamu ML za začetnike na Microsoft Developer YouTube kanalu](https://aka.ms/ml-beginners-videos) s klikom na spodnjo sliko.
Nekatere lekcije so na voljo kot kratki video posnetki. Vse jih lahko najdete v lekcijah ali na [predvajalniku ML for Beginners na YouTube kanalu Microsoft Developer](https://aka.ms/ml-beginners-videos) z klikom na spodnjo sliko.
[![ML for beginners banner](../../translated_images/sl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
[![ML za začetnike banner](../../translated_images/sl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## Spoznajte ekipo
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
[![Promocijski video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif avtor:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif avtorja** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Kliknite zgornjo sliko za video o projektu in ljudeh, ki so ga ustvarili!
@ -97,86 +106,86 @@ Nekatere lekcije so na voljo tudi kot kratki videoposnetki. Vse te najdete v lek
## Pedagogika
Pri oblikovanju tega učnega načrta smo izbrali dva pedagoška temeljna načela: zagotoviti, da je praktičen in **projektno usmerjen** ter da vključuje **pogoste kvize**. Poleg tega ima ta učni načrt skupno **temo** za boljšo povezanost.
Izbrali smo dva pedagoška načela pri gradnji tega kurikuluma: zagotoviti, da je ročno, **projektno usmerjen** in da vključuje **pogoste kvize**. Poleg tega ima ta kurikulum skupno **temo**, ki mu daje kohezivnost.
S tem, ko uskladimo vsebino s projekti, je proces za študente bolj privlačen in koncepti se bolje zapomnijo. Poleg tega nizko-tvegan kviz pred predavanjem postavi namero študenta za učenje teme, medtem ko drugi kviz po predavanju zagotavlja nadaljnje utrjevanje. Ta učni načrt je zasnovan kot prilagodljiv in zabaven ter ga je mogoče opraviti v celoti ali delno. Projekti se začnejo majhni in ob koncu 12-tedenskega obdobja postanejo vedno bolj kompleksni. Ta učni načrt vključuje tudi dodatek o resničnih aplikacijah strojnega učenja, ki ga lahko uporabite kot dodatno ocenjevanje ali osnovo za razpravo.
Z zagotavljanjem, da vsebina ustreza projektom, je proces bolj zanimiv za študente in ohranitev konceptov bo izboljšana. Poleg tega nizkorizični kviz pred predavanjem usmeri študentovo namen v učenje teme, medtem ko drugi kviz po predavanju zagotavlja nadaljnjo ohranitev. Ta kurikulum je zasnovan fleksibilno in zabavno ter ga je mogoče opraviti v celoti ali delno. Projekti se začnejo majhni in postajajo proti koncu 12-tedenskega cikla vse bolj kompleksni. Kurikulum vključuje tudi dodatek o resničnih primerih uporabe ML, ki se lahko uporabijo kot dodatne točke ali kot osnova za razpravo.
> Poiščite naša pravila [Kodeks vedenja](CODE_OF_CONDUCT.md), [Prispevanje](CONTRIBUTING.md), [Prevajanje](TRANSLATIONS.md) in [Odpravljanje težav](TROUBLESHOOTING.md). Veselimo se vaših konstruktivnih povratnih informacij!
> Najdite naš [Kodeks ravnanja](CODE_OF_CONDUCT.md), [Prispevanje](CONTRIBUTING.md), [Prevod](TRANSLATIONS.md) in [Odpravljanje težav](TROUBLESHOOTING.md) smernice. Veseli smo vaše konstruktivne povratne informacije!
## Vsaka lekcija vključuje
- neobvezen sketchnote
- neobvezen dodatni video
- video predstavitev (le nekatere lekcije)
- video vodič (samo nekatere lekcije)
- [kviz za ogrevanje pred predavanjem](https://ff-quizzes.netlify.app/en/ml/)
- pisno lekcijo
- za projektno usmerjene lekcije korak-po-korak vodiče kako sestaviti projekt
- za projektno usmerjene lekcije, korak-po-korak vodnike za izdelavo projekta
- preverjanja znanja
- izziv
- dodatno branje
- nalogo
- [kviz po predavanju](https://ff-quizzes.netlify.app/en/ml/)
> **Opomba glede jezikov**: Te lekcije so večinoma napisane v Pythonu, vendar so mnoge na voljo tudi v R-ju. Za dokončanje lekcije v R-ju pojdite v mapo `/solution` in poiščite lekcije v R-ju. Vsebujejo končnico .rmd, ki predstavlja **R Markdown** datoteko, kar je preprosto definirano kot vdelava `koda blokov` (R ali drugih jezikov) in `YAML glave` (ki usmerja oblikovanje izhodov, kot je PDF) v `Markdown dokument`. Kot tak služi kot vzoren okvir za oblikovanje vsebin za podatkovno znanost, saj omogoča kombiniranje kode, njenega izhoda in vaših misli z zapisovanjem v Markdown. Poleg tega je mogoče R Markdown dokumente pretvoriti v izhodne formate, kot so PDF, HTML ali Word.
> **Opomba o kvizih**: Vsi kvizi so shranjeni v [mapi Quiz App](../../quiz-app), skupaj 52 kvizov, vsak s tremi vprašanji. Povezani so iz lekcij, lahko pa tudi lokalno zaženete aplikacijo za kvize; sledite navodilom v mapi `quiz-app` za lokalno gostovanje ali nameščanje v Azure.
| številka lekcije | Tema | Skupina lekcij | Cilji učenja | Povezana lekcija | Avtor |
| :--------------: | :-----------------------------------------------------------: | :------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 01 | Uvod v strojno učenje | [Uvod](1-Introduction/README.md) | Spoznajte osnovne koncepte strojenega učenja | [Lekcija](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Zgodovina strojenega učenja | [Uvod](1-Introduction/README.md) | Spoznajte zgodovino tega področja | [Lekcija](1-Introduction/2-history-of-ML/README.md) | Jen in Amy |
| 03 | Pravičnost in strojno učenje | [Uvod](1-Introduction/README.md) | Katere so pomembne filozofske teme pravičnosti, ki jih morajo študenti upoštevati pri ustvarjanju in uporabi ML modelov? | [Lekcija](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Tehnike strojnega učenja | [Uvod](1-Introduction/README.md) | Katere tehnike uporabljajo raziskovalci ML za ustvarjanje ML modelov? | [Lekcija](1-Introduction/4-techniques-of-ML/README.md) | Chris in Jen |
| 05 | Uvod v regresijo | [Regresija](2-Regression/README.md) | Začnite z uporabo Pythona in Scikit-learn za regresijske modele | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Vizualizirajte in očistite podatke kot pripravo za ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Ustvarite linearne in polinomske regresijske modele | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen in Dmitry • Eric Wanjau |
| 08 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Izdelajte model logistične regresije | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Spletna aplikacija 🔌 | [Spletna aplikacija](3-Web-App/README.md) | Ustvarite spletno aplikacijo za uporabo vašega izurjenega modela | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Uvod v klasifikacijo | [Klasifikacija](4-Classification/README.md) | Očistite, pripravite in vizualizirajte svoje podatke; uvod v klasifikacijo | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen in Cassie • Eric Wanjau |
| 11 | Okusen azijski in indijski kulinarični svet 🍜 | [Klasifikacija](4-Classification/README.md) | Uvod v klasifikatorje | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen in Cassie • Eric Wanjau |
| 12 | Okusen azijski in indijski kulinarični svet 🍜 | [Klasifikacija](4-Classification/README.md) | Več klasifikatorjev | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen in Cassie • Eric Wanjau |
| 13 | Okusen azijski in indijski kulinarični svet 🍜 | [Klasifikacija](4-Classification/README.md) | Ustvarite priporočilno spletno aplikacijo z vašim modelom | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Uvod v gručenje | [Gručenje](5-Clustering/README.md) | Očistite, pripravite in vizualizirajte svoje podatke; uvod v gručenje | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Raziskovanje nigerijskih glasbenih okusov 🎧 | [Gručenje](5-Clustering/README.md) | Raziščite metodo gručenja K-povprečij | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Uvod v procesiranje naravnega jezika ☕️ | [Procesiranje naravnega jezika](6-NLP/README.md) | Spoznajte osnove NLP z izdelavo enostavnega bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Pogoste naloge NLP ☕️ | [Procesiranje naravnega jezika](6-NLP/README.md) | Poglobite svoje znanje NLP z razumevanjem pogostih nalog, potrebnih za delo z jezikovnimi strukturami | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Prevod in analiza sentimenta ♥️ | [Procesiranje naravnega jezika](6-NLP/README.md) | Prevod in analiza sentimenta z Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantični hoteli Evrope ♥️ | [Procesiranje naravnega jezika](6-NLP/README.md) | Analiza sentimenta z ocenami hotelov 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantični hoteli Evrope ♥️ | [Procesiranje naravnega jezika](6-NLP/README.md) | Analiza sentimenta z ocenami hotelov 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Uvod v napovedovanje časovnih vrst | [Časovne vrste](7-TimeSeries/README.md) | Uvod v napovedovanje časovnih vrst | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Poraba električne energije na svetu ⚡️ - napovedovanje časovnih vrst z ARIMA | [Časovne vrste](7-TimeSeries/README.md) | Napovedovanje časovnih vrst z metodo ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Poraba električne energije na svetu ⚡️ - napovedovanje časovnih vrst z SVR | [Časovne vrste](7-TimeSeries/README.md) | Napovedovanje časovnih vrst z regresorjem podpornih vektorjev | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Uvod v učenje s krepitvijo | [Učenje s krepitvijo](8-Reinforcement/README.md) | Uvod v učenje s krepitvijo z metodo Q-učenja | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Pomagaj Petru, da se izogne volku! 🐺 | [Učenje s krepitvijo](8-Reinforcement/README.md) | Gym za učenje s krepitvijo | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Dodatek | Resnični primeri in uporabe ML | [ML v resnici](9-Real-World/README.md) | Zanimive in razkrivajoče resnične aplikacije klasičnega ML | [Lekcija](9-Real-World/1-Applications/README.md) | Ekipa |
| Dodatek | Odpravljanje napak modelov v ML z uporabo RAI nadzorne plošče | [ML v resnici](9-Real-World/README.md) | Odpravljanje napak modelov strojnega učenja z uporabo komponent nadzorne plošče Responsible AI | [Lekcija](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> **Opomba o jezikih**: Te lekcije so primarno napisane v Pythonu, vendar je veliko lekcij na voljo tudi v R. Če želite dokončati lekcijo v R, pojdite v mapo `/solution` in poiščite lekcije v R. Te imajo pripono .rmd, ki predstavlja **R Markdown** datoteko, ki jo lahko preprosto opišemo kot vdelavo `kodo delčkov` (R ali drugih jezikov) in `YAML glave` (ki usmerja, kako oblikovati izhode, kot je PDF) v `Markdown dokument`. Kot tak služi kot vzorčni okvir za avtorstvo v podatkovni znanosti, saj vam omogoča, da združite vašo kodo, njen izhod in vaše misli tako, da jih zapišete v Markdown. Poleg tega je mogoče R Markdown dokumente upodabljati v izhodne formate, kot so PDF, HTML ali Word.
> **Opomba o kvizih**: Vsi kvizi so v [mapi Quiz App](../../quiz-app), kjer je skupaj 52 kvizov po tri vprašanja. Do njih so povezave v lekcijah, vendar je aplikacijo za kvize mogoče zagnati lokalno; sledite navodilom v mapi `quiz-app` za lokalno gostovanje ali namestitev na Azure.
| Številka lekcije | Tema | Skupina lekcij | Cilji učenja | Povezana lekcija | Avtor |
| :--------------: | :----------------------------------------------------: | :-------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------: |
| 01 | Uvod v strojno učenje | [Uvod](1-Introduction/README.md) | Spoznajte osnovne koncepte strojnega učenja | [Lekcija](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Zgodovina strojnega učenja | [Uvod](1-Introduction/README.md) | Spoznajte zgodovino tega področja | [Lekcija](1-Introduction/2-history-of-ML/README.md) | Jen in Amy |
| 03 | Poštenost in strojno učenje | [Uvod](1-Introduction/README.md) | Kakšna so pomembna filozofska vprašanja o poštenosti, ki jih študenti morajo upoštevati pri gradnji in uporabi modelov ML? | [Lekcija](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Tehnike strojnega učenja | [Uvod](1-Introduction/README.md) | Katere tehnike uporabljajo raziskovalci strojnega učenja za gradnjo modelov ML? | [Lekcija](1-Introduction/4-techniques-of-ML/README.md) | Chris in Jen |
| 05 | Uvod v regresijo | [Regresija](2-Regression/README.md) | Začnite z Python in Scikit-learn za regresijske modele | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Vizualizirajte in očistite podatke kot pripravo za ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Gradite linearne in polinomske regresijske modele | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen in Dmitry • Eric Wanjau |
| 08 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Izgradite model logistične regresije | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Spletna aplikacija 🔌 | [Spletna aplikacija](3-Web-App/README.md) | Zgradite spletno aplikacijo za uporabo vašega treniranega modela | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Uvod v klasifikacijo | [Klasifikacija](4-Classification/README.md) | Očistite, pripravite in vizualizirajte podatke; uvod v klasifikacijo | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen in Cassie • Eric Wanjau |
| 11 | Slavne azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Uvod v klasifikatorje | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen in Cassie • Eric Wanjau |
| 12 | Slavne azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Več klasifikatorjev | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen in Cassie • Eric Wanjau |
| 13 | Slavne azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Zgradite priporočilno spletno aplikacijo z uporabo vašega modela | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Uvod v grozdenje | [Grozdenje](5-Clustering/README.md) | Očistite, pripravite in vizualizirajte podatke; uvod v grozdenje | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Raziskovanje nigerijskih glasbenih okusov 🎧 | [Grozdenje](5-Clustering/README.md) | Raziščite metodo grozdenja K-sredin | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Uvod v obdelavo naravnega jezika ☕️ | [Obdelava naravnega jezika](6-NLP/README.md) | Spoznajte osnove NLP z izdelavo preprostega bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Pogoste naloge NLP ☕️ | [Obdelava naravnega jezika](6-NLP/README.md) | Poglobite svoje znanje NLP z razumevanjem pogostih nalog pri delu z jezikovnimi strukturami | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Prevajanje in analiza sentimenta ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Prevajanje in analiza sentimenta z Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantični hoteli v Evropi ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Analiza sentimenta na podlagi ocen hotelov 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantični hoteli v Evropi ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Analiza sentimenta na podlagi ocen hotelov 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Uvod v napovedovanje časovnih vrst | [Časovne vrste](7-TimeSeries/README.md) | Uvod v napovedovanje časovnih vrst | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Svetovna poraba električne energije ⚡️ - napovedovanje časovnih vrst z ARIMA | [Časovne vrste](7-TimeSeries/README.md) | Napovedovanje časovnih vrst z ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Svetovna poraba električne energije ⚡️ - napovedovanje časovnih vrst s SVR | [Časovne vrste](7-TimeSeries/README.md) | Napovedovanje časovnih vrst z regresorjem z odločitvenim vektorjem (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Uvod v učenje s krepitvijo | [Učenje s krepitvijo](8-Reinforcement/README.md) | Uvod v učenje s krepitvijo z Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Pomagajte Peteru, da se izogne volku! 🐺 | [Učenje s krepitvijo](8-Reinforcement/README.md) | Učenje s krepitvijo v okolju Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Epilog | Resnični scenariji in uporabe ML | [ML v praksi](9-Real-World/README.md) | Zanimive in razkrivajoče realne aplikacije klasičnega strojnega učenja | [Lekcija](9-Real-World/1-Applications/README.md) | Ekipa |
| Epilog | Razhroščevanje modelov v ML z nadzorno ploščo RAI | [ML v praksi](9-Real-World/README.md) | Razhroščevanje modelov strojnega učenja z uporabo komponent nadzorne plošče Responsible AI | [Lekcija](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [poiščite vse dodatne vire za ta tečaj v naši zbirki Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Dostop brez povezave
## Dovoljen dostop brez povezave
To dokumentacijo lahko zaženete offline z uporabo [Docsify](https://docsify.js.org/#/). Forkajte ta repozitorij, [namestite Docsify](https://docsify.js.org/#/quickstart) na svoj računalnik in v korenski mapi tega repozitorija zaženite ukaz `docsify serve`. Spletna stran bo na voljo na vratih 3000 na vašem lokalnem računalniku: `localhost:3000`.
To dokumentacijo lahko uporabljate brez povezave z uporabo [Docsify](https://docsify.js.org/#/). Razvežite ta repozitorij, [namestite Docsify](https://docsify.js.org/#/quickstart) na vaš lokalni računalnik in nato v korenski mapi tega repozitorija zaženite ukaz `docsify serve`. Spletna stran bo na voljo na vratih 3000 na vašem lokalnem računalniku: `localhost:3000`.
## PDF-ji
Prenesite pdf učnega načrta s povezavami [tukaj](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Najdite pdf izobraževalnega programa s povezavami [tukaj](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Drugi tečaji
## 🎒 Drugi tečaji
Naša ekipa pripravlja tudi druge tečaje! Oglejte si:
Naša ekipa izdeluje tudi druge tečaje! Oglejte si:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j za začetnike](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js za začetnike](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain za začetnike](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agentje
[![AZD za začetnike](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI za začetnike](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP za začetnike](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI agentje za začetnike](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
### Azure / Edge / MCP / Agents
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
@ -188,7 +197,7 @@ Naša ekipa pripravlja tudi druge tečaje! Oglejte si:
---
### Osnove učenja
### Osnovno učenje
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -207,17 +216,22 @@ Naša ekipa pripravlja tudi druge tečaje! Oglejte si:
## Pridobivanje pomoči
Če se zataknete ali imate kakršnakoli vprašanja glede izdelave AI aplikacij, se pridružite ostalim učencem in izkušenim razvijalcem v razpravah o MCP. To je podpirajoča skupnost, kjer so vprašanja dobrodošla in kjer znanje prosto delijo.
Če zataknete ali imate kakršna koli vprašanja o ustvarjanju AI aplikacij. Pridružite se sošolcem in izkušenim razvijalcem v razpravah o MCP. To je podporna skupnost, kjer so vprašanja dobrodošla in se znanje prostodušno deli.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Če imate povratne informacije o izdelku ali naletite na napake med izdelavo, obiščite:
Če imate povratne informacije o izdelku ali napake med ustvarjanjem, obiščite:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Dodatni nasveti za učenje
- Preglejte zvezke po vsakem poglavju za boljše razumevanje.
- Vadite samostojno izvajanje algoritmov.
- Raziščite podatke iz resničnega sveta z uporabo naučenih konceptov.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Omejitev odgovornosti**:
Ta dokument je bil preveden z uporabo AI prevajalske storitve [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da avtomatski prevodi lahko vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za kritične informacije priporočamo strokovni človeški prevod. Ne odgovarjamo za morebitne nesporazume ali napačne razlage, ki izhajajo iz uporabe tega prevoda.
**Izjava o omejitvi odgovornosti**:
Ta dokument je bil preveden z uporabo AI prevajalske storitve [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, upoštevajte, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v izvirnem jeziku velja za verodostojen vir. Za ključne informacije priporočamo strokovni človeški prevod. Nismo odgovorni za morebitne nerazumevanja ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "sr"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T12:41:52+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:44:18+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "sr"
},
@ -90,8 +90,8 @@
"language_code": "sr"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T11:26:14+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:45:17+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "sr"
},
@ -186,8 +186,8 @@
"language_code": "sr"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T13:13:50+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:45:38+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "sr"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "sr"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:42:25+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "sr"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T13:16:39+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "sr"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:42:31+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "sr"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T13:09:58+00:00",
@ -540,8 +552,8 @@
"language_code": "sr"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T09:05:37+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:44:12+00:00",
"source_file": "README.md",
"language_code": "sr"
},

@ -1,16 +1,18 @@
# Истражите алат за одговорну вештачку интелигенцију
# Истражите сет алата Одговорног AI
## Упутства
У овом лекцији сте научили о алату за одговорну вештачку интелигенцију, „пројекту отвореног кода који покреће заједница, а који помаже научницима података да анализирају и унапреде системе вештачке интелигенције.“ За овај задатак, истражите један од [бележака](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) RAI Toolbox-а и изнесите своје закључке у раду или презентацији.
У овом лекцији сте учили о сету алата Одговорног AI, „отворени, вођен од заједнице пројекат који помаже научницима података да анализирају и побољшају AI системе.“ За овај задатак, истражите један од RAI Toolbox [ноутбукова](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) и пријавите своја сазнања у раду или презентацији.
## Рубрика
## Оцена
| Критеријум | Изузетно | Прихватљиво | Потребно побољшање |
| ---------- | -------- | ----------- | ------------------ |
| | Рад или презентација у PowerPoint-у представљају систем Fairlearn-а, бележак који је покренут и закључке изведене из његовог покретања | Представљен је рад без закључака | Рад није представљен |
| Критеријум | Изванредно | Довољно | Потребно побољшање |
| -------- | --------- | -------- | ----------------- |
| | Представљен је рад или PowerPoint презентација која дискутује системе Fairlearn-а, ноутбук који је покренут и закључке из покретања | Представљен је рад без закључака | Није представљен рад |
---
**Одрицање од одговорности**:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако тежимо тачности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ограничење одговорности**:
Овај документ је преведен коришћењем AI сервиса за превођење [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да превод буде прецизан, имајте у виду да аутоматизовани преводи могу садржати грешке или нетачности. Изворни документ на његовом изворном језику треба сматрати званичним извором. За критичне информације препоручујемо професионални превод од стране људског преводиоца. Ни ми не сносимо одговорност за било каква неспоразума или погрешна тумачења настала коришћењем овог превода.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,105 +1,117 @@
# Изградите регресиони модел користећи Scikit-learn: регресија на четири начина
# Изградња регресионог модела коришћењем Scikit-learn: регресија на четири начина
![Инфографика линеарне и полиномске регресије](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## Напомена за почетнике
Линеарна регресија се користи када желимо да предвидимо **нумеричку вредност** (на пример, цену куће, температуру или продају). Она функционише тако што проналази праву линију која најбоље представља однос између улазних карактеристика и излаза.
У овој лекцији се фокусирамо на разумевање концепта пре него што истражимо напредније технике регресије.
![Линеарна насупрот полиномијалној регресији инфографика](../../../../translated_images/sr/linear-polynomial.5523c7cb6576ccab.webp)
> Инфографика од [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Квиз пре предавања](https://ff-quizzes.netlify.app/en/ml/)
> ### [Ова лекција је доступна на R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [Ова лекција је доступна у R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Увод
До сада сте истраживали шта је регресија користећи пример података из скупа података о ценама бундева, који ћемо користити током ове лекције. Такође сте је визуализовали користећи Matplotlib.
До сада сте истражили шта је регресија користећи узорке података из скупа података о цени бундеве који ћемо користити током целе ове лекције. Такође сте то визуелизовали помоћу Matplotlib-а.
Сада сте спремни да дубље уђете у регресију за машинско учење. Док визуализација омогућава разумевање података, права моћ машинског учења долази из ренирања модела_. Модели се тренирају на историјским подацима како би аутоматски ухватили зависности података и омогућили предвиђање исхода за нове податке које модел раније није видео.
Сада сте спремни да дубље зароните у регресију за машинско учење. Док вам визуализација омогућава да разумете податке, права снага машинског учења долази из ренирања модела_. Модели се тренирају на историјским подацима да би аутоматски ухватили зависности у подацима и омогућавају вам да предвидите исходе за нове податке које модел раније није видео.
У овој лекцији, научићете више о две врсте регресије: _основна линеарна регресија_ и _полиномска регресија_, заједно са неким математичким основама ових техника. Ови модели ће нам омогућити да предвидимо цене бундева у зависности од различитих улазних података.
У овој лекцији ћете сазнати више о два типа регресије: _основна линеарна регресија_ и _полиномијална регресија_, заједно са неким математичким основама ових техника. Ови модели ће нам омогућити да предвидимо цене бундеве у зависности од различитих улазних података.
[![Машинско учење за почетнике - Разумевање линеарне регресије](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "Машинско учење за почетнике - Разумевање линеарне регресије")
> 🎥 Кликните на слику изнад за кратак видео преглед линеарне регресије.
> Кроз овај курикулум претпостављамо минимално знање математике и настојимо да га учинимо доступним студентима из других области, па обратите пажњу на белешке, 🧮 позиве, дијаграме и друге алате за учење који помажу у разумевању.
> Током читавог овог курикулума претпостављамо минимално познавање математике и тежимо да је учинимо приступачном за студенте из других области, па обратите пажњу на напомене, 🧮 илустрације, дијаграме и друге алате за учење који помажу разумевању.
### Предуслов
До сада би требало да сте упознати са структуром података о бундевама које испитујемо. Можете их пронаћи унапред учитане и очишћене у датотеци _notebook.ipynb_ ове лекције. У датотеци, цена бундева је приказана по бушелу у новом оквиру података. Уверите се да можете покренути ове бележнице у језгрима у Visual Studio Code-у.
До сада би требало да сте упознати са структуром података о бундеви које испитујемо. Можете их пронаћи учитане и очишћене у _notebook.ipynb_ фајлу ове лекције. У том фајлу, цена бундеве је приказана по бушелу у новом DataFrame-у. Обавезно проверите да можете да покренете ове бележнице у језгру у Visual Studio Code.
### Припрема
Као подсетник, учитавате ове податке како бисте постављали питања о њима.
Као подсетник, ове податке учитавате да бисте могли да постављате питања у вези са њима.
- Када је најбоље време за куповину бундева?
- Коју цену могу очекивати за кутију минијатурних бундева?
- Да ли да их купим у корпама од пола бушела или у кутијама од 1 1/9 бушела?
Хајде да наставимо са истраживањем ових података.
- Када је најбоље време за куповину бундеве?
- Коју цену могу очекивати за кутију минијатурних бундевa?
- Да ли их треба купити у корпама од пола бушела или у кутији од 1 1/9 бушела?
У претходној лекцији, креирали сте Pandas оквир података и попунили га делом оригиналног скупа података, стандардизујући цене по бушелу. Међутим, тиме сте успели да сакупите само око 400 података и то само за јесење месеце.
Хајде да наставимо са анализом ових података.
Погледајте податке које смо унапред учитали у пратећој бележници ове лекције. Подаци су унапред учитани, а почетни распршени графикон је направљен да покаже податке по месецима. Можда можемо добити мало више детаља о природи података ако их боље очистимо.
У претходној лекцији сте направили Pandas DataFrame и попунили га делом оригиналног скупа података, стандардизујући цене по бушелу. Међутим, тиме сте пришли само око 400 података и то само за јесење месеце.
Погледајте податке које смо претходно учитали у бележници која прати ову лекцију. Податци су учитани и приказан је почетни графикон распршености (scatterplot) за приказ месечних података. Можда можемо добити мало више детаља о природи података њиховим додатним чишћењем.
## Линија линеарне регресије
Као што сте научили у Лекцији 1, циљ вежбе линеарне регресије је да се нацрта линија која:
Као што сте научили у Лекцији 1, циљ вежбе линеарне регресије јесте да се нацрта линија која:
- **Приказује односе између варијабли.** Приказује однос између варијабли
- **Прави предвиђања.** Прави тачна предвиђања о томе где би нова тачка могла пасти у односу на ту линију.
- **Показује односе између променљивих**. Показује однос између променљивих
- **Прави предвиђања**. Прави тачна предвиђања о томе где би нова тачка података могла пасти у односу на ту линију.
Типично за **регресију најмањих квадрата** је цртање овакве линије. Термин „најмањи квадрати“ односи се на процес минимизације укупне грешке у нашем моделу. За сваки податак меримо вертикалну удаљеност (која се зове резидуала) између стварне тачке и наше регресионе линије.
Типично је за **регресију методом најмањих квадрата** да се нацрта ова врста линије. Термин 'најмањи квадрати' значи да су све тачке података око линије регресије квадриране и затим сабране. Идеално, тај коначни збир је што је могуће мањи, јер желимо низак број грешака, или `најмањи квадрати`.
Ове удаљености квадратимо из два главна разлога:
То радимо јер желимо да моделирамо линију која има најмању кумулативну удаљеност од свих наших тачака података. Такође квадрирамо термине пре него што их саберемо јер нас занима њихова величина, а не њихов смер.
1. **Величина изнад Смера:** Желимо да грешка од -5 има исту тежину као грешка од +5. Квадрирањем сви износи постају позитивни.
> **🧮 Покажите ми математику**
>
> Ова линија, названа _линија најбољег уклапања_, може се изразити [једначином](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
2. **Кажњавање одступања:** Квадрирањем се већа грешка додатно потенцира, па линија буде ближа удаљенијим тачкама.
Затим саберемо све ове квадрате. Наш циљ је да пронађемо специфичну линију за коју је овај укупни збир најмањи (најмања могућа вредност) отуда и назив „Најмањи квадрати“.
> **🧮 Покажи ми математику**
>
> Ова линија, названа _линија најбољег прилагођавања_, може бити изражена [једначином](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` је 'објашњавајућа променљива'. `Y` је 'зависна променљива'. Нагиб линије је `b`, а `a` је пресек са Y-осом, који се односи на вредност `Y` када је `X = 0`.
>
>![израчунајте нагиб](../../../../2-Regression/3-Linear/images/slope.png)
>
> Прво, израчунајте нагиб `b`. Инфографика од [Jen Looper](https://twitter.com/jenlooper)
>
> Другим речима, и позивајући се на оригинално питање о подацима о бундевама: "предвидите цену бундеве по бушелу по месецу", `X` би се односио на цену, а `Y` би се односио на месец продаје.
>
>![завршите једначину](../../../../2-Regression/3-Linear/images/calculation.png)
>
> Израчунајте вредност Y. Ако плаћате око $4, мора да је април! Инфографика од [Jen Looper](https://twitter.com/jenlooper)
>
> Математика која израчунава линију мора показати нагиб линије, који такође зависи од пресека, или где се `Y` налази када је `X = 0`.
>
> Можете посматрати метод израчунавања ових вредности на веб сајту [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Такође посетите [овој калкулатор најмањих квадрата](https://www.mathsisfun.com/data/least-squares-calculator.html) да видите како вредности бројева утичу на линију.
>
> `X` је 'објашњавајућа варијабла'. `Y` је 'зависна варијабла'. Нагиб линије је `b`, а `a` је пресек са Y-оскулом, што указује на вредност `Y` када је `X = 0`.
>
>![израчунавање нагиба](../../../../translated_images/sr/slope.f3c9d5910ddbfcf9.webp)
>
> Прво израчунајте нагиб `b`. Инфографика од [Jen Looper](https://twitter.com/jenlooper)
>
> Другим речима, и ослањајући се на наше питање из података о бундеви: „предвидети цену бундеве по бушелу по месецу“, `X` би се односило на цену, а `Y` на месец продаје.
>
>![комплетирање једначине](../../../../translated_images/sr/calculation.a209813050a1ddb1.webp)
>
> Израчунајте вредност Y. Ако плаћате око 4 долара, то мора бити април! Инфографика од [Jen Looper](https://twitter.com/jenlooper)
>
> Математика која израчунава линију мора приказати нагиб линије, који такође зависи од пресека, односно где се `Y` налази када је `X = 0`.
>
> Метод за израчунавање ових вредности можете погледати на [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) сајту. Посетите и [овaj калкулатор најмањих квадрата](https://www.mathsisfun.com/data/least-squares-calculator.html) да бисте видели како вредности бројева утичу на линију.
## Корелација
Још један термин који треба разумети је **коефицијент корелације** између датих X и Y променљивих. Користећи распршени графикон, можете брзо визуализовати овај коефицијент. Графикон са тачкама података распршеним у уредној линији има високу корелацију, али графикон са тачкама података распршеним свуда између X и Y има ниску корелацију.
Још један термин који треба разумети је **Коефицијент корелације** између дате X и Y варијабле. Помоћу scatterplot-а можете брзо визуализовати овај коефицијент. График са тачкама распоређеним у прецизној линији има високу корелацију, док график са тачкама расутим на разним местима између X и Y има ниску корелацију.
Добар модел линеарне регресије биће онај који има висок (ближи 1 него 0) коефицијент корелације користећи метод регресије најмањих квадрата са линијом регресије.
Добар линеарни регресијски модел имаће висок (ближи 1 него 0) коефицијент корелације користећи методу регресије најмањих квадрата са линијом регресије.
✅ Покрените бележницу која прати ову лекцију и погледајте распршени графикон Месец према Цени. Да ли се подаци који повезују Месец са Ценом за продају бундева чине да имају високу или ниску корелацију, према вашој визуелној интерпретацији распршеног графикона? Да ли се то мења ако користите прецизнију меру уместо `Месец`, нпр. *дан у години* (тј. број дана од почетка године)?
✅ Покрените бележницу која прати ову лекцију и погледајте scatterplot Цена у односу на Месец. Да ли подаци који повезују Месец и Цену у продаји бундеве изгледају да имају високу или ниску корелацију, према Вашој визуелној процени распореда тачака? Да ли се то мења ако користите прецизнију меру уместо `Месеца`, нпр. *дан у години* (односно број дана од почетка године)?
У коду испод, претпоставићемо да смо очистили податке и добили оквир података назван `new_pumpkins`, сличан следећем:
У доњем коду претпоставићемо да смо очистили податке и добили DataFrame под називом `new_pumpkins`, сличан следећем:
ID | Месец | ДанУГодини | Врста | Град | Паковање | Најнижа цена | Највиша цена | Цена
---|-------|------------|-------|------|----------|--------------|--------------|------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 бушел кутије | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 бушел кутије | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 бушел кутије | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 бушел кутије | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 бушел кутије | 15.0 | 15.0 | 13.636364
ID | Месец | ДанУгодини | Врста | Град | Паковање | Најнижа цена | Највиша цена | Цена
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | ВРСТА ЗА ПИТЕ | БАЛТИМОР | 1 1/9 бушел картонске кутије | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | ВРСТА ЗА ПИТЕ | БАЛТИМОР | 1 1/9 бушел картонске кутије | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | ВРСТА ЗА ПИТЕ | БАЛТИМОР | 1 1/9 бушел картонске кутије | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | ВРСТА ЗА ПИТЕ | БАЛТИМОР | 1 1/9 бушел картонске кутије | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | ВРСТА ЗА ПИТЕ | БАЛТИМОР | 1 1/9 бушел картонске кутије | 15.0 | 15.0 | 13.636364
> Код за чишћење података доступан је у [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Извршили смо исте кораке чишћења као у претходној лекцији и израчунали колону `ДанУГодини` користећи следећи израз:
> Код за чишћење података доступан је у [`notebook.ipynb`](notebook.ipynb). Извели смо исте кораке чишћења као у претходној лекцији и израчунали смо колону `DayOfYear` користећи следећи израз:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Сада када имате разумевање математике иза линеарне регресије, хајде да креирамо регресиони модел да видимо да ли можемо предвидети који пакет бундева ће имати најбоље цене бундева. Неко ко купује бундеве за празничну фарму бундева можда жели ове информације како би оптимизовао своје куповине пакета бундева за фарму.
Сада када разумете математику иза линеарне регресије, хајде да направимо регресијски модел да видимо да ли можемо предвидети која паковања буњева имају најбоље цене. Неки који купују бундеве за свечани јесењи паркинг можда желе ове информације како би оптимизовали своју куповину пакета бундеве.
## Тражење корелације
[![Машинско учење за почетнике - Тражење корелације: Кључ за линеарну регресију](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Машинско учење за почетнике - Тражење корелације: Кључ за линеарну регресију")
[![Машинско учење за почетнике - Тражење корелације: кључ за линеарну регресију](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Машинско учење за почетнике - Тражење корелације: кључ за линеарну регресију")
> 🎥 Кликните на слику изнад за кратак видео преглед корелације.
@ -107,18 +119,18 @@ day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.
<img alt="Просечна цена по месецу" src="../../../../translated_images/sr/barchart.a833ea9194346d76.webp" width="50%"/>
Ово сугерише да би требало да постоји нека корелација, и можемо покушати да обучимо модел линеарне регресије да предвиди однос између `Месец` и `Цена`, или између `ДанУГодини` и `Цена`. Ево распршеног графикона који показује овај други однос:
Ово сугерише да треба да постоји нека корелација, и можемо покушати да тренирамо линеарни регресијски модел да предвидимо однос између `Месец` и `Цена`, или између `ДануГодини` и `Цена`. Ево графикона распршености који приказује овај други однос:
<img alt="Распршени графикон Цена према Дан у години" src="../../../../translated_images/sr/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Графикон распршености Цена према Дану у години" src="../../../../translated_images/sr/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Хајде да видимо да ли постоји корелација користећи функцију `corr`:
Хајде да проверимо да ли постоји корелација помоћу функције `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Изгледа да је корелација прилично мала, -0.15 за `Месец` и -0.17 за `ДанУГодини`, али можда постоји друга важна веза. Изгледа да постоје различити кластери цена који одговарају различитим врстама бундева. Да потврдимо ову хипотезу, хајде да нацртамо сваку категорију бундева користећи различиту боју. Прослеђивањем параметра `ax` функцији за цртање распршених графикона можемо нацртати све тачке на истом графикону:
Чини се да је корелација прилично мала, -0.15 по `Месецу` и -0.17 по `Дану у месецу`, али можда постоји неки други важан однос. Изгледа да постоје различити скупови цена који одговарају разним врстама бундеве. Да бисмо потврдили ову хипотезу, хајде да нацртамо сваку категорију бундеве другим бојама. Прослеђивањем `ax` параметра функцији `scatter` можемо нацртати све тачке на истом графикону:
```python
ax=None
@ -127,105 +139,113 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Графикон распршености Цена према Дану у години са бојом" src="../../../../translated_images/sr/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Распршени графикон Цена према Дан у години" src="../../../../translated_images/sr/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Наша истрага сугерише да врста има већи утицај на укупну цену него стварни датум продаје. То можемо видети помоћу стубног графикона:
Истраживање нам сугерише да врста бундеве има већи утицај на укупну цену од самог датума продаје. Видимо то и помоћу тракастог графика:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Тракасти график цена по врсти" src="../../../../translated_images/sr/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Стубни графикон цена према врсти" src="../../../../translated_images/sr/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Фокусирајмо се за тренутак само на једну врсту бундева, 'pie type', и видимо какав ефекат датум има на цену:
За сада се фокусирајмо само на једну врсту бундеве, 'type за питу', и видимо какав утицај датум има на цену:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Распршени графикон Цена према Дан у години" src="../../../../translated_images/sr/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Графикон распршености Цена према Дану у години" src="../../../../translated_images/sr/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Ако сада израчунате корелацију између `Цена` и `ДанУГодини` користећи функцију `corr`, добићемо нешто попут `-0.27` - што значи да тренирање предиктивног модела има смисла.
Ако сада израчунамо корелацију између `Цена` и `ДанУгодини` користећи функцију `corr`, добићемо нешто око `-0.27` - што значи да има смисла тренирати предиктивни модел.
> Пре тренирања модела линеарне регресије, важно је осигурати да су наши подаци чисти. Линеарна регресија не функционише добро са недостајућим вредностима, па има смисла уклонити све празне ћелије:
> Пре тренирања линеарног регресијског модела, важно је да подаци буду чисти. Линеарна регресија не функционише добро са недостајућим вредностима, па има смисла уклонити све празне ћелије:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Други приступ би био да се те празне вредности попуне просечним вредностима из одговарајуће колоне.
## Једноставна линеарна регресија
[![Машинско учење за почетнике - Линеарна и полиномска регресија користећи Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "Машинско учење за почетнике - Линеарна и полиномска регресија користећи Scikit-learn")
[![Машинско учење за почетнике - Линеарна и полиномијална регресија коришћењем Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "Машинско учење за почетнике - Линеарна и полиномијална регресија коришћењем Scikit-learn")
> 🎥 Кликните на слику изнад за кратак видео преглед линеарне и полиномске регресије.
> 🎥 Кликните на слику изнад за кратак видео преглед линеарне и полиномијалне регресије.
Да бисмо обучили наш модел линеарне регресије, користићемо библиотеку **Scikit-learn**.
За тренирање нашег Линеарног регресијског модела користићемо **Scikit-learn** библиотеку.
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Почињемо раздвајањем улазних вредности (карактеристика) и очекиваног излаза (ознаке) у одвојене numpy низове:
Почнимо тако што ћемо улазне вредности (карактеристике) и очекиване излазне вредности (ознаке) раздвојити у посебне numpy низове:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Имајте на уму да смо морали да извршимо `reshape` над улазним подацима како би линерарни регресијски пакет правилно разумео податке. Линеарна регресија очекује 2D низ као улаз, где сваки ред у низу одговара вектору карактеристика улаза. У нашем случају, пошто имамо само један улаз, потребан нам је низ облика N&times;1, где је N величина скупа података.
> Напомена да смо морали да извршимо `reshape` на улазним подацима како би пакет за линеарну регресију правилно разумео. Линеарна регресија очекује 2D-низ као улаз, где сваки ред низа одговара вектору улазних карактеристика. У нашем случају, пошто имамо само један улаз - потребан нам је низ облика N×1, где је N величина скупа података.
Затим, потребно је да поделимо податке на тренирајући и тестирајући скуп података, како бисмо могли да валидирамо наш модел након тренирања:
Затим, потребно је да поделимо податке на тренирачки и тестирачки скуп тако да можемо верификовати модел након тренирања:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
На крају, тренирање стварног модела линеарне регресије траје само два реда кода. Дефинишемо објекат `LinearRegression` и прилагођавамо га нашим подацима користећи метод `fit`:
Коначно, само тренирање Линеарног регресијског модела захтева само две линије кода. Дефинишемо објекат `LinearRegression` и уклопимо га на наше податке коришћењем метода `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Објекат `LinearRegression` након `fit`-овања садржи све коефицијенте регресије, који се могу приступити користећи својство `.coef_`. У нашем случају, постоји само један коефицијент, који би требало да буде око `-0.017`. То значи да цене изгледа падају мало током времена, али не превише, око 2 цента дневно. Такође можемо приступити тачки пресека регресије са Y-осом користећи `lin_reg.intercept_` - она ће бити око `21` у нашем случају, што указује на цену на почетку године.
Објекат `LinearRegression` након извршавања `fit` садржи све коефицијенте регресије, којима се може приступити помоћу својства `.coef_`. У нашем случају постоји само један коефицијент, који би требало да буде око `-0.017`. То значи да цене изгледају да благо опадају током времена, али не превише, око 2 цента дневно. Такође можемо приступити тачки пресека регресије са Y-осом користећи `lin_reg.intercept_` - он ће у нашем случају бити око `21`, што указује на цену на почетку године.
Да бисмо видели колико је наш модел тачан, можем
Нашa грешка изгледа да се врти око 2 тачке, што је ~17%. Није баш добро. Још један показатељ квалитета модела је **коефицијент детерминације**, који можемо добити овако:
Да бисмо видели колико је наш модел прецизан, можемо предвидети цене на тестном сету података, а затим измерити колико су наша предвиђања блиска очекиваним вредностима. Ово се може урадити помоћу метрике средње квадратичне грешке (MSE), која је просек свих квадратних разлика између очекиваних и предвиђених вредности.
```python
pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
Наша грешка изгледа да је око 2 поена, што је ~17%. Није баш добро. Још један показатељ квалитета модела је **коефицијент детерминације**, који се може добити овако:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Ако је вредност 0, то значи да модел не узима у обзир улазне податке и делује као *најгори линеарни предиктор*, што је једноставно просечна вредност резултата. Вредност 1 значи да можемо савршено предвидети све очекиване излазе. У нашем случају, коефицијент је око 0.06, што је прилично ниско.
```
Ако је вредност 0, то значи да модел не узима у обзир улазне податке и понаша се као *најгории линеарни предиктор*, што је једноставно просечна вредност резултата. Вредност 1 значи да можемо савршено предвидети све очекиване излазе. У нашем случају коефицијент је око 0.06, што је прилично мало.
Такође можемо приказати тест податке заједно са регресионом линијом да бисмо боље видели како регресија функционише у нашем случају:
Такође можемо приказати тестне податке заједно са регресионом линијом да боље видимо како регресија ради у нашем случају:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Линеарна регресија" src="../../../../translated_images/sr/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/sr/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Полиномијална регресија
## Полиномијална регресија
Још један тип линеарне регресије је полиномијална регресија. Иако понекад постоји линеарна веза између променљивих - што је већа запремина бундеве, то је већа цена - понекад те везе не могу бити приказане као раван или права линија.
Још један тип линеарне регресије је полиномијална регресија. Иако понекад постоји линеарна веза између променљивих - што је бундева већа по обиму, то је цена виша - понекад ове везе нису могуће приказати као раван или праву линију.
✅ Ево [неколико примера](https://online.stat.psu.edu/stat501/lesson/9/9.8) података који би могли користити полиномијалну регресију.
✅ Ево [још неких примера](https://online.stat.psu.edu/stat501/lesson/9/9.8) података који могу користити полиномијалну регресију
Погледајте поново однос између датума и цене. Да ли овај распоред тачака изгледа као да би нужно требало да се анализира правом линијом? Зар цене не могу да варирају? У овом случају можете пробати полиномијалну регресију.
Погледајте поново везу између датума и цене. Да ли овај расејани графикон мора нужно да буде анализиран правом линијом? Зар цене не могу да варирају? У овом случају можете покушати полиномијалну регресију.
✅ Полиноми су математички изрази који могу садржати једну или више променљивих и коефицијената.
✅ Полиноми су математички изрази који могу да се састоје од једне или више променљивих и коефицијената
Полиномијална регресија ствара закривљену линију да би боље одговарала нелинеарним подацима. У нашем случају, ако укључимо квадратну променљиву `DayOfYear` у улазне податке, требало би да можемо да прилагодимо наше податке параболичном кривом, која ће имати минимум у одређеном тренутку у години.
Полиномијална регресија прави закривљену линију да боље прилагоди нелинеарне податке. У нашем случају, ако у улазне податке укључимо квадрат променљиве `DayOfYear`, требало би да можемо да прилагодимо податке параболичном кривом, која ће имати минимум на одређеној тачки у току године.
Scikit-learn укључује корисни [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) за комбиновање различитих корака обраде података. **Pipeline** је ланац **процесора**. У нашем случају, направићемо pipeline који прво додаје полиномијалне карактеристике нашем моделу, а затим тренира регресију:
Scikit-learn укључује корисан [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) за комбинове различитих корака обраде података заједно. **Pipeline** је ланац **ескиматора**. У нашем случају креираћемо pipeline који прво додаје полиномијалне карактеристике у наш модел, а затим обучава регресију:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -234,62 +254,62 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
Коришћење `PolynomialFeatures(2)` значи да ћемо укључити све полиноме другог степена из улазних података. У нашем случају то ће значити само `DayOfYear`<sup>2</sup>, али ако имамо две улазне променљиве X и Y, то ће додати X<sup>2</sup>, XY и Y<sup>2</sup>. Можемо користити и полиноме вишег степена ако желимо.
Коришћењем `PolynomialFeatures(2)` значи да ћемо укључити све полиноме другог степена из улазних података. У нашем случају то ће значити само `DayOfYear`<sup>2</sup>, али ако имамо две променљиве X и Y, то ће додати X<sup>2</sup>, XY и Y<sup>2</sup>. Можемо користити и полиноме вишег реда ако желимо.
Pipeline се може користити на исти начин као оригинални објекат `LinearRegression`, тј. можемо `fit` pipeline, а затим користити `predict` за добијање резултата предвиђања. Ево графикона који приказује тест податке и криву апроксимације:
Pipeline-ови се могу користити на исти начин као оригинални објекат `LinearRegression`, тј. можемо `fit`-овати pipeline, а затим користити `predict` да добијемо резултате предвиђања. Ево графика који приказује тестне податке и криву апроксимације:
<img alt="Полиномијална регресија" src="../../../../translated_images/sr/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/sr/poly-results.ee587348f0f1f60b.webp" width="50%" />
Коришћењем полиномијалне регресије можемо добити нешто нижи MSE и већи коефицијент детерминације, али не значајно. Морамо узети у обзир и друге карактеристике!
Коришћењем полиномијалне регресије можемо добити благо ниже MSE и више вредности коефицијента детерминације, али не значајно. Потребно је узети у обзир друге карактеристике!
> Можете видети да су минималне цене бундева примећене негде око Ноћи вештица. Како то можете објаснити?
> Можете видети да су минималне цене бувеђа примећене негде око ноћи вештица. Како то можете да објасните?
🎃 Честитамо, управо сте направили модел који може помоћи у предвиђању цене бундева за питу. Вероватно можете поновити исти поступак за све типове бундева, али то би било заморно. Сада ћемо научити како да узмемо у обзир сорту бундева у нашем моделу!
🎃 Честитамо, управо сте креирали модел који може помоћи у предвиђању цене тикви за питу. Вероватно можете поновити исти поступак за све врсте тикви, али то би било заморно. Хајде сада да научимо како да у наш модел укључимо разноликост тикви!
## Категоријалне карактеристике
## Категоријалне карактеристике
У идеалном свету, желимо да будемо у могућности да предвиђамо цене за различите сорте бундева користећи исти модел. Међутим, колона `Variety` је нешто другачија од колона као што је `Month`, јер садржи ненумеричке вредности. Такве колоне се називају **категоријалне**.
У идеалном свету, желимо да можемо предвидети цене различитих врста тикви користећи исти модел. Међутим, колона `Variety` се делимично разликује од колона као што је `Month`, јер садржи не-нумеричке вредности. Те колоне се зову **категоријалне**.
[![ML за почетнике - Предвиђање категоријалних карактеристика са линеарном регресијом](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML за почетнике - Предвиђање категоријалних карактеристика са линеарном регресијом")
[![ML за почетнике - Предвиђања категоријалних карактеристика помоћу линеарне регресије](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML за почетнике - Предвиђања категоријалних карактеристика помоћу линеарне регресије")
> 🎥 Кликните на слику изнад за кратак видео преглед коришћења категоријалних карактеристика.
Овде можете видети како просечна цена зависи од сорте:
Овде можете видети како просечна цена зависи од врсте:
<img alt="Просечна цена по сорти" src="../../../../translated_images/sr/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/sr/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Да бисмо узели сорту у обзир, прво је морамо претворити у нумерички облик, или **кодирати**. Постоји неколико начина на који то можемо урадити:
Да бисмо узели у обзир врсту, прво морамо да је конвертујемо у нумерички облик, односно да je **енкодирајемо**. Постоји неколико начина да то урадимо:
* Једноставно **нумеричко кодирање** ће направити табелу различитих сорти, а затим заменити име сорте индексом у тој табели. Ово није најбоља идеја за линеарну регресију, јер линеарна регресија узима стварну нумеричку вредност индекса и додаје је резултату, множећи је неким коефицијентом. У нашем случају, однос између броја индекса и цене је очигледно нелинеаран, чак и ако се побринемо да индекси буду поређани на одређени начин.
* **One-hot кодирање** ће заменити колону `Variety` са 4 различите колоне, једну за сваку сорту. Свака колона ће садржати `1` ако одговарајући ред припада датој сорти, и `0` у супротном. То значи да ће постојати четири коефицијента у линеарној регресији, један за сваку сорту бундева, одговоран за "почетну цену" (или боље речено "додатну цену") за ту конкретну сорту.
* Једноставно **нумеричко кодирање** ће направити табелу различитих врста, а затим заменити име врсте индексом у тој табели. Ово није најбоља идеја за линеарну регресију, јер линеарна регресија узима стварну нумеричку вредност индекса и додаје је резултату, множећи неким коефицијентом. У нашем случају, веза између броја индекса и цене је очигледно нелинеарна, чак и ако се уверимо да су индекси поређани на одређени начин.
* **One-hot кодирање** ће заменити колону `Variety` са 4 различите колоне, по једна за сваку врсту. Свака колона ће садржати `1` ако одговарајући ред припада тој врсти, а `0` у супротном. То значи да ће постојати четири коефицијента у линеарној регресији, по један за сваку врсту тикве, одговорни за "почетну цену" (или боље рећи "додатну цену") за ту конкретну врсту.
Код испод показује како можемо one-hot кодирати сорту:
Код испод показује како можемо one-hot кодирати врсту:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
Да бисмо тренирали линеарну регресију користећи one-hot кодиране сорте као улаз, само треба да правилно иницијализујемо `X` и `y` податке:
За тренирање линеарне регресије користећи one-hot енкодовану врсту као улаз, потребно је само правилно иницијализовати `X` и `y` податке:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
Остатак кода је исти као што смо користили горе за тренирање линеарне регресије. Ако пробате, видећете да је средња квадратна грешка отприлике иста, али добијамо много већи коефицијент детерминације (~77%). Да бисмо добили још прецизнија предвиђања, можемо узети у обзир више категоријалних карактеристика, као и нумеричке карактеристике, као што су `Month` или `DayOfYear`. Да бисмо добили један велики низ карактеристика, можемо користити `join`:
Остатак кода је исти као што смо користили горе за тренирање линеарне регресије. Ако покушате, видећете да је средња квадратична грешка отприлике иста, али добијамо много већи коефицијент детерминације (~77%). Да бисмо добили још прецизнија предвиђања, можемо узети у обзир више категоријалних карактеристика, као и нумеричких, као што су `Month` или `DayOfYear`. Да бисмо добили један велики низ карактеристика, можемо користити `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -297,69 +317,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
```
Овде узимамо у обзир и `City` и тип `Package`, што нам даје MSE 2.84 (10%) и детерминацију 0.94!
Овде такође узимамо у обзир `City` и тип `Package`, што нам даје MSE 2.84 (10%) и коефицијент детерминације 0.94!
## Све на једном месту
## Све заједно
Да бисмо направили најбољи модел, можемо користити комбиноване (one-hot кодиране категоријалне + нумеричке) податке из горњег примера заједно са полиномијалном регресијом. Ево комплетног кода за вашу удобност:
Да бисмо направили најбољи модел, можемо користити комбиноване (one-hot енкодиране категоријалне + нумеричке) податке из горњег примера заједно са полиномијалном регресијом. Ево комплетног кода за вашу погодност:
```python
# set up training data
# подесити податке за обуку
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# направити подјелу на тренинг и тест
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# подесити и обучити процес
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# предвидети резултате за тест податке
pred = pipeline.predict(X_test)
# calculate MSE and determination
# израчунати MSE и коефицијент детерминације
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
Ово би требало да нам да најбољи коефицијент детерминације од скоро 97% и MSE=2.23 (~8% грешке у предвиђању).
Ово би требало да нам да најбољи коефицијент детерминације од скоро 97%, и MSE=2.23 (~8% грешке у предвиђању).
| Модел | MSE | Детерминација |
|-------|-----|---------------|
| `DayOfYear` Линеарни | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Полиномијални | 2.73 (17.0%) | 0.08 |
| `Variety` Линеарни | 5.24 (19.7%) | 0.77 |
| Све карактеристике Линеарни | 2.84 (10.5%) | 0.94 |
| Све карактеристике Полиномијални | 2.23 (8.25%) | 0.97 |
| Модел | MSE | Коэффицијент детерминације |
|-------|-----|-----------------------------|
| Линеарна `DayOfYear` | 2.77 (17.2%) | 0.07 |
| Полиномијална `DayOfYear` | 2.73 (17.0%) | 0.08 |
| Линеарна `Variety` | 5.24 (19.7%) | 0.77 |
| Линеарна са свим карактеристикама | 2.84 (10.5%) | 0.94 |
| Полиномијална са свим карактеристикама | 2.23 (8.25%) | 0.97 |
🏆 Браво! Направили сте четири модела регресије у једном часу и побољшали квалитет модела до 97%. У последњем делу о регресији, научићете о логистичкој регресији за одређивање категорија.
🏆 Браво! Креирали сте четири регресона модела у једном часу и побољшали квалитет модела на 97%. У завршном делу о регресији научићете о логистичкој регресији за одређивање категорија.
---
## 🚀Изазов
## 🚀Изазов
Тестирајте неколико различитих променљивих у овом нотебооку да видите како корелација одговара тачности модела.
Испробајте неколико различитих променљивих у овом notebook-у да бисте видели како корелација одговара тачности модела.
## [Квиз након предавања](https://ff-quizzes.netlify.app/en/ml/)
## Преглед и самостално учење
## Преглед и самостално учење
У овом часу смо научили о линеарној регресији. Постоје и други важни типови регресије. Прочитајте о техникама Stepwise, Ridge, Lasso и Elasticnet. Добар курс за даље учење је [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
У овом часу смо учили о линеарној регресији. Постоје и други важни типови регресије. Прочитајте о Stepwise, Ridge, Lasso и Elasticnet техникама. Добар курс за учење више је [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Задатак
## Задатак
[Направите модел](assignment.md)
[Направи модел](assignment.md)
---
**Одрицање од одговорности**:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако тежимо тачности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква неспоразумевања или погрешна тумачења која могу произаћи из коришћења овог превода.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Резервaција од одговорности**:
Овај документ је преведен уз помоћ AI услуге за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Иако тежимо тачности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Изворни документ на свом оригиналном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразуми или погрешне интерпретације проузроковане коришћењем овог превода.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# Класификатори кухиња 2
У овој другој лекцији о класификацији, истражићете више начина за класификацију нумеричких података. Такође ћете научити о последицама избора једног класификатора у односу на други.
У овом другом часу о класификацији, истражићете више начина за класификацију нумеричких података. Такође ћете научити које су последице избора једног класификатора уместо другог.
## [Квиз пре предавања](https://ff-quizzes.netlify.app/en/ml/)
### Предуслови
Претпостављамо да сте завршили претходне лекције и да имате очишћен скуп података у вашем фолдеру `data` под називом _cleaned_cuisines.csv_ у корену овог фолдера са 4 лекције.
Претпоставка је да сте завршили претходне лекције и да имате очишћени скуп података у вашем фолдеру `data` под именом _cleaned_cuisines.csv_ у корену овог фолдера са 4 лекције.
### Припрема
Учитали смо ваш фајл _notebook.ipynb_ са очишћеним скупом података и поделили га на X и y оквире података, спремне за процес изградње модела.
Учитао сам ваш фајл _notebook.ipynb_ са очишћеним скупом података и поделио га у X и y dataframe-ове, спремне за процес прављења модела.
## Мапа класификације
Претходно сте научили о различитим опцијама које имате приликом класификације података користећи Microsoft-ов „cheat sheet“. Scikit-learn нуди сличан, али детаљнији „cheat sheet“ који вам може додатно помоћи да сузите избор класификатора (други термин за класификаторе):
Претходно сте учили о разним опцијама при класификацији података помоћу Microsoft-овог сажетка. Scikit-learn нуди сличан, али детаљнији сажетак који даље помаже да се сузи избор естиматора (други израз за класификаторе):
![МЛ мапа из Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Савет: [погледајте ову мапу онлајн](https://scikit-learn.org/stable/tutorial/machine_learning_map/) и кликните дуж путање да бисте прочитали документацију.
![ML Map from Scikit-learn](../../../../translated_images/sr/map.e963a6a51349425a.webp)
> Савет: [посетите ову мапу онлајн](https://scikit-learn.org/stable/tutorial/machine_learning_map/) и кликните на пут да бисте прочитали документацију.
### План
Ова мапа је веома корисна када имате јасну представу о вашим подацима, јер можете „ходати“ дуж њених путања до одлуке:
Ова мапа је веома корисна када имате јасан увид у своје податке, јер можете „ходати“ по њеним стазама до одлуке:
- Имамо >50 узорака
- Желимо да предвидимо категорију
- Имамо означене податке
- Имамо мање од 100.000 узорака
- ✨ Можемо изабрати Linear SVC
- Ако то не ради, пошто имамо нумеричке податке
- Можемо пробати ✨ KNeighbors Classifier
- Ако то не ради, пробајте ✨ SVC и ✨ Ensemble Classifiers
- Имамо >50 узорака
- Желимо да предвидимо категорију
- Имамо означене податке
- Имамо мање од 100K узорака
- ✨ Можемо изабрати Linear SVC
- Ако то не функционише, пошто имамо нумеричке податке
- Можемо пробати ✨ KNeighbors класификатор
- Ако то не ради, пробајте ✨ SVC и ✨ Ensemble класификаторе
Ово је веома корисна путања коју треба пратити.
Ово је врло користан пут који треба следити.
## Вежба - поделите податке
## Вежба - подели податке
Пратећи ову путању, требало би да почнемо увозом неких библиотека за коришћење.
Пратећи овај пут, требало би да почнемо тако што ћемо импортовати неке библиотеке за коришћење.
1. Увезите потребне библиотеке:
1. Импортујте потребне библиотеке:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@
import numpy as np
```
2. Поделите ваше податке на тренинг и тест:
1. Поделите своје тренирајуће и тест податке:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linear SVC класификатор
Support-Vector Clustering (SVC) је део породице техника машинског учења Support-Vector Machines (СВМ) (више о томе у наставку). У овом методу, можете изабрати „kernel“ да одлучите како да групишете ознаке. Параметар 'C' се односи на 'регуларизацију', која регулише утицај параметара. Kernel може бити један од [неколико](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); овде га постављамо на 'linear' како бисмо искористили Linear SVC. Вероватноћа је подразумевано 'false'; овде је постављамо на 'true' како бисмо добили процене вероватноће. Постављамо random state на '0' како бисмо измешали податке за добијање вероватноћа.
Support-Vector clustering (SVC) припада породици Support-Vector машина за машинско учење (сазнајте више о њима испод). У овој методи можете одабрати „кернел“ да бисте одлучили како да кластерирате етикете. Параметар „C“ односи се на „регуларизацију“ која регулише утицај параметара. Кернел може бити један од [више](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); овде смо га подесили на „linear“ да бисмо искористили линеарни SVC. Веројатност је подразумевано „false“; овде смо је подесили на „true“ да бисмо сакупили процене вероватноће. Случајно стање подешено је на '0' како бисмо „мешали“ податке да добијемо вероватноће.
### Вежба - примените Linear SVC
### Вежба - примени линеарни SVC
Почните са креирањем низа класификатора. Додаваћете постепено у овај низ како будемо тестирали.
Почните тако што ћете креирати низ класификатора. Постепено ћете додавати у овај низ како тестирањем будемо напредовали.
1. Почните са Linear SVC:
```python
C = 10
# Create different classifiers.
# Направите различите класификаторе.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Тренирајте ваш модел користећи Linear SVC и испишите извештај:
2. Тренирајте свој модел користећи Linear SVC и испишите извештај:
```python
n_classifiers = len(classifiers)
@ -107,19 +107,19 @@ Support-Vector Clustering (SVC) је део породице техника ма
## K-Neighbors класификатор
K-Neighbors је део породице метода машинског учења „neighbors“, које се могу користити за надгледано и ненадгледано учење. У овом методу, унапред дефинисан број тачака се креира, а подаци се групишу око тих тачака тако да се могу предвидети генерализоване ознаке за податке.
K-Neighbors припада породици „neighbors“ метода машинског учења, које се могу користити и за надгледано и за ненадгледано учење. У овој методи, дефинисан број тачака се креира и подаци се прикупљају око тих тачака тако да се могу предвидети генерализоване ознаке за податке.
### Вежба - примените K-Neighbors класификатор
### Вежба - примени K-Neighbors класификатор
Претходни класификатор је био добар и добро је радио са подацима, али можда можемо добити бољу тачност. Пробајте K-Neighbors класификатор.
Претходни класификатор је био добар и добро је радио са подацима, али можда можемо добити бољу прецизност. Испробајте K-Neighbors класификатор.
1. Додајте линију у ваш низ класификатора (додајте зарез након Linear SVC ставке):
1. Додајте један ред у свој низ класификатора (додајте зарез након Linear SVC ставке):
```python
'KNN classifier': KNeighborsClassifier(C),
```
Резултат је мало лошији:
Резултат је нешто лошији:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ K-Neighbors је део породице метода машинског уче
weighted avg 0.76 0.74 0.74 1199
```
✅ Сазнајте више о [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ Сазнајте о [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Support Vector Classifier
## Support Vector класификатор
Support-Vector класификатори су део породице метода машинског учења [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) које се користе за задатке класификације и регресије. СВМ-ови „мапирају примере тренинга у тачке у простору“ како би максимизовали удаљеност између две категорије. Накнадни подаци се мапирају у овај простор како би се предвидела њихова категорија.
Support-Vector класификатори припадају породици [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) машинског учења која се користи за задатке класификације и регресије. SVM-ови „пројектују тренинг примере у простор“ како би максимизовали растојање између две категорије. Накнадни подаци се пројектују у овај простор тако да се може предвидети њихова категорија.
### Вежба - примените Support Vector Classifier
### Вежба - примени Support Vector класификатор
Покушајмо да добијемо мало бољу тачност са Support Vector Classifier.
Хајде да пробамо мало бољу прецизност са Support Vector класификатором.
1. Додајте зарез након K-Neighbors ставке, а затим додајте ову линију:
1. Додајте зарез након K-Neighbors ставке, а затим додајте овај ред:
```python
'SVC': SVC(),
```
Резултат је прилично добар!
Резултат је веома добар!
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ Support-Vector класификатори су део породице мето
weighted avg 0.84 0.83 0.83 1199
```
✅ Сазнајте више о [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ Сазнајте о [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ensemble класификатори
Хајде да пратимо путању до самог краја, иако је претходни тест био прилично добар. Пробајмо неке 'Ensemble класификаторе', конкретно Random Forest и AdaBoost:
Хајде да пратимо пут до самог краја, иако је претходни тест био врло добар. Испробајмо неке 'Ensemble класификаторе', конкретно Random Forest и AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
Резултат је веома добар, посебно за Random Forest:
Резултат је врло добар, посебно за Random Forest:
```output
Accuracy (train) for RFST: 84.5%
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ Сазнајте више о [Ensemble класификаторима](https://scikit-learn.org/stable/modules/ensemble.html)
✅ Сазнајте о [Ensemble класификаторима](https://scikit-learn.org/stable/modules/ensemble.html)
Овај метод машинског учења „комбинује предвиђања неколико основних процењивача“ како би побољшао квалитет модела. У нашем примеру, користили смо Random Trees и AdaBoost.
Ова метода машинског учења „спаја предвиђања неколико базних естиматора“ да побољша квалитет модела. У нашем примеру користили смо Random Trees и AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), метод просечавања, гради „шуму“ од „одлука дрвећа“ са додатком случајности како би се избегло пренапасавање. Параметар n_estimators је подешен на број стабала.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), метода просека, гради „шуму“ „одлучујућих стабала“ која су утицана случајношћу како би се избегло претеривање. Параметар n_estimators подешен је на број стабала.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) прилагођава класификатор скупу података, а затим прилагођава копије тог класификатора истом скупу података. Фокусира се на тежине погрешно класификованих ставки и прилагођава следећи класификатор како би исправио грешке.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) прилагођава класификатор скупу података, а затим прилагођава копије тог класификатора на исти скуп података. Фокусира се на тежине неправилно класификованих предмета и подешава прилагођавање за следећи класификатор да исправи грешке.
---
## 🚀Изазов
Свака од ових техника има велики број параметара које можете подесити. Истражите подразумеване параметре сваке од њих и размислите шта би значило подешавање тих параметара за квалитет модела.
Свака од ових техника има велики број параметара које можете подешавати. Истражите подразумеване параметре сваке и размислите шта би подешавање тих параметара значило за квалитет модела.
## [Квиз након предавања](https://ff-quizzes.netlify.app/en/ml/)
## Преглед и самостално учење
У овим лекцијама има доста жаргона, па одвојите минут да прегледате [ову листу](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) корисне терминологије!
У овим лекцијама има доста терминологије, зато одвојите минут да прегледате [овој списак](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) корисних појмова!
## Задатак
## Домашћи задатак
[Играње са параметрима](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Одрицање од одговорности**:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.
Овај документ је преведен коришћењем сервиса за превођење уз помоћ вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде што прецизнији, молимо имајте у виду да аутоматизовани преводи могу садржати грешке или нетачности. Изворни документ на његовом оригиналном језику треба сматрати коначним и ауторитативним извором. За критичне информације препоручује се стручно људско превођење. Не преузимамо одговорност за било какве неспоразуме или нетачне интерпретације настале употребом овог превода.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# Изградња модела за класификацију\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Одрицање од одговорности**: \nОвај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако тежимо тачности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Одрицање од одговорности**:\nОвај документ је преведен коришћењем АИ сервиса за превођење [Co-op Translator](https://github.com/Azure/co-op-translator). Иако тежимо прецизности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Изворни документ на његовом оригиналном језику треба сматрати ауторитетом. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразуми или погрешна тумачења настала коришћењем овог превода.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-06T14:42:19+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "sr"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# Направите више модела за класификацију\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Пробајте различите класификаторе\n"
"# Испробајте различите класификаторе\n"
]
},
{
@ -146,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -261,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Одрицање од одговорности**: \nОвај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако тежимо тачности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Одрицање од одговорности**:\nОвај документ је преведен коришћењем АИ преводилачке услуге [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Изворни документ на његовом родном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални превод од стране људи. Нисмо одговорни за било какве неспоразуме или погрешне интерпретације настале употребом овог превода.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-06T14:42:48+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "sr"
}
},
"nbformat": 4,

@ -10,75 +10,86 @@
### 🌐 Подршка на више језика
#### Подржано кроз GitHub Action (Аутоматски и увек ажурирано)
#### Подржано путем GitHub акције (аутоматски и увек ажурирано)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Арапски](../ar/README.md) | [Бенгалски](../bn/README.md) | [Бугарски](../bg/README.md) | [Бирмански (Мјанмар)](../my/README.md) | [Поједностављени кинески](../zh-CN/README.md) | [Традиционални кинески (Хонг Конг)](../zh-HK/README.md) | [Традиционални кинески (Макао)](../zh-MO/README.md) | [Традиционални кинески (Тајван)](../zh-TW/README.md) | [Хрватски](../hr/README.md) | [Чешки](../cs/README.md) | [Дански](../da/README.md) | [Холандски](../nl/README.md) | [Естонски](../et/README.md) | [Фински](../fi/README.md) | [Француски](../fr/README.md) | [Немачки](../de/README.md) | [Грчки](../el/README.md) | [Хебрејски](../he/README.md) | [Хинди](../hi/README.md) | [Мађарски](../hu/README.md) | [Индонежански](../id/README.md) | [Италијански](../it/README.md) | [Јапански](../ja/README.md) | [Канада](../kn/README.md) | [Корејски](../ko/README.md) | [Литвански](../lt/README.md) | [Малајски](../ms/README.md) | [Малајалам](../ml/README.md) | [Марати](../mr/README.md) | [Непалски](../ne/README.md) | [Нигеријски пидгин](../pcm/README.md) | [Норвешки](../no/README.md) | [Персијски (Фарси)](../fa/README.md) | [Пољски](../pl/README.md) | [Португалски (Бразил)](../pt-BR/README.md) | [Португалски (Португал)](../pt-PT/README.md) | [Пунџаби (Гурмукхи)](../pa/README.md) | [Румунски](../ro/README.md) | [Руски](../ru/README.md) | [Српски (ћирилица)](./README.md) | [Словачки](../sk/README.md) | [Словеначки](../sl/README.md) | [Шпански](../es/README.md) | [Свахили](../sw/README.md) | [Шведски](../sv/README.md) | [Тагалог (Филипински)](../tl/README.md) | [Тамилски](../ta/README.md) | [Телугу](../te/README.md) | [Тајски](../th/README.md) | [Турски](../tr/README.md) | [Украјински](../uk/README.md) | [Урду](../ur/README.md) | [Вијетнамски](../vi/README.md)
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](./README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Више волите да клонирате локално?**
> Ово складиште садржи преко 50 превода на различите језике што значајно повећава величину преузимања. Да бисте клонирали без превода, користите sparse checkout:
> **Волите да клонирате локално?**
>
> Овај репозиторијум садржи преводе на преко 50 језика што значајно повећава величину преузимања. Да бисте клонирали без превода, користите sparse checkout:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> Ово вам даје све што вам је потребно за завршетак курса са много бржим преузимањем.
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Ово вам даје све што вам је потребно да завршите курс много брже.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Придружите се нашој заједници
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Имамо текући серијал учења "Learn with AI" на Discord-у, сазнајте више и придружите нам се на [Learn with AI Series](https://aka.ms/learnwithai/discord) од 18. до 30. септембра 2025. године. Добит ћете савете и трикове за коришћење GitHub Copilot-а за Data Science.
Имате серију учења помоћу Discord-а, сазнајте више и придружите нам се на [Learn with AI Series](https://aka.ms/learnwithai/discord) од 18. до 30. септембра 2025. године. Добићете савете и трикове за коришћење GitHub Copilot-а у Data Science-у.
![Learn with AI series](../../translated_images/sr/3.9b58fd8d6c373c20.webp)
# Машинско учење за почетнике - Наставни програм
> 🌍 Путујте око света док истражујемо Машинско учење кроз културе света 🌍
> 🌍 Путујте широм света док истражујемо Машинско учење кроз културе света 🌍
Cloud Advocates у Microsoft-у са задовољством нуде 12-недељни програм од 26 лекција у вези са **Машинским учењем**. У овом програму научићете о ономе што се понекад назива **класичним машинским учењем**, користећи углавном Scikit-learn као библиотеку и избегавајући дубоко учење, које је обухваћено у нашем [AI for Beginners' nastavnom planu](https://aka.ms/ai4beginners). Повежите ове лекције са нашим ['Data Science for Beginners' наставним планом](https://aka.ms/ds4beginners) такође!
Cloud Advocates у Microsoft-у са задовољством нуде 12-недељни наставни програм са 26 лекција који је посвећен **Машинском учењу**. У овом програму учићете о ономе што се понекад назива **класично машинско учење**, користећи углавном библиотеку Scikit-learn и избегавајући дубоко учење, које је обухваћено у нашем [AI за почетнике наставном програму](https://aka.ms/ai4beginners). Такође упарите ове лекције са нашим ['Data Science за почетнике наставним програмом'](https://aka.ms/ds4beginners)!
Путујте с нама кроз свет док примењујемо ове класичне технике на податке из многих делова света. Свака лекција садржи квизове пре и после лекције, писана упутства за завршетак лекције, решење, задатак и још много тога. Наша педагогија заснована на пројектима омогућава вам учење кроз рад, доказани начин да нова знања остану запамћена.
Путујте с нама широм света док примењујемо ове класичне технике на податке из разних делова света. Свака лекција укључује квиз пре и после лекције, писане упутства за завршетак лекције, решење, задатак и још много тога. Наша педагошка метода заснована на пројектима омогућава вам учење кроз практичан рад, што је доказан начин да нова знања "пристану".
**✍️ Срдачна захвалност нашим ауторима** Јен Лупер, Стивен Хауел, Франческа Лаззери, Томоми Имура, Каси Бревиу, Дмитриј Сошников, Крис Норинг, Анирбан Мукерџи, Орнела Алтуњан, Рут Јакубу и Ејми Боуд
**✍️ Љубазне захвалности нашим ауторима** Јен Лупер, Стефен Хауел, Франческа Лазери, Томоми Имура, Кеси Бревиу, Дмитриј Сошников, Крис Норинг, Анирбан Мукерџи, Орнела Алтуњан, Рут Јакубу и Ејми Бојд
**🎨 Захвалност илустраторима** Томоми Имура, Дасани Мадипали и Јен Лупер
**🎨 Захвалност и нашим илустраторима** Томоми Имура, Дасани Мадипали и Јен Лупер
**🙏 Посебна захвалност 🙏 нашим Microsoft Student Ambassador ауторима, рецензентима и доприносиоцима садржаја**, нарочито Ришиту Дагли, Мухаммеду Сакиб Хан Инан, Рохану Рај, Александру Петреску, Абхишеку Џаисвалу, Наврин Табасум, Иоану Самуила и Снигди Агарвал
**🙏 Посебна захвалност 🙏 нашим Microsoft Student Ambassador ауторима, рецензентима и сарадницима садржаја**, поготово Ришиту Даглију, Мухамаду Сакибу Кхан Инану, Рохану Рају, Александру Петреску, Абхишеку Јаисвалу, Наврин Табасум, Јоану Самуила и Снигхи Агарвал
**🤩 Додатна захвалност Microsoft Student Ambassadors Ерику Вањау, Јаслину Сонди и Видуши Гупта за наше R лекције!**
**🤩 Посебна захвалност Microsoft Student Ambassadors Ерику Вањау, Јаслину Сондију и Видуши Гупти за наше R лекције!**
# Почетак рада
# Почетак
Пратите ове кораке:
1. **Форк вашег репозиторијума**: Кликните дугме "Fork" у горњем десном углу ове странице.
1. **Форкујте репозиторијум**: Кликните на дугме "Fork" у горњем десном углу ове странице.
2. **Клонирајте репозиторијум**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [пронађите све додатне ресурсе за овај курс у нашој Microsoft Learn колекцији](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [пронађите све додатне ресурсе за овај курс у нашој колекцији на Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Треба помоћ?** Погледајте наш [Водич за решавање проблема](TROUBLESHOOTING.md) за решења уобичајених проблема са инсталацијом, подешавањем и покретањем лекција.
> 🔧 **Треба вам помоћ?** Погледајте наш [Водич за решавање проблема](TROUBLESHOOTING.md) за решења уобичајених питања о инсталацији, подешавању и извођењу лекција.
**[Студенти](https://aka.ms/student-page)**, да бисте користили овај наставни програм, форкујте цело складиште на свој GitHub налог и извршавајте вежбе сами или у групи:
**[Студенти](https://aka.ms/student-page)**, да бисте користили овај наставни програм, форкујте цео репо на свој GitHub налог и радите задатке сами или у групи:
- Почните са квизом пре предавања.
- Прочитајте предавање и завршите активности, правећи паузе и размишљајући на сваком провери знања.
- Покушајте да направите пројекте разумевајући лекције уместо да само покрећете код решења; међутим, код је доступан у фолдерима `/solution` у свакој лекцији оријентисаној на пројекат.
- Урадите квиз после предавања.
- Започните квизом пре предавања.
- Прочитајте предавање и извршите активности, правећи паузе и размишљајући на сваком проверавању знања.
- Покушајте да направите пројекте разумевајући лекције, а не само покретањем решења; иако је код решења доступан у фолдиру `/solution` у свакој лекцији оријентисаној на пројект.
- Урадите квиз након предавања.
- Завршите изазов.
- Завршите задатак.
- Након завршетка групе лекција, посетите [Дискусиону таблу](https://github.com/microsoft/ML-For-Beginners/discussions) и "учите гласно" попуњавајући одговарајућу PAT рубрику. PAT је алат за процену напретка који се попуњава за боље учење. Такође можете реаговати на друге PAT-ове да бисмо учили заједно.
- Након завршетка групе лекција, посетите [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) и "учите наглас" попуњавајући одговарајућу PAT рубрику. PAT је алат за процену напретка који попуните да бисте унапредили учење. Такође можете реаговати на друге PAT-ове како бисмо заједно учили.
> За даље учење препоручујемо праћење ових [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) модула и путева учења.
> За даље учење препоручујемо праћење ових [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) модула и учењских путања.
**Наставници**, укључили смо [неке предлоге](for-teachers.md) како користити овај наставни програм.
**Наставници**, укључили смо неке [предлоге](for-teachers.md) о коришћењу овог наставног програма.
---
## Видео презентације
## Видео водичи
Неке од лекција доступне су као кратки видео снимци. Све их можете пронаћи унутар лекција или на [ML for Beginners плејлисти на Microsoft Developer YouTube каналу](https://aka.ms/ml-beginners-videos) кликом на слику испод.
Неколико лекција доступно је у кратком видео формату. Све их можете пронаћи унутар лекција или на [ML for Beginners плейлисти на Microsoft Developer YouTube каналу](https://aka.ms/ml-beginners-videos) кликом на слику испод.
[![ML for beginners banner](../../translated_images/sr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -88,79 +99,79 @@ Cloud Advocates у Microsoft-у са задовољством нуде 12-нед
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif аутор:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif од** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Кликните слику изнад за видео о пројекту и људима који су га креирали!
> 🎥 Кликните на слику изнад за видео о пројекту и људима који су га направили!
---
## Педагогија
Изабрали смо два педагошка принципа приликом креирања овог програма: обезбеђивање да буде практичан и **појекат заснован**, као и да укључује **честе квизове**. Поред тога, овај програм има заједничку **тему** која му даје кохерентност.
Изабрали смо два педагошка начела при изради овог наставног програма: обезбеђивање практичног и **на пројектима заснованог** учења и укључивање **честих квизова**. Поред тога, овај програм има заједничку **тему** која му даје кохезију.
Обезбеђивањем да садржај буде усаглашен с пројектима, процес учења постаје занимљивији за студенте и повећава се задржавање концепата. Поред тога, квиз с малим улагањем пре часа поставља студенту циљ учења, док други квиз по завршетку часа осигурава додатно задржавање градива. Овај наставни програм је дизајниран да буде флексибилан и забаван и може се користити у целини или делимично. Пројекти почињу једноставно, а завршавају се све сложенијим по завршетку 12-недељног циклуса. Програм такође укључује епилог о стварним применама машинског учења, који се може искористити као додатни бод или као основа за дискусију.
Обезбеђивањем да садржај буде усклађен са пројектима, процес учења је занимљивији за студенте и побољшава задржавање концепата. Поред тога, квиз са мало улога пре часа поставља намеру студента да научи тему, док други квиз после часа обезбеђује додатно задржавање знања. Овај програм је дизајниран да буде флексибилан и забаван и може се похађати у целини или делимично. Пројекти почињу једноставно, а са напредовањем током 12-недељног циклуса постају све сложенији. Наставни програм такође укључује послејатак о стварним применама ML-а, који може послужити као додатни бод или као основа за дискусију.
> Пронађите наше смернице [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translation](TRANSLATIONS.md) и [Troubleshooting](TROUBLESHOOTING.md). Добродошли су ваши конструктивни коментари!
> Пронађите наше смернице [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translation](TRANSLATIONS.md) и [Troubleshooting](TROUBLESHOOTING.md). Добро дошли ваши конструктивни коментари!
## Сваку лекцију чине
## Свака лекција укључује
- опционална скицнота
- опционалну скицноту
- опционални додатни видео
- видео преглед (само неке лекције)
- [преквиз пре предавања](https://ff-quizzes.netlify.app/en/ml/)
- писана лекција
- за лекције засноване на пројектима, корак по корак упутства како изградити пројекат
- видео водич (само неке лекције)
- [квиз за загревање пре предавања](https://ff-quizzes.netlify.app/en/ml/)
- писану лекцију
- за лекције о пројектима, корак-по-корак упутства за израду пројекта
- провере знања
- изазов
- додатна литература
- додатно читање
- задатак
- [постквиз након предавања](https://ff-quizzes.netlify.app/en/ml/)
> **Напомена о језицима**: Ове лекције су углавном написане у Питону, али многе су такође доступне и у R. За завршетак R лекције, идите у фолдер `/solution` и потражите R лекције. Оне имају .rmd екстензију која представља **R Markdown** датотеку која се једноставно може дефинисати као уграђивање `кодних делова` (R или других језика) и `YAML заглавља` (које води како форматити излаз као PDF) у `Markdown документ`. Као таква, служи као пример ауторског оквира за data science јер вам омогућава да комбинујете свој код, његов излаз и своје размишљање тако што ћете их записати у Markdown. Поред тога, R Markdown документи могу бити претворени у излазне формате као што су PDF, HTML или Word.
> **Напомена о квизовима**: Сви квизови се налазе у [Quiz App фолдеру](../../quiz-app), укупно 52 квиза са по три питања сваки. Они су повезани из уџбеника али апликацију за квизове можете покренути локално; пратите упутство у `quiz-app` фолдеру да бисте локално хостовали или депловали на Azure.
| Број лекције | Тема | Група лекција | Циљеви учења | Повезана лекција | Аутор |
| :----------: | :-----------------------------------------------------: | :------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------: |
| 01 | Увод у машинско учење | [Introduction](1-Introduction/README.md) | Научите основне концепте машинског учења | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Историја машинског учења | [Introduction](1-Introduction/README.md) | Научите историју овог поља | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | Поштеност и машинско учење | [Introduction](1-Introduction/README.md) | Која су важна филозофска питања о поштености која студенти треба да размотре при изградњи и примени ML модела? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Технике машинског учења | [Introduction](1-Introduction/README.md) | Које технике истраживачи ML користе за изградњу ML модела? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | Увод у регресију | [Regression](2-Regression/README.md) | Започните са Питоном и Scikit-learn за регресионе моделе | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Цена бундеве у Северној Америци 🎃 | [Regression](2-Regression/README.md) | Визуализујте и очистите податке у припреми за ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Цена бундеве у Северној Америци 🎃 | [Regression](2-Regression/README.md) | Изградите линеарне и полиномне регресионе моделе | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | Цена бундеве у Северној Америци 🎃 | [Regression](2-Regression/README.md) | Изградите логистички регресионни модел | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Веб апликација 🔌 | [Web App](3-Web-App/README.md) | Изградите веб апликацију за коришћење вашег обученог модела | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Увод у класификацију | [Classification](4-Classification/README.md) | Очистите, припремите и визуализујте своје податке; увод у класификацију | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | Укусне азијске и индијске кухиње 🍜 | [Classification](4-Classification/README.md) | Увод у класификаторе | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | Укусне азијске и индијске кухиње 🍜 | [Classification](4-Classification/README.md) | Више класификатора | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | Укусне азијске и индијске кухиње 🍜 | [Classification](4-Classification/README.md) | Изградите препоручивачку веб апликацију користећи ваш модел | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Увод у кластеровање | [Clustering](5-Clustering/README.md) | Очистите, припремите и визуализујте своје податке; увод у кластеровање | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Истраживање нигеријских музичких укуса 🎧 | [Clustering](5-Clustering/README.md) | Истражите K-Means методу кластеровања | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Увод у обраду природног језика ☕️ | [Natural language processing](6-NLP/README.md) | Научите основе NLP правећи једноставног бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Чести задаци NLP ☕️ | [Natural language processing](6-NLP/README.md) | Продубите своје знање NLP разумевањем уобичајених задатака у раду са језичким структурама | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Превод и анализа осећања ♥️ | [Natural language processing](6-NLP/README.md) | Превод и анализа осећања са Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Романтични хотели Европе ♥️ | [Natural language processing](6-NLP/README.md) | Анализа осећања кроз рецензије хотела 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Романтични хотели Европе ♥️ | [Natural language processing](6-NLP/README.md) | Анализа осећања кроз рецензије хотела 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Увод у предвиђање временских серија | [Time series](7-TimeSeries/README.md) | Увод у предвиђање временских серија | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Светска потрошња електричне енергије ⚡️ - предвиђање временских серија уз ARIMA | [Time series](7-TimeSeries/README.md) | Предвиђање временских серија коришћењем ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Светска потрошња електричне енергије ⚡️ - предвиђање временских серија уз SVR | [Time series](7-TimeSeries/README.md) | Предвиђање временских серија коришћењем Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Увод у појачано учење | [Reinforcement learning](8-Reinforcement/README.md) | Увод у појачано учење уз Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Помозите Петру да избегне вука! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Pojačano učenje уз Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Постскрипт | Реални сценарији и примене ML | [ML in the Wild](9-Real-World/README.md) | Интересне и откривачке примене класичног ML у стварном свету | [Lesson](9-Real-World/1-Applications/README.md) | Тим |
| Постскрипт | Отлањање грешака модела у ML уз RAI контролну таблу | [ML in the Wild](9-Real-World/README.md) | Отлањање грешака модела машинског учења коришћењем компоненти контролне табле Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
- [квиз након предавања](https://ff-quizzes.netlify.app/en/ml/)
> **Белешка о језицима**: Ове лекције су углавном написане у Питону, али многе су доступне и у Р-у. Да бисте завршили Р лекцију, идите у фасциклу `/solution` и потражите Р лекције. Оне имају .rmd екстензију која представља **R Markdown** датотеку која се може једноставно дефинисати као уградња `кодних делова` (Р или других језика) и `YAML заглавља` (које упућује како да се форматирају излазни подаци попут PDF) у `Markdown документу`. Као таква, служи као примерни ауторски оквир за науку о подацима јер вам омогућава да комбинујете свој код, његов излаз и своје мисли тако што вам дозвољава да их забележите у Markdown-у. Поред тога, Р Markdown документи се могу рендеровати у излазне формате као што су PDF, HTML или Word.
> **Белешка о квизовима**: Сви квизови се налазе у [Quiz App фасцикли](../../quiz-app), укупно 52 квиза са по три питања у сваком. Повезани су изнутра у лекцијама, али квиз апликацију можете покренути локално; пратите упутства у фасцикли `quiz-app` за локално хостовање или постављање на Azure.
| Још лекције | Тема | Груписање лекција | Циљеви учења | Повезана лекција | Аутор |
| :---------: | :------------------------------------------------------------: | :--------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 01 | Увод у машинско учење | [Introduction](1-Introduction/README.md) | Научите основне појмове из машинског учења | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Историја машинског учења | [Introduction](1-Introduction/README.md) | Научите историју ове области | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | Фернесс и машинско учење | [Introduction](1-Introduction/README.md) | Која су важна филозофска питања о фернессу која би студенти требали размотрити приликом изградње и примене ML модела? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Технике машинског учења | [Introduction](1-Introduction/README.md) | Које технике користе истраживачи ML за изградњу ML модела? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | Увод у регресију | [Regression](2-Regression/README.md) | Започните са Питоном и Scikit-learn за регресионе моделе | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Цене тикви у Северној Америци 🎃 | [Regression](2-Regression/README.md) | Визуелизујте и очистите податке као припрему за ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Цене тикви у Северној Америци 🎃 | [Regression](2-Regression/README.md) | Изградите линеарне и полиномијалне регресионе моделе | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | Цене тикви у Северној Америци 🎃 | [Regression](2-Regression/README.md) | Изградите логистичку регресију | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Веб апликација 🔌 | [Web App](3-Web-App/README.md) | Изградите веб апликацију за коришћење вашег обученог модела | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Увод у класификацију | [Classification](4-Classification/README.md) | Очистите, припремите и визуелизујте податке; увод у класификацију | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | Укусне азијске и индијске кухиње 🍜 | [Classification](4-Classification/README.md) | Увод у класификаторе | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | Укусне азијске и индијске кухиње 🍜 | [Classification](4-Classification/README.md) | Још класификатора | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | Укусне азијске и индијске кухиње 🍜 | [Classification](4-Classification/README.md) | Изградите препоручивачку веб апликацију користећи ваш модел | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Увод у кластерисање | [Clustering](5-Clustering/README.md) | Очистите, припремите и визуелизујте податке; увод у кластерисање | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Истраживање музичких укуса у Нигерији 🎧 | [Clustering](5-Clustering/README.md) | Истражите K-Means методу кластерисања | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Увод у обраду природног језика ☕️ | [Natural language processing](6-NLP/README.md) | Научите основе НЛП-а кроз прављење једноставног бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Уобичајени НЛП задаци ☕️ | [Natural language processing](6-NLP/README.md) | Продубите своје знање НЛП-а разумевањем уобичајених задатака везаних за језичке структуре | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Превод и анализа сентимента ♥️ | [Natural language processing](6-NLP/README.md) | Превод и анализа сентимента са Џејн Остин | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Романтични хотели Европе ♥️ | [Natural language processing](6-NLP/README.md) | Анализа сентимента са рецензијама хотела 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Романтични хотели Европе ♥️ | [Natural language processing](6-NLP/README.md) | Анализа сентимента са рецензијама хотела 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Увод у предвиђање временских серија | [Time series](7-TimeSeries/README.md) | Увод у предвиђање временских серија | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Потрошња енергије у свету ⚡️ - предвиђање временских серија са ARIMA | [Time series](7-TimeSeries/README.md) | Предвиђање временских серија са ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Потрошња енергије у свету ⚡️ - предвиђање временских серија са SVR | [Time series](7-TimeSeries/README.md) | Предвиђање временских серија уз коришћење Support Vector Regressor-а | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Увод у учење појачањем | [Reinforcement learning](8-Reinforcement/README.md) | Увод у учење појачањем са Q-Learning-ом | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Помозите Петеру да избегне вука! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Учење појачањем у Gym окружењу | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Послешкрално | Сценарији и примене ML у стварном свету | [ML in the Wild](9-Real-World/README.md) | Интересантне и откривајуће реалне примене класичног ML-a | [Lesson](9-Real-World/1-Applications/README.md) | Тим |
| Послешкрално | Дијагностика модела у ML уз коришћење RAI контролне табле | [ML in the Wild](9-Real-World/README.md) | Дијагностика модела у машинском учењу коришћењем компонената контролне табле Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [пронађите све додатне ресурсе за овај курс у нашој Microsoft Learn колекцији](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Приступ без интернет везе
## Офлајн приступ
Ову документацију можете покренути офлајн користећи [Docsify](https://docsify.js.org/#/). Форкујте овај репо, [инсталирајте Docsify](https://docsify.js.org/#/quickstart) на својој локалној машини, па у коренском фолдеру овог репоа унесите `docsify serve`. Вебсајт ће бити доступан на порту 3000 на вашем локалном серверу: `localhost:3000`.
Можете покренути ову документацију офлајн користећи [Docsify](https://docsify.js.org/#/). Форкујте овај репозиторијум, [инсталирајте Docsify](https://docsify.js.org/#/quickstart) на свом локалном рачунару и онда у коренском директоријуму овог репозиторијума укуцајте `docsify serve`. Веб сајт ће бити доступан на порту 3000 на вашем локалхосту: `localhost:3000`.
## PDF фајлови
## PDF-ови
Пронађите PDF наставног плана са линковима [овде](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Остали курсеви
## 🎒 Остали курсеви
Наш тим производи и друге курсеве! Погледајте:
@ -174,23 +185,23 @@ Cloud Advocates у Microsoft-у са задовољством нуде 12-нед
### Azure / Edge / MCP / Agents
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP за почетнике](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI агенти за почетнике](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generative AI Series
[![Generativna AI za početnike](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generativna AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generativna AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generativna AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### Серия генеративне вештачке интелигенције
[![Генеративна АИ за почетнике](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Генеративна АИ (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Генеративна АИ (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Генеративна АИ (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### Основно учење
[![ML за почетнике](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Наука о подацима за почетнике](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI за почетнике](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![АИ за почетнике](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Кибербезбедност за почетнике](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Веб развој за почетнике](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT за почетнике](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
@ -198,25 +209,30 @@ Cloud Advocates у Microsoft-у са задовољством нуде 12-нед
---
### Copilot серија
[![Copilot за AI пар програмирање](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
### Серия Copilot
[![Copilot за AI парно програмирање](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot за C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot авантура](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## Добијање помоћи
## Како добити помоћ
Ако заглавите или имате било каква питања у вези са изградњом AI апликација. Придружите се другим учесницима и искусним програмерима у дискусијама о MCP-у. Ово је подржавајућа заједница где су питања добродошла и знање се слободно дели.
Ако сте заглављени или имате било каквих питања о прављењу АИ апликација. Придружите се другим ученицима и искусним програмерима у дискусијама о MCP-у. То је подржавајућа заједница где су питања добродошла и знање се слободно дели.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Ако имате повратне информације о производу или грешке током развоја посетите:
Ако имате повратне информације о производу или грешке у току израде посетите:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Додатни савети за учење
- Прегледајте бележнице након сваког часа за боље разумевање.
- Вежбајте имплементацију алгоритама сами.
- Истражите стварне скупове података користећи научене концепте.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Изјава о одрицању одговорности**:
Овај документ је преведен коришћењем услуге за аутоматски превод [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да буде прецизно, имајте у виду да аутоматски преводи могу садржати грешке или нетачности. Изворни документ на његовом оригиналном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални људски превод. Ми нисмо одговорни за било каква неспоразума или погрешна тумачења која могу настати коришћењем овог превода.
**Одрицање од одговорности**:
Овај документ је преведен коришћењем АИ сервиса за превођење [Co-op Translator](https://github.com/Azure/co-op-translator). Док тежимо прецизности, молимо имајте у виду да аутоматски преводи могу садржати грешке или нетачности. Изворни документ на његовом оригиналном језику треба сматрати ауторитетним извором. За кључне информације препоручује се професионални превод од стране људи. Нисмо одговорни за било каква неразумевања или погрешне интерпретације које произилазе из употребе овог превода.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save