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

pull/935/head
localizeflow[bot] 1 month ago
parent 4560cbbe7d
commit d2fe79afcf

@ -30,8 +30,8 @@
"language_code": "bg"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T00:25:31+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T10:25:05+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "bg"
},
@ -90,8 +90,8 @@
"language_code": "bg"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-04T23:19:25+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T10:26:28+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "bg"
},
@ -186,8 +186,8 @@
"language_code": "bg"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T00:49:19+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T10:27:00+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "bg"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "bg"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T10:17:02+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "bg"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T00:51:34+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "bg"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T10:17:08+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "bg"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T00:46:18+00:00",
@ -540,8 +552,8 @@
"language_code": "bg"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T09:01:27+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T10:24:57+00:00",
"source_file": "README.md",
"language_code": "bg"
},

@ -1,16 +1,18 @@
# Разгледайте инструмента Responsible AI Toolbox
# Разгледайте Инструментариума за Отговорен ИИ
## Инструкции
В този урок научихте за Responsible AI Toolbox, "проект с отворен код, ръководен от общността, който помага на специалистите по данни да анализират и подобряват AI системи." За тази задача, разгледайте един от [бележниците](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) на RAI Toolbox и представете своите открития в доклад или презентация.
В този урок научихте за Инструментариума за Отговорен ИИ, „отворен, общностно задвижван проект, който помага на специалистите по данни да анализират и подобряват ИИ системи.“ За тази задача разгледайте един от [бележниците](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) на RAI Toolbox и представете своите открития в доклад или презентация.
## Критерии за оценка
## Рубрика
| Критерии | Отлично | Задоволително | Нуждае се от подобрение |
| Критерии | Отлично | Приемливо | Изисква подобрение |
| -------- | --------- | -------- | ----------------- |
| | Представен е доклад или презентация, обсъждаща системите на Fairlearn, бележникът, който е бил изпълнен, и изводите, направени от него | Представен е доклад без изводи | Не е представен доклад |
| | Представен е доклад или презентация, в които се обсъждат системите на Fairlearn, изпълненият бележник и изводите от неговото изпълнение | Представен е доклад без изводи | Не е представен доклад |
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [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,124 +1,136 @@
# Създаване на регресионен модел с помощта на Scikit-learn: четири подхода към регресията
# Създаване на регресионен модел с помощта на Scikit-learn: регресия по четири начина
![Инфографика за линейна и полиномиална регресия](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## Забележка за начинаещи
Линейната регресия се използва, когато искаме да предвидим **числова стойност** (например, цена на къща, температура или продажби). Тя работи, като намира права линия, която най-добре представя връзката между входните характеристики и изходния резултат.
В този урок се съсредоточаваме върху разбирането на концепцията, преди да разгледаме по-напреднали техники за регресия.
![Линейна срещу полиномиална регресия инфографика](../../../../translated_images/bg/linear-polynomial.5523c7cb6576ccab.webp)
> Инфографика от [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Тест преди лекцията](https://ff-quizzes.netlify.app/en/ml/)
## [Предварителен тест преди лекцията](https://ff-quizzes.netlify.app/en/ml/)
> ### [Този урок е наличен и на 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 бушел?
- Кога е най-доброто време за купуване на тикви?
- Каква цена мога да очаквам за кутия с миниатюрни тикви?
- Трябва ли да ги купувам в кошници от половин бушел или в кутии от 1 1/9 бушел?
Нека продължим да изследваме тези данни.
В предишния урок създадохте рамка с данни с Pandas и я запълнихте с част от оригиналния набор от данни, стандартизирайки цените на бушел. По този начин обаче успяхте да съберете само около 400 точки с данни и само за есенните месеци.
В предишния урок създадохте Pandas DataFrame и го напълнихте с част от оригиналния набор от данни, стандартизирайки цените по бушел. По този начин обаче събрахте около 400 точки данни и само за есенните месеци.
Разгледайте данните, които предварително заредихме в придружаващата тетрадка на този урок. Данните са предварително заредени и е начертан първоначален разпръснат график, за да се покаже информацията за месеците. Може би можем да получим малко повече подробности за естеството на данните, като ги почистим допълнително.
Вижте предварително заредените данни в ноутбука, предоставен към този урок. Данните са заредени, а първоначален диаграма на разсейване показва месечна информация. Може би можем да получим малко повече детайли за естеството на данните, като ги почистим още.
## Линия на линейна регресия
Както научихте в Урок 1, целта на упражнението по линейна регресия е да начертаете линия, която:
Както научихте в Урок 1, целта на упражнението по линейна регресия е да може да начертаете линия, която да:
- **Показва връзката между променливите**. Показва връзката между променливите
- **Прави прогнози**. Прави точни прогнози къде би попаднала нова точка в отношение към тази линия.
Типично за **регресия с минимални квадрати** е да се начертае такава линия. Терминът "Минимални квадрати" се отнася до процеса на минимизиране на общата грешка в нашия модел. За всяка точка измерваме вертикалното разстояние (наречено остатък) между реалната точка и нашата регресионна линия.
Тези разстояния се повдигат на квадрат по две основни причини:
- **Показва връзките между променливите**. Показва връзката между променливите.
- **Прави прогнози**. Прави точни прогнози за това къде нова точка с данни би попаднала спрямо тази линия.
1. **Магнитуда пред посока:** Искаме да третираме грешката -5 по същия начин както грешката +5. Квадратирането прави всички стойности положителни.
Типично за **регресията с най-малки квадрати** е да се начертае този тип линия. Терминът "най-малки квадрати" означава, че всички точки с данни около регресионната линия се повдигат на квадрат и след това се събират. Идеално е тази крайна сума да е възможно най-малка, защото искаме малък брой грешки или `най-малки квадрати`.
2. **Налагане на наказание за отклонения:** Квадратирането дава по-голяма тежест на по-големите грешки, карайки линията да стои по-близо до далечните точки.
Правим това, защото искаме да моделираме линия, която има най-малкото кумулативно разстояние от всички наши точки с данни. Също така повдигаме на квадрат стойностите преди да ги съберем, защото ни интересува тяхната големина, а не посоката им.
След това събираме всички тези квадратирани стойности. Целта ни е да намерим конкретната линия, при която тази окончателна сума е най-малка (най-ниската възможна стойност) — откъдето идва името "Минимални квадрати".
> **🧮 Покажете ми математиката**
> **🧮 Покажи ми математиката**
>
> Тази линия, наречена _линия на най-добро съответствие_, може да бъде изразена чрез [уравнение](https://en.wikipedia.org/wiki/Simple_linear_regression):
> Тази линия, наречена _линия на най-добро напасване_, може да бъде изразена чрез [уравнение](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` е "обяснителната променлива". `Y` е "зависимата променлива". Наклонът на линията е `b`, а `a` е пресечната точка с оста Y, която се отнася до стойността на `Y`, когато `X = 0`.
> `X` е 'обяснителната променлива'. `Y` е 'зависимата променлива'. Наклонът на линията е `b`, а `a` е пресечната точка с оста Y, което се отнася до стойността на `Y` когато `X = 0`.
>
> ![изчисляване на наклона](../../../../2-Regression/3-Linear/images/slope.png)
>![изчисляване на наклона](../../../../translated_images/bg/slope.f3c9d5910ddbfcf9.webp)
>
> Първо, изчислете наклона `b`. Инфографика от [Jen Looper](https://twitter.com/jenlooper)
> Първо се изчислява наклонът `b`. Инфографика от [Jen Looper](https://twitter.com/jenlooper)
>
> С други думи, и като се позоваваме на първоначалния въпрос за данните за тиквите: "предскажете цената на тиква на бушел по месеци", `X` би се отнасяло до цената, а `Y` би се отнасяло до месеца на продажба.
> С други думи, и отнасяйки се към първоначалния въпрос в нашите тиквени данни: "предсказване на цената на тиква за бушел по месеци", `X` би се отнасяло до цената, а `Y` - до месеца на продажба.
>
> ![завършване на уравнението](../../../../2-Regression/3-Linear/images/calculation.png)
>![завърши уравнението](../../../../translated_images/bg/calculation.a209813050a1ddb1.webp)
>
> Изчислете стойността на Y. Ако плащате около $4, значи е април! Инфографика от [Jen Looper](https://twitter.com/jenlooper)
>
> Математиката, която изчислява линията, трябва да демонстрира наклона на линията, който също зависи от пресечната точка или къде се намира `Y`, когато `X = 0`.
> Математиката зад линията трябва да покаже наклона на линията, който зависи и от пресечната точка или къде се намира `Y`, когато `X = 0`.
>
> Можете да наблюдавате метода на изчисление за тези стойности на уебсайта [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Също така посетете [този калкулатор за най-малки квадрати](https://www.mathsisfun.com/data/least-squares-calculator.html), за да видите как стойностите на числата влияят на линията.
> Можете да наблюдавате метода за изчисление на тези стойности на уебсайта [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Също посетете [този калкулатор за минимални квадрати](https://www.mathsisfun.com/data/least-squares-calculator.html), за да видите как стойностите на числата влияят на линията.
## Корелация
Още един термин, който трябва да разберете, е **коефициентът на корелация** между дадените променливи X и Y. С помощта на разпръснат график можете бързо да визуализирате този коефициент. График с точки, разположени в права линия, има висока корелация, но график с точки, разпръснати навсякъде между X и Y, има ниска корелация.
Още един термин, който трябва да разберете, е **коефициентът на корелация** между дадени променливи X и Y. С разсейваща диаграма бързо можете да визуализирате този коефициент. Графика с точки, подредени около права линия, има висока корелация, но графика с точки, разпръснати хаотично между X и Y, има ниска корелация.
Добър модел за линейна регресия ще бъде този, който има висок (по-близо до 1, отколкото до 0) коефициент на корелация, използвайки метода на регресия с най-малки квадрати с линия на регресия.
Добър модел за линейна регресия ще бъде този, който има висок (близо до 1, а не до 0) коефициент на корелация, използвайки метода на минимални квадрати с регресионна линия.
✅ Стартирайте тетрадката, придружаваща този урок, и разгледайте разпръснатия график "Месец към Цена". Според вашата визуална интерпретация на разпръснатия график, изглежда ли, че данните за продажбите на тикви имат висока или ниска корелация? Променя ли се това, ако използвате по-прецизна мярка вместо `Месец`, например *ден от годината* (т.е. брой дни от началото на годината)?
✅ Стартирайте ноутбука към този урок и разгледайте разсейващата диаграма за връзката Месец - Цена. Изглежда ли, че данните свързващи Месец с Цена за продажбата на тикви имат висока или ниска корелация според вашата визуална интерпретация на диаграмата? Променя ли се това, ако използвате по-фина мярка вместо `Month`, напр. *ден от годината* (т.е. брой дни от началото на годината)?
В кода по-долу ще предположим, че сме почистили данните и сме получили рамка с данни, наречена `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 | 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
> Кодът за почистване на данните е наличен в [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Извършихме същите стъпки за почистване, както в предишния урок, и изчислихме колоната `DayOfYear`, използвайки следния израз:
> Кодът за почистване на данните е наличен в [`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 "Машинно обучение за начинаещи - Търсене на корелация: ключът към линейната регресия")
> 🎥 Кликнете върху изображението по-горе за кратък видео преглед на корелацията.
> 🎥 Натиснете върху изображението по-горе за кратко видео с обзор на корелацията.
От предишния урок вероятно сте видели, че средната цена за различните месеци изглежда така:
От предишния урок вероятно сте видели, че средната цена за различни месеци изглежда така:
<img alt="Средна цена по месеци" src="../../../../translated_images/bg/barchart.a833ea9194346d76.webp" width="50%"/>
Това предполага, че трябва да има някаква корелация, и можем да опитаме да обучим модел за линейна регресия, за да предскажем връзката между `Месец` и `Цена`, или между `ДенОтГодината` и `Цена`. Ето разпръснат график, който показва последната връзка:
Това предполага, че трябва да има някаква корелация и можем да се опитаме да обучим модел за линейна регресия, за да предскажем връзката между `Month` и `Price` или между `DayOfYear` и `Price`. Ето графика на разсейване, показваща последната връзка:
<img alt="Разпръснат график на Цена спрямо Ден от годината" src="../../../../translated_images/bg/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Графика на разсейване на Цена спрямо Ден от годината" src="../../../../translated_images/bg/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 през `Month` и -0.17 през `DayOfMonth`, но може да има друга важна връзка. Изглежда, че има различни клъстъри с цени, отговарящи на различни видове тикви. За да потвърдим тази хипотеза, нека начертаем всяка категория тикви с различен цвят. Като подаваме параметър `ax` на функцията `scatter`, можем да начертаем всички точки на една и съща графика:
```python
ax=None
@ -128,40 +140,40 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Разпръснат график на Цена спрямо Ден от годината" src="../../../../translated_images/bg/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Графика на разсейване на Цена спрямо Ден от годината цвят" src="../../../../translated_images/bg/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Нашето изследване предполага, че сортът има по-голямо влияние върху общата цена, отколкото действителната дата на продажба. Можем да видим това с помощта на стълбовиден график:
Нашето проучване предполага, че видът има по-голям ефект върху крайната цена, отколкото действителната дата на продажба. Можем да видим това с помощта на бар графика:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Стълбовиден график на цена спрямо сорт" src="../../../../translated_images/bg/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Бар графика на цена спрямо вид" src="../../../../translated_images/bg/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Нека се съсредоточим за момента само върху един сорт тикви, типа 'pie', и да видим какъв ефект има датата върху цената:
Нека се фокусираме за момента само върху един вид тиква, 'pie type', и видим каква е влиянието на датата върху цената:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Разпръснат график на Цена спрямо Ден от годината" src="../../../../translated_images/bg/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Графика на разсейване на Цена спрямо Ден от годината" src="../../../../translated_images/bg/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Ако сега изчислим корелацията между `Цена` и `ДенОтГодината`, използвайки функцията `corr`, ще получим нещо като `-0.27` - което означава, че обучението на предсказателен модел има смисъл.
Ако сега изчислим корелацията между `Price` и `DayOfYear` с функцията `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**.
@ -171,61 +183,69 @@ 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×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` в нашия случай, което индикира цената в началото на годината.
За да видим колко точен е нашият модел, можем да предскажем цените върху тестовия набор от данни и след това да измерим колко близки са нашите прогнози до очакваните стойности. Това може да се направи с помощта на метриката за средна квадратична грешка (MSE), която е средната стойност на всички квадратични разлики между очак
Нашата грешка изглежда е около 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/bg/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 включва полезен [API за pipeline](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/bg/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 за начинаещи - Предсказания с категориални характеристики и линейна регресия")
[![Машинно обучение за начинаещи - Предсказване с категориални характеристики с линейна регресия](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "Машинно обучение за начинаещи - Предсказване с категориални характеристики с линейна регресия")
> 🎥 Кликнете върху изображението по-горе за кратък видео преглед на използването на категориални характеристики.
> 🎥 Кликнете върху изображението по-горе за кратко видео с обзор на използването на категориални характеристики.
Тук можете да видите как средната цена зависи от разнообразието:
Тук можете да видите как средната цена зависи от вида:
<img alt="Средна цена по разнообразие" src="../../../../translated_images/bg/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Средна цена по вид" src="../../../../translated_images/bg/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
За да вземем предвид разнообразието, първо трябва да го преобразуваме в числова форма, или **да го кодираме**. Има няколко начина да го направим:
За да вземем предвид вида, първо трябва да го преобразуваме в числова форма, или да го **кодираме**. Има няколко начина, по които можем да го направим:
* Простото **числово кодиране** ще създаде таблица с различни видове тикви и след това ще замени името на вида с индекс в тази таблица. Това не е най-добрата идея за линейна регресия, защото линейната регресия взема действителната числова стойност на индекса и я добавя към резултата, умножавайки я с някакъв коефициент. В нашия случай връзката между номера на индекса и цената очевидно не е линейна, дори ако се уверим, че индексите са подредени по определен начин.
* **One-hot кодиране** ще замени колоната `Variety` с 4 различни колони, по една за всеки вид. Всяка колона ще съдържа `1`, ако съответният ред е от даден вид, и `0` в противен случай. Това означава, че ще има четири коефициента в линейната регресия, по един за всеки вид тиква, отговорен за "началната цена" (или по-скоро "допълнителната цена") за този конкретен вид.
* Простото **числово кодиране** ще построи таблица с различните видове и след това ще замени името на вида с индекс в тази таблица. Това не е най-добрата идея за линейна регресия, защото линейната регресия взима действителната числова стойност на индекса и я добавя към резултата, умножавайки със съответния коефициент. В нашия случай връзката между числото на индекса и цената е ясно нелинейна, дори ако осигурим индексирането да е в някакъв определен ред.
* **One-hot encoding** ще замести колоната `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`:
Останалата част от кода е същата като използваната по-горе за обучение на Linear Regression. Ако го изпробвате, ще видите, че средно квадратичната грешка е приблизително същата, но получаваме много по-висок коефициент на детерминация (~77%). За да получим още по-точни прогнози, можем да вземем предвид още категориални характеристики, както и числови характеристики, като `Month` или `DayOfYear`. За да получим един голям масив от характеристики, можем да използваме `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -297,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']
```
```
Тук също вземаме предвид `City` и типа на опаковката, което ни дава 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 = 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/)
## [Квиз след лекцията](https://ff-quizzes.netlify.app/en/ml/)
## Преглед и самостоятелно обучение
## Преглед и Самостоятелно обучение
В този урок научихме за линейната регресия. Има и други важни видове регресия. Прочетете за техниките Stepwise, Ridge, Lasso и Elasticnet. Добър курс за изучаване на повече е [Статистическият курс на Stanford](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 DISCLAIMER START -->
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, имайте предвид, че автоматичните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за каквито и да е недоразумения или погрешни тълкувания, произтичащи от използването на този превод.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,42 +1,42 @@
# Класификатори за кухня 2
# Класификатори на кухни 2
В този втори урок за класификация ще разгледате повече начини за класифициране на числови данни. Ще научите също за последиците от избора на един класификатор пред друг.
В този втори урок за класификация ще изследвате още начини за класифициране на числови данни. Също така ще научите за последствията от избора на един класификатор пред друг.
## [Тест преди лекцията](https://ff-quizzes.netlify.app/en/ml/)
## [Предварителен викторина](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 датафреймове, готови за процеса на изграждане на модел.
## Карта за класификация
По-рано научихте за различните опции, които имате при класифициране на данни, използвайки помощния лист на Microsoft. Scikit-learn предлага подобен, но по-подробен помощен лист, който може допълнително да помогне за стесняване на избора на оценители (друг термин за класификатори):
По-рано научихте за различните опции, които имате при класифициране на данни, използвайки чийтшита на Microsoft. Scikit-learn предлага подобен, но по-подробен чийтшит, който може да помогне допълнително да стесните избора си на оценители (друг термин за класификатори):
![ML Карта от 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/bg/map.e963a6a51349425a.webp)
> Съвет: [посетете тази карта онлайн](https://scikit-learn.org/stable/tutorial/machine_learning_map/) и кликнете по пътеката, за да прочетете документация.
### Планът
Тази карта е много полезна, когато имате ясна представа за вашите данни, тъй като можете да „вървите“ по нейните пътеки към решение:
Тази карта е много полезна след като имате ясна представа за данните си, тъй като можете да „преминавате“ по пътищата ѝ до конкретно решение:
- Имаме >50 проби
- Искаме да предвидим категория
- Искаме да предскажем категория
- Имаме етикетирани данни
- Имаме по-малко от 100K проби
- ✨ Можем да изберем Linear SVC
- Ако това не работи, тъй като имаме числови данни
- Можем да опитаме ✨ KNeighbors Classifier
- Ако това не работи, опитайте ✨ SVC и ✨ Ensemble Classifiers
- Имаме по-малко от 100К проби
- ✨ Можем да изберем Линеен SVC
- Ако това не сработи, тъй като имаме числови данни
- Можем да опитаме ✨ KNeighbors класификатор
- Ако и това не сработи, опитайте ✨ SVC и ✨ Ensemble класификатори
Това е много полезен път за следване.
Това е много полезна следваща стъпка.
## Упражнение - разделете данните
Следвайки този път, трябва да започнем с импортиране на някои библиотеки за използване.
Следвайки този път, трябва да започнем с въвеждането на някои библиотеки за използване.
1. Импортирайте необходимите библиотеки:
@ -50,31 +50,31 @@
import numpy as np
```
1. Разделете вашите тренировъчни и тестови данни:
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
## Линеен SVC класификатор
Support-Vector clustering (SVC) е част от семейството на Support-Vector machines техники за машинно обучение (научете повече за тях по-долу). В този метод можете да изберете „ядро“, за да решите как да класифицирате етикетите. Параметърът 'C' се отнася до 'регуларизация', която регулира влиянието на параметрите. Ядрото може да бъде едно от [няколко](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); тук го задаваме на 'linear', за да гарантираме, че използваме Linear SVC. Вероятността по подразбиране е 'false'; тук я задаваме на 'true', за да съберем оценки за вероятност. Задаваме случайното състояние на '0', за да разбъркаме данните и да получим вероятности.
Support-Vector clustering (SVC) е част от семейството на Support-Vector машини за машинно обучение (научете повече за тях по-долу). В този метод можете да изберете 'kernel' (ядро), за да решите как да се групират етикетите. Параметърът 'C' се отнася до 'регуляризация', която регулира влиянието на параметрите. Ядрото може да бъде едно от [няколко](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); тук го задаваме на 'linear', за да използваме линеен SVC. Вероятността по подразбиране е 'false'; тук я задаваме на 'true', за да събираме оценка на вероятности. Задаваме random state на '0', за да разбъркаме данните и да получим вероятности.
### Упражнение - приложете Linear SVC
### Упражнение - приложете линеен SVC
Започнете, като създадете масив от класификатори. Ще добавяте постепенно към този масив, докато тестваме.
Започнете с създаване на масив от класификатори. Постепенно ще добавяте към този масив, докато тестваме.
1. Започнете с Linear SVC:
1. Започнете с Линеен SVC:
```python
C = 10
# Create different classifiers.
# Създайте различни класификатори.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Обучете вашия модел, използвайки Linear SVC, и отпечатайте отчет:
2. Обучете своя модел с Линеен SVC и отпечатайте отчет:
```python
n_classifiers = len(classifiers)
@ -88,7 +88,7 @@ Support-Vector clustering (SVC) е част от семейството на Sup
print(classification_report(y_test,y_pred))
```
Резултатът е доста добър:
Резултатът е много добър:
```output
Accuracy (train) for Linear SVC: 78.6%
@ -105,15 +105,15 @@ Support-Vector clustering (SVC) е част от семейството на Sup
weighted avg 0.79 0.79 0.79 1199
```
## Класификатор K-Neighbors
## K-Neighbors класификатор
K-Neighbors е част от семейството "neighbors" методи за машинно обучение, които могат да се използват както за контролирано, така и за неконтролирано обучение. В този метод се създава предварително определен брой точки и данните се събират около тези точки, така че да могат да се предвидят обобщени етикети за данните.
K-Neighbors е част от семейството на "съседни" методи за машинно обучение, които могат да се използват както за наблюдавано, така и за ненаблюдавано обучение. В този метод се създава предварително зададен брой точки и данните се групират около тези точки така, че да може да се предскажат обобщени етикети за данните.
### Упражнение - приложете класификатора K-Neighbors
### Упражнение - приложете K-Neighbors класификатор
Предишният класификатор беше добър и работеше добре с данните, но може би можем да постигнем по-добра точност. Опитайте класификатор K-Neighbors.
Предишният класификатор беше добър и работеше добре с данните, но може би можем да постигнем по-добра точност. Изпробвайте K-Neighbors класификатор.
1. Добавете ред към масива с класификатори (добавете запетая след елемента Linear SVC):
1. Добавете ред към масива си с класификатори (добавете запетая след линейния SVC елемент):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -136,17 +136,17 @@ K-Neighbors е част от семейството "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
## Support Vector класификатор
Класификаторите Support-Vector са част от семейството [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) методи за машинно обучение, които се използват за задачи по класификация и регресия. SVMs „картират тренировъчните примери към точки в пространството“, за да максимизират разстоянието между две категории. Последващите данни се картографират в това пространство, за да се предвиди тяхната категория.
Support-Vector класификаторите са част от семейството на [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) методи за машинно обучение, които се използват за задачи по класификация и регресия. SVM "картира тренировъчни примери до точки в пространството", за да максимизира разстоянието между две категории. След това новите данни се картографират в това пространство, за да се предскаже тяхната категория.
### Упражнение - приложете класификатор Support Vector
### Упражнение - приложете Support Vector класификатор
Нека опитаме за малко по-добра точност с класификатор Support Vector.
Нека опитаме за малко по-добра точност с Support Vector класификатор.
1. Добавете запетая след елемента K-Neighbors и след това добавете този ред:
1. Добавете запетая след K-Neighbors елемента и след това добавете този ред:
```python
'SVC': SVC(),
@ -169,11 +169,11 @@ K-Neighbors е част от семейството "neighbors" методи з
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 класификатори
Нека следваме пътя до самия край, въпреки че предишният тест беше доста добър. Нека опитаме някои 'Ensemble Classifiers', конкретно Random Forest и AdaBoost:
Нека следваме пътя до самия край, въпреки че предишният тест беше доста добър. Нека пробваме някои 'Ensemble класификатори', по-специално Random Forest и 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
```
✅ Научете повече за [Ensemble Classifiers](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://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)
[Играй с параметрите](assignment.md)
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [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 -->

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Създаване на модел за класификация\n"
"# Изграждане на модел за класификация\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**Отказ от отговорност**: \nТози документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Отказ от отговорност**:\nТози документ е преведен чрез AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стараем да осигурим точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да било недоразумения или неправилни тълкувания, произтичащи от използването на този превод.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -152,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-04T08:31:45+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "bg"
}
},
"nbformat": 4,

@ -2,7 +2,7 @@
"cells": [
{
"source": [
"# Създайте повече модели за класификация\n"
"# Изградете Повече Модели за Класификация\n"
],
"cell_type": "markdown",
"metadata": {}
@ -116,8 +116,8 @@
}
],
"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()"
]
},
{
@ -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**Отказ от отговорност**: \nТози документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Отказ от отговорност**:\nТози документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да било недоразумения или погрешни тълкувания, произтичащи от използването на този превод.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -291,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-04T08:32:24+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "bg"
}
},
"nbformat": 4,

@ -10,85 +10,96 @@
### 🌐 Поддръжка на множество езици
#### Поддържано чрез GitHub Action (Автоматично и винаги актуално)
#### Поддържа се чрез GitHub Action (автоматизирано и винаги актуално)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Арабски](../ar/README.md) | [Бенгалски](../bn/README.md) | [Български](./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) | [Сръбски (кирилица)](../sr/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)
[Арабски](../ar/README.md) | [Бенгалски](../bn/README.md) | [Български](./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) | [Сръбски (кирилица)](../sr/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)
> **Предпочитате да клонирате локално?**
> Това хранилище включва над 50 езикови превода, които значително увеличават размера на изтеглянето. За да клонирате без преводи, използвайте sparsе 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)
Имаме продължаваща серия "Учете с AI" в Discord, научете повече и се присъединете към нас на [Learn with AI Series](https://aka.ms/learnwithai/discord) от 18 до 30 септември 2025 г. Ще получите съвети и трикове за използване на GitHub Copilot за Data Science.
Имаме текуща серия на Discord „Научи с AI“, научете повече и се присъединете към нас на [Learn with AI Series](https://aka.ms/learnwithai/discord) от 18 до 30 септември 2025 г. Ще получите съвети и трикове за използване на GitHub Copilot за Data Science.
![Learn with AI series](../../translated_images/bg/3.9b58fd8d6c373c20.webp)
# Машинно обучение за начинаещи - Учебна програма
# Машинно обучение за начинаещи - учебна програма
> 🌍 Пътувайте по света, докато изследваме машинното обучение чрез световните култури 🌍
> 🌍 Пътувайте по света, докато изследваме Машинното обучение чрез световните култури 🌍
Cloud Advocates в Microsoft с радост предлагат 12-седмична учебна програма с 26 урока, посветени на **машинното обучение**. В тази учебна програма ще научите за това, което понякога се нарича **класическо машинно обучение**, с основен акцент върху библиотеката Scikit-learn, като избягвате дълбокото обучение, което е разгледано в нашата учебна програма [AI за начинаещи](https://aka.ms/ai4beginners). Съчетавайте тези уроци и с нашата учебна програма ['Data Science за начинаещи'](https://aka.ms/ds4beginners)!
Cloud Advocates в Microsoft с радост предлагат 12-седмична, 26-урочна учебна програма, посветена на **Машинното обучение**. В тази учебна програма ще научите за това, което понякога се нарича **класическо машинно обучение**, използвайки основно библиотеката Scikit-learn и като избягвате дълбокото обучение, което е разгледано в нашата учебна програма [AI за начинаещи](https://aka.ms/ai4beginners). Съчетайте тези уроци с нашата учебна програма ['Data Science за начинаещи'](https://aka.ms/ds4beginners)!
Пътувайте с нас по света, като прилагаме тези класически техники към данни от много части на света. Всеки урок включва предварителни и последващи тестове, писмени инструкции за изпълнение на урока, решение, задание и още. Нашият проектно-базиран подход позволява да учите, докато изграждате, което е доказан начин да усвоите нови умения.
Пътувайте с нас по света, прилагайки тези класически техники върху данни от много региони. Всеки урок включва предварителни и последващи тестове, писмени инструкции за изпълнение на урока, решение, задание и още. Нашата педагогика, базирана на проекти, ви позволява да учите, като създавате, доказан начин за трайно усвояване на нови умения.
**✍️ Искрени благодарности на нашите автори** Джен Лупър, Стивън Хауъл, Франческа Лазери, Томоми Имура, Кеси Бревиу, Дмитрий Сошников, Крис Норинг, Анирбан Мукерджи, Орнела Алтунян, Рут Якубу и Ейми Бойд
**✍️ Сърдечни благодарности на нашите автори** Джен Лупър, Стивън Хауъл, Франческа Лазери, Томоми Имура, Каси Брииу, Дмитрий Сошников, Крис Норинг, Анирбан Мукерджи, Орнела Алтунян, Рут Якубу и Ейми Бойд
**🎨 Благодарности също на нашите илюстратори** Томоми Имура, Дасани Мадипали и Джен Лупър
**🎨 Благодарности и на нашите илюстратори** Томоми Имура, Дасани Мадипали и Джен Лупър
**🙏 Специални благодарности 🙏 на нашите студенти посланици на Microsoft, автори, рецензенти и съдържателни сътрудници**, сред които Ришит Дагли, Мухаммад Сакиб Хан Инан, Рохан Радж, Александру Петреску, Абхишек Джайсвал, Наурин Табасум, Йоан Самиила и Снигдха Агарвал
**🙏 Специални благодарности 🙏 на авторите, рецензентите и създателите на съдържание от Microsoft Student Ambassador**, особено Ришит Дагли, Мухаммад Сакиб Хан Инан, Рохан Радж, Александру Петреску, Абхишек Джайсуал, Наврин Табасум, Йоан Самюила и Снигдха Агарвал
**🤩 Допълнителна благодарност на студентите посланици на Microsoft Ерик Уанджау, Джаслийн Сонди и Видуши Гупта за нашите уроци по R!**
**🤩 Допълнителна благодарност на Microsoft Student Ambassadors Ерик Ванджау, Джаслийн Сонди и Видуши Гупта за нашите уроци по R!**
# Започване
Следвайте тези стъпки:
1. **Форкнете хранилището**: Натиснете бутона "Fork" в горния десен ъгъл на тази страница.
2. **Клонирайте хранилището**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
1. **Направете Fork на хранилището**: Кликнете на бутона „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)
> 🔧 **Нуждаете се от помощ?** Разгледайте нашето [Ръководство за отстраняване на проблеми](TROUBLESHOOTING.md) за решения на често срещани проблеми с инсталацията, настройката и изпълнението на уроците.
> 🔧 **Нуждаете се от помощ?** Проверете нашето [Ръководство за отстраняване на проблеми](TROUBLESHOOTING.md) за решения на често срещани проблеми с инсталацията, настройките и стартирането на уроците.
**[Студенти](https://aka.ms/student-page)**, за да използвате тази учебна програма, форкнете цялото хранилище в своя собствен акаунт в GitHub и изпълнявайте упражненията индивидуално или в група:
- Започнете с предварителен тест.
- Прочетете урока и изпълнете дейностите, спирайки се и размисляйки при всяка проверка на знанието.
- Опитайте да създадете проектите чрез разбиране на уроците вместо просто изпълнение на кодовото решение; въпреки това, кодът е на разположение в папките `/solution` във всеки урок, ориентиран към проект.
- Направете последващия тест.
**[Студенти](https://aka.ms/student-page)**, за да използвате тази учебна програма, направете fork на цялото хранилище в своя GitHub акаунт и изпълнявайте упражненията сами или в група:
- Започнете с тест преди лекцията.
- Прочетете лекцията и завършете дейностите, спирайки се и размисляйки при всяка проверка на знанията.
- Опитайте да създадете проектите като разберете уроците, вместо да пускате директно кода за решение; този код обаче е наличен в папките `/solution` във всеки урок, ориентиран към проекти.
- Направете тест след лекцията.
- Изпълнете предизвикателството.
- Изпълнете заданието.
- След като завършите група уроци, посетете [Форума за дискусии](https://github.com/microsoft/ML-For-Beginners/discussions) и „учете на глас“, като попълните съответната оценъчна таблица PAT. 'PAT' е Инструмент за оценка на напредъка, табличен оценителен списък, който попълвате, за да задълбочите ученето си. Можете също да реагирате на други PAT, за да учим заедно.
- Завършете заданието.
- След завършване на група уроци, посетете [Дискусионния борд](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 за начинаещи в YouTube канала за разработчици на Microsoft](https://aka.ms/ml-beginners-videos) чрез кликване на картинката по-долу.
Някои уроци са налични като кратки видеа. Можете да ги намерите всички на място в уроците или в [плейлиста ML for Beginners в канала на Microsoft Developer в YouTube](https://aka.ms/ml-beginners-videos), като кликнете върху изображението по-долу.
[![ML за начинаещи банер](../../translated_images/bg/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
[![ML for beginners banner](../../translated_images/bg/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## Запознайте се с екипа
[![Промо видео](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**GIF от** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Гиф от** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Кликнете върху изображението по-горе за видео за проекта и хората, които го създадоха!
@ -96,71 +107,71 @@ Cloud Advocates в Microsoft с радост предлагат 12-седмич
## Педагогика
Избрахме две педагогически принципа при изграждането на тази учебна програма: да бъде ръководена от практически **проекти** и да включва **чести тестове**. Освен това учебната програма има обща **тема**, за да придаде кохезия.
Избрахме две педагогически основи при създаването на тази учебна програма: да бъде практическа и **базирана на проекти** и да включва **чести тестове**. Освен това учебната програма има обща **тема** за свързаност.
Чрез осигуряване на съответствие между съдържанието и проектите, процесът става по-ангажиращ за студентите и се увеличава запомнянето на концепциите. Освен това, нискозаряден тест преди урока настройва намерението за учене, а втори тест след урока подсилва задържането на знания. Тази учебна програма е създадена да бъде гъвкава и забавна и може да се взема изцяло или частично. Проектите започват малки и стават постепенно по-сложни до края на 12-седмичния цикъл. Учебната програма включва и послеслов относно реални приложения на машинното обучение, който може да се използва като допълнителна оценка или като основа за дискусия.
Осигурявайки съвпадение на съдържанието с проектите, процесът става по-ангажиращ за студентите и усвояването на концепциите се подобрява. Допълнително, лек тест преди урок задава намерението на студента да усвои тема, а втори тест след урок подпомага по-силното запомняне. Тази програма е проектирана да бъде гъвкава и забавна и може да бъде премината цялата или частично. Проектите започват малки и стават все по-сложни до края на 12-седмичния цикъл. Включен е и постскрипт с приложения на ML в реалния свят, който може да се ползва като допълнителен кредит или основа за дискусия.
> Намерете нашите [Правила за поведение](CODE_OF_CONDUCT.md), [Правила за допринасяне](CONTRIBUTING.md), [Преводи](TRANSLATIONS.md) и [Отстраняване на проблеми](TROUBLESHOOTING.md). Очакваме с интерес вашата конструктивна обратна връзка!
> Намерете нашите насоки [Код на поведение](CODE_OF_CONDUCT.md), [Сътрудничество](CONTRIBUTING.md), [Превод](TRANSLATIONS.md) и [Отстраняване на проблеми](TROUBLESHOOTING.md). Очакваме вашите конструктивни отзиви!
## Всеки урок включва
- опционална скицна бележка
- опционално допълнително видео
- видео ръководство (само при някои уроци)
- [предварителен тест преди урока](https://ff-quizzes.netlify.app/en/ml/)
- по желание скичнот
- по желание допълнително видео
- видео преглед (само при някои уроци)
- [тест преди лекцията](https://ff-quizzes.netlify.app/en/ml/)
- писмен урок
- за проектно-базирани уроци - стъпка по стъпка ръководства за изграждане на проекта
- за уроци, базирани на проекти, стъпка по стъпка ръководства за изграждане на проекта
- проверки на знанията
- предизвикателство
- допълнително четиво
- задание
- [последващ тест след урока](https://ff-quizzes.netlify.app/en/ml/)
> **Забележка за езиците**: Тези уроци са написани предимно на Python, но много са налични и на R. За да завършите урок на R, отидете в папката `/solution` и потърсете уроци на R. Те включват разширение .rmd, което представлява файл **R Markdown** просто казано, това е вграждане на `кодови блокове` (на R или други езици) и `YAML заглавие` (което указва форматирането на изходи като PDF) в `Markdown документ`. Така той служи като отлична рамка за авторство при данни, тъй като ви позволява да комбинирате кода си, неговия изход и мислите си, като ги записвате в Markdown формат. Освен това, документите R Markdown могат да бъдат конвертирани в изходни формати като PDF, HTML или Word.
> **Бележка за куизове**: Всички куизове са в [папката Quiz App](../../quiz-app), общо 52 куиза с по три въпроса всеки. Те са свързани от уроците, но приложението за куиз може да се пуска локално; следвайте инструкциите в папката `quiz-app` за локален хостинг или разгръщане в Azure.
| Номер на урок | Тема | Групировка на урока | Учебни цели | Свързан урок | Автор |
| :-----------: | :------------------------------------------------------------: | :-----------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | Въведение в машинното обучение | [Въведение](1-Introduction/README.md) | Запознайте се с основните концепции зад машинното обучение | [Урок](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | История на машинното обучение | [Въведение](1-Introduction/README.md) | Научете историята зад тази област | [Урок](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | Справедливост и машинно обучение | [Въведение](1-Introduction/README.md) | Кои са важните философски въпроси около справедливостта, които студентите трябва да вземат предвид при създаване и прилагане на ML модели? | [Урок](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Техники за машинно обучение | [Въведение](1-Introduction/README.md) | Какви техники използват изследователите на ML за изграждане на ML модели? | [Урок](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | Въведение в регресия | [Регресия](2-Regression/README.md) | Започнете с Python и Scikit-learn за регресионни модели | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Цени на тикви в Северна Америка 🎃 | [Регресия](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 | Цени на тикви в Северна Америка 🎃 | [Регресия](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 | Цени на тикви в Северна Америка 🎃 | [Регресия](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 | Уеб приложение 🔌 | [Уеб приложение](3-Web-App/README.md) | Изградете уеб приложение за използване на вашия обучен модел | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Въведение в класификация | [Класификация](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 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](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 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](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 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](4-Classification/README.md) | Изградете препоръчително уеб приложение, използвайки вашия модел | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Въведение в клъстериране | [Клъстериране](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 | Изследване на нигерийски музикални вкусове 🎧 | [Клъстериране](5-Clustering/README.md) | Изследвайте метода K-средни (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 | Въведение в обработка на естествен език ☕️ | [Обработка на естествен език](6-NLP/README.md) | Научете основите на NLP чрез създаване на прост бот | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Често срещани задачи в NLP ☕️ | [Обработка на естествен език](6-NLP/README.md) | Задълбочете знанията си по NLP, като разберете общите задачи при работа с езикови структури | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Превод и анализ на настроения ♥️ | [Обработка на естествен език](6-NLP/README.md) | Превод и анализ на настроения с Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Романтични хотели в Европа ♥️ | [Обработка на естествен език](6-NLP/README.md) | Анализ на настроения с ревюта за хотели 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Романтични хотели в Европа ♥️ | [Обработка на естествен език](6-NLP/README.md) | Анализ на настроения с ревюта за хотели 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Въведение в прогнозиране на времеви редове | [Времеви редове](7-TimeSeries/README.md) | Въведение в прогнозиране на времеви редове | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Световна консумация на електроенергия ⚡️ - прогнозиране на времеви редове с ARIMA | [Времеви редове](7-TimeSeries/README.md) | Прогнозиране на времеви редове с ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Световна консумация на електроенергия ⚡️ - прогнозиране на времеви редове със SVR | [Времеви редове](7-TimeSeries/README.md) | Прогнозиране на времеви редове с подкрепящ вектор регресор (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Въведение в подсилващо обучение | [Подсилващо обучение](8-Reinforcement/README.md) | Въведение в подсилващо обучение с Q-обучение (Q-Learning) | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Помогнете на Питър да избегне вълка! 🐺 | [Подсилващо обучение](8-Reinforcement/README.md) | Подсилващо обучение с Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Постскриптум | Реални сценарии и приложения на ML | [ML в дивата природа](9-Real-World/README.md) | Интересни и разкриващи реални приложения на класическото машинно обучение | [Урок](9-Real-World/1-Applications/README.md) | Екип |
| Постскриптум | Отстраняване на грешки в ML с помощта на RAI таблото | [ML в дивата природа](9-Real-World/README.md) | Отстраняване на грешки в машинно обучение с компоненти на таблото Responsible AI | [Урок](9-Real-World/2-Debugging-ML-Models/README.md) | Рут Якобу |
> [намиране на всички допълнителни ресурси за този курс в нашата колекция 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`.
## PDF файлове
Намерете pdf на учебната програма с връзки [тук](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Други курсове
- [тест след лекцията](https://ff-quizzes.netlify.app/en/ml/)
> **Бележка за езиците**: Тези уроци са основно написани на Python, но много от тях са налични и на R. За да завършите урок на R, отидете в папката `/solution` и потърсете уроци на R. Те имат разширение .rmd, което представлява **R Markdown** файл, който може просто да се определи като вграждане на `кодови блокове` (на R или други езици) и `YAML заглавна част` (която указва как да се форматират изходите като PDF) в `Markdown документ`. Така той служи като примерна рамка за създаване на материали за данни, тъй като позволява да комбинирате своя код, изхода му и мислите си, като ги записвате в Markdown. Освен това, R Markdown документите могат да се конвертират в изходни формати като PDF, HTML или Word.
> **Бележка за квизовете**: Всички квизове са съдържани в [Папка Quiz App](../../quiz-app), с общо 52 квиза с по три въпроса всеки. Те са свързани от уроците, но приложението за квизове може да се стартира локално; следвайте инструкциите в папката `quiz-app`, за да го хоствате локално или да го публикувате в Azure.
| Номер на урок | Тема | Групиране на уроците | Обучителни цели | Свързан урок | Автор |
| :-----------: | :------------------------------------------------------------: | :-----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------: |
| 01 | Въведение в машинното обучение | [Въведение](1-Introduction/README.md) | Научете основните понятия зад машинното обучение | [Урок](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | История на машинното обучение | [Въведение](1-Introduction/README.md) | Научете историята зад тази област | [Урок](1-Introduction/2-history-of-ML/README.md) | Jen и Amy |
| 03 | Справедливост и машинно обучение | [Въведение](1-Introduction/README.md) | Какви са важните философски въпроси около справедливостта, които студентите трябва да обмислят при изграждането и прилагането на ML модели? | [Урок](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Техники за машинно обучение | [Въведение](1-Introduction/README.md) | Какви техники използват изследователите за машинно обучение, за да изградят ML модели? | [Урок](1-Introduction/4-techniques-of-ML/README.md) | Chris и Jen |
| 05 | Въведение в регресията | [Регресия](2-Regression/README.md) | Започнете с Python и Scikit-learn за модели на регресия | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Цени на тикви в Северна Америка 🎃 | [Регресия](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 | Цени на тикви в Северна Америка 🎃 | [Регресия](2-Regression/README.md) | Изграждане на линейни и полиномиални регресионни модели | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen и Dmitry • Eric Wanjau |
| 08 | Цени на тикви в Северна Америка 🎃 | [Регресия](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 | Уеб приложение 🔌 | [Уеб приложение](3-Web-App/README.md) | Изграждане на уеб приложение за използване на тренирания модел | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Въведение в класификация | [Класификация](4-Classification/README.md) | Почистване, подготовка и визуализация на данните; въведение в класификация | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen и Cassie • Eric Wanjau |
| 11 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](4-Classification/README.md) | Въведение в класификаторите | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen и Cassie • Eric Wanjau |
| 12 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](4-Classification/README.md) | Повече класификатори | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen и Cassie • Eric Wanjau |
| 13 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](4-Classification/README.md) | Изграждане на препоръчително уеб приложение чрез вашия модел | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Въведение в клъстеризация | [Клъстеризация](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 | Изследване на музикалните предпочитания в Нигерия 🎧 | [Клъстеризация](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 | Въведение в обработка на естествен език ☕️ | [Обработка на естествен език](6-NLP/README.md) | Научете основите на NLP, като изградите прост бот | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Общи задачи в NLP ☕️ | [Обработка на естествен език](6-NLP/README.md) | Задълбочете своята NLP подготовка чрез разбирането на общите задачи при работата с езиковите структури | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Превод и анализ на настроенията ♥️ | [Обработка на естествен език](6-NLP/README.md) | Превод и анализ на настроенията с Джейн Остин | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Романтични хотели в Европа ♥️ | [Обработка на естествен език](6-NLP/README.md) | Анализ на настроения с отзиви за хотели 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Романтични хотели в Европа ♥️ | [Обработка на естествен език](6-NLP/README.md) | Анализ на настроения с отзиви за хотели 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Въведение в прогнозиране на времеви редове | [Времеви редове](7-TimeSeries/README.md) | Въведение в прогнозиране на времеви редове | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Световна консумация на електроенергия ⚡️ - прогнозиране на времеви редове с ARIMA | [Времеви редове](7-TimeSeries/README.md) | Прогнозиране на времеви редове с ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Световна консумация на електроенергия ⚡️ - прогнозиране на времеви редове със SVR | [Времеви редове](7-TimeSeries/README.md) | Прогнозиране на времеви редове с регресор с поддържащи вектори | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Въведение в обучение чрез подсилване | [Обучение чрез подсилване](8-Reinforcement/README.md) | Въведение в обучение чрез подсилване с Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Помогнете на Питър да избяга от вълка! 🐺 | [Обучение чрез подсилване](8-Reinforcement/README.md) | Обучение чрез подсилване в Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Постскриптум | Реални ML сценарии и приложения | [ML в дивата природа](9-Real-World/README.md) | Интересни и показателни реални приложения на класическото ML | [Урок](9-Real-World/1-Applications/README.md) | Екип |
| Постскриптум | Отстраняване на грешки в ML чрез RAI табло | [ML в дивата природа](9-Real-World/README.md) | Отстраняване на грешки в машинното обучение чрез отговорния AI табло-компоненти | [Урок](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`.
## PDFs
Намерете pdf на учебната програма с линкове [тук](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Други курсове
Нашият екип произвежда и други курсове! Вижте:
@ -171,7 +182,7 @@ Cloud Advocates в Microsoft с радост предлагат 12-седмич
[![LangChain за начинаещи](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 / Агенти
### Azure / Edge / MCP / Автомати
[![AZD за начинаещи](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 за начинаещи](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 за начинаещи](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)
@ -179,44 +190,49 @@ Cloud Advocates в Microsoft с радост предлагат 12-седмич
---
### Серия за генеративен AI
[![Генеративен ИИ за начинаещи](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)
### Серия Генеративен AI
[![Генеративен AI за начинаещи](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)
[![Генеративен 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)
[![Генеративен 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)
[![Генеративен 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/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)
[![Наука за данни за начинаещи](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)
[![Изкуствен интелект за начинаещи](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)
[![Интернет на нещата за начинаещи](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)
[![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)
[![XR разработка за начинаещи](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?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 за 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)
[![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. Това е подкрепяща общност, в която въпросите са добре дошли и знанието се споделя свободно.
Ако срещнете проблем или имате въпроси относно създаването на AI приложения, присъединете се към други ученици и опитни разработчици в обсъждания за 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 -->
**Отказ от отговорност**:
Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, възникнали вследствие на използването на този превод.
**Отказ от отговорност**:
Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се разглежда като авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за никакви недоразумения или неправилни тълкувания, произтичащи от използването на този превод.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "ro"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T16:02:40+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T10:21:56+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "ro"
},
@ -90,8 +90,8 @@
"language_code": "ro"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T15:12:24+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T10:22:58+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "ro"
},
@ -186,8 +186,8 @@
"language_code": "ro"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T16:24:14+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T10:23:20+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "ro"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "ro"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T10:16:52+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "ro"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T16:25:12+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "ro"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T10:16:57+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "ro"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T16:22:03+00:00",
@ -540,8 +552,8 @@
"language_code": "ro"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T08:59:23+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T10:21:49+00:00",
"source_file": "README.md",
"language_code": "ro"
},

@ -1,16 +1,18 @@
# Explorează Responsible AI Toolbox
# Explorează trusa de instrumente Responsible AI
## Instrucțiuni
În această lecție ai învățat despre Responsible AI Toolbox, un "proiect open-source, condus de comunitate, care ajută oamenii de știință în date să analizeze și să îmbunătățească sistemele AI." Pentru această temă, explorează unul dintre [notebook-urile](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) din RAI Toolbox și raportează concluziile tale într-o lucrare sau prezentare.
În această lecție ai învățat despre trusa de instrumente Responsible AI, un „proiect open-source, condus de comunitate, care ajută oamenii de știință în date să analizeze și să îmbunătățească sistemele AI.” Pentru această sarcină, explorează unul dintre [notebook-urile](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) din trusa RAI Toolbox și raportează constatările tale într-un material scris sau prezentare.
## Criterii de evaluare
## Grilă de evaluare
| Criterii | Exemplară | Adecvată | Necesită îmbunătățiri |
| -------- | --------- | -------- | --------------------- |
| | Este prezentată o lucrare sau o prezentare PowerPoint care discută sistemele Fairlearn, notebook-ul utilizat și concluziile trase în urma rulării acestuia | Este prezentată o lucrare fără concluzii | Nu este prezentată nicio lucrare |
| Criterii | Exemplară | Potrivită | Necesită îmbunătățiri |
| -------- | --------- | --------- | --------------------- |
| | Este prezentat un material scris sau o prezentare powerpoint care discută despre sistemele Fairlearn, notebook-ul care a fost utilizat și concluziile trase din rularea acestuia | Este prezentat un material scris fără concluzii | Nu este prezentat niciun material scris |
---
**Declinare de responsabilitate**:
Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Declinare de responsabilitate**:
Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original, în limba sa nativă, trebuie considerat sursa autoritară. Pentru informații critice, se recomandă o traducere profesională realizată de un traducător uman. Nu ne asumăm responsabilitatea pentru eventuale neînțelegeri sau interpretări eronate rezultate din utilizarea acestei traduceri.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,124 +1,136 @@
# Construirea unui model de regresie folosind Scikit-learn: patru metode de regresie
# Construiește un model de regresie folosind Scikit-learn: patru moduri de regresie
![Infografic regresie liniară vs regresie polinomială](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> Infografic de [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
## Notă pentru începători
Regresia liniară este folosită atunci când dorim să prezicem o **valoare numerică** (de exemplu, prețul unei case, temperatura sau vânzările).
Funcționează prin găsirea unei linii drepte care reprezintă cel mai bine relația dintre caracteristicile de intrare și ieșire.
În această lecție, ne concentrăm pe înțelegerea conceptului înainte de a explora tehnici mai avansate de regresie.
![Infografic regresie liniară vs polinomială](../../../../translated_images/ro/linear-polynomial.5523c7cb6576ccab.webp)
> Infografic realizat de [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Test pre-lectură](https://ff-quizzes.netlify.app/en/ml/)
> ### [Această lecție este disponibilă și în R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Introducere
Până acum, ai explorat ce este regresia folosind date de exemplu colectate din setul de date privind prețurile dovlecilor, pe care îl vom folosi pe parcursul acestei lecții. De asemenea, ai vizualizat aceste date folosind Matplotlib.
Până acum ai explorat ce este regresia cu date de probă culese din setul de date despre prețurile dovlecilor pe care îl vom folosi pe parcursul acestei lecții. De asemenea, ai vizualizat datele folosind Matplotlib.
Acum ești pregătit să aprofundezi regresia pentru ML. Deși vizualizarea te ajută să înțelegi datele, adevărata putere a Machine Learning vine din _antrenarea modelelor_. Modelele sunt antrenate pe date istorice pentru a captura automat dependențele dintre date și permit prezicerea rezultatelor pentru date noi, pe care modelul nu le-a văzut anterior.
Acum ești pregătit să aprofundezi regresia pentru Învățare Automată. În timp ce vizualizarea îți permite să înțelegi datele, adevărata putere a Învățării Automate provine din _antrenarea modelelor_. Modelele sunt antrenate pe date istorice pentru a captura automat dependențele din date și îți permit prevezi rezultate pentru date noi, pe care modelul nu le-a văzut înainte.
În această lecție, vei învăța mai multe despre două tipuri de regresie: _regresia liniară de bază_ și _regresia polinomială_, împreună cu o parte din matematica care stă la baza acestor tehnici. Aceste modele ne vor permite să prezicem prețurile dovlecilor în funcție de diferite date de intrare.
În această lecție, vei învăța mai multe despre două tipuri de regresie: _regresia liniară de bază_ și _regresia polinomială_, alături de unele aspecte matematice care stau la baza acestor tehnici. Aceste modele ne vor permite să prezicem prețurile dovlecilor în funcție de diferite date de intrare.
[![ML pentru începători - Înțelegerea regresiei liniare](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML pentru începători - Înțelegerea regresiei liniare")
> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre regresia liniară.
> 🎥 Dă click pe imaginea de mai sus pentru un scurt videoclip despre regresia liniară.
> Pe parcursul acestui curriculum, presupunem cunoștințe minime de matematică și încercăm să o facem accesibilă pentru studenții din alte domenii, așa că fii atent la notițe, 🧮 explicații, diagrame și alte instrumente de învățare care să ajute la înțelegere.
> Pe tot parcursul acestui curriculum, presupunem un minim de cunoștințe matematice și încercăm să îl facem accesibil pentru studenți din alte domenii, așa că fii atent la note, 🧮 explicații, diagrame și alte instrumente de învățare care te vor ajuta să înțelegi.
### Cerințe preliminare
### Pregătire prealabilă
Ar trebui să fii familiarizat până acum cu structura datelor despre dovleci pe care le examinăm. Le poți găsi preîncărcate și pre-curățate în fișierul _notebook.ipynb_ al acestei lecții. În fișier, prețul dovlecilor este afișat per bushel într-un nou cadru de date. Asigură-te că poți rula aceste notebook-uri în kernel-uri din Visual Studio Code.
Ar trebui să fii familiarizat până acum cu structura datelor despre dovleci pe care le examinăm. Le poți găsi preîncărcate și prelucrate în fișierul _notebook.ipynb_ al acestei lecții. În fișier, prețul dovlecilor este afișat pe bushel într-un nou tabel de date. Asigură-te că poți rula aceste jurnale în kernel-uri din Visual Studio Code.
### Pregătire
Ca o reamintire, încarci aceste date pentru a pune întrebări despre ele.
Ca o reamintire, încarci aceste date pentru a putea pune întrebări despre ele.
- Care este cel mai bun moment pentru a cumpăra dovleci?
- Ce preț pot să mă aștept pentru o cutie de dovleci miniaturali?
- Ar trebui să îi cumpăr în coșuri de jumătate de bushel sau în cutii de 1 1/9 bushel?
Să continuăm să explorăm aceste date.
- Ce preț pot să mă aștept pentru o cutie de dovleci miniatură?
- Ar trebui să îi cumpăr în coșuri de jumătate de bushel sau în cutii de 1 1/9 busheli?
Hai să continuăm să explorăm aceste date.
În lecția anterioară, ai creat un cadru de date Pandas și l-ai populat cu o parte din setul de date original, standardizând prețurile pe bushel. Procedând astfel, însă, ai reușit să colectezi doar aproximativ 400 de puncte de date și doar pentru lunile de toamnă.
În lecția anterioară, ai creat un tabel Pandas și l-ai populat cu o parte din setul original de date, standardizând prețul pe bushel. Prin această metodă, însă, ai reușit să aduni doar aproximativ 400 de puncte de date și doar pentru lunile de toamnă.
Aruncă o privire la datele preîncărcate în notebook-ul care însoțește această lecție. Datele sunt preîncărcate și un grafic inițial de tip scatterplot este creat pentru a arăta datele lunare. Poate putem obține mai multe detalii despre natura datelor curățându-le mai mult.
Aruncă o privire la datele preîncărcate în jurnalul însoțitor al acestei lecții. Datele sunt preîncărcate și este reprezentat un grafic dispersie (scatterplot) inițial pentru a arăta datele pe lună. Poate putem să aflăm mai multe detalii despre natura datelor curățându-le mai mult.
## O linie de regresie liniară
Așa cum ai învățat în Lecția 1, scopul unui exercițiu de regresie liniară este să poți trasa o linie pentru:
După cum ai învățat în Lecția 1, scopul exercițiului de regresie liniară este să putem trasa o linie pentru a:
- **Afișarea relațiilor dintre variabile**. Afișarea relației dintre variabile
- **Realizarea de predicții**. Realizarea de predicții precise despre unde ar cădea un nou punct de date în raport cu acea linie.
- **Arăta relațiile dintre variabile**. Arată relația dintre variabile
- **Face predicții**. Face predicții precise privind unde ar cădea un nou punct de date în raport cu acea linie.
Este tipic pentru **Regresia Least-Squares** să traseze acest tip de linie. Termenul 'least-squares' înseamnă că toate punctele de date din jurul liniei de regresie sunt ridicate la pătrat și apoi adunate. Ideal, suma finală este cât mai mică posibil, deoarece dorim un număr redus de erori, sau `least-squares`.
Este tipic pentru **regresia celor mai mici pătrate** să traseze acest tip de linie. Termenul „Cei mai mici pătrați” se referă la procesul de minimizare a erorii totale din modelul nostru. Pentru fiecare punct de date, măsurăm distanța verticală (numită reziduală) între punctul real și linia de regresie.
Facem acest lucru deoarece dorim să modelăm o linie care are cea mai mică distanță cumulativă față de toate punctele noastre de date. De asemenea, ridicăm termenii la pătrat înainte de a-i aduna, deoarece ne preocupă magnitudinea lor, nu direcția.
Aceste distanțe le ridicăm la pătrat din două motive principale:
> **🧮 Arată-mi matematica**
>
> Această linie, numită _linia de cea mai bună potrivire_, poate fi exprimată prin [o ecuație](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
1. **Magnitudine, nu Direcție:** Dorim să tratăm o eroare de -5 la fel ca o eroare de +5. Ridicarea la pătrat transformă toate valorile în pozitive.
2. **Penalizarea valorilor extreme:** Ridicarea la pătrat atribuie o greutate mai mare erorilor mari, forțând linia să fie mai aproape de punctele care sunt mai îndepărtate.
Apoi adunăm toate aceste valori ridicate la pătrat. Scopul nostru este să găsim linia specifică pentru care această sumă finală este cea mai mică (valoarea posibilă cea mai mică) de aici și numele „Ceilalți mai mici pătrați”.
> **🧮 Arată-mi matematica**
>
> Această linie, numită _linia de cea mai bună potrivire_, poate fi exprimată prin [o ecuație](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` este 'variabila explicativă'. `Y` este 'variabila dependentă'. Panta liniei este `b`, iar `a` este interceptul pe axa Y, care se referă la valoarea lui `Y` când `X = 0`.
> `X` este „variabila explicativă”. `Y` este „variabila dependentă”. Panta liniei este `b` iar `a` este interceptul pe axa y, care se referă la valoarea lui `Y` când `X = 0`.
>
>![calcularea pantei](../../../../2-Regression/3-Linear/images/slope.png)
>![calculează panta](../../../../translated_images/ro/slope.f3c9d5910ddbfcf9.webp)
>
> Mai întâi, calculează panta `b`. Infografic de [Jen Looper](https://twitter.com/jenlooper)
> Mai întâi, calculează panta `b`. Infografic realizat de [Jen Looper](https://twitter.com/jenlooper)
>
> Cu alte cuvinte, referindu-ne la întrebarea originală despre datele dovlecilor: "prezice prețul unui dovleac per bushel în funcție de lună", `X` ar fi prețul, iar `Y` ar fi luna vânzării.
> Cu alte cuvinte, referindu-ne la întrebarea originală din datele noastre despre dovleci: „prezice prețul unui dovleac pe bushel în funcție de lună”, `X` se referă la preț, iar `Y` la luna vânzării.
>
>![completarea ecuației](../../../../2-Regression/3-Linear/images/calculation.png)
>![completează ecuația](../../../../translated_images/ro/calculation.a209813050a1ddb1.webp)
>
> Calculează valoarea lui Y. Dacă plătești în jur de 4 dolari, trebuie să fie aprilie! Infografic de [Jen Looper](https://twitter.com/jenlooper)
> Calculează valoarea lui Y. Dacă plătești în jur de 4 dolari, trebuie să fie aprilie! Infografic realizat de [Jen Looper](https://twitter.com/jenlooper)
>
> Matematica care calculează linia trebuie să demonstreze panta liniei, care depinde și de interceptul, sau unde se află `Y` când `X = 0`.
> Matematica care calculează linia trebuie să demonstreze panta liniei, care depinde și de intercept, adică locul unde se află `Y` când `X = 0`.
>
> Poți observa metoda de calcul pentru aceste valori pe site-ul [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Vizitează și [acest calculator Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) pentru a vedea cum valorile numerelor influențează linia.
> Poți observa metoda de calcul pentru aceste valori pe site-ul [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). De asemenea, vizitează [acest calculator de cei mai mici pătrați](https://www.mathsisfun.com/data/least-squares-calculator.html) pentru a vedea cum valorile numerelor influențează linia.
## Corelație
## Corelația
Un alt termen de înțeles este **Coeficientul de Corelație** între variabilele X și Y date. Folosind un scatterplot, poți vizualiza rapid acest coeficient. Un grafic cu puncte de date distribuite într-o linie ordonată are o corelație mare, dar un grafic cu puncte de date distribuite aleatoriu între X și Y are o corelație mică.
Un termen în plus de înțeles este **Coeficientul de corelație** între variabilele date X și Y. Folosind un grafic dispersie, poți vizualiza rapid acest coeficient. Un grafic cu puncte dispersate într-o linie ordonată are corelație mare, iar un grafic cu puncte dispersate peste tot între X și Y are corelație scăzută.
Un model de regresie liniară bun va fi unul care are un Coeficient de Corelație mare (mai aproape de 1 decât de 0) folosind metoda Least-Squares Regression cu o linie de regresie.
Un model bun de regresie liniară va fi unul care are un coeficient de corelație ridicat (mai aproape de 1 decât de 0) folosind metoda regresiei celor mai mici pătrate cu o linie de regresie.
✅ Rulează notebook-ul care însoțește această lecție și uită-te la scatterplot-ul Lună-Preț. Datele care asociază Luna cu Prețul pentru vânzările de dovleci par să aibă o corelație mare sau mică, conform interpretării tale vizuale a scatterplot-ului? Se schimbă acest lucru dacă folosești o măsură mai detaliată în loc de `Lună`, de exemplu *ziua anului* (adică numărul de zile de la începutul anului)?
✅ Rulează jurnalul însoțitor acestei lecții și uită-te la graficul dispersie Lună vs. Preț. Datele care leagă Luna de Preț pentru vânzările de dovleci par să aibă corelație mare sau mică, conform interpretării tale vizuale a graficului? Se schimbă asta dacă folosești o măsurătoare mai detaliată în loc de `Month`, de ex. *ziua anului* (adică numărul de zile de la începutul anului)?
În codul de mai jos, vom presupune că am curățat datele și am obținut un cadru de date numit `new_pumpkins`, similar cu următorul:
În codul de mai jos, vom presupune că am curățat datele și am obținut un tabel de date numit `new_pumpkins`, similar cu următorul:
ID | Lună | ZiuaAnului | Tip | Oraș | Pachet | Preț Minim | Preț Maxim | Preț
---|------|------------|-----|------|--------|------------|------------|------
70 | 9 | 267 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | TIP PLĂCINTĂ | BALTIMORE | 1 1/9 bushel cartons | 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
> Codul pentru curățarea datelor este disponibil în [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Am efectuat aceleași pași de curățare ca în lecția anterioară și am calculat coloana `ZiuaAnului` folosind următoarea expresie:
> Codul pentru curățarea datelor este disponibil în [`notebook.ipynb`](notebook.ipynb). Am efectuat aceiași pași de curățare ca în lecția precedentă și am calculat coloana `DayOfYear` folosind expresia următoare:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Acum că ai o înțelegere a matematicii din spatele regresiei liniare, să creăm un model de regresie pentru a vedea dacă putem prezice care pachet de dovleci va avea cele mai bune prețuri. Cineva care cumpără dovleci pentru o grădină tematică de sărbători ar putea dori aceste informații pentru a optimiza achizițiile de pachete de dovleci pentru grădină.
Acum că ai o înțelegere a matematicii din spatele regresiei liniare, să creăm un model de regresie pentru a vedea dacă putem prezice care pachet de dovleci va avea cele mai bune prețuri. Cineva care cumpără dovleci pentru o patch de dovleci de sărbători ar putea dori această informație pentru a-și optimiza achizițiile de pachete de dovleci pentru patch.
## Căutarea corelației
## Căutând corelație
[![ML pentru începători - Căutarea corelației: cheia regresiei liniare](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML pentru începători - Căutarea corelației: cheia regresiei liniare")
[![ML pentru începători - Căutând Corelația: Cheia regresiei liniare](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML pentru începători - Căutând Corelația: Cheia regresiei liniare")
> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre corelație.
> 🎥 Dă click pe imaginea de mai sus pentru un scurt videoclip despre corelație.
Din lecția anterioară, probabil ai observat că prețul mediu pentru diferite luni arată astfel:
Din lecția precedentă probabil ai observat că prețul mediu pentru diferite luni arată astfel:
<img alt="Preț mediu pe lună" src="../../../../translated_images/ro/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Prețul mediu pe lună" src="../../../../translated_images/ro/barchart.a833ea9194346d76.webp" width="50%"/>
Acest lucru sugerează că ar trebui să existe o anumită corelație, iar noi putem încerca să antrenăm un model de regresie liniară pentru a prezice relația dintre `Lună` și `Preț`, sau dintre `ZiuaAnului` și `Preț`. Iată scatterplot-ul care arată ultima relație:
Acest lucru sugerează că ar trebui să existe o corelație, și putem încerca să antrenăm un model de regresie liniară pentru a prezice relația dintre `Month` și `Price`, sau dintre `DayOfYear` și `Price`. Iată graficul dispersie care arată această a doua relație:
<img alt="Scatterplot Preț vs. Ziua Anului" src="../../../../translated_images/ro/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Grafic dispersie al Prețului vs Ziua anului" src="../../../../translated_images/ro/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Să vedem dacă există o corelație folosind funcția `corr`:
Să vedem dacă există corelație folosind funcția `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Se pare că corelația este destul de mică, -0.15 pentru `Lună` și -0.17 pentru `ZiuaAnului`, dar ar putea exista o altă relație importantă. Se pare că există diferite grupuri de prețuri corespunzătoare diferitelor varietăți de dovleci. Pentru a confirma această ipoteză, să reprezentăm fiecare categorie de dovleci folosind o culoare diferită. Prin transmiterea unui parametru `ax` funcției de plotare `scatter`, putem reprezenta toate punctele pe același grafic:
Se pare că corelația este destul de mică, -0.15 pentru `Month` și -0.17 pentru `DayOfMonth`, dar ar putea exista o altă relație importantă. Se pare că există clustere diferite de prețuri corespunzătoare diferitelor soiuri de dovleci. Pentru a confirma această ipoteză, să desenăm fiecare categorie de dovleci cu o culoare diferită. Transmitând parametrul `ax` către funcția de plotare `scatter` putem plota toate punctele pe același grafic:
```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="Scatterplot Preț vs. Ziua Anului" src="../../../../translated_images/ro/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Grafic dispersie al Prețului vs Ziua anului" src="../../../../translated_images/ro/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Investigația noastră sugerează că varietatea are un efect mai mare asupra prețului general decât data efectivă de vânzare. Putem vedea acest lucru cu un grafic de tip bară:
Investigația noastră sugerează că soiul are un efect mai mare asupra prețului total decât data efectivă a vânzării. Putem vedea asta cu un grafic cu bare:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Grafic de tip bară preț vs varietate" src="../../../../translated_images/ro/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Grafic cu bare al prețului vs soiului" src="../../../../translated_images/ro/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Să ne concentrăm pentru moment doar pe o singură varietate de dovleci, 'tip plăcintă', și să vedem ce efect are data asupra prețului:
Să ne concentrăm momentan doar pe un soi de dovleci, cel „pie type”, și să vedem ce efect are data asupra prețului:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Scatterplot Preț vs. Ziua Anului" src="../../../../translated_images/ro/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Grafic dispersie al Prețului vs Ziua anului" src="../../../../translated_images/ro/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Dacă acum calculăm corelația dintre `Preț` și `ZiuaAnului` folosind funcția `corr`, vom obține ceva în jur de `-0.27` - ceea ce înseamnă că antrenarea unui model predictiv are sens.
Dacă acum calculăm corelația dintre `Price` și `DayOfYear` folosind funcția `corr`, vom obține ceva de genul `-0.27` - ceea ce înseamnă că antrenarea unui model predictiv are sens.
> Înainte de a antrena un model de regresie liniară, este important să ne asigurăm că datele noastre sunt curate. Regresia liniară nu funcționează bine cu valori lipsă, astfel încât este logic să eliminăm toate celulele goale:
> Înainte de a antrena un model de regresie liniară, este important să ne asigurăm că datele sunt curate. Regresia liniară nu funcționează bine cu valori lipsă, deci este recomandat să eliminăm toate celulele goale:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
O altă abordare ar fi să completăm valorile lipsă cu valorile medii din coloana corespunzătoare.
O altă abordare ar fi să completăm acele valori lipsă cu valorile medii din coloana corespunzătoare.
## Regresie liniară simplă
[![ML pentru începători - Regresie liniară și polinomială folosind Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML pentru începători - Regresie liniară și polinomială folosind Scikit-learn")
> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre regresia liniară și polinomială.
> 🎥 Dă click pe imaginea de mai sus pentru un scurt videoclip despre regresia liniară și polinomială.
Pentru a antrena modelul nostru de regresie liniară, vom folosi biblioteca **Scikit-learn**.
Pentru a antrena modelul nostru de regresie liniară vom folosi biblioteca **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
```
Începem prin separarea valorilor de intrare (caracteristici) și a ieșirii așteptate (eticheta) în array-uri numpy separate:
Începem prin separarea valorilor de intrare (caracteristici) și a ieșirii așteptate (etichetei) în array-uri numpy separate:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Observă că a trebuit să aplicăm `reshape` pe datele de intrare pentru ca pachetul de regresie liniară să le înțeleagă corect. Regresia liniară așteaptă un array 2D ca intrare, unde fiecare rând al array-ului corespunde unui vector de caracteristici de intrare. În cazul nostru, deoarece avem doar o singură intrare - avem nevoie de un array cu forma N×1, unde N este dimensiunea setului de date.
> Observă că a fost necesară folosirea metodei `reshape` pe datele de intrare pentru ca pachetul de regresie liniară să le înțeleagă corect. Regresia liniară așteaptă un array 2D ca intrare, unde fiecare rând al array-ului corespunde unui vector de caracteristici de intrare. În cazul nostru, deoarece avem o singură intrare, avem nevoie de un array cu forma N&times;1, unde N este dimensiunea setului de date.
Apoi, trebuie să împărțim datele în seturi de antrenament și test, astfel încât să putem valida modelul nostru după antrenament:
Apoi, trebuie să împărțim datele în seturi de antrenament și test pentru a valida modelul după antrenare:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
În cele din urmă, antrenarea modelului de regresie liniară propriu-zis durează doar două linii de cod. Definim obiectul `LinearRegression` și îl ajustăm la datele noastre folosind metoda `fit`:
În cele din urmă, antrenarea modelelor propriu-zise de regresie liniară se face în doar două linii de cod. Definim obiectul `LinearRegression`, și îl potrivim pe date folosind metoda `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Obiectul `LinearRegression` după ajustare conține toate coeficienții regresiei, care pot fi accesați folosind proprietatea `.coef_`. În cazul nostru, există doar un coeficient, care ar trebui să fie în jur de `-0.017`. Acest lucru înseamnă că prețurile par să scadă puțin în timp, dar nu prea mult, aproximativ 2 cenți pe zi. De asemenea, putem accesa punctul de intersecție al regresiei cu axa Y folosind `lin_reg.intercept_` - va fi în jur de `21` în cazul nostru, indicând prețul de la începutul anului.
Obiectul `LinearRegression` după `fit`-are conține toți coeficienții regresiei, care pot fi accesați folosind proprietatea `.coef_`. În cazul nostru, există doar un coeficient, care ar trebui să fie în jur de `-0.017`. Aceasta înseamnă că prețurile par să scadă puțin în timp, dar nu prea mult, în jur de 2 cenți pe zi. De asemenea, putem accesa punctul de intersecție al regresiei cu axa Y folosind `lin_reg.intercept_` - acesta va fi în jur de `21` în cazul nostru, indicând prețul la începutul anului.
Pentru a vedea cât de precis este modelul nostru, putem prezice prețurile pe un set de date de test și apoi măsura cât de apropiate sunt predicțiile noastre de valorile așteptate. Acest lucru poate fi realizat folosind metrica mean square error (MSE), care este media tuturor diferențelor pătrate dintre valoarea așteptată și cea prezisă.
Pentru a vedea cât de precis este modelul nostru, putem prezice prețurile pe un set de date de test, apoi putem măsura cât de aproape sunt predicțiile noastre de valorile așteptate. Acest lucru se poate face folosind metrica eroarea pătratică medie (MSE), care este media tuturor diferențelor pătrate dintre valori așteptate și valori prezise.
```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}%)')
```
Eroarea noastră pare să fie în jur de 2 puncte, ceea ce reprezintă ~17%. Nu prea bine. Un alt indicator al calității modelului este **coeficientul de determinare**, care poate fi obținut astfel:
Eroarea noastră pare să fie în jur de 2 puncte, ceea ce este ~17%. Nu prea bine. Un alt indicator al calității modelului este **coeficientul de determinare**, care poate fi obținut astfel:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Dacă valoarea este 0, înseamnă că modelul nu ia în considerare datele de intrare și acționează ca *cel mai slab predictor liniar*, care este pur și simplu valoarea medie a rezultatului. Valoarea de 1 înseamnă că putem prezice perfect toate rezultatele așteptate. În cazul nostru, coeficientul este în jur de 0.06, ceea ce este destul de scăzut.
```
Dacă valoarea este 0, înseamnă că modelul nu ia în considerare datele de intrare și acționează ca *cel mai slab predictor liniar*, care este pur și simplu o valoare medie a rezultatului. Valoarea 1 înseamnă că putem prezice perfect toate rezultatele așteptate. În cazul nostru, coeficientul este în jur de 0.06, ceea ce este destul de scăzut.
Putem, de asemenea, să reprezentăm grafic datele de testare împreună cu linia de regresie pentru a vedea mai bine cum funcționează regresia în cazul nostru:
Putem, de asemenea, să reprezentăm grafic datele de test împreună cu linia de regresie pentru a vedea mai bine cum funcționează regresia în cazul nostru:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Regresie liniară" src="../../../../translated_images/ro/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/ro/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Regresie Polinomială
Un alt tip de regresie liniară este regresia polinomială. Deși uneori există o relație liniară între variabile - cu cât dovleacul este mai mare în volum, cu atât prețul este mai mare - uneori aceste relații nu pot fi reprezentate ca un plan sau o linie dreaptă.
Un alt tip de Regressie Liniară este Regresia Polinomială. Deși uneori există o relație liniară între variabile - cu cât dovleacul este mai mare ca volum, cu atât este mai mare prețul - uneori aceste relații nu pot fi reprezentate ca un plan sau o linie dreaptă.
✅ Iată [câteva exemple](https://online.stat.psu.edu/stat501/lesson/9/9.8) de date care ar putea utiliza regresia polinomială.
✅ Iată [câteva exemple suplimentare](https://online.stat.psu.edu/stat501/lesson/9/9.8) de date care ar putea necesita Regresie Polinomială
Privește din nou relația dintre Dată și Preț. Acest scatterplot pare să fie analizat neapărat printr-o linie dreaptă? Nu pot prețurile să fluctueze? În acest caz, poți încerca regresia polinomială.
Privim din nou relația dintre Data și Preț. Pare acest scatterplot să trebuiască neapărat analizat printr-o linie dreaptă? Nu pot prețurile fluctua? În acest caz, poți încerca regresia polinomială.
✅ Polinoamele sunt expresii matematice care pot consta din una sau mai multe variabile și coeficienți.
✅ Polinoamele sunt expresii matematice care pot consta din unul sau mai mulți termeni și coeficienți
Regresia polinomială creează o linie curbată pentru a se potrivi mai bine datelor neliniare. În cazul nostru, dacă includem o variabilă pătratică `DayOfYear` în datele de intrare, ar trebui să putem ajusta datele noastre cu o curbă parabolică, care va avea un minim într-un anumit punct al anului.
Regresia polinomială creează o curbă pentru a se potrivi mai bine datelor neliniare. În cazul nostru, dacă includem o variabilă pătratică `DayOfYear` în datele de intrare, ar trebui să putem ajusta datele noastre cu o curbă parabolică, care va avea un minim într-un anumit punct din an.
Scikit-learn include o [API pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) utilă pentru a combina diferite etape de procesare a datelor. Un **pipeline** este un lanț de **estimatori**. În cazul nostru, vom crea un pipeline care mai întâi adaugă caracteristici polinomiale modelului nostru, apoi antrenează regresia:
Scikit-learn include un util [API pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) pentru a combina diferite etape de procesare a datelor împreună. Un **pipeline** este un lanț de **estimatori**. În cazul nostru, vom crea un pipeline care mai întâi adaugă caracteristici polinomiale modelului, apoi antrenează regresia:
```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)
```
```
Utilizarea `PolynomialFeatures(2)` înseamnă că vom include toate polinoamele de gradul doi din datele de intrare. În cazul nostru, aceasta va însemna doar `DayOfYear`<sup>2</sup>, dar având două variabile de intrare X și Y, aceasta va adăuga X<sup>2</sup>, XY și Y<sup>2</sup>. Putem folosi și polinoame de grad mai mare dacă dorim.
Folosind `PolynomialFeatures(2)` înseamnă că vom include toți polinomii de gradul doi din datele de intrare. În cazul nostru, aceasta înseamnă doar `DayOfYear`<sup>2</sup>, dar având două variabile de intrare X și Y, aceasta va adăuga X<sup>2</sup>, XY și Y<sup>2</sup>. Putem de asemenea să folosim polinoame de grad mai înalt dacă dorim.
Pipeline-urile pot fi utilizate în același mod ca obiectul original `LinearRegression`, adică putem aplica `fit` pipeline-ului și apoi utiliza `predict` pentru a obține rezultatele predicției. Iată graficul care arată datele de testare și curba de aproximare:
Pipeline-urile pot fi folosite în același mod ca obiectul original `LinearRegression`, adică putem face `fit` pe pipeline, apoi folosi `predict` pentru a obține rezultatele predicției. Iată graficul care arată datele de test și curba de aproximare:
<img alt="Regresie polinomială" src="../../../../translated_images/ro/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/ro/poly-results.ee587348f0f1f60b.webp" width="50%" />
Folosind regresia polinomială, putem obține un MSE ușor mai mic și un coeficient de determinare mai mare, dar nu semnificativ. Trebuie să luăm în considerare alte caracteristici!
Folosind Regresia Polinomială, putem obține o MSE puțin mai mică și un coeficient de determinare mai mare, dar fără o îmbunătățire semnificativă. Trebuie să luăm în considerare și alte caracteristici!
> Poți observa că prețurile minime ale dovlecilor sunt observate undeva în jurul Halloween-ului. Cum poți explica acest lucru?
> Se poate observa că prețurile minime ale dovlecilor sunt observate în jur de Halloween. Cum ai putea explica acest lucru?
🎃 Felicitări, tocmai ai creat un model care poate ajuta la prezicerea prețului dovlecilor pentru plăcintă. Probabil poți repeta aceeași procedură pentru toate tipurile de dovleci, dar ar fi obositor. Să învățăm acum cum să luăm în considerare varietatea dovlecilor în modelul nostru!
🎃 Felicitări, tocmai ai creat un model care poate ajuta la prezicerea prețului dovlecilor pentru plăcintă. Probabil poți repeta aceeași procedură pentru toate tipurile de dovleci, dar asta ar fi obositor. Acum să învățăm cum să luăm în calcul soiul de dovleac în modelul nostru!
## Caracteristici Categoriale
## Caracteristici categorice
În lumea ideală, ne dorim să putem prezice prețurile pentru diferite varietăți de dovleci folosind același model. Totuși, coloana `Variety` este oarecum diferită de coloane precum `Month`, deoarece conține valori non-numerice. Astfel de coloane sunt numite **categoriale**.
În lumea ideală, vrem să putem prezice prețurile pentru diferite soiuri de dovleci folosind același model. Totuși, coloana `Variety` este oarecum diferită de coloane precum `Month`, pentru că conține valori nenumerice. Astfel de coloane se numesc **categorice**.
[![ML pentru începători - Predicții cu caracteristici categoriale folosind regresia liniară](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML pentru începători - Predicții cu caracteristici categoriale folosind regresia liniară")
[![ML pentru începători - Predicții cu caracteristici categorice în regresia liniară](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML pentru începători - Predicții cu caracteristici categorice în regresia liniară")
> 🎥 Fă clic pe imaginea de mai sus pentru un scurt videoclip despre utilizarea caracteristicilor categoriale.
> 🎥 Fă click pe imaginea de mai sus pentru un scurt videoclip despre utilizarea caracteristicilor categorice.
Aici poți vedea cum prețul mediu depinde de varietate:
Aici poți vedea cum prețul mediu depinde de soi:
<img alt="Preț mediu pe varietate" src="../../../../translated_images/ro/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/ro/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Pentru a lua în considerare varietatea, mai întâi trebuie să o convertim într-o formă numerică, sau să o **codificăm**. Există mai multe moduri în care putem face acest lucru:
Pentru a lua în calcul soiul, mai întâi trebuie să-l convertim în formă numerică, sau să-l **encodăm**. Există mai multe moduri de a face asta:
* Codificarea numerică simplă va construi un tabel cu diferite varietăți și apoi va înlocui numele varietății cu un index din acel tabel. Aceasta nu este cea mai bună idee pentru regresia liniară, deoarece regresia liniară ia valoarea numerică reală a indexului și o adaugă la rezultat, înmulțind-o cu un coeficient. În cazul nostru, relația dintre numărul indexului și preț este clar neliniară, chiar dacă ne asigurăm că indicii sunt ordonați într-un mod specific.
* **Codificarea one-hot** va înlocui coloana `Variety` cu 4 coloane diferite, câte una pentru fiecare varietate. Fiecare coloană va conține `1` dacă rândul corespunzător este de o anumită varietate și `0` în caz contrar. Aceasta înseamnă că vor exista patru coeficienți în regresia liniară, câte unul pentru fiecare varietate de dovleac, responsabili pentru "prețul de pornire" (sau mai degrabă "prețul suplimentar") pentru acea varietate specifică.
* O simplă **codificare numerică** va crea un tabel cu soiurile diferite și apoi va înlocui numele soiului cu un index din acel tabel. Aceasta nu este o idee bună pentru regresia liniară, deoarece regresia liniară ia valoarea numerică efectivă a indexului și o adaugă în rezultat, înmulțind cu un coeficient. În cazul nostru, relația dintre numărul indexului și preț este clar neliniară, chiar dacă ne asigurăm că indicii sunt ordonați într-un anumit mod.
* **Codificarea one-hot** va înlocui coloana `Variety` cu 4 coloane diferite, câte una pentru fiecare soi. Fiecare coloană va conține `1` dacă rândul respectiv este dintr-un anumit soi și `0` în caz contrar. Aceasta înseamnă că vor exista patru coeficienți în regresia liniară, câte unul pentru fiecare soi de dovleac, responsabili pentru „prețul de bază” (sau mai degrabă „prețul suplimentar”) pentru acel soi în particular.
Codul de mai jos arată cum putem codifica one-hot o varietate:
Codul de mai jos arată cum putem aplica one-hot encoding pentru soi:
```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
Pentru a antrena regresia liniară folosind varietatea codificată one-hot ca intrare, trebuie doar să inițializăm corect datele `X` și `y`:
Pentru a antrena regresia liniară folosind soiul one-hot encoded drept intrare, trebuie doar să inițializăm corect datele X și y:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
Restul codului este același cu cel pe care l-am folosit mai sus pentru a antrena regresia liniară. Dacă încerci, vei vedea că eroarea medie pătratică este aproximativ aceeași, dar obținem un coeficient de determinare mult mai mare (~77%). Pentru a obține predicții și mai precise, putem lua în considerare mai multe caracteristici categoriale, precum și caracteristici numerice, cum ar fi `Month` sau `DayOfYear`. Pentru a obține un array mare de caracteristici, putem folosi `join`:
Restul codului este la fel ca cel folosit mai sus pentru a antrena regresia liniară. Dacă încerci, vei vedea că eroarea pătratică medie este cam aceeași, dar coeficientul de determinare crește mult (~77%). Pentru predicții și mai precise, putem lua în calcul mai multe caracteristici categorice, precum și caracteristici numerice, cum ar fi `Month` sau `DayOfYear`. Pentru a obține un singur set mare de caracteristici, putem folosi `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -304,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']
```
```
Aici luăm în considerare și `City` și tipul de `Package`, ceea ce ne oferă un MSE de 2.84 (10%) și un coeficient de determinare de 0.94!
Aici luăm în considerare și `City` și tipul `Package`, ceea ce ne oferă MSE 2.84 (10%) și coeficient de determinare 0.94!
## Punând totul împreună
## Combinând totul
Pentru a crea cel mai bun model, putem folosi date combinate (categoriale codificate one-hot + numerice) din exemplul de mai sus împreună cu regresia polinomială. Iată codul complet pentru confortul tău:
Pentru a face cel mai bun model, putem folosi date combinate (categorice one-hot encoded + numerice) din exemplul de mai sus împreună cu Regresia Polinomială. Iată codul complet pentru conveniența ta:
```python
# set up training data
# configurare date de antrenament
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
# realizare divizare antrenament-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
# configurare și antrenare pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# prezice rezultate pentru datele de test
pred = pipeline.predict(X_test)
# calculate MSE and determination
# calculare MSE și coeficient de determinare
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)
```
```
Acest lucru ar trebui să ne ofere cel mai bun coeficient de determinare de aproape 97% și MSE=2.23 (~8% eroare de predicție).
Aceasta ar trebui să ne ofere cel mai bun coeficient de determinare de aproape 97% și MSE=2.23 (~8% eroare de predicție).
| Model | MSE | Determinare |
|-------|-----|-------------|
| `DayOfYear` Liniar | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polinomial | 2.73 (17.0%) | 0.08 |
| `Variety` Liniar | 5.24 (19.7%) | 0.77 |
| Toate caracteristicile Liniar | 2.84 (10.5%) | 0.94 |
| Toate caracteristicile Polinomial | 2.23 (8.25%) | 0.97 |
| Model | MSE | Determinare |
|-------|-----|-------------|
| Linear `DayOfYear` | 2.77 (17.2%) | 0.07 |
| Polinomial `DayOfYear` | 2.73 (17.0%) | 0.08 |
| Linear `Variety` | 5.24 (19.7%) | 0.77 |
| Linear toate caracteristicile | 2.84 (10.5%) | 0.94 |
| Polinomial toate caracteristicile | 2.23 (8.25%) | 0.97 |
🏆 Bravo! Ai creat patru modele de regresie într-o singură lecție și ai îmbunătățit calitatea modelului la 97%. În secțiunea finală despre regresie, vei învăța despre regresia logistică pentru a determina categorii.
🏆 Foarte bine! Ai creat patru modele de Regresie într-o singură lecție și ai îmbunătățit calitatea modelului la 97%. În secțiunea finală despre Regresie vei învăța despre Regresia Logistică pentru determinarea categoriilor.
---
## 🚀Provocare
Testează mai multe variabile diferite în acest notebook pentru a vedea cum corelația corespunde cu acuratețea modelului.
Testează mai multe variabile diferite în acest notebook pentru a vedea cum se corelează acestea cu acuratețea modelului.
## [Quiz post-lectură](https://ff-quizzes.netlify.app/en/ml/)
## [Test post-lector](https://ff-quizzes.netlify.app/en/ml/)
## Recapitulare & Studiu Individual
## Recapitulare & Auto-studiu
În această lecție am învățat despre regresia liniară. Există alte tipuri importante de regresie. Citește despre tehnicile Stepwise, Ridge, Lasso și Elasticnet. Un curs bun pentru a învăța mai multe este [cursul de învățare statistică de la Stanford](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
În această lecție am învățat despre Regresia Liniară. Există și alte tipuri importante de Regresie. Citește despre tehnicile Stepwise, Ridge, Lasso și Elasticnet. Un curs bun pentru aprofundare este [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Temă
[Construiește un model](assignment.md)
[Build a Model](assignment.md)
---
**Declinare de responsabilitate**:
Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Declinarea responsabilității**:
Acest document a fost tradus folosind serviciul de traducere automată AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa de origine trebuie considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm nicio responsabilitate pentru eventualele neînțelegeri sau interpretări eronate care pot rezulta din utilizarea acestei traduceri.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,42 +1,42 @@
# Clasificatori culinari 2
# Clasificatoare de bucătării 2
În această a doua lecție despre clasificare, vei explora mai multe modalități de a clasifica date numerice. De asemenea, vei învăța despre implicațiile alegerii unui clasificator în detrimentul altuia.
În această a doua lecție de clasificare, vei explora mai multe modalități de a clasifica date numerice. De asemenea, vei afla despre consecințele alegerii unui clasificator în defavoarea altuia.
## [Chestionar înainte de lecție](https://ff-quizzes.netlify.app/en/ml/)
## [Chestionar pre-lectură](https://ff-quizzes.netlify.app/en/ml/)
### Cerințe preliminare
### Precondiții
Presupunem că ai finalizat lecțiile anterioare și ai un set de date curățat în folderul `data`, numit _cleaned_cuisines.csv_, în rădăcina acestui folder cu 4 lecții.
Presupunem că ai finalizat lecțiile anterioare și ai un set de date curățat în folderul tău `data` denumit _cleaned_cuisines.csv_ în rădăcina acestui folder cu 4 lecții.
### Pregătire
Am încărcat fișierul tău _notebook.ipynb_ cu setul de date curățat și l-am împărțit în cadre de date X și y, pregătite pentru procesul de construire a modelului.
Am încărcat fișierul tău _notebook.ipynb_ cu setul de date curățat și l-am împărțit în dataframuri X și y, gata pentru procesul de construire a modelului.
## O hartă a clasificării
Anterior, ai învățat despre diversele opțiuni pe care le ai atunci când clasifici date folosind fișa de ajutor de la Microsoft. Scikit-learn oferă o fișă similară, dar mai detaliată, care te poate ajuta să restrângi și mai mult alegerea estimatoarelor (un alt termen pentru clasificatori):
Anterior, ai învățat despre opțiunile pe care le ai atunci când clasifici date folosind foaia de trucuri Microsoft. Scikit-learn oferă o foaie de trucuri similară, dar mai granulară, care te poate ajuta să restrângi mai mult estimatorii tăi (un alt termen pentru clasificatori):
![Harta ML de la Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Sfat: [vizitează această hartă online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) și explorează căile pentru a citi documentația.
![ML Map from Scikit-learn](../../../../translated_images/ro/map.e963a6a51349425a.webp)
> Sfat: [vizitează această hartă online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) și fă clic de-a lungul traseului pentru a citi documentația.
### Planul
Această hartă este foarte utilă odată ce ai o înțelegere clară a datelor tale, deoarece poți „parcurge” căile pentru a lua o decizie:
Această hartă este foarte utilă odată ce ai o înțelegere clară a datelor tale, deoarece poți „parcurge” traseele sale către o decizie:
- Avem >50 de mostre
- Avem >50 de eșantioane
- Vrem să prezicem o categorie
- Avem date etichetate
- Avem mai puțin de 100K mostre
- Avem mai puțin de 100.000 de eșantioane
- ✨ Putem alege un Linear SVC
- Dacă acest lucru nu funcționează, deoarece avem date numerice
- Putem încerca un ✨ KNeighbors Classifier
- Dacă nici acesta nu funcționează, încercăm ✨ SVC și ✨ Ensemble Classifiers
- Dacă nu funcționează, deoarece avem date numerice
- Putem încerca un ✨ KNeighbors Classifier
- Dacă nu funcționează, încearcă ✨ SVC și ✨ Ensemble Classifiers
Aceasta este o cale foarte utilă de urmat.
Acesta este un traseu foarte util de urmat.
## Exercițiu - împarte datele
Urmând această cale, ar trebui să începem prin a importa câteva biblioteci necesare.
Urmând acest traseu, ar trebui să începem prin a importa câteva biblioteci pe care să le folosim.
1. Importă bibliotecile necesare:
@ -50,15 +50,15 @@ Urmând această cale, ar trebui să începem prin a importa câteva biblioteci
import numpy as np
```
1. Împarte datele de antrenament și test:
1. Împarte-ți datele de antrenament și testare:
```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)
```
## Clasificator Linear SVC
Support-Vector Clustering (SVC) face parte din familia tehnicilor ML Support-Vector Machines (află mai multe despre acestea mai jos). În această metodă, poți alege un „kernel” pentru a decide cum să grupezi etichetele. Parametrul 'C' se referă la 'regularizare', care reglează influența parametrilor. Kernel-ul poate fi unul dintre [mai multe](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); aici îl setăm la 'linear' pentru a ne asigura că folosim Linear SVC. Probabilitatea este implicit 'false'; aici o setăm la 'true' pentru a obține estimări de probabilitate. Setăm starea aleatorie la '0' pentru a amesteca datele și a obține probabilități.
Support-Vector clustering (SVC) este parte din familia de metode ML Support-Vector machines (afișează mai multe detalii în continuare). În această metodă, poți alege un „kernel” pentru a decide cum să grupezi etichetele. Parametrul „C” se referă la „regularizare” care reglează influența parametrilor. Kernel-ul poate fi unul din [mai multe](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); aici îl setăm pe 'linear' pentru a asigura folosirea Linear SVC. Probabilitatea este implicit 'false'; aici o setăm pe 'true' pentru a obține estimări ale probabilității. Setăm random state la '0' pentru a amesteca datele și a obține probabilități.
### Exercițiu - aplică un Linear SVC
@ -68,13 +68,13 @@ Support-Vector Clustering (SVC) face parte din familia tehnicilor ML Support-Vec
```python
C = 10
# Create different classifiers.
# Creează clasificatoare diferite.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Antrenează modelul folosind Linear SVC și afișează un raport:
2. Antrenează-ți modelul folosind Linear SVC și afișează un raport:
```python
n_classifiers = len(classifiers)
@ -107,13 +107,13 @@ Support-Vector Clustering (SVC) face parte din familia tehnicilor ML Support-Vec
## Clasificator K-Neighbors
K-Neighbors face parte din familia „neighbors” a metodelor ML, care pot fi utilizate atât pentru învățare supravegheată, cât și nesupravegheată. În această metodă, se creează un număr predefinit de puncte, iar datele sunt grupate în jurul acestor puncte astfel încât să se poată prezice etichete generalizate pentru date.
K-Neighbors face parte din familia metodelor ML „vecini”, care pot fi folosite atât pentru învățare supervizată cât și nesupervizată. În această metodă se creează un număr predefinit de puncte și datele sunt adunate în jurul acestor puncte astfel încât se pot prezice etichete generalizate pentru date.
### Exercițiu - aplică clasificatorul K-Neighbors
Clasificatorul anterior a fost bun și a funcționat bine cu datele, dar poate putem obține o acuratețe mai bună. Încearcă un clasificator K-Neighbors.
1. Adaugă o linie în array-ul de clasificatori (adaugă o virgulă după elementul Linear SVC):
1. Adaugă o linie în array-ul tău de clasificatori (adaugă o virgulă după elementul Linear SVC):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -136,17 +136,17 @@ Clasificatorul anterior a fost bun și a funcționat bine cu datele, dar poate p
weighted avg 0.76 0.74 0.74 1199
```
✅ Află mai multe despre [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ Află despre [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Clasificator Support Vector
Clasificatorii Support-Vector fac parte din familia [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) a metodelor ML utilizate pentru sarcini de clasificare și regresie. SVM-urile „mapează exemplele de antrenament în puncte din spațiu” pentru a maximiza distanța dintre două categorii. Datele ulterioare sunt mapate în acest spațiu astfel încât categoria lor să poată fi prezisă.
Clasificatoarele Support-Vector fac parte din familia de metode ML [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) folosită pentru sarcini de clasificare și regresie. SVM-urile „mapază exemplele de antrenament către puncte în spațiu” pentru a maximiza distanța între două categorii. Datele ulterioare sunt mapate în acest spațiu pentru a prezice categoria lor.
### Exercițiu - aplică un Support Vector Classifier
Să încercăm să obținem o acuratețe puțin mai bună cu un Support Vector Classifier.
Să încercăm o acuratețe puțin mai bună cu un Support Vector Classifier.
1. Adaugă o virgulă după elementul K-Neighbors, apoi adaugă această linie:
1. Adaugă o virgulă după itemul K-Neighbors, apoi adaugă această linie:
```python
'SVC': SVC(),
@ -169,18 +169,18 @@ Să încercăm să obținem o acuratețe puțin mai bună cu un Support Vector C
weighted avg 0.84 0.83 0.83 1199
```
✅ Află mai multe despre [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ Află despre [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Clasificatori Ensemble
## Clasificatoare Ensemble
Să urmăm calea până la capăt, chiar dacă testul anterior a fost destul de bun. Să încercăm câțiva 'Clasificatori Ensemble', în special Random Forest și AdaBoost:
Să urmăm traseul până la capăt, chiar dacă testul anterior a fost destul de bun. Să încercăm niște 'Classificatoare Ensemble', în mod specific Random Forest și AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
Rezultatul este foarte bun, mai ales pentru Random Forest:
Rezultatul este foarte bun, în special pentru 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
```
✅ Află mai multe despre [Clasificatori Ensemble](https://scikit-learn.org/stable/modules/ensemble.html)
✅ Află despre [Clasificatoare Ensemble](https://scikit-learn.org/stable/modules/ensemble.html)
Această metodă de învățare automată „combină predicțiile mai multor estimatori de bază” pentru a îmbunătăți calitatea modelului. În exemplul nostru, am folosit Random Trees și AdaBoost.
Această metodă de Învățare Automată „combină predicțiile mai multor estimatori de bază” pentru a îmbunătăți calitatea modelului. În exemplul nostru, am folosit Random Trees și AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), o metodă de mediere, construiește o „pădure” de „arbori de decizie” infuzați cu aleatoriu pentru a evita supraînvățarea. Parametrul n_estimators este setat la numărul de arbori.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), o metodă de mediere, construiește o „pădure” de „arbori de decizie” infuzați cu aleatorietate pentru a evita suprapotrivirea. Parametrul n_estimators este setat la numărul de arbori.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) ajustează un clasificator pe un set de date și apoi ajustează copii ale acelui clasificator pe același set de date. Se concentrează pe greutățile elementelor clasificate incorect și ajustează potrivirea pentru următorul clasificator pentru a corecta.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) potrivește un clasificator pe un set de date și apoi potrivește copii ale acelui clasificator pe același set de date. Se concentrează pe greutățile elementelor clasificate incorect și ajustează potrivirea pentru următorul clasificator, pentru a corecta.
---
## 🚀Provocare
Fiecare dintre aceste tehnici are un număr mare de parametri pe care îi poți ajusta. Cercetează parametrii impliciți ai fiecărei metode și gândește-te ce ar însemna ajustarea acestor parametri pentru calitatea modelului.
Fiecare dintre aceste tehnici are un număr mare de parametri pe care îi poți modifica. Cercetează parametrii lor impliciți și gândește-te ce ar însemna să modifici acești parametri pentru calitatea modelului.
## [Chestionar după lecție](https://ff-quizzes.netlify.app/en/ml/)
## [Chestionar post-lectură](https://ff-quizzes.netlify.app/en/ml/)
## Recapitulare și studiu individual
## Recapitulare & Studiu individual
Există mulți termeni tehnici în aceste lecții, așa că ia-ți un moment pentru a revizui [această listă](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) de terminologie utilă!
Există mult jargon în aceste lecții, așa că ia-ți un minut să revizuiești [această listă](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) de terminologie utilă!
## Temă
## Temă
[Joacă-te cu parametrii](assignment.md)
[Jocul cu parametrii](assignment.md)
---
**Declinare de responsabilitate**:
Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa maternă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Declinare de responsabilitate**:
Acest document a fost tradus folosind serviciul de traducere automată AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să țineți cont că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un traducător uman. Nu ne asumăm responsabilitatea pentru eventuale neînțelegeri sau interpretări eronate rezultate din utilizarea acestei traduceri.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# Construirea Modelului de Clasificare\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**Declinarea responsabilității**: \nAcest document a fost tradus utilizând serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să aveți în vedere că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Declinare de responsabilitate**: \nAcest document a fost tradus utilizând serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original, în limba sa nativă, trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-06T12:28:17+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "ro"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# Construiește mai multe modele de clasificare\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,8 +116,8 @@
}
],
"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()"
]
},
{
@ -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**Declinarea responsabilității**: \nAcest document a fost tradus utilizând serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Declinare a responsabilității**:\nAcest document a fost tradus utilizând serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite ce rezultă din utilizarea acestei traduceri.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-06T12:28:39+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "ro"
}
},
"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/)
### 🌐 Suport multi-limbaj
### 🌐 Suport multilingv
#### Susținut prin GitHub Action (Automatizat și Întotdeauna Actualizat)
#### Suportat prin GitHub Action (automatizat și întotdeauna actualizat)
<!-- 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](./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)
> **Preferi să clonezi local?**
> Acest repository include peste 50 de traduceri în limbi diferite, ceea ce mărește semnificativ dimensiunea descărcării. Pentru a clona fără traduceri, folosește sparse checkout:
>
> Acest depozit include peste 50 de traduceri în diferite limbi, ceea ce mărește semnificativ dimensiunea descărcării. Pentru a clona fără traduceri, folosește 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'
> ```
> Astfel ai tot ce ai nevoie pentru a finaliza cursul cu o descărcare mult mai rapidă.
>
> **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"
> ```
>
> Aceasta îți oferă tot ce ai nevoie pentru a finaliza cursul cu o descărcare mult mai rapidă.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Alătură-te comunității noastre
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Avem o serie continuă pe Discord numită „Învățare cu AI”, află mai multe și alătură-te la [Learn with AI Series](https://aka.ms/learnwithai/discord) în perioada 18 - 30 septembrie 2025. Vei primi sfaturi și trucuri despre cum să folosești GitHub Copilot pentru Data Science.
Avem o serie ongoing pe Discord „învață cu AI”, află mai multe și alătură-te nouă la [Learn with AI Series](https://aka.ms/learnwithai/discord) în perioada 18 - 30 septembrie 2025. Vei primi trucuri și sfaturi pentru folosirea GitHub Copilot pentru Data Science.
![Learn with AI series](../../translated_images/ro/3.9b58fd8d6c373c20.webp)
# Învățare automată pentru începători - Un curriculum
# Machine Learning pentru Începători - Un Curriculum
> 🌍 Călătorește în jurul lumii în timp ce explorăm Învățarea Automată prin prisma culturilor lumii 🌍
> 🌍 Călătorește în jurul lumii în timp ce explorăm Machine Learning prin culturile lumii 🌍
Echipa Cloud Advocates de la Microsoft este încântată să ofere un curriculum de 12 săptămâni, format din 26 de lecții, dedicat **Învățării Automate**. În acest curriculum, vei învăța despre ceea ce este uneori numit **învățarea automată clasică**, folosind în principal biblioteca Scikit-learn și evitând învățarea profundă, care este abordată în curriculumul nostru [AI for Beginners](https://aka.ms/ai4beginners). Poți asocia aceste lecții și cu curriculumul nostru ['Data Science for Beginners'](https://aka.ms/ds4beginners)!
Cloud Advocates de la Microsoft sunt încântați să ofere un curriculum de 12 săptămâni, format din 26 de lecții, dedicat **Machine Learning**. În acest curriculum, vei învăța despre ceea ce se numește uneori **machine learning clasic**, folosind în principal biblioteca Scikit-learn și evitând deep learning, care este acoperit în curriculumul nostru [AI pentru Începători](https://aka.ms/ai4beginners). Îmbină aceste lecții și cu curriculumul nostru ['Data Science pentru Începători'](https://aka.ms/ds4beginners)!
Călătorește cu noi în jurul lumii în timp ce aplicăm aceste tehnici clasice pe date din diverse regiuni ale lumii. Fiecare lecție include chestionare înainte și după lecție, instrucțiuni scrise pentru a completa lecția, o soluție, o sarcină, și multe altele. Pedagogia noastră bazată pe proiecte îți permite să înveți construind, o metodă dovedită pentru a reține noile competențe.
Călătorește cu noi în jurul lumii în timp ce aplicăm aceste tehnici clasice pe date din multe regiuni ale lumii. Fiecare lecție include chestionare pre și post-lectură, instrucțiuni scrise pentru completarea lecției, o soluție, un exercițiu și multe altele. Pedagogia noastră bazată pe proiecte îți permite să înveți prin practică, o metodă dovedită pentru ca noile cunoștințe să fie bine asimilate.
**✍️ Mulțumiri speciale autorilor noștri** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu și Amy Boyd
**✍️ Mulțumiri călduroase autorilor noștri** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu și Amy Boyd
**🎨 Mulțumiri și ilustratorilor noștri** Tomomi Imura, Dasani Madipalli și Jen Looper
**🙏 Mulțumiri speciale 🙏 ambasadorilor Microsoft Student care au fost autori, recenzori și contributori de conținut**, în special Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila și Snigdha Agarwal
**🙏 Mulțumiri speciale 🙏 ambasadorilor Microsoft Student, autori, recenzori și contributori**, în mod special Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila și Snigdha Agarwal
**🤩 Mulțumiri suplimentare ambasadorilor Microsoft Student Eric Wanjau, Jasleen Sondhi și Vidushi Gupta pentru lecțiile noastre în R!**
**🤩 Mulțumiri suplimentare ambasadorilor Microsoft Student Eric Wanjau, Jasleen Sondhi și Vidushi Gupta pentru lecțiile R!**
# Începutul
Urmează acești pași:
1. **Fă un Fork al repository-ului**: Apasă butonul „Fork” din colțul dreapta sus al acestei pagini.
2. **Clonează repository-ul**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
1. **Fă fork repository-ului**: Apasă butonul „Fork” din colțul dreapta sus al acestei pagini.
2. **Clonează repository-ul**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [găsește toate resursele suplimentare pentru acest curs în colecția noastră Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Ai nevoie de ajutor?** Consultă [Ghidul nostru de depanare](TROUBLESHOOTING.md) pentru soluții la probleme comune de instalare, configurare și rulare a lecțiilor.
> 🔧 **Ai nevoie de ajutor?** Consultă [Ghidul pentru depanare](TROUBLESHOOTING.md) pentru soluții comune la probleme de instalare, configurare și rulare a lecțiilor.
**[Studenți](https://aka.ms/student-page)**, pentru a folosi acest curriculum, fă fork la întregul repo pe contul vostru de GitHub și finalizați exercițiile singuri sau în grup:
**[Studenți](https://aka.ms/student-page)**, pentru a folosi acest curriculum, forkează întregul repo în contul tău GitHub și finalizează exercițiile individual sau în grup:
- Începe cu un chestionar înaintea lecturii.
- Citește lecția și efectuează activitățile, fă pauze și reflectă la fiecare verificare a cunoștințelor.
- Încearcă să creezi proiectele înțelegând lecțiile în loc să rulezi codul soluției; totuși codul este disponibil în folderele `/solution` din fiecare lecție orientată pe proiect.
- Fă chestionarul după lecție.
- Începe cu un chestionar pregătitor pre-lectură.
- Citește materialul și finalizează activitățile, fă pauze și reflectă după fiecare verificare de cunoștințe.
- Încearcă să creezi proiectele înțelegând lecțiile, nu doar rulând codul soluției; totuși, codul este disponibil în folderele `/solution` în fiecare lecție orientată pe proiect.
- Fă chestionarul post-lectură.
- Finalizează provocarea.
- Completează sarcina.
- După ce termini un grup de lecții, vizitează [Boardul de discuții](https://github.com/microsoft/ML-For-Beginners/discussions) și „învață cu voce tare” completând rubrică PAT corespunzătoare. PAT este un Instrument de Evaluare a Progresului, un formular pe care îl completezi pentru a-ți avansa învățarea. Poți de asemenea să reacționezi la alte PAT-uri pentru a învăța împreună.
- Finalizează temele.
- După ce termini un grup de lecții, vizitează [Panoul de discuții](https://github.com/microsoft/ML-For-Beginners/discussions) și „învață în mod deschis” completând rubrica PAT corespunzătoare. Un 'PAT' este un instrument de evaluare a progresului, o rubrică pe care o completezi pentru a-ți aprofunda învățarea. Poți răspunde și altor PAT-uri ca să învățăm împreună.
> Pentru aprofundare, recomandăm urmarea acestor [module și trasee de învățare Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
> Pentru studiu suplimentar, recomandăm să urmezi aceste module și trasee de învățare [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
**Profesori**, am [inclus câteva sugestii](for-teachers.md) despre cum să folosi acest curriculum.
**Profesori**, am inclus [câteva sugestii](for-teachers.md) despre cum să folosești acest curriculum.
---
## Parcurgeri video
Unele lecții sunt disponibile sub formă video scurte. Le puteți găsi integrate în lecții sau pe [playlistul ML for Beginners de pe canalul Microsoft Developer de pe YouTube](https://aka.ms/ml-beginners-videos) făcând click pe imaginea de mai jos.
Unele lecții sunt disponibile sub formă de video scurte. Le poți găsi integrate în lecții sau în playlistul [ML for Beginners pe canalul Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) făcând clic pe imaginea de mai jos.
[![ML for beginners banner](../../translated_images/ro/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -91,107 +101,107 @@ Unele lecții sunt disponibile sub formă video scurte. Le puteți găsi integra
**Gif de** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Dă click pe imaginea de mai sus pentru un video despre proiect și oamenii care l-au creat!
> 🎥 Apasă pe imaginea de mai sus pentru un video despre proiect și oamenii care l-au creat!
---
## Pedagogie
Am ales două principii pedagogice în construirea acestui curriculum: să fie hands-on, bazat pe **proiecte** și să includă **chestionare frecvente**. În plus, curriculumul are o **tematică** comună pentru a-i da coeziune.
Am ales două principii pedagogice în construirea acestui curriculum: să fie practic, bazat pe **proiecte** și să includă **testări frecvente**. În plus, acest curriculum are o temă comună pentru coeziune.
Asigurând alinierea conținutului cu proiectele, procesul devine mai captivant pentru studenți și reținerea conceptelor se îmbunătățește. De asemenea, un chestionar cu miză scăzută înainte de clasă setează intenția studentului de a învăța un subiect, iar un al doilea după clasă confirmă reținerea acestuia. Acest curriculum este gândit să fie flexibil și amuzant, putând fi parcurs în întregime sau parțial. Proiectele pornesc mici și devin tot mai complexe pe parcursul celor 12 săptămâni. Curriculumul include și o postfata despre aplicații reale ale ML, care poate fi folosită ca credit suplimentar sau ca bază de discuție.
Asigurându-ne că conținutul se aliniază cu proiectele, procesul devine mai captivant pentru studenți, iar reținerea conceptelor este sporită. În plus, un chestionar cu miză redusă înaintea orei setează intenția studentului către învățare, iar un al doilea după curs asigură o reținere mai bună. Acest curriculum este gândit să fie flexibil și distractiv și poate fi parcurs integral sau parțial. Proiectele încep mici și devin tot mai complexe până la finalul ciclului de 12 săptămâni. Curriculumul include și un post scriptum despre aplicațiile reale ale ML, ce poate fi folosit ca credit suplimentar sau ca bază de discuție.
> Găsești ghidurile noastre [Cod de conduită](CODE_OF_CONDUCT.md), [Contribuire](CONTRIBUTING.md), [Traducere](TRANSLATIONS.md) și [Depanare](TROUBLESHOOTING.md). Așteptăm cu interes feedback-ul tău constructiv!
> Găsește regulile noastre în [Codul de conduită](CODE_OF_CONDUCT.md), [Contribuții](CONTRIBUTING.md), [Traduceri](TRANSLATIONS.md) și [Depanare](TROUBLESHOOTING.md). Așteptăm feedback-ul tău constructiv!
## Fiecare lecție include
- notiță schițată opțională
- sketchnote opțional
- video suplimentar opțional
- parcurgere video (doar în unele lecții)
- [chestionar pre-lectură](https://ff-quizzes.netlify.app/en/ml/)
- parcurgere video (doar unele lecții)
- [chestionar pregătitor pre-lectură](https://ff-quizzes.netlify.app/en/ml/)
- lecție scrisă
- pentru lecții bazate pe proiect, ghiduri pas cu pas pentru construie
- pentru lecțiile bazate pe proiecte, ghid pas cu pas pentru construirea proiectului
- verificări de cunoștințe
- o provocare
- lectură suplimentară
- sarcină
- temă
- [chestionar post-lectură](https://ff-quizzes.netlify.app/en/ml/)
> **O notă despre limbi**: Aceste lecții sunt scrise în principal în Python, dar multe sunt disponibile și în R. Pentru a finaliza o lecție în R, mergi în folderul `/solution` și caută lecțiile în R. Acestea au extensia .rmd, care reprezintă un fișier **R Markdown** ce poate fi definit simplu ca o încorporare de „chunk-uri de cod” (R sau alte limbi) și un „header YAML” (care ghidează modul de formatare a output-ului precum PDF) într-un document „Markdown”. Astfel, servește ca un cadru exemplu pentru autorii de știință a datelor deoarece permite combinarea codului tău, a output-ului său și a gândurilor tale, permițându-ți să le scrii în Markdown. În plus, documentele R Markdown pot fi randate în formate de output precum PDF, HTML sau Word.
> **O notă despre chestionare**: Toate chestionarele sunt conținute în [folderul Quiz App](../../quiz-app), având în total 52 de chestionare cu câte trei întrebări fiecare. Sunt legate din interiorul lecțiilor, dar aplicația de chestionar poate fi rulată local; urmează instrucțiunile din folderul `quiz-app` pentru a găzdui local sau a implementa pe Azure.
| Numărul lecției | Subiect | Gruparea lecției | Obiective de învățare | Lecția legată | Autor |
| :-------------: | :--------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | Introducere în învățarea automată | [Introducere](1-Introduction/README.md) | Învață conceptele de bază din spatele învățării automate | [Lecție](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Istoria învățării automate | [Introducere](1-Introduction/README.md) | Învață istoria din spatele acestui domeniu | [Lecție](1-Introduction/2-history-of-ML/README.md) | Jen și Amy |
| 03 | Corectitudine și învățarea automată | [Introducere](1-Introduction/README.md) | Care sunt problemele filosofice importante legate de corectitudine pe care studenții ar trebui să le ia în considerare când construiesc și aplică modele ML? | [Lecție](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Tehnici pentru învățarea automată | [Introducere](1-Introduction/README.md) | Ce tehnici folosesc cercetătorii ML pentru a construi modele ML? | [Lecție](1-Introduction/4-techniques-of-ML/README.md) | Chris și Jen |
| 05 | Introducere în regresie | [Regresie](2-Regression/README.md) | Începe cu Python și Scikit-learn pentru modele de regresie | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Vizualizarea și curățarea datelor pentru pregătirea pentru ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Construiește modele de regresie liniară și polinomială | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen și Dmitry • Eric Wanjau |
| 08 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Construiește un model de regresie logistică | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | O aplicație web 🔌 | [Aplicație Web](3-Web-App/README.md) | Construiește o aplicație web pentru a folosi modelul tău antrenat | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Introducere în clasificare | [Clasificare](4-Classification/README.md) | Curăță, pregătește și vizualizează datele tale; introducere în clasificare | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen și Cassie • Eric Wanjau |
| 11 | Bucătării asiatice și indiene delicioase 🍜 | [Clasificare](4-Classification/README.md) | Introducere în clasificatoare | [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 | Bucătării asiatice și indiene delicioase 🍜 | [Clasificare](4-Classification/README.md) | Mai multe clasificatoare | [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 | Bucătării asiatice și indiene delicioase 🍜 | [Clasificare](4-Classification/README.md) | Construiește o aplicație web recomandare folosind modelul tău | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Introducere în clustering | [Clustering](5-Clustering/README.md) | Curăță, pregătește și vizualizează datele tale; Introducere în clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Explorarea gusturilor muzicale nigeriene 🎧 | [Clustering](5-Clustering/README.md) | Explorează metoda de clustering 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 | Introducere în procesarea limbajului natural ☕️ | [Procesarea limbajului natural](6-NLP/README.md) | Învață elementele de bază despre NLP construind un bot simplu | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Sarcini comune NLP ☕️ | [Procesarea limbajului natural](6-NLP/README.md) | Aprofundează-ți cunoștințele în NLP înțelegând sarcinile comune necesare când lucrezi cu structuri de limbaj | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Traducere și analiza sentimentelor ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Traducere și analiză a sentimentelor cu Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Hoteluri romantice din Europa ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Analiza sentimentelor cu recenzii la hoteluri 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Hoteluri romantice din Europa ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Analiza sentimentelor cu recenzii la hoteluri 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Introducere în prognoza seriilor temporale | [Serii temporale](7-TimeSeries/README.md) | Introducere în prognoza seriilor temporale | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Consumul mondial de energie ⚡️ - prognoza seriilor temporale cu ARIMA | [Serii temporale](7-TimeSeries/README.md) | Prognoza seriilor temporale cu ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Consumul mondial de energie ⚡️ - prognoza seriilor temporale cu SVR | [Serii temporale](7-TimeSeries/README.md) | Prognoza seriilor temporale cu Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Introducere în învățarea prin întărire | [Învățarea prin întărire](8-Reinforcement/README.md) | Introducere în învățarea prin întărire cu Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Ajută-l pe Peter să evite lupul! 🐺 | [Învățarea prin întărire](8-Reinforcement/README.md) | Învățarea prin întărire Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Scenarii și aplicații reale ML | [ML în mediul real](9-Real-World/README.md) | Aplicații interesante și revelatoare din lumea reală ale ML clasice | [Lecție](9-Real-World/1-Applications/README.md) | Echipa |
| Postscript | Debugging-ul modelelor ML folosind panoul de control RAI | [ML în mediul real](9-Real-World/README.md) | Debugging-ul modelelor ML folosind componente din panoul Responsible AI | [Lecție](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [găsește toate resursele suplimentare pentru acest curs în colecția noastră Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> **O notă despre limbi**: Aceste lecții sunt scrise în principal în Python, dar multe sunt disponibile și în R. Pentru a finaliza o lecție în R, accesați folderul `/solution` și căutați lecții în R. Ele includ o extensie .rmd care reprezintă un fișier **R Markdown** ce poate fi definit simplu ca o încorporare a `bucăților de cod` (din R sau alte limbi) și un `header YAML` (care ghidează modul de formatare a ieșirilor, cum ar fi PDF-ul) într-un `document Markdown`. Astfel, servește ca un cadru exemplu de creare pentru știința datelor, deoarece vă permite să combinați codul dvs., rezultatul său și gândurile dvs. prin permiterea de a le scrie în Markdown. Mai mult, documentele R Markdown pot fi redate în formate de ieșire precum PDF, HTML sau Word.
> **O notă despre chestionare**: Toate chestionarele sunt conținute în [folderul Quiz App](../../quiz-app), pentru un total de 52 de chestionare, fiecare având trei întrebări. Sunt legate din cadrul lecțiilor, dar aplicația de chestionar poate fi rulată local; urmați instrucțiunile din folderul `quiz-app` pentru a găzdui local sau a implementa pe Azure.
| Număr Lecție | Subiect | Grupare Lecție | Obiective de învățare | Lecția Legată | Autor |
| :----------: | :--------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | Introducere în învățarea automată | [Introducere](1-Introduction/README.md) | Aflați conceptele de bază din spatele învățării automate | [Lecție](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Istoria învățării automate | [Introducere](1-Introduction/README.md) | Aflați istoria domeniului | [Lecție](1-Introduction/2-history-of-ML/README.md) | Jen și Amy |
| 03 | Corectitudinea și învățarea automată | [Introducere](1-Introduction/README.md) | Care sunt problemele filosofice importante legate de corectitudine pe care studenții ar trebui să le ia în considerare la construirea și aplicarea modelelor ML? | [Lecție](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Tehnici pentru învățarea automată | [Introducere](1-Introduction/README.md) | Ce tehnici folosesc cercetătorii ML pentru a construi modele ML? | [Lecție](1-Introduction/4-techniques-of-ML/README.md) | Chris și Jen |
| 05 | Introducere în regresie | [Regresie](2-Regression/README.md) | Începeți cu Python și Scikit-learn pentru modele de regresie | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Vizualizați și curățați datele în pregătirea pentru ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Construiți modele de regresie liniară și polinomială | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen și Dmitry • Eric Wanjau |
| 08 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Construiți un model de regresie logistică | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | O aplicație web 🔌 | [Aplicație Web](3-Web-App/README.md) | Construiți o aplicație web pentru a folosi modelul antrenat | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Introducere în clasificare | [Clasificare](4-Classification/README.md) | Curățați, pregătiți și vizualizați datele; introducere în clasificare | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen și Cassie • Eric Wanjau |
| 11 | Bucătării delicioase asiatice și indiene 🍜 | [Clasificare](4-Classification/README.md) | Introducere în clasificatori | [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 | Bucătării delicioase asiatice și indiene 🍜 | [Clasificare](4-Classification/README.md) | Mai mulți clasificatori | [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 | Bucătării delicioase asiatice și indiene 🍜 | [Clasificare](4-Classification/README.md) | Construiți o aplicație web recomandatoare folosind modelul dvs. | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Introducere în clusterizare | [Clusterizare](5-Clustering/README.md) | Curățați, pregătiți și vizualizați datele; introducere în clusterizare | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Explorarea gusturilor muzicale nigeriene 🎧 | [Clusterizare](5-Clustering/README.md) | Explorați metoda clusterizării 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 | Introducere în procesarea limbajului natural ☕️ | [Procesarea limbajului natural](6-NLP/README.md) | Aflați elementele de bază despre NLP construind un bot simplu | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Sarcini comune NLP ☕️ | [Procesarea limbajului natural](6-NLP/README.md) | Adânciți cunoștințele despre NLP înțelegând sarcinile comune necesare pentru a lucra cu structurile limbajului | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Traducere și analiza sentimentelor ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Traducere și analiză a sentimentelor cu Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Hoteluri romantice din Europa ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Analiză a sentimentelor cu recenzii de hoteluri 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Hoteluri romantice din Europa ♥️ | [Procesarea limbajului natural](6-NLP/README.md) | Analiză a sentimentelor cu recenzii de hoteluri 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Introducere în prognoza seriilor temporale | [Serii temporale](7-TimeSeries/README.md) | Introducere în prognoza seriilor temporale | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Utilizarea energiei mondiale ⚡️ - prognoza seriilor temporale cu ARIMA | [Serii temporale](7-TimeSeries/README.md) | Prognoza seriilor temporale folosind ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Utilizarea energiei mondiale ⚡️ - prognoza seriilor temporale cu SVR | [Serii temporale](7-TimeSeries/README.md) | Prognoza seriilor temporale cu Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Introducere în învățarea prin întărire | [Învățare prin întărire](8-Reinforcement/README.md) | Introducere în învățarea prin întărire cu Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Ajută-l pe Peter să evite lupul! 🐺 | [Învățare prin întărire](8-Reinforcement/README.md) | Învățare prin întărire Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Scenarii și aplicații reale de ML | [ML în Sălbăticie](9-Real-World/README.md) | Aplicații reale interesante și revelatoare ale ML-ului clasic | [Lecție](9-Real-World/1-Applications/README.md) | Echipa |
| Postscript | Depanarea modelelor ML folosind tabloul de bord RAI | [ML în Sălbăticie](9-Real-World/README.md) | Depanarea modelelor în învățarea automată folosind componentele tabloului de bord Responsible AI | [Lecție](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [găsiți toate resursele suplimentare pentru acest curs în colecția noastră Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Acces offline
Poți rula această documentație offline folosind [Docsify](https://docsify.js.org/#/). Fă un fork al acestui depozit, [instalează Docsify](https://docsify.js.org/#/quickstart) pe mașina ta locală, apoi în folderul rădăcină al acestui depozit tastează `docsify serve`. Site-ul va fi disponibil pe portul 3000 pe localhost-ul tău: `localhost:3000`.
Puteți rula această documentație offline folosind [Docsify](https://docsify.js.org/#/). Clonați acest repo, [instalați Docsify](https://docsify.js.org/#/quickstart) pe mașina dvs. locală, apoi în folderul rădăcină al acestui repo tastați `docsify serve`. Website-ul va fi servit pe portul 3000 pe localhost-ul dvs.: `localhost:3000`.
## PDF-uri
Găsește un pdf cu programa și linkuri [aici](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Găsiți un pdf al curriculum-ului cu linkuri [aici](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Alte cursuri
Echipa noastră produce și alte cursuri! Verifică:
Echipa noastră produce și alte cursuri! Aruncați o privire:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j pentru Începători](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 pentru Începători](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 pentru Începători](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 pentru începători](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 pentru începători](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 pentru începători](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 / Agenți
[![AZD pentru Începători](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 pentru Începători](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)
[![AZD pentru începători](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 pentru începători](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 pentru Începători](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)
[![Agenți AI pentru Începători](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)
---
### Seria AI Generativă
[![Inteligență Artificială Generativă pentru Începători](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)
[![Inteligență Artificială Generativă (.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)
[![Inteligență Artificială Generativă (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)
[![Inteligență Artificială Generativă (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)
### Seria AI Generativ
[![AI Generativ pentru Începători](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)
[![AI Generativ (.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)
[![AI Generativ (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)
[![AI Generativ (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)
---
### Învățare de Bază
### Cunoștințe de Bază
[![ML pentru Începători](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)
[![Știința Datelor pentru Începători](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)
[![Inteligență Artificială pentru Începători](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)
[![AI pentru Începători](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)
[![Securitate Cibernetică pentru Începători](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)
[![Dezvoltare Web pentru Începători](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 pentru Începători](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)
@ -200,24 +210,29 @@ Echipa noastră produce și alte cursuri! Verifică:
---
### Seria Copilot
[![Copilot pentru Programare AI Asistată](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 pentru Programare Asistată de 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 pentru 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)
[![Aventura 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)
[![Aventură 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 -->
## Obținerea Ajutorului
Dacă întâmpini dificultăți sau ai întrebări despre dezvoltarea aplicațiilor AI, alătură-te altor cursanți și dezvoltatori experimentați în discuții despre MCP. Este o comunitate de sprijin unde întrebările sunt binevenite și cunoștințele se împărtășesc liber.
Dacă întâmpini dificultăți sau ai întrebări despre crearea aplicațiilor AI, alătură-te colegilor învățăcei și dezvoltatorilor experimentați în discuții despre MCP. Este o comunitate de sprijin unde întrebările sunt binevenite și cunoștințele sunt împărtășite liber.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Dacă ai feedback despre produs sau întâmpini erori în timpul dezvoltării, vizitează:
Dacă ai feedback despre produs sau găsești erori în timpul dezvoltării, vizitează:
[![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)
## Sfaturi Suplimentare pentru Învățare
- Revizuiește caietele după fiecare lecție pentru o înțelegere mai bună.
- Exersează implementarea algoritmilor pe cont propriu.
- Explorează seturi de date din lumea reală folosind conceptele învățate.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Declinare de responsabilitate**:
Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original, în limba sa nativă, trebuie considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un traducător uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări eronate care pot apărea în urma utilizării acestei traduceri.
**Declinare de responsabilitate**:
Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original, în limba sa nativă, trebuie considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "sk"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T16:02:33+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T10:18:45+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "sk"
},
@ -90,8 +90,8 @@
"language_code": "sk"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T15:11:10+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T10:20:00+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "sk"
},
@ -186,8 +186,8 @@
"language_code": "sk"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T16:23:53+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T10:20:29+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "sk"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "sk"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T10:16:42+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "sk"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T16:25:09+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "sk"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T10:16:47+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "sk"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T16:21:35+00:00",
@ -540,8 +552,8 @@
"language_code": "sk"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T08:57:17+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T10:18:38+00:00",
"source_file": "README.md",
"language_code": "sk"
},

@ -1,16 +1,18 @@
# Preskúmajte nástroje pre zodpovednú AI
# Preskúmajte Nástroje zodpovednej umelej inteligencie
## Pokyny
## Inštrukcie
V tejto lekcii ste sa dozvedeli o nástrojoch pre zodpovednú AI, "open-source, komunitne riadenom projekte, ktorý pomáha dátovým vedcom analyzovať a zlepšovať AI systémy." Pre túto úlohu preskúmajte jeden z [notebookov](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) RAI Toolbox a svoje zistenia prezentujte v práci alebo prezentácii.
V tejto lekcii ste sa dozvedeli o Nástrojoch zodpovednej umelej inteligencie, „open-source, komunitou riadenom projekte na pomoc dátovým vedcom analyzovať a zlepšovať AI systémy.“ Pre túto úlohu preskúmajte jeden z RAI Toolbox [notebookov](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) a svoje zistenia zdokumentujte v referáte alebo prezentácii.
## Hodnotiace kritériá
## Hodnotiaca mriežka
| Kritérium | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
| --------- | ---------- | ---------- | ------------------ |
| | Je predložená práca alebo powerpointová prezentácia, ktorá diskutuje systémy Fairlearn, spustený notebook a závery vyplývajúce z jeho spustenia | Je predložená práca bez záverov | Nie je predložená žiadna práca |
| Kritériá | Vynikajúce | Dostatočné | Vyžaduje zlepšenie |
| -------- | --------- | -------- | ----------------- |
| | Predložený je referát alebo powerpointová prezentácia, ktorá diskutuje systémy Fairlearn, spustený notebook a závery vyvodené z jeho spustenia | Predložený je referát bez záverov | Referát nie je predložený |
---
**Upozornenie**:
Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vyhlásenie o vylúčení zodpovednosti**:
Tento dokument bol preložený pomocou automatizovanej prekladateľskej služby AI [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, majte prosím na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by sa mal považovať za autoritatívny zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,53 +1,65 @@
# Vytvorenie regresného modelu pomocou Scikit-learn: štyri spôsoby regresie
# Vytvorte regresný model pomocou Scikit-learn: štyri spôsoby regresie
![Infografika lineárna vs polynomiálna regresia](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## Poznámka pre začiatočníkov
Lineárna regresia sa používa, keď chceme predpovedať **číselnú hodnotu** (napríklad cenu domu, teplotu alebo predaj).
Funguje tak, že nájde priamku, ktorá najlepšie reprezentuje vzťah medzi vstupnými premennými a výstupom.
V tejto lekcii sa zameriavame na pochopenie konceptu predtým, než preskúmame pokročilejšie regresné techniky.
![Lineárna vs polynomiálna regresia infografika](../../../../translated_images/sk/linear-polynomial.5523c7cb6576ccab.webp)
> Infografika od [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
> ### [Táto lekcia je dostupná v R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Úvod
> ### [Táto lekcia je dostupná aj v R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Úvod
Doteraz ste preskúmali, čo je regresia, na vzorových údajoch zo súboru údajov o cenách tekvíc, ktorý budeme používať počas celej tejto lekcie. Vizualizovali ste ich pomocou Matplotlibu.
Doteraz ste preskúmali, čo je regresia, pomocou vzorových údajov zo súboru údajov o cene tekvíc, ktorý budeme používať počas celej tejto lekcie. Tiež ste ich vizualizovali pomocou Matplotlib.
Teraz ste pripravení ponoriť sa hlbšie do regresie pre strojové učenie. Zatiaľ čo vizualizácia vám umožňuje pochopiť údaje, skutočná sila strojového učenia spočíva v _tréningu modelov_. Modely sú trénované na historických údajoch, aby automaticky zachytili závislosti medzi údajmi, a umožňujú vám predpovedať výsledky pre nové údaje, ktoré model predtým nevidel.
Teraz ste pripravení ponoriť sa hlbšie do regresie pre ML. Zatiaľ čo vizualizácia umožňuje lepšie pochopiť údaje, skutočná sila strojového učenia pochádza z _trénovania modelov_. Modely sa trénujú na historických dátach, aby automaticky zachytili závislosti v dátach, a umožňujú vám predpovedať výsledky pre nové dáta, ktoré model predtým nevidel.
V tejto lekcii sa dozviete viac o dvoch typoch regresie: _základná lineárna regresia_ a _polynomiálna regresia_, spolu s niektorými matematickými základmi týchto techník. Tieto modely nám umožnia predpovedať ceny tekvíc na základe rôznych vstupných údajov.
V tejto lekcii sa dozviete viac o dvoch typoch regresie: _základnej lineárnej regresii_ a _polynomiálnej regresii_ spolu s niektorou z matematiky, ktorá stojí za týmito technikami. Tieto modely nám umožnia predpovedať ceny tekvíc v závislosti od rôznych vstupných údajov.
[![ML pre začiatočníkov - Pochopenie lineárnej regresie](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML pre začiatočníkov - Pochopenie lineárnej regresie")
> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o lineárnej regresii.
> 🎥 Kliknite na obrázok vyššie pre krátke video o lineárnej regresii.
> Počas celého kurzu predpokladáme minimálne znalosti matematiky a snažíme sa sprístupniť obsah študentom z iných odborov, preto sledujte poznámky, 🧮 výpočty, diagramy a ďalšie nástroje na učenie, ktoré vám pomôžu pochopiť obsah.
> Počas celého kurikula predpokladáme minimálne znalosti matematiky a snažíme sa ich sprístupniť študentom z iných odborov, tak sledujte poznámky, 🧮 upozornenia, diagramy a ďalšie výučbové pomôcky na lepšie pochopenie.
### Predpoklady
Teraz by ste mali byť oboznámení so štruktúrou údajov o tekviciach, ktoré skúmame. Nájdete ich prednahrané a predčistené v súbore _notebook.ipynb_ tejto lekcie. V súbore je cena tekvíc zobrazená za bušel v novom dátovom rámci. Uistite sa, že dokážete spustiť tieto notebooky v jadrách vo Visual Studio Code.
Teraz by ste mali byť oboznámení so štruktúrou údajov o tekviciach, ktoré skúmame. Nájdete ich prednačítané a predvyčistené v súbore _notebook.ipynb_ tejto lekcie. V súbore je cena tekvíc uvedená za košík v novom dátovom rámci. Uistite sa, že viete spustiť tieto notebooky v kerneloch vo Visual Studio Code.
### Príprava
Pripomeňme si, že tieto údaje načítavate, aby ste mohli klásť otázky:
Ako pripomienku, načítavate tieto údaje, aby ste na nich mohli klásť otázky.
- Kedy je najlepší čas na kúpu tekvíc?
- Akú cenu môžem očakávať za balenie miniatúrnych tekvíc?
- Mám ich kúpiť v polovičných bušlových košoch alebo v 1 1/9 bušlových škatuliach?
Poďme sa hlbšie pozrieť na tieto údaje.
- Kedy je najlepší čas na nákup tekvíc?
- Akú cenu môžem očakávať za balenie mini tekvíc?
- Mám ich kúpiť v polkošíkoch alebo v krabici 1 1/9 košíka?
Poďme sa ďalej ponoriť do tohto dátového súboru.
V predchádzajúcej lekcii ste vytvorili Pandas dátový rámec a naplnili ho časťou pôvodného súboru údajov, štandardizujúc ceny podľa bušlu. Týmto spôsobom ste však dokázali zhromaždiť iba približne 400 dátových bodov a iba pre jesenné mesiace.
V predchádzajúcej lekcii ste vytvorili dátový rámec Pandas a naplnili ho časťou pôvodného datasetu, štandardizujúc ceny podľa košíka. Týmto ste však získali iba asi 400 dátových bodov a len pre jesenné mesiace.
Pozrite sa na údaje, ktoré sme prednahrali v notebooku tejto lekcie. Údaje sú prednahrané a úvodný bodový graf je vytvorený na zobrazenie údajov podľa mesiacov. Možno môžeme získať trochu viac detailov o povahe údajov ich ďalším čistením.
Pozrite si údaje, ktoré sme prednačítali v sprievodnom notebooku tejto lekcie. Údaje sú predpripravené a prvý rozptýlený graf ukazuje mesiac predaja. Možno pôjdeme ďalej a vyčistíme dáta podrobnejšie.
## Lineárna regresná čiara
Ako ste sa naučili v Lekcii 1, cieľom cvičenia lineárnej regresie je byť schopný nakresliť čiaru na:
Ako ste sa naučili v Lekcii 1, cieľom lineárnej regresie je nakresliť čiaru, ktorá:
- **Ukazuje vzťah medzi premennými**. Ukáže vzťah medzi premennými
- **Predpovedá**. Umožní presne predpovedať, kde by nový dátový bod ležal vzhľadom na túto čiaru.
Typické na **regresii metódou najmenších štvorcov** je kreslenie takéhoto druhu čiary. Termín "najmenšie štvorce" označuje proces minimalizácie celkovej chyby v našom modeli. Pre každý dátový bod meriame vertikálnu vzdialenosť (nazývanú rezíduum) medzi skutočným bodom a regresnou čiarou.
- **Ukázanie vzťahov medzi premennými**. Ukázať vzťah medzi premennými
- **Predpovedanie**. Urobiť presné predpovede, kde by nový dátový bod spadol vo vzťahu k tejto čiare.
Typické pre **regresiu metódou najmenších štvorcov** je nakresliť tento typ čiary. Termín 'najmenšie štvorce' znamená, že všetky dátové body obklopujúce regresnú čiaru sú umocnené na druhú a potom sčítané. Ideálne je, aby tento konečný súčet bol čo najmenší, pretože chceme nízky počet chýb, alebo `najmenšie štvorce`.
Tieto vzdialenosti umocňujeme na druhú pre dva hlavné dôvody:
Robíme to, pretože chceme modelovať čiaru, ktorá má najmenšiu kumulatívnu vzdialenosť od všetkých našich dátových bodov. Tiež umocňujeme hodnoty na druhú pred ich sčítaním, pretože nás zaujíma ich veľkosť, nie ich smer.
1. **Veľkosť pred smerom:** Chceme, aby chyba -5 bola rovnocenná chybe +5. Umocnenie na druhú zmení všetky hodnoty na kladné.
> **🧮 Ukážte mi matematiku**
2. **Trestenie odľahlých hodnôt:** Umocnenie na druhú dáva väčšiu váhu väčším chybám, núti čiaru zostať bližšie k bodom, ktoré sú vzdialené.
Tieto umocnené hodnoty potom sčítame. Naším cieľom je nájsť čiaru, kde výsledný súčet bude čo najmenší (najmenšia možná hodnota) — odtiaľ názov "najmenšie štvorce".
> **🧮 Ukáž mi matematiku**
>
> Táto čiara, nazývaná _čiara najlepšieho prispôsobenia_, môže byť vyjadrená [rovnicou](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
@ -55,70 +67,70 @@ Robíme to, pretože chceme modelovať čiaru, ktorá má najmenšiu kumulatívn
> Y = a + bX
> ```
>
> `X` je 'vysvetľujúca premenná'. `Y` je 'závislá premenná'. Sklon čiary je `b` a `a` je y-priesečník, ktorý odkazuje na hodnotu `Y`, keď `X = 0`.
> `X` je 'vysvetľujúca premenná'. `Y` je 'závislá premenná'. Sklon čiary je `b` a `a` je y-priesečník, ktorý predstavuje hodnotu `Y` pre `X = 0`.
>
>![výpočet sklonu](../../../../2-Regression/3-Linear/images/slope.png)
>![vypočítajte sklon](../../../../translated_images/sk/slope.f3c9d5910ddbfcf9.webp)
>
> Najprv vypočítajte sklon `b`. Infografika od [Jen Looper](https://twitter.com/jenlooper)
>
> Inými slovami, a odkazujúc na pôvodnú otázku o údajoch o tekviciach: "predpovedajte cenu tekvice za bušel podľa mesiaca", `X` by odkazovalo na cenu a `Y` by odkazovalo na mesiac predaja.
> Inými slovami a odkazujúc na pôvodnú otázku našich údajov o tekviciach: "predpovedať cenu tekvice za košík podľa mesiaca", `X` by predstavoval cenu a `Y` by označoval mesiac predaja.
>
>![dokončenie rovnice](../../../../2-Regression/3-Linear/images/calculation.png)
>![dokončite rovnicu](../../../../translated_images/sk/calculation.a209813050a1ddb1.webp)
>
> Vypočítajte hodnotu Y. Ak platíte okolo $4, musí byť apríl! Infografika od [Jen Looper](https://twitter.com/jenlooper)
> Vypočítajte hodnotu Y. Ak platíte okolo 4 dolárov, musí to byť apríl! Infografika od [Jen Looper](https://twitter.com/jenlooper)
>
> Matematika, ktorá vypočítava čiaru, musí demonštrovať sklon čiary, ktorý tiež závisí od priesečníka, alebo kde sa `Y` nachádza, keď `X = 0`.
> Matematika, ktorá počíta čiaru, musí ukázať sklon čiary, ktorý závisí aj od priesečníka, teda kde sa `Y` nachádza, keď `X = 0`.
>
> Metódu výpočtu týchto hodnôt si môžete pozrieť na webovej stránke [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Navštívte tiež [tento kalkulátor metódy najmenších štvorcov](https://www.mathsisfun.com/data/least-squares-calculator.html), aby ste videli, ako hodnoty čísel ovplyvňujú čiaru.
> Metódu výpočtu týchto hodnôt môžete vidieť na webovej stránke [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Navštívte tiež [tento Least-squares kalkulátor](https://www.mathsisfun.com/data/least-squares-calculator.html), aby ste videli, ako hodnoty čísel ovplyvňujú čiaru.
## Korelácia
Ďalší termín, ktorý je potrebné pochopiť, je **koeficient korelácie** medzi danými premennými X a Y. Pomocou bodového grafu môžete rýchlo vizualizovať tento koeficient. Graf s dátovými bodmi rozmiestnenými v úhľadnej čiare má vysokú koreláciu, ale graf s dátovými bodmi rozmiestnenými všade medzi X a Y má nízku koreláciu.
Ešte jeden termín, ktorý je dobré pochopiť, je **Korelačný koeficient** medzi danými premennými X a Y. Pomocou rozptýleného grafu môžete rýchlo vizualizovať tento koeficient. Graf, kde sú body rozptýlené pozdĺž čistej čiary, má vysokú koreláciu, zatiaľ čo graf, kde sú body rozptýlené všade medzi X a Y, má nízku koreláciu.
Dobrý model lineárnej regresie bude taký, ktorý má vysoký (bližšie k 1 ako k 0) koeficient korelácie pomocou metódy najmenších štvorcov s regresnou čiarou.
Dobrý lineárny regresný model bude taký, ktorý má vysoký (bližšie k 1 než k 0) Korelačný koeficient použitím metódy najmenších štvorcov s regresnou čiarou.
✅ Spustite notebook, ktorý sprevádza túto lekciu, a pozrite sa na bodový graf Mesiac vs Cena. Zdá sa, že údaje spájajúce Mesiac s Cenou za predaj tekvíc majú podľa vašej vizuálnej interpretácie bodového grafu vysokú alebo nízku koreláciu? Zmení sa to, ak použijete jemnejšie meranie namiesto `Mesiac`, napr. *deň v roku* (t. j. počet dní od začiatku roka)?
✅ Spustite notebook sprevádzajúci túto lekciu a pozrite sa na rozptýlený graf Mesiac k Cene. Zdá sa vám, že dáta spájajúce Mesiac s Cenou predaja tekvíc majú vysokú alebo nízku koreláciu podľa vašej vizuálnej interpretácie rozptýleného grafu? Zmení sa to, ak namiesto `Month` použijete detailnejšie meranie, napríklad *deň v roku* (t.j. počet dní od začiatku roka)?
V nasledujúcom kóde predpokladáme, že sme vyčistili údaje a získali dátový rámec nazvaný `new_pumpkins`, podobný nasledujúcemu:
Nižšie v kóde predpokladáme, že sme údaje vyčistili a získali dátový rámec nazvaný `new_pumpkins`, podobný nasledovnému:
ID | Mesiac | DeňVroku | Typ | Mesto | Balenie | Nízka cena | Vysoká cena | Cena
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bušlové kartóny | 15.0 | 15.0 | 13.636364
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
> Kód na čistenie údajov je dostupný v [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Vykonali sme rovnaké kroky čistenia ako v predchádzajúcej lekcii a vypočítali sme stĺpec `DeňVroku` pomocou nasledujúceho výrazu:
> Kód na vyčistenie dát je dostupný v [`notebook.ipynb`](notebook.ipynb). Vykonali sme rovnaké čistiace kroky ako v predchádzajúcej lekcii a vypočítali stĺpec `DayOfYear` pomocou nasledujúceho výrazu:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Teraz, keď rozumiete matematike za lineárnou regresiou, poďme vytvoriť regresný model, aby sme zistili, ktorý balík tekvíc bude mať najlepšie ceny tekvíc. Niekto, kto kupuje tekvice na sviatočnú tekvicovú záhradu, by mohol chcieť tieto informácie, aby optimalizoval svoje nákupy balíkov tekvíc pre záhradu.
Keďže už rozumiete matematike za lineárnou regresiou, vytvorme regresný model, aby sme zistili, či vieme predpovedať, ktoré balenie tekvíc bude mať najlepšiu cenu. Niekto, kto kupuje tekvice na jesennú výzdobu, by možno chcel tieto informácie, aby mohol optimalizovať nákup balení tekvíc pre svoj patch.
## Hľadanie korelácie
[![ML pre začiatočníkov - Hľadanie korelácie: Kľúč k lineárnej regresii](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML pre začiatočníkov - Hľadanie korelácie: Kľúč k lineárnej regresii")
[![ML pre začiatočníkov - Hľadanie korelácie: kľúč k lineárnej regresii](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML pre začiatočníkov - Hľadanie korelácie: kľúč k lineárnej regresii")
> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o korelácii.
> 🎥 Kliknite na obrázok vyššie pre krátke video o korelácii.
Z predchádzajúcej lekcie ste pravdepodobne videli, že priemerná cena za rôzne mesiace vyzerá takto:
Z predchádzajúcej lekcie ste pravdepodobne videli, že priemerná cena podľa mesiacov vyzerá takto:
<img alt="Priemerná cena podľa mesiaca" src="../../../../translated_images/sk/barchart.a833ea9194346d76.webp" width="50%"/>
To naznačuje, že by mala existovať nejaká korelácia, a môžeme skúsiť trénovať model lineárnej regresie na predpovedanie vzťahu medzi `Mesiac` a `Cena`, alebo medzi `DeňVroku` a `Cena`. Tu je bodový graf, ktorý ukazuje druhý vzťah:
To naznačuje, že nejaká korelácia tam bude, a môžeme skúsiť natrénovať lineárny regresný model na predpovedanie vzťahu medzi `Month` a `Price`, alebo medzi `DayOfYear` a `Price`. Tu je rozptýlený graf, ktorý ukazuje druhý vzťah:
<img alt="Bodový graf Cena vs. Deň v roku" src="../../../../translated_images/sk/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Rozptýlený graf Cena vs. Deň v roku" src="../../../../translated_images/sk/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Pozrime sa, či existuje korelácia pomocou funkcie `corr`:
Skúsme zistiť koreláciu pomocou funkcie `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Zdá sa, že korelácia je pomerne malá, -0.15 podľa `Mesiac` a -0.17 podľa `DeňVroku`, ale mohol by existovať iný dôležitý vzťah. Zdá sa, že existujú rôzne zhluky cien zodpovedajúce rôznym odrodám tekvíc. Na potvrdenie tejto hypotézy nakreslime každú kategóriu tekvíc pomocou inej farby. Pri prechode parametra `ax` do funkcie `scatter` môžeme nakresliť všetky body na rovnaký graf:
Zdá sa, že korelácia je pomerne malá, -0.15 podľa `Month` a -0.17 podľa `DayOfMonth`, ale môže tu byť iný dôležitý vzťah. Vyzerá to, že existujú rôzne skupiny cien zodpovedajúce rôznym odrodám tekvíc. Aby sme túto hypotézu potvrdili, nakreslime každú kategóriu tekvíc inou farbou. Pre odovzdanie parametra `ax` funkcii `scatter` môžeme vykresliť všetky body do rovnakého grafu:
```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="Bodový graf Cena vs. Deň v roku" src="../../../../translated_images/sk/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Rozptýlený graf Cena vs. Deň v roku s farebným rozlíšením" src="../../../../translated_images/sk/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Naše vyšetrovanie naznačuje, že odroda má väčší vplyv na celkovú cenu ako skutočný dátum predaja. Môžeme to vidieť na stĺpcovom grafe:
Naše vyšetrovanie naznačuje, že odroda má väčší vplyv na celkovú cenu než samotný dátum predaja. Vidíme to aj na stĺpcovom grafe:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Stĺpcový graf cena vs odroda" src="../../../../translated_images/sk/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Stĺpcový graf ceny podľa odrody" src="../../../../translated_images/sk/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Zamerajme sa na chvíľu iba na jednu odrodu tekvíc, 'pie type', a pozrime sa, aký vplyv má dátum na cenu:
Zamerajme sa teraz na jednu odrodu tekvíc, 'pie type', a pozrime sa, aký vplyv má dátum na cenu:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Bodový graf Cena vs. Deň v roku" src="../../../../translated_images/sk/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Rozptýlený graf Cena vs. Deň v roku pre pie type" src="../../../../translated_images/sk/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Ak teraz vypočítame koreláciu medzi `Cena` a `DeňVroku` pomocou funkcie `corr`, dostaneme hodnotu okolo `-0.27` - čo znamená, že trénovanie prediktívneho modelu má zmysel.
Ak teraz vypočítame koreláciu medzi `Price` a `DayOfYear` pomocou funkcie `corr`, získame približne `-0.27` — čo znamená, že natrénovanie prediktívneho modelu má zmysel.
> Pred trénovaním modelu lineárnej regresie je dôležité zabezpečiť, aby naše údaje boli čisté. Lineárna regresia nefunguje dobre s chýbajúcimi hodnotami, preto má zmysel zbaviť sa všetkých prázdnych buniek:
> Pred trénovaním lineárneho regresného modelu je dôležité zabezpečiť, že naše dáta sú čisté. Lineárna regresia nefunguje dobre s chýbajúcimi hodnotami, preto je rozumné zbaviť sa všetkých prázdnych buniek:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Ďalším prístupom by bolo vyplniť tieto prázdne hodnoty priemernými hodnotami z príslušného stĺpca.
Iný prístup by bol vyplniť tieto prázdne hodnoty priemernými hodnotami príslušného stĺpca.
## Jednoduchá lineárna regresia
[![ML pre začiatočníkov - Lineárna a polynomiálna regresia pomocou Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML pre začiatočníkov - Lineárna a polynomiálna regresia pomocou Scikit-learn")
> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o lineárnej a polynomiálnej regresii.
> 🎥 Kliknite na obrázok vyššie pre krátke video o lineárnej a polynomiálnej regresii.
Na trénovanie nášho modelu lineárnej regresie použijeme knižnicu **Scikit-learn**.
Na trénovanie nášho lineárneho regresného modelu použijeme knižnicu **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číname oddelením vstupných hodnôt (príznakov) a očakávaného výstupu (označenia) do samostatných numpy polí:
Začneme tým, že oddelíme vstupné hodnoty (vlastnosti) a očakávaný výstup (štítok) do samostatných numpy polí:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Všimnite si, že sme museli vykonať `reshape` na vstupných údajoch, aby ich balík lineárnej regresie správne pochopil. Lineárna regresia očakáva 2D pole ako vstup, kde každý riadok poľa zodpovedá vektoru vstupných príznakov. V našom prípade, keďže máme iba jeden vstup, potrebujeme pole s tvarom N×1, kde N je veľkosť súboru údajov.
> Všimnite si, že sme museli vykonať `reshape` na vstupných dátach, aby ich balíček Linear Regression správne pochopil. Lineárna regresia očakáva vstup v tvare 2D poľa, kde každý riadok poľa zodpovedá vektoru vstupných vlastností. V našom prípade, keďže máme iba jeden vstup, potrebujeme pole tvaru N&times;1, kde N je veľkosť datasetu.
Potom musíme rozdeliť údaje na trénovací a testovací súbor údajov, aby sme mohli po tréningu overiť náš model:
Potom musíme rozdeliť údaje na tréningové a testovacie datasety, aby sme mohli po trénovaní modelu overiť jeho výkon:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Nakoniec, samotné trénovanie modelu lineárnej regresie trvá iba dva riadky kódu. Definujeme objekt `LinearRegression` a prispôsobíme ho našim údajom pomocou metódy `fit`:
Nakoniec samotné trénovanie lineárneho regresného modelu zaberie len dva riadky kódu. Definujeme objekt `LinearRegression` a prispôsobíme ho našim dátam pomocou metódy `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Objekt `LinearRegression` po prispôsobení obsahuje všetky koeficienty regresie, ku ktorým je možné pristupovať pomocou vlastnosti `.coef_`. V našom prípade existuje iba jeden koeficient, ktorý by mal byť okolo `-0.017`. To znamená, že ceny sa zdajú klesať trochu s časom, ale nie príliš, približne o 2 centy za deň. Môžeme tiež pristupovať k priesečníku regresie s Y-osou pomocou `lin_reg.intercept_` - bude to okolo `21` v našom prípade, čo naznačuje cenu na začiatku roka.
Objekt `LinearRegression` po natrénovaní obsahuje všetky koeficienty regresie, ku ktorým sa dá pristúpiť pomocou vlastnosti `.coef_`. V našom prípade je len jeden koeficient, ktorý by mal byť okolo `-0.017`. To znamená, že ceny sa zdajú s časom mierne znižovať, ale nie príliš, približne o 2 centy za deň. Môžeme tiež pristúpiť k priesečníku regresie s osou Y pomocou `lin_reg.intercept_` v našom prípade to bude okolo `21`, čo značí cenu na začiatku roka.
Aby sme videli, aký presný je náš model, môžeme predpovedať ceny na testovacom súbore údajov a potom zmerať, ako blízko sú naše predpovede k očakávaným hodnotám. To sa dá urobiť pomocou metriky strednej kvadratickej chyby (MSE), ktorá je priemerom všetkých kvadratických rozdielov medzi očakávanou a predpovedanou hodnotou.
Aby sme videli, aká je presnosť nášho modelu, môžeme predikovať ceny na testovacej množine dát a potom zmerať, ako sú naše predpovede blízke očakávaným hodnotám. To sa dá urobiť pomocou metriky strednej štvorcovej chyby (MSE), čo je priemer všetkých štvorcových rozdielov medzi očakávanou a predikovanou hodnotou.
```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 chyba sa zdá byť okolo 2 bodov, čo je ~17 %. Nie je to príliš dobré. Ďalším indikátorom kvality modelu je **koeficient determinácie**, ktorý môžeme získať takto:
Naša chyba sa javí okolo 2 bodov, čo je približne 17%. Nie je to príliš dobré. Ďalším ukazovateľom kvality modelu je **koeficient determinácie**, ktorý môžeme získať takto:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Ak je hodnota 0, znamená to, že model neberie do úvahy vstupné údaje a funguje ako *najhorší lineárny prediktor*, čo je jednoducho priemerná hodnota výsledku. Hodnota 1 znamená, že môžeme dokonale predpovedať všetky očakávané výstupy. V našom prípade je koeficient okolo 0.06, čo je pomerne nízke.
```
Ak je hodnota 0, znamená to, že model neberie do úvahy vstupné dáta a správa sa ako *najhorší lineárny prediktor*, ktorý je jednoducho priemernou hodnotou výsledku. Hodnota 1 znamená, že dokážeme dokonale predpovedať všetky očakávané výstupy. V našom prípade je koeficient okolo 0.06, čo je dosť nízke.
Môžeme tiež vykresliť testovacie údaje spolu s regresnou čiarou, aby sme lepšie videli, ako regresia funguje v našom prípade:
Môžeme tiež vykresliť testovacie dáta spolu s regresnou čiarou, aby sme lepšie videli, ako regresia funguje v našom prípade:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Lineárna regresia" src="../../../../translated_images/sk/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/sk/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polynomická regresia
Ďalším typom lineárnej regresie je polynomická regresia. Zatiaľ čo niekedy existuje lineárny vzťah medzi premennými čím väčší objem tekvice, tým vyššia cena niekedy tieto vzťahy nemožno vykresliť ako rovinu alebo priamku.
Ďalším typom lineárnej regresie je polynomická regresia. Kým niekedy existuje lineárny vzťah medzi premennými čím väčšia je tekvica objemom, tým vyššia je cena niekedy sa tieto vzťahy nedajú zobraziť ako rovina alebo priamka.
✅ Tu sú [niektoré ďalšie príklady](https://online.stat.psu.edu/stat501/lesson/9/9.8) údajov, ktoré by mohli využiť polynomickú regresiu.
✅ Tu je [niekoľko ďalších príkladov](https://online.stat.psu.edu/stat501/lesson/9/9.8) dát, pre ktoré by bolo vhodné použiť polynomickú regresiu
Pozrite sa znova na vzťah medzi dátumom a cenou. Zdá sa, že tento bodový graf by mal byť nevyhnutne analyzovaný priamkou? Nemôžu ceny kolísať? V tomto prípade môžete vyskúšať polynomickú regresiu.
Pozrite sa ešte raz na vzťah medzi dátumom a cenou. Zdá sa vám, že by mal byť nevyhnutne analyzovaný priamkou? Nemôžu ceny kolísať? V tomto prípade môžete skúsiť polynomickú regresiu.
✅ Polynómy sú matematické výrazy, ktoré môžu pozostávať z jednej alebo viacerých premenných a koeficientov.
✅ Polynomické výrazy sú matematické výrazy, ktoré môžu obsahovať jednu alebo viac premenných a koeficientov
Polynomická regresia vytvára zakrivenú čiaru, ktorá lepšie zodpovedá nelineárnym údajom. V našom prípade, ak do vstupných údajov zahrnieme premennú `DayOfYear` na druhú, mali by sme byť schopní prispôsobiť naše údaje parabolickou krivkou, ktorá bude mať minimum v určitom bode počas roka.
Polynomická regresia vytvára zakrivenú čiaru, aby lepšie vyhovela nelineárnym dátam. V našom prípade, ak do vstupných dát zahrnieme druhú mocninu premennej `DayOfYear`, mali by sme byť schopní prispôsobiť dáta parabolickou krivkou, ktorá bude mať minimum v určitom bode v priebehu roka.
Scikit-learn obsahuje užitočné [API pre pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), ktoré kombinuje rôzne kroky spracovania údajov. **Pipeline** je reťaz **odhadovateľov**. V našom prípade vytvoríme pipeline, ktorá najskôr pridá polynomické prvky do nášho modelu a potom trénuje regresiu:
Scikit-learn obsahuje užitočné [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) na kombinovanie rôznych krokov spracovania dát dokopy. **Pipeline** je reťazec **estimatorov**. V našom prípade vytvoríme pipeline, ktorá najprv pridá polynomické prvky do nášho modelu a potom trénuje regresiu:
```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)
```
```
Použitie `PolynomialFeatures(2)` znamená, že zahrnieme všetky polynómy druhého stupňa zo vstupných údajov. V našom prípade to bude znamenať len `DayOfYear`<sup>2</sup>, ale pri dvoch vstupných premenných X a Y to pridá X<sup>2</sup>, XY a Y<sup>2</sup>. Môžeme tiež použiť polynómy vyššieho stupňa, ak chceme.
Použitie `PolynomialFeatures(2)` znamená, že zahrnieme všetky polynómy druhého stupňa z vstupných dát. V našom prípade to bude iba `DayOfYear`<sup>2</sup>, ale pri dvoch vstupných premenných X a Y sa pridajú X<sup>2</sup>, XY a Y<sup>2</sup>. Môžeme tiež použiť polynómy vyšších stupňov, ak chceme.
Pipeline môžeme používať rovnakým spôsobom ako pôvodný objekt `LinearRegression`, t.j. môžeme pipeline `fit` a potom použiť `predict` na získanie výsledkov predikcie. Tu je graf zobrazujúci testovacie údaje a aproximačnú krivku:
Pipeline možno používať rovnako ako pôvodný objekt `LinearRegression`, teda môžeme pipeline natrénovať pomocou `fit` a potom použiť `predict` na získanie výsledkov predikcie. Tu je graf zobrazujúci testovacie dáta a aproximačnú krivku:
<img alt="Polynomická regresia" src="../../../../translated_images/sk/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/sk/poly-results.ee587348f0f1f60b.webp" width="50%" />
Použitím polynomickej regresie môžeme dosiahnuť mierne nižšie MSE a vyššiu determináciu, ale nie významne. Musíme zohľadniť ďalšie prvky!
Použitím polynomickej regresie môžeme dosiahnuť mierne nižšiu MSE a vyšší koeficient determinácie, ale nie výrazne. Musíme zohľadniť ďalšie vlastnosti!
> Vidíte, že minimálne ceny tekvíc sú pozorované niekde okolo Halloweenu. Ako to môžete vysvetliť?
> Vidíte, že minimálne ceny tekvíc sa prejavujú niekde okolo Halloweenu. Ako by ste to vysvetlili?
🎃 Gratulujeme, práve ste vytvorili model, ktorý môže pomôcť predpovedať cenu tekvíc na koláče. Pravdepodobne môžete zopakovať rovnaký postup pre všetky typy tekvíc, ale to by bolo zdĺhavé. Poďme sa teraz naučiť, ako zohľadniť odrodu tekvíc v našom modeli!
🎃 Gratulujeme, práve ste vytvorili model, ktorý môže pomôcť predpovedať cenu tekvíc na koláče. Pravdepodobne môžete rovnaký postup zopakovať pre všetky druhy tekvíc, ale to by bolo zdĺhavé. Naučíme sa teraz, ako zohľadniť odrodu tekvice v našom modeli!
## Kategorické prvky
## Kategorické vlastnosti
V ideálnom svete chceme byť schopní predpovedať ceny pre rôzne odrody tekvíc pomocou rovnakého modelu. Stĺpec `Variety` je však trochu odlišný od stĺpcov ako `Month`, pretože obsahuje nenumerické hodnoty. Takéto stĺpce sa nazývajú **kategorické**.
V ideálnom svete chceme byť schopní predpovedať ceny pre rôzne odrody tekvíc pomocou toho istého modelu. Avšak stĺpec `Variety` je trochu iný ako stĺpce ako `Month`, pretože obsahuje nečíselné hodnoty. Takéto stĺpce sa nazývajú **kategorické**.
[![ML pre začiatočníkov - Predikcia kategorických prvkov pomocou lineárnej regresie](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML pre začiatočníkov - Predikcia kategorických prvkov pomocou lineárnej regresie")
[![ML pre začiatočníkov predikcie kategórií pomocou lineárnej regresie](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML pre začiatočníkov predikcie kategórií pomocou lineárnej regresie")
> 🎥 Kliknite na obrázok vyššie pre krátky video prehľad o používaní kategorických prvkov.
> 🎥 Kliknite na obrázok vyššie pre krátky videopríklad použitia kategorických vlastností.
Tu môžete vidieť, ako priemerná cena závisí od odrody:
Tu vidíte, ako priemerná cena závisí na odrode:
<img alt="Priemerná cena podľa odrody" src="../../../../translated_images/sk/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/sk/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Aby sme zohľadnili odrodu, musíme ju najskôr previesť na numerickú formu, alebo ju **zakódovať**. Existuje niekoľko spôsobov, ako to môžeme urobiť:
Aby sme zohľadnili odrodu, musíme ju najskôr premeniť na číselnú formu, teda **zakódovať** ju. Existuje niekoľko spôsobov, ako to urobiť:
* Jednoduché **numerické kódovanie** vytvorí tabuľku rôznych odrôd a potom nahradí názov odrody indexom v tejto tabuľke. Toto nie je najlepší nápad pre lineárnu regresiu, pretože lineárna regresia berie skutočnú numerickú hodnotu indexu a pridáva ju k výsledku, násobiac ju nejakým koeficientom. V našom prípade je vzťah medzi číslom indexu a cenou jasne nelineárny, aj keď zabezpečíme, že indexy sú usporiadané určitým spôsobom.
* **One-hot kódovanie** nahradí stĺpec `Variety` štyrmi rôznymi stĺpcami, jeden pre každú odrodu. Každý stĺpec bude obsahovať `1`, ak príslušný riadok patrí danej odrode, a `0` inak. To znamená, že v lineárnej regresii budú štyri koeficienty, jeden pre každú odrodu tekvíc, zodpovedné za "východiskovú cenu" (alebo skôr "dodatočnú cenu") pre danú odrodu.
* Jednoduché **číselné kódovanie** vytvorí tabuľku rôznych odrôd a potom nahradí názov odrody indexom z tejto tabuľky. To nie je najlepšia voľba pre lineárnu regresiu, pretože lineárna regresia vezme skutočnú číslenú hodnotu indexu a vynásobí ju koeficientom, čím ju pridá k výsledku. V našom prípade je vzťah medzi číslom indexu a cenou zjavne nelineárny, aj keď zabezpečíme, že indexy budú usporiadané určitým spôsobom.
* **One-hot encoding** nahradí stĺpec `Variety` štyrmi rôznymi stĺpcami, po jednom pre každú odrodu. Každý stĺpec bude obsahovať `1`, ak príslušný riadok je danej odrody, a `0` inak. To znamená, že v lineárnej regresii budú štyri koeficienty, jeden pre každú odrodu tekvíc, zodpovedajúce „počiatočnej cene“ (alebo skôr „dodatočnej cene“) pre túto konkrétnu odrodu.
Nižšie uvedený kód ukazuje, ako môžeme zakódovať odrodu pomocou one-hot kódovania:
Nasledujúci kód ukazuje, ako môžeme one-hot kódovať odrodu:
```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
Na trénovanie lineárnej regresie pomocou one-hot zakódovanej odrody ako vstupu stačí správne inicializovať údaje `X` a `y`:
Na trénovanie lineárnej regresie so vstupom ako one-hot kódovaná odroda stačí správne inicializovať dáta `X` a `y`:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
Zvyšok kódu je rovnaký ako ten, ktorý sme použili vyššie na trénovanie lineárnej regresie. Ak to vyskúšate, uvidíte, že stredná kvadratická chyba je približne rovnaká, ale získame oveľa vyšší koeficient determinácie (~77 %). Na získanie ešte presnejších predpovedí môžeme zohľadniť viac kategorických prvkov, ako aj numerické prvky, ako `Month` alebo `DayOfYear`. Na získanie jedného veľkého poľa prvkov môžeme použiť `join`:
Zvyšok kódu je rovnaký ako sme používali vyššie na trénovanie lineárnej regresie. Ak to vyskúšate, uvidíte, že stredná štvorcová chyba je približne rovnaká, ale získame oveľa vyšší koeficient determinácie (~77%). Pre ešte presnejšie predikcie môžeme zohľadniť ďalšie kategorické vlastnosti, ako aj číselné vlastnosti, napríklad `Month` alebo `DayOfYear`. Na získanie jedného veľkého poľa vlastností môžeme použiť `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -304,63 +317,62 @@ 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']
```
```
Tu tiež zohľadňujeme `City` a typ balenia `Package`, čo nám dáva MSE 2.84 (10 %) a determináciu 0.94!
Tu tiež zohľadňujeme `City` a typ `Package`, čo nám dáva MSE 2.84 (10%) a determináciu 0.94!
## Spojenie všetkého dohromady
## Spojme to všetko dokopy
Na vytvorenie najlepšieho modelu môžeme použiť kombinované (one-hot zakódované kategorické + numerické) údaje z vyššie uvedeného príkladu spolu s polynomickou regresiou. Tu je kompletný kód pre vaše pohodlie:
Na vytvorenie najlepšieho modelu môžeme použiť kombinované (one-hot kódované kategorické + číselné) dáta z vyššie uvedeného príkladu spolu s polynomickou regresiou. Tu je kompletný kód pre vašu pohodlnosť:
```python
# set up training data
# nastaviť tréningové dáta
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
# vykonať rozdelenie na trénovaciu a testovaciu množinu
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ť a trénovať pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# predpovedať výsledky pre testovacie dáta
pred = pipeline.predict(X_test)
# calculate MSE and determination
# vypočítať MSE a koeficient určenia
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)
```
```
Toto by nám malo dať najlepší koeficient determinácie takmer 97 % a MSE=2.23 (~8 % predikčná chyba).
To by nám malo dať najlepší koeficient determinácie takmer 97% a MSE=2.23 (~8% chyba predikcie).
| Model | MSE | Determinácia |
|-------|-----|-------------|
| `DayOfYear` Lineárny | 2.77 (17.2 %) | 0.07 |
| `DayOfYear` Polynomický | 2.73 (17.0 %) | 0.08 |
| `Variety` Lineárny | 5.24 (19.7 %) | 0.77 |
| Všetky prvky Lineárny | 2.84 (10.5 %) | 0.94 |
| Všetky prvky Polynomický | 2.23 (8.25 %) | 0.97 |
| Model | MSE | Koeficient determinácie |
|-------|-----|-------------------------|
| Lineárna regresia s `DayOfYear` | 2.77 (17,2%) | 0.07 |
| Polynomická regresia s `DayOfYear` | 2.73 (17,0%) | 0.08 |
| Lineárna regresia s `Variety` | 5.24 (19,7%) | 0.77 |
| Lineárna regresia so všetkými vlastnosťami | 2.84 (10,5%) | 0.94 |
| Polynomická regresia so všetkými vlastnosťami | 2.23 (8,25%) | 0.97 |
🏆 Výborne! Vytvorili ste štyri regresné modely v jednej lekcii a zlepšili kvalitu modelu na 97 %. V poslednej časti o regresii sa naučíte o logistickej regresii na určenie kategórií.
🏆 Výborne! V tejto lekcii ste vytvorili štyri regresné modely a zlepšili kvalitu modelu na 97%. V záverečnej sekcii o regresii sa naučíte o logistickej regresii na určenie kategórií.
---
## 🚀Výzva
Otestujte niekoľko rôznych premenných v tomto notebooku, aby ste videli, ako korelácia zodpovedá presnosti modelu.
Otestujte niekoľko rôznych premenných v tomto zápisníku a zistite, ako korelácia súvisí s presnosťou modelu.
## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
## Prehľad a samoštúdium
## Prehľad a samostatné štúdium
V tejto lekcii sme sa naučili o lineárnej regresii. Existujú aj ďalšie dôležité typy regresie. Prečítajte si o technikách Stepwise, Ridge, Lasso a Elasticnet. Dobrý kurz na štúdium je [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
V tejto lekcii sme sa naučili o lineárnej regresii. Existujú aj iné dôležité typy regresie. Prečítajte si o technikách Stepwise, Ridge, Lasso a Elasticnet. Dobrou študijnou pomôckou je [kurz Stanford Statistical Learning](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
## Zadanie
@ -368,5 +380,7 @@ V tejto lekcii sme sa naučili o lineárnej regresii. Existujú aj ďalšie dôl
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Upozornenie**:
Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, uvedomte si, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,42 +1,42 @@
# Klasifikátory kuchýň 2
# Classifikátory kuchýň 2
V tejto druhej lekcii o klasifikácii preskúmate ďalšie spôsoby klasifikácie číselných údajov. Tiež sa dozviete o dôsledkoch výberu jedného klasifikátora oproti druhému.
V tejto druhej lekcii klasifikácie preskúmate ďalšie spôsoby klasifikácie numerických dát. Tiež sa naučíte o dôsledkoch výberu jedného klasifikátora namiesto druhého.
## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ml/)
## [Prednáškový kvíz](https://ff-quizzes.netlify.app/en/ml/)
### Predpoklady
### Predpoklad
Predpokladáme, že ste dokončili predchádzajúce lekcie a máte vyčistený dataset vo vašom priečinku `data` s názvom _cleaned_cuisines.csv_ v koreňovom adresári tejto 4-lekciovej zložky.
Predpokladáme, že ste dokončili predchádzajúce lekcie a máte v zložke `data` vyčistenú dátovú sadu s názvom _cleaned_cuisines.csv_ v koreňovom adresári tejto štvorlekciovej zložky.
### Príprava
Načítali sme váš súbor _notebook.ipynb_ s vyčisteným datasetom a rozdelili ho na dátové rámce X a y, pripravené na proces vytvárania modelu.
Do vášho súboru _notebook.ipynb_ sme načítali vyčistenú dátovú sadu a rozdelili ju na dáta X a y, pripravené na proces budovania modelu.
## Mapa klasifikácie
Predtým ste sa naučili o rôznych možnostiach klasifikácie údajov pomocou cheat sheetu od Microsoftu. Scikit-learn ponúka podobný, ale podrobnejší cheat sheet, ktorý vám môže pomôcť ešte viac zúžiť výber odhadovačov (iný termín pre klasifikátory):
Predtým ste sa dozvedeli o rôznych možnostiach klasifikácie dát podľa Microsoftovej pomôcky. Scikit-learn ponúka podobnú, no detailnejšiu pomôcku, ktorá vám môže ešte viac zúžiť výber odhadcov (ďalší pojem pre klasifikátory):
![ML Map from Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Tip: [navštívte túto mapu online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) a kliknite na cesty, aby ste si prečítali dokumentáciu.
![ML Map from Scikit-learn](../../../../translated_images/sk/map.e963a6a51349425a.webp)
> Tip: [navštívte túto mapu online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) a klikajte postupne na ceste, aby ste si prečítali dokumentáciu.
### Plán
Táto mapa je veľmi užitočná, keď máte jasný prehľad o svojich údajoch, pretože sa môžete „prejsť“ po jej cestách k rozhodnutiu:
Táto mapa je veľmi užitočná, keď máte jasnú predstavu o svojich dátach, pretože môžete „prejsť“ jej cestami k rozhodnutiu:
- Máme >50 vzoriek
- Chceme predpovedať kategóriu
- Máme označené údaje
- Máme menej ako 100K vzoriek
- ✨ Môžeme zvoliť Linear SVC
- Ak to nefunguje, keďže máme číselné údaje
- Môžeme skúsiť ✨ KNeighbors Classifier
- Máme označené dáta
- Máme menej ako 100 tisíc vzoriek
- ✨ Môžeme zvoliť Lineárny SVC
- Ak to nefunguje, keďže máme numerické dáta
- Môžeme skúsiť ✨ KNeighbors Classifier
- Ak to nefunguje, skúste ✨ SVC a ✨ Ensemble Classifiers
Toto je veľmi užitočná cesta, ktorú treba sledovať.
Toto je veľmi užitočná cesta, ktorú sa oplatí sledovať.
## Cvičenie - rozdelenie údajov
## Cvičenie - rozdelenie dát
Podľa tejto cesty by sme mali začať importovaním niektorých knižníc na použitie.
Podľa tejto cesty by sme mali začať importovaním niektorých knižníc.
1. Importujte potrebné knižnice:
@ -50,31 +50,31 @@ Podľa tejto cesty by sme mali začať importovaním niektorých knižníc na po
import numpy as np
```
1. Rozdeľte svoje tréningové a testovacie údaje:
1. Rozdeľte tréningové a testovacie dáta:
```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 klasifikátor
## Lineárny SVC klasifikátor
Support-Vector clustering (SVC) je súčasťou rodiny techník strojového učenia Support-Vector Machines (viac o nich nižšie). V tejto metóde si môžete vybrať „kernel“, ktorý rozhoduje o tom, ako sa budú označenia zoskupovať. Parameter 'C' sa týka 'regularizácie', ktorá reguluje vplyv parametrov. Kernel môže byť jeden z [niekoľkých](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); tu ho nastavíme na 'linear', aby sme využili Linear SVC. Pravdepodobnosť je predvolene nastavená na 'false'; tu ju nastavíme na 'true', aby sme získali odhady pravdepodobnosti. Random state nastavíme na '0', aby sme premiešali údaje na získanie pravdepodobností.
Support-Vector clustering (SVC) je podmnožina rodiny Support-Vector strojov (SVM) v strojovom učení (dozviete sa o nich nižšie). V tejto metóde môžete zvoliť 'kernel' (jadro), ktoré rozhoduje o tom, ako sa labely zhluku. Parameter 'C' označuje 'regularizáciu', ktorá reguluje vplyv parametrov. Kernel môže byť jeden z [niekoľkých](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); tu ho nastavujeme na 'linear', aby sme využili lineárny SVC. Pravdepodobnosť je štandardne 'false'; tu ju nastavujeme na 'true', aby sme získali odhady pravdepodobnosti. Náhodný stav nastavujeme na '0', aby sa dáta zamiešali a získali pravdepodobnosti.
### Cvičenie - aplikácia Linear SVC
### Cvičenie - aplikujte lineárny SVC
Začnite vytvorením poľa klasifikátorov. Postupne budete pridávať do tohto poľa, ako budeme testovať.
Začnite vytvorením poľa klasifikátorov. Budete do neho postupne pridávať podľa testovania.
1. Začnite s Linear SVC:
1. Začnite s Lineárnym SVC:
```python
C = 10
# Create different classifiers.
# Vytvorte rôzne klasifikátory.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Natrénujte svoj model pomocou Linear SVC a vytlačte správu:
2. Natrénujte model pomocou Lineárneho SVC a vytlačte správu:
```python
n_classifiers = len(classifiers)
@ -107,19 +107,19 @@ Začnite vytvorením poľa klasifikátorov. Postupne budete pridávať do tohto
## K-Neighbors klasifikátor
K-Neighbors je súčasťou rodiny metód strojového učenia „neighbors“, ktoré sa dajú použiť na riadené aj neriadené učenie. V tejto metóde sa vytvorí preddefinovaný počet bodov a údaje sa zhromažďujú okolo týchto bodov tak, aby sa dali predpovedať všeobecné označenia pre údaje.
K-Neighbors patrí do rodiny metód „neighbors“, ktoré možno použiť na riadené aj neriadené učenie. V tejto metóde sa vytvorí preddefinovaný počet bodov a okolo nich sa zhromažďujú dáta, aby sa mohli predpovedať všeobecné labely pre dáta.
### Cvičenie - aplikácia K-Neighbors klasifikátora
### Cvičenie - aplikujte K-Neighbors klasifikátor
Predchádzajúci klasifikátor bol dobrý a fungoval dobre s údajmi, ale možno môžeme dosiahnuť lepšiu presnosť. Skúste K-Neighbors klasifikátor.
Predchádzajúci klasifikátor bol dobrý a dobre fungoval s dátami, ale možno môžeme dosiahnuť lepšiu presnosť. Skúste K-Neighbors klasifikátor.
1. Pridajte riadok do svojho poľa klasifikátorov (pridajte čiarku za položku Linear SVC):
1. Pridajte riadok do poľa klasifikátorov (pridajte čiarku za položku Lineárny SVC):
```python
'KNN classifier': KNeighborsClassifier(C),
```
Výsledok je o niečo horší:
Výsledok je mierne horší:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,15 +136,15 @@ Predchádzajúci klasifikátor bol dobrý a fungoval dobre s údajmi, ale možno
weighted avg 0.76 0.74 0.74 1199
```
Zistite viac o [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
Naučte sa o [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Support Vector klasifikátor
## Support Vector Classifier
Support-Vector klasifikátory sú súčasťou rodiny metód strojového učenia [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine), ktoré sa používajú na klasifikačné a regresné úlohy. SVM „mapujú tréningové príklady na body v priestore“, aby maximalizovali vzdialenosť medzi dvoma kategóriami. Následné údaje sa mapujú do tohto priestoru, aby sa dala predpovedať ich kategória.
Support-Vector klasifikátory sú súčasťou rodiny [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine), ktoré sa používajú pre klasifikačné a regresné úlohy. SVM „mapuje tréningové príklady do bodov v priestore“, aby maximalizoval vzdialenosť medzi dvoma kategóriami. Následné dáta sa mapujú do tohto priestoru, aby sa mohla predpovedať ich kategória.
### Cvičenie - aplikácia Support Vector klasifikátora
### Cvičenie - aplikujte Support Vector Classifier
Skúsme dosiahnuť o niečo lepšiu presnosť pomocou Support Vector klasifikátora.
Skúsme dosiahnuť trocha lepšiu presnosť pomocou Support Vector Classifier.
1. Pridajte čiarku za položku K-Neighbors a potom pridajte tento riadok:
@ -152,7 +152,7 @@ Skúsme dosiahnuť o niečo lepšiu presnosť pomocou Support Vector klasifikát
'SVC': SVC(),
```
Výsledok je veľmi dobrý!
Výsledok je celkom dobrý!
```output
Accuracy (train) for SVC: 83.2%
@ -169,11 +169,11 @@ Skúsme dosiahnuť o niečo lepšiu presnosť pomocou Support Vector klasifikát
weighted avg 0.84 0.83 0.83 1199
```
Zistite viac o [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
Naučte sa o [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ensemble klasifikátory
## Ensemble Classifiers
Poďme sledovať cestu až do konca, aj keď predchádzajúci test bol veľmi dobrý. Skúsme niektoré 'Ensemble Classifiers', konkrétne Random Forest a AdaBoost:
Poďme pokračovať až do konca cesty, aj keď bol predchádzajúci test dosť dobrý. Skúsme „Ensemble Classifiers“, konkrétne Random Forest a 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
```
Zistite viac o [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
Naučte sa o [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
Táto metóda strojového učenia „kombinuje predpovede niekoľkých základných odhadovačov“, aby zlepšila kvalitu modelu. V našom príklade sme použili Random Trees a AdaBoost.
Táto metóda strojového učenia "kombinuje predpovede niekoľkých základných odhadcov" pre zlepšenie kvality modelu. V našom príklade sme použili náhodné stromy a AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), metóda priemerovania, vytvára „les“ z „rozhodovacích stromov“ naplnených náhodnosťou, aby sa zabránilo pretrénovaniu. Parameter n_estimators je nastavený na počet stromov.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), metóda priemerovania, vytvára „les“ rozhodovacích stromov obohatených náhodnosťou, aby sa predišlo preučeniu. Parameter n_estimators je nastavený na počet stromov.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) prispôsobí klasifikátor datasetu a potom prispôsobí kópie tohto klasifikátora rovnakému datasetu. Zameriava sa na váhy nesprávne klasifikovaných položiek a upravuje fit pre ďalší klasifikátor, aby ich opravil.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) prispôsobí klasifikátor dátovej sade a potom prispôsobí kópie tohto klasifikátora danej sade. Zameriava sa na váhy nesprávne klasifikovaných položiek a upravuje prispôsobenie pre ďalší klasifikátor, aby to opravil.
---
## 🚀Výzva
Každá z týchto techník má veľké množstvo parametrov, ktoré môžete upraviť. Preskúmajte predvolené parametre každého z nich a premýšľajte o tom, čo by znamenalo upravenie týchto parametrov pre kvalitu modelu.
Každá z týchto techník má veľké množstvo parametrov, ktoré môžete upravovať. Preskúmajte predvolené parametre každého z nich a zamyslite sa, čo by znamenalo ich upravovanie pre kvalitu modelu.
## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/)
## [Po prednáške kvíz](https://ff-quizzes.netlify.app/en/ml/)
## Prehľad a samostatné štúdium
## Recenzia a samostatné štúdium
V týchto lekciách je veľa odborných výrazov, takže si chvíľu preštudujte [tento zoznam](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) užitočnej terminológie!
Týchto lekcií je veľa odborných výrazov, preto si dajte chvíľu na preštudovanie [tohto zoznamu](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) užitočnej terminológie!
## Zadanie
## Zadanie
[Parameter play](assignment.md)
[Hra s parametrami](assignment.md)
---
**Upozornenie**:
Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Upozornenie**:
Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, majte na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nepochopenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# Vytvoriť klasifikačný model\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**Upozornenie**: \nTento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie odporúčame profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Upozornenie**: \nTento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa usilujeme o presnosť, berte prosím na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-06T14:42:11+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "sk"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# Vytvorte viac klasifikačných modelov\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": [
"Vyskúšajte rôzne klasifikátory\n"
"# Vyskúšajte rôzne klasifikátory\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**Upozornenie**: \nTento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Zrieknutie sa zodpovednosti**:\nTento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, majte prosím na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za žiadne nedorozumenia alebo nesprávne výklady vyplývajúce z použitia tohto prekladu.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-06T14:42:38+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "sk"
}
},
"nbformat": 4,

@ -10,76 +10,86 @@
### 🌐 Podpora viacerých jazykov
#### Podporované cez GitHub Action (Automatizované a vždy aktuálne)
#### Podporované cez GitHub Action (automatizované a vždy aktuálne)
<!-- 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](./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)
> **Uprednostňujete klonovanie lokálne?**
> Tento repozitár obsahuje preklady do viac ako 50 jazykov, čo výrazne zväčšuje veľkosť na stiahnutie. Na klonovanie bez prekladov použite sparse checkout:
>
> Tento repozitár obsahuje viac ako 50 prekladov, čo výrazne zvyšuje veľkosť sťahovania. Ak chcete klonovať bez prekladov, použite 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'
> ```
> Toto vám poskytne všetko, čo potrebujete na dokončenie kurzu, ale oveľa rýchlejšie sťahovanie.
>
> **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"
> ```
>
> Toto vám poskytne všetko potrebné pre dokončenie kurzu s oveľa rýchlejším stiahnutím.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Pridajte sa do našej komunity
#### Pripojte sa k našej komunite
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Máme prebiehajúcu sériu Learn with AI na Discorde, dozviete sa viac a pripojte sa k nám na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. septembra 2025. Získate tipy a triky na používanie GitHub Copilot pre Data Science.
Máme prebiehajúcu sériu „Learn with AI“ na Discorde, dozviete sa viac a pridajte sa k nám na [Learn with AI Series](https://aka.ms/learnwithai/discord) v termíne 18. 30. septembra 2025. Získate tipy a triky na používanie GitHub Copilot pre Data Science.
![Séria Learn with AI](../../translated_images/sk/3.9b58fd8d6c373c20.webp)
![Learn with AI series](../../translated_images/sk/3.9b58fd8d6c373c20.webp)
# Strojové učenie pre začiatočníkov Kurikulum
# Strojové učenie pre začiatočníkov - Kurikulum
> 🌍 Cestujte po svete a objavujte strojové učenie cez svetové kultúry 🌍
> 🌍 Cestujte po svete a objavujte Strojové učenie prostredníctvom svetových kultúr 🌍
Cloud Advocates v Microsoft s potešením ponúkajú 12-týždňový kurz s 26 lekciami o **strojovom učení**. V tomto kurze sa naučíte o tom, čo sa niekedy nazýva **klasické strojové učenie**, pričom hlavnou knižnicou je Scikit-learn a vyhýbame sa hlbokému učeniu, ktoré je pokryté v našom [kurze AI pre začiatočníkov](https://aka.ms/ai4beginners). Tieto lekcie môžete spárovať s naším [kurzom Data Science pre začiatočníkov](https://aka.ms/ds4beginners)!
Cloud Advocates v Microsoft s potešením ponúkajú 12-týždňový kurz s 26 lekciami zameranými na **Strojové učenie**. V tomto kurze sa naučíte o tom, čo sa niekedy nazýva **klasické strojové učenie**, hlavne s použitím knižnice Scikit-learn a bez hĺbkového učenia, ktoré pokrýva náš [AI pre začiatočníkov kurz](https://aka.ms/ai4beginners). Zároveň môžete tieto lekcie kombinovať s naším ['Data Science pre začiatočníkov' kurzom](https://aka.ms/ds4beginners).
Cestujte s nami po svete a aplikujte tieto klasické techniky na dáta z rôznych oblastí sveta. Každá lekcia obsahuje pred a po lekcií kvízy, písomné inštrukcie na dokončenie lekcie, riešenie, zadanie a viac. Naša projektovo orientovaná pedagogika vám umožní učiť sa počas tvorby, čo je overený spôsob, ako si nové zručnosti "uložiť".
Cestu s nami po svete, ako aplikujeme tieto klasické techniky na dáta z rôznych oblastí sveta. Každá lekcia obsahuje pred a po lekčné kvízy, písomné inštrukcie na dokončenie lekcie, riešenie, zadanie a ďalšie. Naša projektová pedagogika vám umožňuje učiť sa počas tvorby, čo je overený spôsob, ako si nové zručnosti udržať.
**✍️ Veľká vďaka našim autorom** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu a Amy Boyd
**✍️ Srdečná vďaka našim autorom** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu a Amy Boyd
**🎨 Ďakujeme aj našim ilustrátorom** Tomomi Imura, Dasani Madipalli a Jen Looper
**🎨 Vďaka tiež našim ilustrátorom** Tomomi Imura, Dasani Madipalli a Jen Looper
**🙏 Špeciálne ďakujeme 🙏 autorom, recenzentom a prispievateľom obsahu z Microsoft Student Ambassador**, najmä Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal
**🙏 Špeciálne poďakovanie 🙏 našim Microsoft Student Ambassador autorom, recenzentom a prispievateľom obsahu**, predovšetkým Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal
**🤩 Extra vďaka Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi a Vidushi Gupta za naše R lekcie!**
**🤩 Extra vďaka Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi a Vidushi Gupta za naše lekcie R!**
# Začnite
# Začíname
Postupujte podľa týchto krokov:
1. **Forknite Repozitár**: Kliknite na tlačidlo "Fork" v pravom hornom rohu tejto stránky.
2. **Skloňujte Repozitár**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
1. **Forknite repozitár**: Kliknite na tlačidlo „Fork“ v pravom hornom rohu tejto stránky.
2. **Klonujte repozitár**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [nájdete všetky doplnkové zdroje k tomuto kurzu v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [nájdite všetky doplnkové zdroje k tomuto kurzu v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Potrebujete pomoc?** Pozrite si náš [Príručku na riešenie problémov](TROUBLESHOOTING.md) pre riešenia bežných problémov s inštaláciou, nastavením a spustením lekcií.
> 🔧 **Potrebujete pomoc?** Pozrite si náš [Sprievodca riešením problémov](TROUBLESHOOTING.md) s riešeniami bežných problémov s inštaláciou, nastavením a spúšťaním lekcií.
**[Študenti](https://aka.ms/student-page)**, pre používanie tohto kurikula forknete celý repozitár do svojho GitHub účtu a cvičenia robte sami alebo v skupine:
**[Študenti](https://aka.ms/student-page)**, aby ste používali tento kurz, forknete celý repozitár do svojho GitHub účtu a cvičenia dokončujete sami alebo v skupine:
- Začnite prednáškovým kvízom.
- Čítajte prednášku a dokončujte aktivity, zastavujte sa a premýšľajte pri každej kontrole poznatkov.
- Pokúste sa vytvoriť projekty pochopením lekcií namiesto spustenia riešenia; ale tento kód je dostupný v priečinkoch `/solution` v každej lekcii zameranej na projekt.
- Vykonajte post-lecture kvíz.
- Začnite predprednáškovým kvízom.
- Prečítajte si prednášku a dokončite aktivity, zastavte sa a zamyslite sa pri každej kontrole vedomostí.
- Pokúste sa vytvoriť projekty tak, že pochopíte lekcie namiesto spustenia riešenej ukážky; kód je však k dispozícii v priečinkoch `/solution` ku každej projektovo orientovanej lekcii.
- Urobte po-prednáškový kvíz.
- Dokončite výzvu.
- Dokončite zadanie.
- Po dokončení skupiny lekcií navštívte [Diskusné fórum](https://github.com/microsoft/ML-For-Beginners/discussions) a "učiť sa nahlas" vyplnením príslušného hodnotiaceho formulára PAT. 'PAT' je Nástroj na hodnotenie pokroku, ktorým vyplňujete svoj pokrok. Môžete tiež reagovať na iné PAT, aby sme sa mohli učiť spoločne.
- Po dokončení skupiny lekcií navštívte [Diskusné fórum](https://github.com/microsoft/ML-For-Beginners/discussions) a „učte sa nahlas“ vyplnením príslušnej PAT rubriky. 'PAT' je nástroj hodnotenia pokroku, teda rubrika, ktorú vyplníte pre ďalšie učenie. Môžete tiež reagovať na ostatné PAT, aby sme sa mohli učiť spoločne.
> Na ďalšie štúdium odporúčame sledovať tieto moduly a vzdelávacie cesty [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
> Pre ďalšie štúdium odporúčame tieto [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduly a vzdelávacie cesty.
**Učitelia**, ponúkli sme [niekoľko návrhov](for-teachers.md) na používanie tohto kurikula.
**Učitelia**, pripravili sme [niekoľko odporúčaní](for-teachers.md) na využitie tohto kurzu.
---
## Video prehliadky
Niektoré lekcie sú dostupné vo forme krátkych videí. Nájdete ich priamo v lekciách alebo na [playliste ML for Beginners na YouTube kanáli Microsoft Developer](https://aka.ms/ml-beginners-videos) kliknutím na obrázok nižšie.
Niektoré lekcie sú dostupné ako krátke videá. Nájdete ich priamo v lekciách alebo na [playliste ML pre začiatočníkov na YouTube kanáli Microsoft Developer](https://aka.ms/ml-beginners-videos) kliknutím na obrázok nižšie.
[![ML for beginners banner](../../translated_images/sk/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -91,70 +101,70 @@ Niektoré lekcie sú dostupné vo forme krátkych videí. Nájdete ich priamo v
**Gif od** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Kliknite na obrázok vyššie pre video o projekte a ľuďoch, ktorí ho vytvorili!
> 🎥 Kliknite na obrázok vyššie pre video o projekte a jeho tvorcoch!
---
## Pedagogika
## Pedagógia
Pri tvorbe tohto kurikula sme si zvolili dve pedagogické zásady: zabezpečiť praktický, **projektovo orientovaný** prístup a pravidelné **kvízy**. Okrem toho má kurz jednotnú **tému**, ktorá mu dáva súdržnosť.
Pri tvorbe tohto kurikula sme si stanovili dve pedagogické zásady: zabezpečiť, že je **projektovo orientované** a zároveň obsahuje **časté kvízy**. Okrem toho má kurz jednotnú **tému** pre väčšiu súdržnosť.
Zaradením obsahu, ktorý súvisí s projektmi, sa celý proces pre študentov stáva zaujímavejším a lepšie si zapamätajú pojmy. Nízkonákladový kvíz pred hodinou nasmeruje študentov na učenie, pričom druhý kvíz po hodine zabezpečí ďalšie upevnenie poznatkov. Kurz je navrhnutý tak, aby bol flexibilný a zábavný, dá sa absolvovať celý, alebo čiastočne. Projekty začínajú jednoduché a postupne sa zložitosť zvyšuje počas 12-týždňového cyklu. Kurz tiež obsahuje epilóg o reálnych aplikáciách strojového učenia, ktorý možno použiť ako doplnkové hodnotenie alebo tému na diskusiu.
Zabezpečením, že obsah je prepojený s projektmi, je proces pre študentov zaujímavejší a udržanie vedomostí lepšie. Nízkorizikový kvíz pred triedou nasmeruje študenta na dané témy, a druhý po vyučovaní prehlbuje zapamätanie. Tento kurz je navrhnutý flexibilne a zábavne, môžete ho absolvovať celý alebo len čiastočne. Projekty začínajú jednoducho a končia zložitejšími na konci 12-týždňového cyklu. Kurz obsahuje aj dodatok o reálnych aplikáciách ML, ktorý možno použiť ako bonusové kreditovanie alebo diskusnú tému.
> Nájdite náš [Kódex správania](CODE_OF_CONDUCT.md), [Príspevky](CONTRIBUTING.md), [Preklady](TRANSLATIONS.md) a [Riešenie problémov](TROUBLESHOOTING.md). Vaša konštruktívna spätná väzba je vítaná!
> Nájdete tu náš [Kódex správania](CODE_OF_CONDUCT.md), [Príspevky](CONTRIBUTING.md), [Preklad](TRANSLATIONS.md) a [Riešenie problémov](TROUBLESHOOTING.md). Vitáme vaše konštruktívne pripomienky!
## Každá lekcia obsahuje
- voliteľnú náčrtnú poznámku
- voliteľné doplňujúce video
- video sprievodcu (len niektoré lekcie)
- [úvodný kvíz pred lekciou](https://ff-quizzes.netlify.app/en/ml/)
- voliteľnú skicovaciu poznámku
- voliteľné doplnkové video
- video prehliadku (len niektoré lekcie)
- [pred-prednáškový rozcvičovací kvíz](https://ff-quizzes.netlify.app/en/ml/)
- písomnú lekciu
- pre projektovo orientované lekcie podrobné návody na tvorbu projektu
- u projektovo orientovaných lekcií krok-za-krokom návody, ako vytvoriť projekt
- kontroly vedomostí
- výzvu
- doplňujúce čítanie
- doplnkové čítanie
- zadanie
- [záverečný kvíz po lekcii](https://ff-quizzes.netlify.app/en/ml/)
> **Poznámka o jazykoch**: Tieto lekcie sú primárne napísané v Pythone, ale mnohé sú dostupné aj v jazyku R. Pre dokončenie lekcie v R choďte do priečinka `/solution` a hľadajte R lekcie. Tie obsahujú príponu .rmd, ktorá reprezentuje **R Markdown** súbor, čo je jednoducho povedané súbor, ktorý kombinuje `kódy` (v R alebo iných jazykoch) a `YAML hlavičku` (ktorá určuje formát výstupu, napr. PDF) v `Markdown dokumente`. Ako taký slúži ako príklad tvorby pre dátovú vedu, pretože vám umožňuje kombinovať kód, jeho výstup a vaše poznámky písané v Markdown. R Markdown súbory možno následne vyprodukovať do formátov ako PDF, HTML alebo Word.
> **Poznámka o kvízoch**: Všetky kvízy sú obsiahnuté v [zložke Quiz App](../../quiz-app), spolu 52 kvízov po troch otázkach. Sú prepojené z lekcií, ale aplikáciu kvízu môžete spustiť aj lokálne; postupujte podľa inštrukcií v zložke `quiz-app`, aby ste ju hosťovali lokálne alebo nasadili na Azure.
| Číslo lekcie | Téma | Zoskupenie lekcie | Ciele učenia | Prepojená lekcia | Autor |
| :----------: | :-----------------------------------------------------------: | :--------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 01 | Úvod do strojového učenia | [Úvod](1-Introduction/README.md) | Naučiť sa základy strojového učenia | [Lekcia](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Dejiny strojového učenia | [Úvod](1-Introduction/README.md) | Spoznajte históriu tohto odboru | [Lekcia](1-Introduction/2-history-of-ML/README.md) | Jen a Amy |
| 03 | Spravodlivosť a strojové učenie | [Úvod](1-Introduction/README.md) | Aké sú dôležité filozofické otázky týkajúce sa spravodlivosti, ktoré by študenti mali zvážiť pri tvorbe a aplikácii ML modelov? | [Lekcia](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Techniky strojového učenia | [Úvod](1-Introduction/README.md) | Aké techniky používajú výskumníci ML na vytváranie ML modelov? | [Lekcia](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen |
| 05 | Úvod do regresie | [Regresia](2-Regression/README.md) | Začať s Pythonom a Scikit-learn pre regresné modely | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vizualizovať a vyčistiť dáta na prípravu pre ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vytvoriť lineárne a polynomiálne regresné modely | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen a Dmitry • Eric Wanjau |
| 08 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vytvoriť logistický regresný model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Webová aplikácia 🔌 | [Webová app](3-Web-App/README.md) | Vybudujte webovú aplikáciu na použitie vášho trénovaného modelu | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Úvod do klasifikácie | [Klasifikácia](4-Classification/README.md) | Vyčistiť, pripraviť a vizualizovať dáta; úvod do klasifikácie | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen a Cassie • Eric Wanjau |
| 11 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Úvod do klasifikátorov | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen a Cassie • Eric Wanjau |
| 12 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Viac klasifikátorov | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen a Cassie • Eric Wanjau |
| 13 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Vytvoriť odporúčaciu webovú aplikáciu pomocou vášho modelu | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Úvod do zhlukovania | [Zhlukovanie](5-Clustering/README.md) | Vyčistiť, pripraviť a vizualizovať dáta; úvod do zhlukovania | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Preskúmanie nigérijských hudobných chutí 🎧 | [Zhlukovanie](5-Clustering/README.md) | Preskúmať metódu zhlukovania 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 | Úvod do spracovania prirodzeného jazyka ☕️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Naučte sa základy NLP vytvorením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Bežné úlohy NLP ☕️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Prehĺbte svoje znalosti NLP porozumením bežných úloh potrebných pri práci s jazykovými štruktúrami | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Preklad a analýza sentimentu ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Preklad a analýza sentimentu s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantické hotely Európy ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Analýza sentimentu pomocou hodnotení hotelov 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantické hotely Európy ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Analýza sentimentu pomocou hodnotení hotelov 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Úvod do predikcie časových radov | [Časové rady](7-TimeSeries/README.md) | Úvod do predikcie časových radov | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov ARIMA | [Časové rady](7-TimeSeries/README.md) | Predikcia časových radov pomocou ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov SVR | [Časové rady](7-TimeSeries/README.md) | Predikcia časových radov pomocou support vector regresora | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Úvod do posilňovacieho učenia | [Posilňovacie učenie](8-Reinforcement/README.md) | Úvod do posilňovacieho učenia pomocou Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Pomôž Petrovi vyhnúť sa vlkovi! 🐺 | [Posilňovacie učenie](8-Reinforcement/README.md) | Posilňovacie učenie Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Reálne scenáre a aplikácie ML | [ML v teréne](9-Real-World/README.md) | Zaujímavé a poučné reálne aplikácie klasického ML | [Lekcia](9-Real-World/1-Applications/README.md) | Tím |
| Postscript | Ladenie modelov v ML pomocou RAI dashboardu | [ML v teréne](9-Real-World/README.md) | Ladenie modelov v strojovom učení pomocou komponentov Responsible AI dashboardu | [Lekcia](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [nájdite všetky doplnkové zdroje pre tento kurz v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
- [po-prednáškový kvíz](https://ff-quizzes.netlify.app/en/ml/)
> **Poznámka o jazykoch**: Tieto lekcie sú primárne napísané v Pythone, no mnohé sú dostupné aj v R. Ak chcete dokončiť lekciu v R, choďte do priečinka `/solution` a hľadajte lekcie v R. Majú príponu .rmd, ktorá predstavuje **R Markdown** súbor, čo možno jednoducho definovať ako vloženie `kódových blokov` (v R alebo iných jazykoch) a `YAML hlavičky` (ktorá riadi formátovanie výstupov, napr. PDF) do `Markdown dokumentu`. Ako také slúži ako ukážkový autorský rámec pre dátovú vedu, pretože umožňuje kombinovať váš kód, jeho výstupy a vaše poznámky tým, že ich môžete zapisovať do Markdownu. Navyše, R Markdown dokumenty môžu byť vyrenderované do výstupných formátov ako PDF, HTML alebo Word.
> **Poznámka o kvízoch**: Všetky kvízy sú obsiahnuté v [priečinku Quiz App](../../quiz-app), spolu 52 kvízov s tromi otázkami v každom. Sú prepojené v lekciách, no kvízová aplikácia sa dá spustiť lokálne; dodržiavajte inštrukcie v priečinku `quiz-app` na miestne hosťovanie alebo nasadenie na Azure.
| Číslo lekcie | Téma | Skupina lekcií | Ciele učenia | Prepojená lekcia | Autor |
| :----------: | :----------------------------------------------------------------: | :--------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------: |
| 01 | Úvod do strojového učenia | [Úvod](1-Introduction/README.md) | Naučte sa základné koncepty strojového učenia | [Lekcia](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | História strojového učenia | [Úvod](1-Introduction/README.md) | Spoznajte históriu tohto odboru | [Lekcia](1-Introduction/2-history-of-ML/README.md) | Jen a Amy |
| 03 | Spravodlivosť a strojové učenie | [Úvod](1-Introduction/README.md) | Aké sú dôležité filozofické otázky týkajúce sa spravodlivosti, ktoré by študenti mali zvažovať pri tvorbe a použití ML modelov? | [Lekcia](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Techniky strojového učenia | [Úvod](1-Introduction/README.md) | Aké techniky používajú výskumníci ML na tvorbu ML modelov? | [Lekcia](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen |
| 05 | Úvod do regresie | [Regresia](2-Regression/README.md) | Začnite používať Python a Scikit-learn na regresné modely | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vizualizujte a vyčistite údaje na prípravu ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vytvorte lineárne a polynomiálne regresné modely | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen a Dmitry • Eric Wanjau |
| 08 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vytvorte logistický regresný model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Webová aplikácia 🔌 | [Web App](3-Web-App/README.md) | Vytvorte webovú aplikáciu na použitie vášho vycvičeného modelu | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Úvod do klasifikácie | [Klasifikácia](4-Classification/README.md) | Vyčistite, pripravte a vizualizujte svoje údaje; úvod do klasifikácie | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen a Cassie • Eric Wanjau |
| 11 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Úvod do klasifikátorov | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen a Cassie • Eric Wanjau |
| 12 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Viac klasifikátorov | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen a Cassie • Eric Wanjau |
| 13 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Vytvorte odporúčaciu webovú aplikáciu pomocou vášho modelu | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Úvod do zhlukovania | [Zhlukovanie](5-Clustering/README.md) | Vyčistite, pripravte a vizualizujte svoje údaje; úvod do zhlukovania | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Preskúmanie nigérijských hudobných chutí 🎧 | [Zhlukovanie](5-Clustering/README.md) | Preskúmajte metódu K-Means zhlukovania | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Úvod do spracovania prirodzeného jazyka ☕️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Naučte sa základy NLP vytvorením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Bežné úlohy NLP ☕️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Prehĺbte svoje znalosti NLP pochopením bežných úloh potrebných pri práci s jazykovými štruktúrami | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Preklad a analýza sentimentu ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Preklad a analýza sentimentu s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantické hotely v Európe ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Analýza sentimentu pri hotelových recenziách 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantické hotely v Európe ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Analýza sentimentu pri hotelových recenziách 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Úvod do predikcie časových radov | [Časové rady](7-TimeSeries/README.md) | Úvod do predikcie časových radov | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov s ARIMA | [Časové rady](7-TimeSeries/README.md) | Predikcia časových radov pomocou ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov so SVR | [Časové rady](7-TimeSeries/README.md) | Predikcia časových radov pomocou regortu podporovaných vektorov (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Úvod do posilňovacieho učenia | [Posilňovacie učenie](8-Reinforcement/README.md) | Úvod do posilňovacieho učenia pomocou Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Pomôžte Petrovi vyhnúť sa vlkovi! 🐺 | [Posilňovacie učenie](8-Reinforcement/README.md) | Posilňovacie učenie s Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Reálne scenáre a aplikácie ML | [ML v praxi](9-Real-World/README.md) | Zaujímavé a odhaľujúce reálne aplikácie klasického ML | [Lekcia](9-Real-World/1-Applications/README.md) | Tím |
| Postscript | Ladenie modelu v ML pomocou RAI dashboard | [ML v praxi](9-Real-World/README.md) | Ladenie modelu v strojovom učení pomocou komponentov Responsible AI dashboard | [Lekcia](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [nájdite všetky ďalšie zdroje pre tento kurz v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline prístup
Túto dokumentáciu môžete spustiť offline pomocou [Docsify](https://docsify.js.org/#/). Forknite si tento repozitár, [nainštalujte Docsify](https://docsify.js.org/#/quickstart) na vašom lokálnom počítači a potom v koreňovej zložke tohto repozitára zadajte `docsify serve`. Webová stránka bude dostupná na porte 3000 na vašom localhoste: `localhost:3000`.
Môžete spustiť túto dokumentáciu offline pomocou [Docsify](https://docsify.js.org/#/). Vytvorte fork tohto repozitára, [nainštalujte Docsify](https://docsify.js.org/#/quickstart) na vašom lokálnom počítači a potom v koreňovom priečinku tohto repozitára zadajte `docsify serve`. Webová stránka bude servírovaná na porte 3000 na vašom localhoste: `localhost:3000`.
## PDF
@ -163,24 +173,24 @@ Nájdite pdf učebného plánu s odkazmi [tu](https://microsoft.github.io/ML-For
## 🎒 Ostatné kurzy
Náš tím produkuje aj iné kurzy! Pozrite si:
Náš tím produkuje aj ďalšie kurzy! Pozrite si:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j pre začiatočníkov](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 pre začiatočníkov](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 pre začiatočníkov](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 / Agentky
[![AZD pre začiatočníkov](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 pre začiatočníkov](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)
### 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 pre začiatočníkov](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 agentky pre začiatočníkov](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)
[![AI agenti pre začiatočníkov](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)
---
### Generatívna AI séria
### Séria Generatívnej AI
[![Generatívna AI pre začiatočníkov](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)
[![Generatívna 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)
[![Generatívna 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)
@ -205,19 +215,24 @@ Náš tím produkuje aj iné kurzy! Pozrite si:
[![Copilot dobrodružstvo](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 -->
## Ako získať pomoc
## Získanie pomoci
Ak sa zaseknete alebo máte otázky o tvorbe AI aplikácií. Pripojte sa k ostatným študentom a skúseným vývojárom v diskusiách o MCP. Je to podporná komunita, kde sú otázky vítané a vedomosti sa slobodne zdieľajú.
Ak sa zaseknete alebo máte akékoľvek otázky týkajúce sa budovania AI aplikácií, pripojte sa k ostatným študentom a skúseným vývojárom v diskusiách o MCP. Je to podporná komunita, kde sú otázky vítané a poznatky sa slobodne zdieľajú.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Ak máte spätú väzbu na produkt alebo nájdete chyby počas vývoja, navštívte:
Ak máte spätnú väzbu k produktu alebo počas vývoja objavíte chyby, navštívte:
[![Microsoft Foundry Developer Fórum](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)
## Ďalšie tipy na učenie
[![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)
- Prezrite si poznámkové bloky po každej lekcii pre lepšie pochopenie.
- Precvičujte implementáciu algoritmov sami.
- Preskúmajte reálne dátové súbory pomocou naučených konceptov.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vyhlásenie o zodpovednosti**:
Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, majte prosím na pamäti, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
**Upozornenie**:
Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa usilujeme o presnosť, berte, prosím, na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie sa odporúča využiť profesionálny ľudský preklad. Za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu nenesieme zodpovednosť.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save