Merge pull request #62 from kerimovscreations/post-review-trans

TRANS-AZ: reviewed main readme.md file
pull/777/head
Karim Karimov 2 years ago committed by GitHub
commit 6ccd16d08b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,29 +1,29 @@
# Maşın öyrənməsinə giriş
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/1/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/1/?loc=az)
---
[![Yeni başlayanlar üçün MÖ - Yeni başlayanlar üçün maşın öyrənməsinə giriş](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "Yeni başlayanlar üçün MÖ - Yeni başlayanlar üçün maşın öyrənməsinə giriş")
[![Yeni başlayanlar üçün ML - Yeni başlayanlar üçün maşın öyrənməsinə giriş](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "Yeni başlayanlar üçün ML- Yeni başlayanlar üçün maşın öyrənməsinə giriş")
> 🎥 Bu dərslə məşğul olmaq üçün yuxarıdakı təsvirə toxunun və videonu izləyin.
> 🎥 Bu dərslə məşğul olmaq üçün yuxarıdakı təsvirə klikləyin və videonu izləyin.
Yeni başlayanlar üçün klassik maşın öyrənməsi kursuna xoş gəlmisiniz! İstər bu sahədə tamamilə yeni olun və ya bu sahədə fikirləri cəmləməyə çalışan təcrübəli MÖ mütəsəssisi olun, bizə qatıldığınız üçün məmnuniyyət hissi duyuruq! Sizi MÖ öyrənməyinizdə mehriban bir mühit yaratmaq istəmişik və [fikirlərinizi](https://github.com/microsoft/ML-For-Beginners/discussions) dəyərləndirmək və cavablamaqdan məmnun olarıq.
Yeni başlayanlar üçün klassik maşın öyrənməsi kursuna xoş gəlmisiniz! İstər bu sahədə tamamilə yeni olun və ya bu sahədə fikirləri cəmləməyə çalışan təcrübəli ML mütəxəssisi olun, bizə qatıldığınız üçün məmnuniyyət hissi duyuruq! Sizə ML öyrənməyinizdə mehriban bir mühit yaratmaq istəmişik və [fikirlərinizi](https://github.com/microsoft/ML-For-Beginners/discussions) dəyərləndirmək və cavablamaqdan məmnun olarıq.
[![MÖ-nə giriş](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "MÖ-nə giriş")
[![ML-ə giriş](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "ML-ə giriş")
> 🎥 Yuxarıdakı təsvirə toxunmaqla videoya baxın: John Guttag MIT-də maşın öyrənməsini təqdim edir
> 🎥 Yuxarıdakı təsvirə klikləməklə videoya baxın: John Guttag MIT-də maşın öyrənməsini təqdim edir
---
## Maşın öyrənməsi ilə başlanğıc
Kurikuluma başlamazdan əvvəl komputerinizi Phyton notbukların icra olunmasına hazır vəziyyətə gətirməyiniz lazımdır.
- **Komputerinizi bu videolarla hazırlayın**. Linkləri izləyərək komputerinizdə [necə Python quraşdıra biləcəyinizi](https://youtu.be/CXZYvNRIAKM) və kodlamaq üçün [mətn redaktorunu quraşdıracağınızı](https://youtu.be/EU8eayHWoZg) öyrənə bilərsiniz.
- **Komputerinizi bu videolarla hazırlayın**. Linkləri izləyərək komputerinizdə necə [Python quraşdıra biləcəyinizi](https://youtu.be/CXZYvNRIAKM) və kodlamaq üçün [mətn redaktorunu quraşdıracağınızı](https://youtu.be/EU8eayHWoZg) öyrənə bilərsiniz.
- **Python öyrən**. Bu kursda istifadə etdiyimiz və data mühəndislərinə yararlı olan olan [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott) proqramlaşdırma dilində fundamental biliklərə sahib olmağınız məsləhətdir.
- **Node.js və JavaScript öyrən**. Bu kursda bir neçə dəfə veb proqramlarını hazırlayarkən JavaScript dilindən istifadə etmişik, buna görə [node](https://nodejs.org) və [npm](https://www.npmjs.com/) quraşdırmağınız lazımdır. [Visual Studio Code](https://code.visualstudio.com/) quraşdırmaqla həm Python, həm də JavaScript kodlaması üçün istifadə edə bilərsiniz.
- **GitHub hesabı yaradın**. Bizi [GitHub](https://github.com) plaformasından tapmısınızsa, çox güman ki, hesabınız vardır. Lakin əgər yoxdursa, yeni birini yaradın və bu kurrikulumu öz hesabınıza köçürməklə (fork) istədiyiniz kimi istifadə edə bilərsiniz. (Həmçinin bizə ulduz verməyi də unutmayın 😊)
- **Scikit-learn kəşf edin**. Özünüzü [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) platforması ilə tanış edin. Dərslərdə bəzi MÖ kitabxanaları bu platformadan istinad olunub.
- **Node.js və JavaScript öyrən**. Bu kursda bir neçə dəfə veb proqramlarını hazırlayarkən JavaScript dilindən istifadə etmişik, buna görə kompüterinizə [node](https://nodejs.org) və [npm](https://www.npmjs.com/) yükləməyiniz lazımdır. [Visual Studio Code](https://code.visualstudio.com/) yükləməklə həm Python, həm də JavaScript kodlaması üçün istifadə edə bilərsiniz.
- **GitHub hesabı yaradın**. Bizi [GitHub](https://github.com) plaformasından tapmısınızsa, çox güman ki, hesabınız artıq vardır. Lakin əgər yoxdursa, yeni birini yaradın və bu kurrikulumu öz hesabınıza köçürməklə (fork) istədiyiniz kimi istifadə edə bilərsiniz. (Həmçinin bizə ulduz verməyi də unutmayın 😊)
- **Scikit-learn kəşf edin**. Özünüzü [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) platforması ilə tanış edin. Dərslərdə bəzi ML kitabxanaları bu platformadan istinad olunub.
---
## Maşın öyrənməsi nədir?
@ -33,7 +33,7 @@ Kurikuluma başlamazdan əvvəl komputerinizi Phyton notbukların icra olunması
---
## Məşhurluq xətti
![MÖ məşhurluq xətti](../images/hype.png)
![MLməşhurluq xətti](../images/hype.png)
> Google Trends platformasında 'maşın öyrənməsi' terminin 'məşhurluq xətti'
@ -45,53 +45,52 @@ Bizim yaşadığımız kainat çoxlu möhtəşəm sirlərlə doludur. Stefen Hau
---
## Uşağın beyni
Uşağın beyni və duyğuları ətrafdakı məlumatları qəbul edir və get-gedə həyatın gizli modellərini öyrənir. Bu məlumatlar onun əvvəldən öyrəndiyi şablonları təyin etmək üçün qurduğu məntiqi qaydaları daha da təkmilləşdirir. İnsan beyninin öyrənmə prosesi dünyada yaşayan canlıların ən təkmil formasıdır. Daim gizli modelləri öyrənmək və bunların üzərində kəşflər etmək bizi həyatımız boyu daha da yaxşılaşmağımıza kömək edir. Belə öyrənmə tutumu və təkammülü [beyinin plastik xarakteristikası](https://www.simplypsychology.org/brain-plasticity.html) ilə əlaqəlidir. Səthi olaraq insan beynin öyrənməsi prosesinin və maşın öyrənməsi anlayışının arasında bəzi oxşarlıqları təyin edə bilərik.
Uşağın beyni və duyğuları ətrafdakı məlumatları qəbul edir və get-gedə həyatın gizli modelini öyrənir. Bu məlumatlar onun əvvəldən öyrəndiyi qaydaları təyin etmək üçün qurduğu məntiqi qaydaları daha da təkmilləşdirir. İnsan beyninin öyrənmə prosesi dünyada yaşayan canlıların ən təkmil formasıdır. Daim gizli modelləri öyrənmək və bunların üzərində kəşflər etmək bacarığı bizə həyatımız boyu daha da yaxşılaşmağımıza kömək edir. Belə öyrənmə tutumu və təkammülü [beyinin plastik xarakteristikası](https://www.simplypsychology.org/brain-plasticity.html) ilə əlaqəlidir. Səthi olaraq insan beynin öyrənməsi prosesinin və maşın öyrənməsi anlayışının arasında bəzi oxşarlıqları təyin edə bilərik.
---
## İnsan beyni
[İnsan beyni](https://www.livescience.com/29365-human-brain.html) həqiqi dünyadakı əşyaları dərk edir, qəbul edilən məlumatları emal edir, məntiqi qərarlar verir və şəraitdən asılı olaraq bəzi hərəkətlər edir. Ağıllı şəkildə davranmaq buna deyirik. Maşına ağıllı şəkildə davranmasını proqram vasitəsi ilə quraşdırılması süni intellekt (Sİ) adlanır.
[İnsan beyni](https://www.livescience.com/29365-human-brain.html) həqiqi dünyadakı əşyaları dərk edir, qəbul edilən məlumatları emal edir, məntiqi qərarlar verir və şəraitdən asılı olaraq bəzi hərəkətlər edir. Ağıllı şəkildə davranmaq buna deyirik. Maşına ağıllı şəkildə davranmasını proqram vasitəsi ilə quraşdırılması süni intellekt (AI) adlanır.
---
## Bəzi terminlər
Bəzi terminlər çaşdırıcı ola bilər. Bunu unutmayaq ki, maşın öyrənməsi (MÖ) süni intellekt sahəsinin daxilində bir hissədir. **MÖ qəbul edilən məlumatlardan xüsusi alqoritmlər istifadə etməklə mənalı informasiya və gizli modelləri tapıb rasional qərar vermək prosesində istifadə olunur**.
Bəzi terminlər çaşdırıcı ola bilər. Bunu unutmayaq ki, maşın öyrənməsi (ML) süni intellekt sahəsinin daxilində bir hissədir. **ML qəbul edilən məlumatlardan xüsusi alqoritmlər istifadə etməklə mənalı informasiyanı və gizli modelləri tapıb rasional qərar vermək prosesində istifadə olunur**.
---
## Sİ, MÖ, Dərin öyrənmə
## AI, ML, Dərin öyrənmə
![AI, ML, deep learning, data science](../images/ai-ml-ds.png)
![AI, ML, dərin öyrənmə, data elmi](../images/ai-ml-ds.png)
> Diaqram Sİ, MÖ, dərin öyrənmə və data elmi arasında əlaqəni təsvir edir.
A diagram showing the relationships between AI, ML, deep learning, and data science. [Bu qrafikdən](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) ilhamlanaraq [Cen Luper](https://twitter.com/jenlooper) tərəfindən hazırlanıb.
> Diaqram AI, ML, dərin öyrənmə və data elmi arasında əlaqəni təsvir edir. [Bu qrafikdən](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) ilhamlanaraq [Cen Luper](https://twitter.com/jenlooper) tərəfindən hazırlanıb.
---
## Əhatə olunan anlayışlar
Bu kurikulumda biz yalnız yeni başlayanların mütləq bilməli olduğu əsas maşın öyrənməsi anlayışları əhatə edəcəyik. 'Klassik maşın öyrənməsi' mövzusu əsasən bir çox tələbənin əsasları öyrənməsinə kömək etmiş mükəmməl Scikit-learn kitabxanası ilə əhatə olunub. Süni intellektin və ya dərin öyrənməni aynlayışlarını daha yaxşı başa düşmək üçün maşın öyrənməsinin əsas bilikləri vacibdir və biz sizə burada bunu təklif edirik.
Bu kurikulumda biz yalnız yeni başlayanların mütləq bilməli olduğu əsas maşın öyrənməsi anlayışları əhatə edəcəyik. 'Klassik maşın öyrənməsi' mövzusu əsasən bir çox tələbənin əsasları öyrənməsinə kömək etmiş mükəmməl Scikit-learn kitabxanası ilə əhatə olunub. Süni intellektin və ya dərin öyrənməni aynlayışlarını daha yaxşı başa düşmək üçün maşın öyrənməsinin əsas bilikləri vacibdir və biz sizə burada bunu təqdim edirik.
---
## Bu kursda öyrənəcəksiniz:
- maşın öyrənməsi əsas anlayışları
- MÖ tarixi
- MÖ və ədalət
- MÖ reqressiya texnikaları
- MÖ təsnifat texnikaları
- MÖ qruplaşdırma texnikaları
- MÖ təbii danışıq emal olunması texnikaları
- MÖ zamana bağlı təxminetmə texnikaları
- ML tarixi
- ML və ədalət
- reqressiya ML texnikaları
- qruplaşdırma ML texnikaları
- klasterləşdirmə ML texnikaları
- təbii danışıq emal olunması ML texnikaları
- zamana seriyası proqnozu ML texnikaları
- möhkəmləndirərək öyrənmə
- MÖ real həyatda tətbiqləri
- ML-in real həyatda tətbiqləri
---
## Nələri əhatə etməyəcəyik
- dərin öyrənmə
- neural şəbəkələr
- Suni İntellekt (Sİ)
- neyron şəbəkələr
- Suni İntellekt (AI)
Daha yaxşı öyrənmə təcrübəsi üçün biz neural şəbəkələrin, 'dərin öyrənmənin' - çoxlu qatlarla formalaşan model quran neural şəbəkələr - və Sİ-nin mürəkkəbliklərini daxil etməmişik. Onlar barədə digər kurikulumlarla bəhs edəcəyik. Biz həmçinin gələcəkdə data elmini daha geniş əhatə edən kurikulumu da təklif edəcəyik.
Daha yaxşı öyrənmə təcrübəsi üçün biz neyron şəbəkələrin, 'dərin öyrənmənin' - çoxlu qatlarla formalaşan model quran neyron şəbəkələr - və AI-ın mürəkkəbliklərini daxil etməmişik. Onlar barədə digər kurikulumlarla bəhs edəcəyik. Biz həmçinin gələcəkdə data elmini daha geniş əhatə edən kurikulumu da təklif edəcəyik.
---
## Niyə maşın öyrənməsi mövzusunu öyrənməliyəm?
@ -100,15 +99,15 @@ Maşın öyrənməsi sistem tərəfdən baxıldıqda məlumatlardan gizli modell
Bu motivasiya insan beyninin ətraf aləmdən qəbul etdiyi məlumatlar əsasında öyrənməsindən yaranıb.
✅ Bir dəqiqəlik düşünün, biznes ənənəvi üsulla dəqiq qaydalarla tənzimlənən sistem qurmaq əvəzinə nə üçün maşın öyrənməsi strategiyasını seçər.
✅ Bir dəqiqəlik düşünün, bir təşkilat ənənəvi üsulla və dəqiq qaydalarla tənzimlənən sistem qurmaq əvəzinə nə üçün maşın öyrənməsi strategiyasını seçər.
---
## Maşın öyrənməsi tətbiqləri
## Maşın öyrənməsinin tətbiqləri
Maşın öyrənməsinin tətbiqləri mobil telefonlarımızdan, ağıllı cihazlardan və digər sistemlərdən yaranıb ətrafımızda axın edən məlumatlar kimi hər yerdədirlər. Maşın öyrənmə alqoritmlərinin nəhəng potensiyalını nəzərə alaraq araşdırmaçılar çoxölçülü və çox-parametrli həqiqi həyat problemlərini müsbət nəticələr əldə edərək kəşf edirlər.
Maşın öyrənməsinin tətbiqləri mobil telefonlarımızdan, ağıllı cihazlardan və digər sistemlərdən yaranıb ətrafımızda axın edən məlumatlar kimi hər yerdədirlər. Maşın öyrənmə alqoritmlərinin nəhəng potensialını nəzərə alaraq tədqiqatçılar çoxölçülü və çox-parametrli həqiqi həyat problemlərini müsbət nəticələr əldə edərək kəşf edirlər.
---
## MÖ tətbiq olunan nümunələr
## ML tətbiq olunan nümunələr
**Maşın öyrənməsini bir çox yollarla istifadə edə bilərsiniz**:
@ -122,26 +121,26 @@ Maliyyə, iqtisadiyyat, geologiya, kosmik tədqiqat, biotibbi mühəndislik, idr
---
## Nəticə
Maşın öyrənmə həqiqi həyatdan götürülmüş və ya suni yaradılmış məlumatlarda mənalı modellərin tapılmasın prosesini avtomatlaşdırır. Bu üsul böyük dəyərli bizneslərdən, tibb, maliyyə və digər tətbiqlərdə istifadə edilərək isbat edilib.
Maşın öyrənmə həqiqi həyatdan götürülmüş və ya süni yaradılmış məlumatlarda mənalı modellərin tapılmasın prosesini avtomatlaşdırır. Bu üsul böyük dəyərli bizneslərdən, tibb, maliyyə və digər tətbiqlərdə istifadə edilərək isbat edilib.
Yaxın gələcəkdə çox yayılması səbəbindən maşın öyrənməsinin fundamental anlayışlarını bilmək istənilən sahədə çalışan insanlar üçün bir məcburiyyət olacaqdır.
---
# 🚀 Məşğələ
Dəftər, kağız və ya onlayn [Excalidraw](https://excalidraw.com/) kimi tətbiqdə Sİ, MÖ, dərin öyrənmə və data elmi barədə anladıqlarınızı təsvir edin. Hər bir texnika ilə yaxşı həll edə biləcəyiniz problem fikirlərinizi də qeyd edin.
Dəftər, kağız və ya onlayn [Excalidraw](https://excalidraw.com/) kimi tətbiqdə AI, ML, dərin öyrənmə və data elmi barədə anladıqlarınızı təsvir edin. Hər bir texnika ilə effektiv həll edə biləcəyiniz problemlə bağlı fikirlərinizi də qeyd edin.
# [Mühazirədən sonra test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/2/)
# [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/2/?loc=az)
---
# Təkrarlayın və özünüz öyrənin
MÖ alqoritmləri ilə bulud mühitində həll edə biləcəyiniz problemlər barədə daha öyrənmək üçün bu [öyrənmə planından](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott) istifadə edə bilərsiniz.
ML alqoritmləri ilə bulud mühitində həll edə biləcəyiniz problemlər barədə daha öyrənmək üçün bu [öyrənmə planından](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott) istifadə edə bilərsiniz.
MÖ əsasları barədə bu [öyrənmə planına](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) da baxış edin.
ML əsasları barədə bu [öyrənmə planına](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) da nəzər yetirin.
---
# Tapşırıq
[Sistemi hazırlayın](assignment.az.md)
[Sistem hazırlayın](assignment.az.md)

@ -1,4 +1,4 @@
# Sistemi hazırlayın
# Sistem hazırlayın
## Təlimatlar

@ -1,40 +1,40 @@
# Maşın öyrənmə tarixi
![Summary of History of machine learning in a sketchnote](../../../sketchnotes/ml-history.png)
![Maşın öyrənmə tarixinin xülasəsi eskizi](../../../sketchnotes/ml-history.png)
> [Tomomi İmura](https://www.twitter.com/girlie_mac) tərəfindən təsvir
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/3/)
---
[![Yeni başlayanlar üçün MÖ - Maşın öyrənmə tarixi](https://img.youtube.com/vi/N6wxM4wZ7V0/0.jpg)](https://youtu.be/N6wxM4wZ7V0 "Yeni başlayanlar üçün MÖ - Maşın öyrənmə tarixi")
[![Yeni başlayanlar üçün ML- Maşın öyrənmə tarixi](https://img.youtube.com/vi/N6wxM4wZ7V0/0.jpg)](https://youtu.be/N6wxM4wZ7V0 "Yeni başlayanlar üçün ML- Maşın öyrənmə tarixi")
> 🎥 Bu dərslə məşğul olmaq üçün yuxarıdakı təsvirə toxunun və videonu izləyin.
> 🎥 Bu dərslə məşğul olmaq üçün yuxarıdakı təsvirə klikləyin və videonu izləyin.
Bu dərsdə biz maşın öyrənmə və süni intellekt tarixində vacib mərhələlərindən keçəcəyik.
Süni intellekt (Sİ) tarixi maşın öyrənmə sahəsi tarixinə daxildir, çünki MÖ əsasında istifadə olunan alqoritmlər və hesablama üsulları Sİ yaradılmasında kömək olur. Bunu yadda saxlamaq faydalıdır ki, bu sahələr 1950-ci illərdə araşdırmalar nəticəsində aydınlaşsa da, [alqoritm, statistik, riyazi, hesablama və texniki təşflər](https://wikipedia.org/wiki/Timeline_of_machine_learning) bu zaman bölgüsündən daha əvvəlinə düşür və kəsişir. Fakt budur ki, insanlar belə suallar haqqında [yüz illərdir](https://az.wikipedia.org/wiki/S%C3%BCni_intellektin_tarixi) fikirləşirlər (bu məqalə tarix boyu 'düşünən maşın' ideyası haqqında intellektual qeydləri əhatə edir).
Süni intellekt (AI) tarixi maşın öyrənmə sahəsi tarixinə daxildir, çünki ML əsasında istifadə olunan alqoritmlər və hesablama üsulları AI yaradılmasında kömək olur. Bunu yadda saxlamaq faydalıdır ki, bu sahələr 1950-ci illərdə araşdırmalar nəticəsində aydınlaşsa da, [alqoritm, statistik, riyazi, hesablama və texniki kəşflər](https://wikipedia.org/wiki/Timeline_of_machine_learning) bu zaman bölgüsündən daha əvvələ düşür və kəsişir. Fakt budur ki, insanlar belə suallar haqqında [yüz illərdir](https://az.wikipedia.org/wiki/S%C3%BCni_intellektin_tarixi) fikirləşirlər (bu məqalə tarix boyu 'düşünən maşın' ideyası haqqında intellektual qeydləri əhatə edir).
---
## Diqqətəlayiq kəşflər
- 1763, 1812 [Bayes Teoremi](https://wikipedia.org/wiki/Bayes%27_theorem) və törəmələr. Bu teorem və tətbiqləri bir hadisənin baş vermə ehtimalını əvvəlki biliklər əsasında dəyərləndirməsini izah edir.
- 1763, 1812 [Bayes Teoremi](https://wikipedia.org/wiki/Bayes%27_theorem) və törəmələri. Bu teorem və tətbiqləri bir hadisənin baş vermə ehtimalını əvvəlki biliklər əsasında dəyərləndirməsini izah edir.
- 1805 [Ən kiçik kvadratlar üsulu](https://az.wikipedia.org/wiki/%C6%8Fn_ki%C3%A7ik_kvadratlar_%C3%BCsulu) fransız riyaziyyatçı Adriyen-Mari Legendr tərəfindən kəşf edilib. Bu teoremdə məlumatların modelləməsində istifadə olunan reqressiya üsulları barəsində bəhs edilir.
- 1913 [Markov Zəncirləri](https://wikipedia.org/wiki/Markov_chain) rus riyaziyyatçı Andrey Markov şərəfinə adlandırılıb və baş verə biləcək hadisələr sırasını əvvəlki vəziyyətə görə təyin edilməsində istifadə edilir.
- 1957 [Perseptron](https://az.wikipedia.org/wiki/Perseptron) amerikan psixoloq Frank Ruzenblat tərəfindən kəşf olunub. Bu metod dərin öyrənmə xətti qruplaşdırma üçün istifadə olunur.
- 1913 [Markov Zəncirləri](https://wikipedia.org/wiki/Markov_chain) rus riyaziyyatçı Andrey Markov şərəfinə adlandırılıb və baş verə biləcək hadisələrin sırasını əvvəlki vəziyyətə görə təyin edilməsində istifadə edilir.
- 1957 [Perseptron](https://az.wikipedia.org/wiki/Perseptron) amerikan psixoloq Frank Ruzenblat tərəfindən kəşf olunub. Bu metod dərin öyrənmədə xətti qruplaşdırma üçün istifadə olunur.
---
- 1967 [Yaxın qonşular](https://wikipedia.org/wiki/Nearest_neighbor) alqoritmi ilk dəfə xəritədə yolların tapılması üçün hazırlanıb. MÖ sahəsində bu alqoritm modelləri tapmaqda istifadə olunur.
- 1970 [Geri yayılma](https://wikipedia.org/wiki/Backpropagation) [neyron şəbəkələrini öncədən məlumatlandırma](https://wikipedia.org/wiki/Feedforward_neural_network) üsulu ilə təkmilləşdirmədə tətbiq olunur.
- 1982 [Təkrarlanan neyron şəbəkələr](https://wikipedia.org/wiki/Recurrent_neural_network) şəbəkənin öncədən məlumatlandırma üsulundan yaranan müvəqqəti qraflardan ibarəd süni neyron şəbəkələrdir.
- 1967 [Yaxın qonşular](https://wikipedia.org/wiki/Nearest_neighbor) alqoritmi ilk dəfə xəritədə yolların tapılması üçün hazırlanıb. ML sahəsində bu alqoritm modelləri tapmaqda istifadə olunur.
- 1970 [Geri yayılma (Backpropagation)](https://wikipedia.org/wiki/Backpropagation) [neyron şəbəkələrini öncədən məlumatlandırma](https://wikipedia.org/wiki/Feedforward_neural_network) üsulu ilə təkmilləşdirmədə tətbiq olunur.
- 1982 [Təkrarlanan neyron şəbəkələr](https://wikipedia.org/wiki/Recurrent_neural_network) şəbəkənin öncədən məlumatlandırma üsulundan yaranan müvəqqəti qraflardan ibarət süni neyron şəbəkələrdir.
✅ Biraz araşdırma edin. Başqa hansı tarixlər MÖ və Sİ tarixində vacib hissəni tutur?
✅ Biraz araşdırma edin. Başqa hansı tarixlər ML və AI tarixində vacib hissəni tutur?
---
## 1950: Düşünə bilən maşınlar
[2019-cu ildə ictimaiyyət tərəfindən](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) 20 əsrin ən görkəmli alimləri kimi seçilən Alan Türinq 'düşünə bilən maşın' modelinin qurucusu kimi tanınır. O, NLP dərslərimizdə araşdıracağınız [Türinq Testi](https://www.bbc.com/news/technology-18475646) yaratmaqla ona inanmayanlarla sübut etməyə və bu konsepsiyanın təcrübi sübutlarına öz ehtiyacını doldurmağa çalışdı.
[2019-cu ildə ictimaiyyət tərəfindən](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) 20 əsrin ən görkəmli alimləri kimi seçilən Alan Türinq 'düşünə bilən maşın' modelinin qurucusu kimi tanınır. O, NLP dərslərimizdə araşdıracağınız [Türinq Testi](https://www.bbc.com/news/technology-18475646) yaratmaqla ona inanmayanlarla sübut etməyə və bu konsepsiyanın təcrübi sübutları ilə öz ehtiyacını doldurmağa çalışdı.
---
## 1956: Dartmut Yay araşdırma layihəsi
@ -46,16 +46,16 @@ Süni intellekt (Sİ) tarixi maşın öyrənmə sahəsi tarixinə daxildir, çü
---
Aparıcı tədqiqatçı, riyaziyyat professoru Con Makkarti "öyrənmənin hər bir tərəfinin və ya zəkanın hər hansı digər xüsusiyyətini prinsipcə maşının simulyasiya edə biləcəyi dərəcədə çox dəqiqliklə təsvir oluna biləcəyi fərziyyəsini davam etdirməyə" inanırdı. İştirakçılar arasında sahənin digər korifeyi Marvin Minski də var idi.
Aparıcı tədqiqatçı, riyaziyyat professoru Con Makkarti "öyrənmənin hər bir tərəfinin və ya zəkanın digər xüsusiyyətini prinsipcə maşının simulyasiya edə biləcəyi dərəcədə çox dəqiqliklə təsvir oluna biləcəyi fərziyyəsini davam etdirməyə" inanırdı. İştirakçılar arasında sahənin digər korifeyi Marvin Minski də var idi.
Seminar, "simvolik metodların yüksəlişi, məhdud sahələrə yönəlmiş sistemlər (ilkin ekspert sistemləri) və induktiv sistemlərə qarşı deduktiv sistemlər" daxil olmaqla bir neçə müzakirələrin başlanmasına və təşviq etməsinə görə yadda qaldı ([mənbə](https://wikipedia.org/wiki/Dartmouth_workshop)).
---
## 1956 - 1974: "Qızıl illər"
1950-ci illərdən 70-ci illərin ortalarına qədər süni intellektin bir çox problemi həll edə biləcəyi ümidi ilə nikbinlik yüksək səviyyədə idi. 1967-ci ildə Marvin Minski əminliklə bildirdi ki, “bir nəsil ərzində... “süni intellekt”in yaradılması problemi əsaslı şəkildə həll olunacaq”. (Minsky, Marvin (1967), Hesablama: Sonlu və Sonsuz Maşınlar, Englewood Cliffs, N.J.: Prentice-Hall
1950-ci illərdən 70-ci illərin ortalarına qədər süni intellektin bir çox problemi həll edə biləcəyi ümidi ilə nikbinlik yüksək səviyyədə idi. 1967-ci ildə Marvin Minski əminliklə bildirdi ki, “bir nəsil ərzində... “süni intellekt”in yaradılması problemi əsaslı şəkildə həll olunacaq”. (Minsky, Marvin (1967), Hesablama: Sonlu və Sonsuz Maşınlar, Englevud Klifs, N.J.: Prentis-Hol)
Təbii dil emal tədqiqatları çiçəkləndi, axtarış təkmilləşdi və daha güclü oldu və sadə tapşırıqların sadə dil təlimatlarından istifadə edilərək tamamlandığı "mikro dünyalar" konsepsiyası yaradıldı.
Təbii dil emal tədqiqatları çiçəkləndi, axtarış təkmilləşdi, daha güclü oldu və sadə tapşırıqların sadə dil təlimatlarından istifadə edilərək tamamlandığı "mikro dünyalar" konsepsiyası yaradıldı.
---
@ -79,16 +79,16 @@ Tədqiqatlar dövlət qurumları tərəfindən yaxşı maliyyələşdirildi, hes
[![SHRDLU ilə bloklar dünyası](https://img.youtube.com/vi/QAJz4YKUwqw/0.jpg)](https://www.youtube.com/watch?v=QAJz4YKUwqw "SHRDLU ilə bloklar dünyası")
> 🎥 Videoya baxmaq üçün təsvirə toxunun: SHRDLU ilə bloklar dünyası
> 🎥 Videoya baxmaq üçün təsvirə klikləyin: SHRDLU ilə bloklar dünyası
---
## 1974 - 1980: "Sİ qışı"
## 1974 - 1980: "AI qışı"
1970-ci illərin ortalarında aydın oldu ki, “ağıllı maşınlar”ın hazırlanmasının mürəkkəbliyi lazımi səviyyədə göstərilməyib və mövcud hesablama gücü nəzərə alınmaqla ondan gözləntilər həddənindən artıq olub. Maliyyələşmə azaldı və sahəyə inam azaldı. Güvənə təsir edən bəzi məsələlərə aşağıdakılar daxildir:
---
- **Limitlər**. Hesablama gücü çox limitli idi.
- **Kombinator partlayışı**. Maşın öyrənmə üçün istifadə olunan parametr sayı komputerlərin hesablama gücü və tutumunun inkişafı ilə parallel getmirdi, hətta eksponent olaraq artırdı.
- **Kombinator partlayış**. Maşın öyrənmə üçün istifadə olunan parametr sayı komputerlərin hesablama gücü və tutumunun inkişafı ilə parallel getmirdi, hətta eksponent olaraq artırdı.
- **Məlumat azlığı**. Alqoritmlərin sınaqdan keçirilməsi, işlənməsi və dəqiqləşdirilməsi prosesinə lazım olan məlumatların azlığı mane olurdu.
- **Doğru sualları veririkmi?**. Verilən sualların özü də sorğulanmağa başladı. Tədqiqatçılar öz yanaşmalarını tənqid etməyə başladılar:
- Turinq testləri, digər fikirlərlə yanaşı, "rəqəmsal kompüterin proqramlaşdırılması onu dili başa düşmüş kimi göstərə bilər, lakin həqiqi anlayış yarada bilməz" deyən "Çin otağı nəzəriyyəsi" vasitəsi ilə sual altına düşdü ([mənbə](https://plato.stanford.edu/entries/chinese-room/)).
@ -96,26 +96,26 @@ Tədqiqatlar dövlət qurumları tərəfindən yaxşı maliyyələşdirildi, hes
---
Eyni zamanda, müxtəlif Sİ düşüncə məktəbləri formalaşmağa başladı. ["Qarışıq" ilə "səliqəli AI"](https://wikipedia.org/wiki/Neats_and_scruffies) təcrübələri arasında müqayisədə dixotomiya (eyni zamanda yalnız biri mümkün olan) quruldu. _Qarışıq_ laboratoriyaları istədiyiniz nəticələr əldə edənə qədər proqramları saatlarla dəyişirdilər. _Səliqəli_ laboratoriyaları isə "məntiqə və formal problemlərin həllinə yönəldilib". ELIZA və SHRDLU sistemləri _qarışıq_ kateqoriyasında tanınırlar. 1980-ci illərdə, MÖ sistemlərini təkrarlana bilən etmək tələbi yarandıqca, nəticələri daha izah oluna bilən _səliqəli_ yanaşma tədricən ön plana çıxdı.
Eyni zamanda, müxtəlif AI düşüncə məktəbləri formalaşmağa başladı. ["Qarışıq" ilə "səliqəli AI"](https://wikipedia.org/wiki/Neats_and_scruffies) təcrübələri arasında müqayisədə dixotomiya (eyni zamanda yalnız biri mümkün olan) quruldu. _Qarışıq_ laboratoriyaları istədiyiniz nəticələr əldə edənə qədər proqramları saatlarla dəyişirdilər. _Səliqəli_ laboratoriyaları isə "məntiqə və formal problemlərin həllinə yönəldilib". ELIZA və SHRDLU sistemləri _qarışıq_ kateqoriyasında tanınırlar. 1980-ci illərdə, ML sistemlərini təkrarlana bilən etmək tələbi yarandıqca, nəticələri daha izah oluna bilən _səliqəli_ yanaşma tədricən ön plana çıxdı.
---
## 1980-ci illər Ekspert sistemlər
Sahə böyüdükcə onun biznesə faydası daha aydın oldu və 1980-ci illərdə “ekspert sistemləri”nin yayılması da artdı. "Ekspert sistemləri süni intellektin (Sİ) proqram təminatının ilk həqiqi uğurlu formalarından biri idi" ([mənbə](https://wikipedia.org/wiki/Expert_system)).
Sahə böyüdükcə onun biznesə faydası daha aydın oldu və 1980-ci illərdə “ekspert sistemləri”nin yayılması da artdı. "Ekspert sistemləri süni intellektin (AI) proqram təminatının ilk həqiqi uğurlu formalarından biri idi" ([mənbə](https://wikipedia.org/wiki/Expert_system)).
Bu tip sistem əslində _hibriddir_, bir hissəsi biznes tələblərini müəyyən edən qaydalar mühərrikindən və digər hissəsi yeni faktlar çıxarmaq üçün qaydalar sistemindən istifadə edən mühərrikindən ibarətdir.
Bu tip sistem əslində _hibriddir_, bir hissəsi biznes tələblərini müəyyən edən qaydalar mühərrikindən, digər hissəsi isə yeni faktlar çıxarmaq üçün qaydalar sistemindən istifadə edən mühərrikindən ibarətdir.
Bu dövr həm də neyron şəbəkələrinə artan diqqətin şahidi oldu.
---
## 1987 - 1993: Sİ 'sükutu'
## 1987 - 1993: AI 'sükutu'
İxtisaslaşmış ekspert sistemlərinin aparatlarının yayılması həddən artıq ixtisaslaşmış olmaq kimi xoşagəlməz effekt verdi. Fərdi kompüterlərin yüksəlişi də bu böyük, ixtisaslaşmış və mərkəzləşdirilmiş sistemlərlə rəqabət aparırdı. Hesablamanın demokratikləşməsi başlamışdı və bu, nəhayət, böyük verilənlərin müasir partlayışına yol açdı.
---
## 1993 - 2011
Bu dövrdə MÖ və Sİ üçün əvvəllər məlumat və hesablama gücünün bəs etməməsi səbəbindən həll olunmayan bəzi problemlərin həlli tapıldı. Xüsusilə 2007-ci ildə smartfonun meydana çıxması ilə məlumatların miqdarı sürətlə artmağa və daha geniş şəkildə əlçatan olmağa başladı. Hesablama gücü eksponent olaraq genişləndi və alqoritmlər də onunla birlikdə inkişaf etdi. Keçmişin sərbəst dövrləri artıq intizamlı hala gəlməyə başladıqca sahə yetkinləşməyə başladı.
Bu dövrdə ML və AI üçün əvvəllər məlumat və hesablama gücünün bəs etməməsi səbəbindən həll olunmayan bəzi problemlərin həlli tapıldı. Xüsusilə 2007-ci ildə smartfonun meydana çıxması ilə məlumatların miqdarı sürətlə artmağa və daha geniş şəkildə əlçatan olmağa başladı. Hesablama gücü eksponent olaraq genişləndi və alqoritmlər də onunla birlikdə inkişaf etdi. Keçmişin sərbəst dövrləri artıq intizamlı hala gəlməyə başladıqca sahə yetkinləşməyə başladı.
---
## İndi
@ -127,23 +127,23 @@ Bu gün maşın öyrənməsi və süni intellekt həyatımızın demək olar ki,
Gələcəyin nələr vəd etdiyini görürük, lakin kompüter sistemlərini və onların işlədiyi proqram və alqoritmləri başa düşmək vacibdir. Ümid edirik ki, bu kurikulum daha yaxşı başa düşməyinizə kömək edəcək ki, özünüz qərar verə biləsiniz.
[![Dərin öyrənmənin tarixi](https://img.youtube.com/vi/mTtDfKgLm54/0.jpg)](https://www.youtube.com/watch?v=mTtDfKgLm54 "Dərin öyrənmənin tarixi")
> 🎥 Videoya baxmaq üçün yuxarıdakı şəkilə toxunun: Yan LeCun mühazirəsində dərin öyrənmə tarixini müzakirə edir
> 🎥 Videoya baxmaq üçün yuxarıdakı şəkilə klikləyin: Yan LeCun mühazirəsində dərin öyrənmə tarixini müzakirə edir
---
## 🚀 Məşğələ
Bu tarixi məqamlardan (yuxarıdakı sadalanan) birini seçib və onların arxasında duran insanlar haqqında daha çox məlumat əldə edin. Onlar arasında maraqlı personajlar var və mədəni boşluqdan heç bir elmi kəşf yaradılmayıb. Bəs siz onlarda nələri kəşf etdiniz?
Bu tarixi məqamlardan (yuxarıdakı sadalanan) birini seçib onların arxasında duran insanlar haqqında daha çox məlumat əldə edin. Onlar arasında maraqlı personajlar var və mədəni boşluqdan heç bir elmi kəşf yaradılmayıb. Bəs siz onlarda nələri kəşf etdiniz?
## [Mühazirədən sonra test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/4/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/4/?loc=az)
---
## Təkrarlayın və özünüz öyrənin
İzləmək də dinləmək üçün materiallar:
İzləmək və dinləmək üçün materiallar:
[Amy Boydun süni intellektin təkamülünü müzakirə etdiyi podkast](http://runasradio.com/Shows/Show/739)
[![Amy Boyd tərəfindən Sİ tarixi](https://img.youtube.com/vi/EJt3_bFYKss/0.jpg)](https://www.youtube.com/watch?v=EJt3_bFYKss "Amy Boyd tərəfindən Sİ tarixi")
[![Amy Boyd tərəfindən AI tarixi](https://img.youtube.com/vi/EJt3_bFYKss/0.jpg)](https://www.youtube.com/watch?v=EJt3_bFYKss "Amy Boyd tərəfindən AI tarixi")
---

@ -2,10 +2,10 @@
## Təlimat
[Bu reponu](https://github.com/Digital-Humanities-Toolkit/timeline-builder) istifadə edərək alqoritmlərin, riyaziyyatın, statistikanın, Sİ və ya MÖ tarixinin bəzi aspektlərinin və ya bunların birləşməsinin bir zaman qrafikini yaradın. Bir insana, bir fikrə və ya uzun müddətli bir fikirə diqqət yetirə bilərsiniz. Multimedia elementlərini (şəkil, video, səs) əlavə etdiyinizə əmin olun.
[Bu reponu](https://github.com/Digital-Humanities-Toolkit/timeline-builder) istifadə edərək alqoritmlərin, riyaziyyatın, statistikanın, AI və ML tarixinin bəzi aspektlərinin və ya bunların birləşməsinin bir zaman qrafikini yaradın. Bir insana, ideyaya və ya uzun müddətli bir fikirə diqqət yetirə bilərsiniz. Multimedia elementlərini (şəkil, video, səs) əlavə etdiyinizə əmin olun.
## Rubrika
| | Təqdir ediləsi | Bəs edən | İnkişaf etdirilməli |
| -------- | ------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- |
| Tələblər | Zaman qrafiki GitHub səhifəsində paylaşılmışdır | Kod hazır deyil və paylaşılmayıb | Zaman qrafiki natamamdır, yaxşı araşdırılmayıb və paylaşılmayıb |
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | -------- | ------- | ------------------------ |
| | Zaman qrafiki GitHub səhifəsində paylaşılmışdır | Kod hazır deyil və paylaşılmayıb | Zaman qrafiki natamamdır, yaxşı araşdırılmayıb və paylaşılmayıb |

@ -1,15 +1,15 @@
# Məhsul Sİ ilə maşın öyrənməsi həlləri tapmaq.
# Məsuliyyətli AI ilə maşın öyrənməsi həlləri tapmaq
![Eskizdə Maşın Öyrənməsində məhsul Sİ-in xülasəsi](../../../sketchnotes/ml-fairness.png)
![Eskizdə Maşın öyrənməsində məsuliyyətli AI xülasəsi](../../../sketchnotes/ml-fairness.png)
> [Tomomi Imura](https://www.twitter.com/girlie_mac) tərəfindən eskiz
## [Mühazirə öncəsi test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/5/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/5/?loc=az)
## Giriş
Bu kurrikulumda siz maşın öyrənməsinin gündəlik həyatımıza necə təsir edə biləcəyini və necə təsir etdiyini kəşf etməyə başlayacaqsınız. Hətta indi də sistemlər və modellər səhiyyə diaqnozları, kreditlərin təsdiqlənməsi və ya dələduzluğun aşkarlanması kimi gündəlik qərar qəbuletmə işlərində iştirak edirlər. Buna görə də, etibarlı nəticələr əldə etmək üçün bu modellərin yaxşı işləməsi vacibdir. Hər hansı bir proqram tətbiqi kimi, Sİ sistemləri də gözləntilərə çatmayacaq və ya arzuolunmaz nəticə ilə üzləşəcək. Buna görə də Sİ modelinin davranışını başa düşmək və izah etmək vacibdir.
Bu kurrikulumda siz maşın öyrənməsinin gündəlik həyatımıza necə təsir edə biləcəyini və etdiyini kəşf etməyə başlayacaqsınız. Hətta indi də sistemlər və modellər səhiyyə diaqnozları, kreditlərin təsdiqlənməsi və ya dələduzluğun aşkarlanması kimi gündəlik qərar qəbuletmə işlərində iştirak edirlər. Buna görə də, etibarlı nəticələr əldə etmək üçün bu modellərin yaxşı işləməsi vacibdir. Hər hansı bir proqram tətbiqi kimi, AI sistemləri də gözləntilərə çatmayacaq və ya arzuolunmaz nəticə ilə üzləşəcək. Buna görə də AI modelinin davranışını başa düşmək və izah etmək vacibdir.
Təsəvvür edin ki, bu modelləri yaratmaq üçün istifadə etdiyiniz məlumatlar irq, cins, siyasi görüş, din kimi müəyyən demoqrafik göstəricilərə malik olmadıqda və ya qeyri-mütənasib şəkildə bu cür demoqrafik göstəriciləri təmsil edərsə nə baş verə bilər. Modelin çıxışı bəzi demoqrafik göstəricilərə üstünlük vermək üçün şərh edilməsinin nəticəsi nə olacaq? Tətbiq üçün nəticəsi nə olacaq? Bundan əlavə, modelin mənfi nəticəsi olduqda və insanlar üçün zərərli olduqda nə baş verəcək? Sİ sistemlərinin davranışına görə kim cavabdehdir? Bunlar bu kurrikulumda araşdıracağımız bəzi suallardır.
Təsəvvür edin ki, bu modelləri yaratmaq üçün istifadə etdiyiniz data irq, cins, siyasi görüş, din kimi müəyyən demoqrafik göstəricilərə malik olmadıqda və ya qeyri-mütənasib şəkildə belə demoqrafik göstəriciləri təmsil edərsə nələr baş verə bilər. Modelin çıxışı bəzi demoqrafik göstəricilərə üstünlük vermək üçün şərh edilməsinin nəticəsi nə olacaq? Tətbiq üçün nəticəsi nə olacaq? Bundan əlavə, modelin mənfi nəticəsi olduqda və insanlar üçün zərərli olduqda nə baş verəcək? AI sistemlərinin davranışına görə kim cavabdehdir? Bunlar bu kurrikulumda araşdıracağımız bəzi suallardır.
Bu dərsdə siz:
@ -22,17 +22,17 @@ Bu dərsdə siz:
## Tələb olunanlar
İlkin olaraq, zəhmət olmasa, "Məsul Sİ Prinsipləri" Təlim Yolunu başlayın və mövzu ilə bağlı aşağıdakı videoya baxın:
İlkin olaraq, zəhmət olmasa, "Məsuliyyətli AI Prinsipləri" Təlim Yoluna başlayın və mövzu ilə bağlı aşağıdakı videoya baxın:
Bu [Təlim Yolunu](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott) izləməklə Məhsul Sİ haqqında daha çox məlumat əldə edin
Bu [Təlim Yolunu](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott) izləməklə Məhsul AI haqqında daha çox məlumat əldə edin
[![Microsoft-un Məsul Sİ-ə yanaşması](https://img.youtube.com/vi/dnC8-uUZXSc/0.jpg)](https://youtu.be/dnC8-uUZXSc "Microsoft-un Məsul Sİ-ə yanaşması")
[![Microsoft-un Məsul AI yanaşması](https://img.youtube.com/vi/dnC8-uUZXSc/0.jpg)](https://youtu.be/dnC8-uUZXSc "Microsoft-un Məsul AI yanaşması")
> 🎥 Video üçün yuxarıdakı şəklə klikləyin: Microsoft-un Məsul Sİ-ə yanaşması
> 🎥 Video üçün yuxarıdakı şəklə klikləyin: Microsoft-un Məsul AI yanaşması
## Ədalətlilik
Süni intellekt sistemləri hər kəsə ədalətli davranmalı və oxşar insan qruplarına müxtəlif yollarla təsir etməməlidir. Məsələn, süni intellekt sistemləri tibbi müalicə, kredit müraciətləri və ya işə qəbulla bağlı təlimat verdikdə, oxşar simptomları, maliyyə vəziyyəti və ya peşəkar keyfiyyətləri olan hər kəsə eyni tövsiyələri verməlidir. İnsan olaraq hər birimiz qərarlarımıza və hərəkətlərimizə təsir edən irsi qərəzləri daşıyırıq. Bu qərəzlər AI sistemlərini öyrətmək üçün istifadə etdiyimiz məlumatlarda aydın görünə bilər. Belə manipulyasiya bəzən istəmədən baş verə bilər. Məlumatlarda qərəzliliyi nə vaxt tətbiq etdiyinizi şüurlu şəkildə bilmək çox vaxt çətindir.
Süni intellekt sistemləri hər kəsə ədalətli davranmalı və oxşar insan qruplarına müxtəlif yollarla təsir etməməlidir. Məsələn, süni intellekt sistemləri tibbi müalicə, kredit müraciətləri və ya işə qəbulla bağlı təlimat verdikdə, oxşar simptomları, maliyyə vəziyyəti və ya peşəkar keyfiyyətləri olan hər kəsə eyni tövsiyələri verməlidir. İnsan olaraq hər birimiz qərarlarımıza və hərəkətlərimizə təsir edən irsi qərəzlər daşıyırıq. Bu qərəzlər AI sistemlərini öyrətmək üçün istifadə etdiyimiz məlumatlarda aydın görünə bilər. Belə manipulyasiya bəzən istəmədən baş verə bilər. Məlumatlarda qərəzliliyi nə vaxt tətbiq etdiyinizi şüurlu şəkildə bilmək çox vaxt çətindir.
**“Haqsızlıq”** irq, cins, yaş və ya əlillik statusu kimi xüsusiyyətləti baxımından bir qrup insan üçün mənfi təsirləri və ya “zərərləri” əhatə edir. Ədalətlə əlaqəli əsas zərərlər aşağıdakı kimi təsnif edilə bilər:
@ -44,7 +44,7 @@ Süni intellekt sistemləri hər kəsə ədalətli davranmalı və oxşar insan
- **Həddindən artıq və ya az təmsil olunma**. İdeya ondan ibarətdir ki, müəyyən bir qrup müəyyən bir peşədə kifayət qədər təmsil olunmur və zərər verən hər hansı bir xidmət və ya funksiya bunu təbliğ etməyə davam edir.
- **Stereotipləşdirmə**. Müəyyən bir qrupun ön yarğılı fikirlər əlaqələndirilməsi. Məsələn, ingilis və türk dilləri arasında dil tərcümə sistemində cins ilə stereotipik əlaqəsi olan sözlərə görə səhvlər ola bilər.
- **Stereotipləşdirmə**. Müəyyən bir qrupun ön yarğılı fikirlərlə əlaqələndirilməsi. Məsələn, ingilis və türk dilləri arasında dil tərcümə sistemində cins ilə stereotipik əlaqəsi olan sözlərə görə səhvlər ola bilər.
![translation to Turkish](../images/gender-bias-translate-en-tr.png)
> türk dilinə tərcümə
@ -56,66 +56,66 @@ Süni intellekt sistemlərinin dizayn edilməsi və test olunması zamanı biz s
### Etibarlılıq və təhlükəsizlik
Güvən yaratmaq üçün AI sistemləri həm normal həm də gözlənilməz şəraitdə etibarlı, təhlükəsiz və düzgün olmalıdır. Süni intellekt sistemlərinin müxtəlif situasiyalarda necə davranacağını bilmək vacibdir, xüsusən də onlar normal şəraitdən kənara çıxdıqda. Süni intellekt həllərini qurarkən, süni intellektin qarşılaşacağı müxtəlif vəziyyətlərin necə idarə olunacağına böyük diqqət yetirilməlidir. Məsələn, özünü idarə edən avtomobil insanların təhlükəsizliyini əsas prioritet kimi qoymalıdır. Nəticədə, avtomobili idarə süni intellekt avtomobilin qarşılaşa biləcəyi bütün mümkün ssenariləri nəzərə almalıdır, məsələn, gecə, tufan və ya çovğun, küçədə qaçan uşaqlar, ev heyvanları, yol tikintiləri və s. Bir Sİ sisteminin nə qədər yaxşı olduğu bir sıra fərqli şəraitdə nə dərəcə etibarlı və təhlükəsiz işlədiyindən asılıdır, bu, sistem dizaynı və testi zamanı data alimi və ya Sİ təminatçısı tərəfindən nəzərə alınan proqnoz səviyyəsini göstərir.
Güvən yaratmaq üçün AI sistemləri həm normal, həm də gözlənilməz şəraitdə etibarlı, təhlükəsiz və düzgün olmalıdır. Süni intellekt sistemlərinin müxtəlif situasiyalarda necə davranacağını bilmək vacibdir, xüsusən də onlar normal şəraitdən kənara çıxdıqda. Süni intellekt həllərini qurarkən süni intellektin qarşılaşacağı müxtəlif vəziyyətlərin necə idarə olunacağına böyük diqqət yetirilməlidir. Məsələn, özünü idarə edən avtomobil insanların təhlükəsizliyini əsas prioritet kimi qoymalıdır. Nəticədə, avtomobili idarə edən süni intellekt avtomobilin qarşılaşa biləcəyi bütün mümkün ssenariləri nəzərə almalıdır, məsələn, gecə, tufan və ya çovğun, küçədə qaçan uşaqlar, ev heyvanları, yol tikintiləri və s. Bir AI sisteminin nə qədər yaxşı olduğu bir sıra fərqli şəraitdə nə dərəcədə etibarlı və təhlükəsiz işlədiyindən asılıdır, bu, sistem dizaynı və testi zamanı data mühəndisi və ya AI proqramçısı tərəfindən nəzərə alınan proqnoz səviyyəsini göstərir.
> [🎥 Video üçün bura klikləyin: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl)
### Daxil edilmə
Sİ sistemləri hər kəslə əlaqədə olacaq və fayda verəcək şəkildə formalaşdırılmalıdır. Sİ sistemlərinin dizayn və icra mərhələrində data mühəndisləri və proqramçılar sistemin istəmədən kimlərisə xaric etməsi ehtimalarını təyin etməyə və qarşısını almağa çalışırlar. Misal üçün dünyada müxtəlif əngəlləri olan 1 milyard insan var. Sİ inkişafı nəticəsində onlar geniş miqyasda məlumatlara və fürsətlərə gündəlik həyatlarında asanlıqla çata bilirlər. Əngəllər barədə öncədən düşünmək Sİ məhsullarını hər kəs tərəfindən faydalana biləcəyi daha yaxşı təcrübəni yaratmağa fürsətlər yaradır.
AI sistemləri hər kəslə əlaqədə olacaq və fayda verəcək şəkildə formalaşdırılmalıdır. AI sistemlərinin dizayn və icra mərhələrində data mühəndisləri və proqramçılar sistemin istəmədən kimlərisə xaric etməsi ehtimalarını təyin etməyə və qarşısını almağa çalışırlar. Misal üçün, dünyada müxtəlif əngəlləri olan 1 milyard insan var. AI inkişafı nəticəsində onlar geniş miqyasda məlumatlara və fürsətlərə gündəlik həyatlarında asanlıqla çata bilirlər. Əngəllər barədə öncədən düşünmək AI məhsullarını hər kəs tərəfindən faydalana biləcəyi daha yaxşı təcrübəni yaratmağa fürsətlər yaradır.
> [🎥 Video üçün bura klikləyin: Sİ-də daxil edilmə](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
> [🎥 Video üçün bura klikləyin: AI-da daxil edilmə](https://www.microsoft.com/videoplayer/embed/RE4vl9v)
### Təhlükəsizlik və məxfilik
Sİ sistemləri təhlükəsiz olmalı və insanlarım məxfiliyinə hörmət etməlidir. İnsanlar onların məxfiliyini, məlumatlarını və ya həyatlarını risk altında qoyan sistemlərə az güvənirlər. Maşın öyrənməsi modellərini sazladığımız zaman ən yaxşı nəticəni verən datalara etibar edirik. Bunu etdiyimiz zaman datanın mənbəsini və düzgün üsulla əldə olduğunu da nəzərə almalıyıq. Misal üçün, bu məlumat istifadəçi tərəfindən təqdim olunub və ya ictimai olaraq əlçatandırmı? Data ilə işləyərkən nəzərə alınmalı növbəti məsələ, Sİ sistemlərinin məxfi məlumatlarını qoruyacağı və hücumlara davamlı olacağı şəkildə hazırlanması vacibdir. Sİ istifadəsi artıqca vacib şəxsi və biznes məlumatlarının məxfiliyinin qorunması daha vacib və qəliz hala gəlir. Məxfilik və data təhlükəsizliyi problemləri Sİ üçün daha çox diqqət tələb edir, çünki bu məlumatlar Sİ sistemlərinin insanlar barədə dəqiq təxminlər və qərarlar verməsi üçün lazımdır.
AI sistemləri təhlükəsiz olmalı və insanlarım məxfiliyinə hörmət etməlidir. İnsanlar onların məxfiliyini, məlumatlarını və ya həyatlarını risk altında qoyan sistemlərə az güvənirlər. Maşın öyrənməsi modellərini sazladığımız zaman ən yaxşı nəticəni verən datalara etibar edirik. Bunu etdiyimiz zaman datanın mənbəsini və düzgün üsulla əldə olduğunu da nəzərə almalıyıq. Misal üçün, bu məlumat istifadəçi tərəfindən təqdim olunub və ya ictimai olaraq əlçatandırmı? Data ilə işləyərkən nəzərə alınmalı növbəti məsələ, AI sistemlərinin məxfi məlumatlarını qoruyacağı və hücumlara davamlı olacağı şəkildə hazırlanması vacibdir. AI istifadəsi artıqca vacib şəxsi və biznes məlumatlarının məxfiliyinin qorunması daha vacib və qəliz hala gəlir. Məxfilik və data təhlükəsizliyi problemləri AI üçün daha çox diqqət tələb edir, çünki bu məlumatlar AI sistemlərinin insanlar barədə dəqiq təxminlər və qərarlar verməsi üçün lazımdır.
> [🎥 Video üçün bura klikləyin: Sİ-də təhlükəsizlik](https://www.microsoft.com/videoplayer/embed/RE4voJF)
> [🎥 Video üçün bura klikləyin: AI-da təhlükəsizlik](https://www.microsoft.com/videoplayer/embed/RE4voJF)
- Cari sənayedə Məxfilik və təhlükəsizlik sahəsində əhəmiyyətli irəliləyişlər etmişik, GDPR (Ümumi Məlumatların Qorunması Qaydası) kimi qaydalarla diqqəti daha da artırmışıq
- Buna baxmayaraq biz Sİ sistemlərində effektiv fərdiləşdirilmə üçün şəxsi məlumatlara olan ehtiyac ilə təhlükəsizlik arasında olan gərginliyi başa düşməliyik.
- Kompüterlərin internetə qoşulması ilə təhlükəsizlik problemlərinin yaranmasındakı böyük sıçrayışı indi Sİ ilə əlaqəli sistemlərində görürük.
- Eyni zamanda biz Sİ təhlükəsizlik tərəfdən inkişaf etdiyini də görürük. Misal olaraq, bugünkü müasir anti-virus proqramları Sİ sistemlərinin iştirakı ilə həyata keçirir.
- Buna baxmayaraq biz AI sistemlərində effektiv fərdiləşdirilmə üçün şəxsi məlumatlara olan ehtiyac ilə təhlükəsizlik arasında olan gərginliyi başa düşməliyik.
- Kompüterlərin internetə qoşulması ilə təhlükəsizlik problemlərinin yaranmasındakı böyük sıçrayışı indi AI ilə əlaqəli sistemlərində görürük.
- Eyni zamanda biz AI-ın təhlükəsizlik tərəfdən inkişaf etdiyini də görürük. Misal olaraq, bugünkü müasir anti-virus proqramları AI sistemlərinin iştirakı ilə həyata keçirir.
- Bizim Data elmi proseslərinin ən son məxfilik və təhlükəsizlik təcrübələrini özündə birləşdiyinə əmin olmağımız lazımdır.
### Şəffaflıq
Sİ sistemləri başa düşülən olmalıdır. Şəffaflığın ən vacib hissəsi Sİ sistemlərinin davranışını və komponentlərini izah etməkdir. Sİ sistemlərinin anlaşıqlığını artırmaqla biz mümkün performans problemlərini, təhlükəsizlik və məxfilik məsələlərini, qərəzləri, çıxdaş edilmə hallarını və ya istənilməyən nəticələri daha tez tapa bilərik. Biz həmçinin inanırıq ki, insanlar Sİ sistemlərini nə zaman, nə üçün və necə istifadə edəcəklərini seçməkləri barədə səmimi, məsuliyyətli olmalıdırlar. Əlavə olaraq işlətdikləri sistemin limitləri barədə də məlumatlı olmalıdırlar. Misal üçün, əgər bank Sİ sistemini müştərilərə verəcək kredit təklifini hazırlamaqda köməkçi kimi istifadə edirsə, bu sistemin verdiyi təklifləri ən çox hansı parametrlərin təsir etdiyini araşdırması vacibdir. Hökümətlər Sİ-in sənayelərdə istifadəsinə qaydalar tətbiq etməyə başlayır, belə ki data mühəndisləri və şirkətləri Sİ sisteminin verdiyi qərarların (xüsusilə arzuolunmaz nəticələrin) tənzimləyici tələblərə cavab verdiyini izah edə bilməlidirlər.
AI sistemləri başa düşülən olmalıdır. Şəffaflığın ən vacib hissəsi AI sistemlərinin davranışını və komponentlərini izah etməkdir. AI sistemlərinin anlaşıqlığını artırmaqla biz mümkün performans problemlərini, təhlükəsizlik və məxfilik məsələlərini, qərəzləri, çıxdaş edilmə hallarını və ya istənilməyən nəticələri daha tez tapa bilərik. Biz həmçinin inanırıq ki, insanlar AI sistemlərini nə zaman, nə üçün və necə istifadə edəcəklərini seçməkləri barədə səmimi, məsuliyyətli olmalıdırlar. Əlavə olaraq, işlətdikləri sistemin limitləri barədə də məlumatlı olmalıdırlar. Misal üçün, əgər bank AI sistemini müştərilərə verəcək kredit təklifini hazırlamaqda köməkçi kimi istifadə edirsə, bu sistemin verdiyi təklifləri ən çox hansı parametrlərin təsir etdiyini araşdırması vacibdir. Hökümətlər AI-ın sənayelərdə istifadəsinə qaydalar tətbiq etməyə başlayır, belə ki data mühəndisləri və şirkətləri AI sisteminin verdiyi qərarların (xüsusilə arzuolunmaz nəticələrin) tənzimləyici tələblərə cavab verdiyini izah edə bilməlidirlər.
> [🎥 Video üçün bura klikləyin: Sİ-də şəffaflıq](https://www.microsoft.com/videoplayer/embed/RE4voJF)
> [🎥 Video üçün bura klikləyin: AI-da şəffaflıq](https://www.microsoft.com/videoplayer/embed/RE4voJF)
- Sİ sistemləri qəliz olduğu üçün onun işləmə qaydasını və verdiyi qərarları anlamaq çətindir.
- AI sistemləri qəliz olduğu üçün onun işləmə qaydasını və verdiyi qərarları anlamaq çətindir.
- Bu anlaşılmada əksiklik həmin sistemlərin idarə edilməsinə, istifadə edilməsinə və sənədləşməsinə təsir edir.
- Bu anlaşılmadakı əksiklik ən vacib olaraq sistemin səbəb olduğunu nəticəyə gətirən qərarlara təsir edir.
### Məsuliyyət
Sİ tərtib edən və işə salan şəxslər sistemin necə işlədiyi ilə bağlı məsuliyyət daşımalıdırlar. Üz tanınması kimi həssas texnologiyaların istifadəsində məsuliyyət ehtiyacı daha əhəmiyyətlidir. Son zamanlar, itmiş uşaqları tapmaq kimi istifadəyə yararlı üz tanıma texnologiyalarına tələb hüquq təşkilatlarından tərəfindən kəskin artmışdır. Lakin bu texnologiyalar dövlət tərəfindən istifadə olunaraq vətəndaşları fundamental azadlıq risklərinə gətirib çıxara bilər. Misal üçün onlar seçilmiş fərdləri daim müşahidə edə bilərlər. Buna görə də data alimləri və təşkilatlar Sİ sistemlərinin fərdlərə və cəmiyyətə necə təsir etməsi ilə bağlı məsuliyyətli olmalıdırlar.
AI tərtib edən və işə salan şəxslər sistemin necə işlədiyi ilə bağlı məsuliyyət daşımalıdırlar. Üz tanınması kimi həssas texnologiyaların istifadəsində məsuliyyət ehtiyacı daha əhəmiyyətlidir. Son zamanlar, itmiş uşaqları tapmaq kimi istifadəyə yararlı üz tanıma texnologiyalarına tələb hüquq təşkilatlarından tərəfindən kəskin artmışdır. Lakin bu texnologiyalar dövlət tərəfindən istifadə olunaraq vətəndaşları fundamental azadlıq risklərinə gətirib çıxara bilər. Misal üçün onlar seçilmiş fərdləri daim müşahidə edə bilərlər. Buna görə də data mühəndisləri və təşkilatlar AI sistemlərinin fərdlərə və cəmiyyətə necə təsir etməsi ilə bağlı məsuliyyətli olmalıdırlar.
[![Tanınmış Sİ tədqiqatçısı üz tanınması tətbiqi ilə ilə kütləvi izləmə barədə xəbərdarlıq edir edir](../images/accountability.png)](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Microsoft-un məsuliyyətli Sİ-ə yanaşması")
[![Tanınmış AI tədqiqatçısı üz tanınması tətbiqi ilə ilə kütləvi izləmə barədə xəbərdarlıq edir edir](../images/accountability.png)](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Microsoft-un məsuliyyətli AI-a yanaşması")
> 🎥 Video üçün yuxarıdakı şəkilə klikləyin: Üz tanınması tətbiqi ilə ilə kütləvi izləmə barədə xəbərdarlıq
Sİ-i cəmiyyətimizə gətirmiş ilk nəsil olaraq bizə ünvanlanmış ən böyük suallardan biri, komputerlərin insanlara məlusiyyətli qalacağına və komputerləri tərtib edən insanların digər hər kəsə məsuliyyətli qalacağına necə əmin ola bilərik.
AI-ı cəmiyyətimizə gətirmiş ilk nəsil olaraq bizə ünvanlanmış ən böyük suallardan biri, kompüterlərin insanlara məlusiyyətli qalacağına və kompüterləri tərtib edən insanların digər hər kəsə məsuliyyətli qalacağına necə əmin ola bilərik.
## Təsirin qiymətləndirilməsi
Maşın öyrənmə modelini öyrətməzdən əvvəl Sİ sisteminin məqsədini anlamaq üçün mümkün ola biləcək təsirlər qiymətləndirməyimiz vacibdir. Sistemin istifadəsində məqsəd nədir, harada tətbiq olunacaq və bununla kim işləyəcək. Bu məqamlar mümkün ola biləcək riskləri və gözlənilənil nəticələri nəzərə almaq üçün sistemi yoxlayan və ya test edən şəxslər üçün faydalı olacaqdır.
Maşın öyrənmə modelini öyrətməzdən əvvəl AI sisteminin məqsədini anlamaq üçün mümkün ola biləcək təsirləri qiymətləndirməyimiz vacibdir. Sistemin istifadəsində məqsəd nədir, harada tətbiq olunacaq və bununla kim işləyəcək. Bu məqamlar mümkün ola biləcək riskləri və gözlənilən nəticələri nəzərə almaq üçün sistemi yoxlayan və ya test edən şəxslər üçün faydalı olacaqdır.
Aşağıda qeyd olunanlar təsirin qiymətləndirilməsi zamanı nəzərə alınacaq sahələrdir:
* **Fərdlərə mənfi təsir**. Tələbləri və məhdudiyyətləri, nəzərdə tutulmayan istifadə yeri və sistemin performans limitlərini bilməklə bu sistemin başqa fərdlərə hansısa yolla zərər vurmayacağına əmin olmalısınız.
* **Məlumat tələbləri**. Sistemin dataları necə və harada istifadə edəcəyini öyrənməklə yoxlayan şəxslər məlumat saxlanmasındakı tələblərdə nələrə diqqət etməli olacağını biləcəklər (misal üçün GDPR və ya HIPPA data qaydaları). Əlavə olaraq datanın mənbəyini və öyrənmə üçün həcminin kifayət edəcəyi də bilinəcək.
* **Təsirin xülasəsi**. Sistemin istifadəsindən yarana biləcək bütün mümkün təhlükələrin siyahın formasında topla. MÖ prosesi boyunca təyin olunmuş problemləri necə həll edəcəyini nəzərdən keçir.
* **Məlumat tələbləri**. Yoxlayan şəxslər sistemin dataları necə və harada istifadə edəcəyini öyrənməklə məlumat saxlanmasındakı tələblərdə nələrə diqqət etməli olacağını biləcəklər (misal üçün GDPR və ya HIPPA data qaydaları). Əlavə olaraq, datanın mənbəyinin və miqdarının öyrənmə üçün kifayət edəcəyi də yoxlayın.
* **Təsirin xülasəsi**. Sistemin istifadəsindən yarana biləcək bütün mümkün təhlükələri siyahı formasında topla. ML prosesi boyunca təyin olunmuş problemləri necə həll edəcəyini nəzərdən keçir.
* **Uyğun məqsədlər** 6 əsas prinsipin hər birinin məqsədinə çatıla bildiyini yoxla və mümkün boşluqları düşün.
## Məsul Sİ-i izləmək
## Məsul AI-ı izləmək
Proqram təminatlarının izlənildiyi kimi Sİ sistemlərində də problemlərin tapılması və həlli üçün izləmə mütləqdir. Modelin gözlənildiyi kimi və ya məsuliyyətlə işləməməsinə təsir edən bir çox amil var. Ənənəvi model performans göstəricilərinin əksəriyyəti modelin performansının kəmiyyət aqreqatlarıdır və modelin məsul Sİ prinsiplərini necə pozduğunu təhlil etmək üçün kifayət deyil. Bundan əlavə, maşın öyrənmə modelləri qara qutudur və onun nəticəyə necə gəldiyini başa düşmək, səhvlərini izah etmət qəlizdir. Bu kursun davamında Məsul Sİ panelini necə qura və sistemi izləyə biləcəyimizi öyrənəcəyik. İdarə paneli data tədqiqatçıları və Sİ proqramçıları üçün aşağıdakıları yerinə yetirmək üçün vahid bir alət təqdim edir:
Proqram təminatlarının izlənildiyi kimi AI sistemlərində də problemlərin tapılması və həlli üçün izləmə mütləqdir. Modelin gözlənildiyi kimi və ya məsuliyyətlə işləməməsinə təsir edən bir çox amil var. Ənənəvi model performans göstəricilərinin əksəriyyəti modelin performansının kəmiyyət aqreqatlarıdır və modelin məsul AI prinsiplərini necə pozduğunu təhlil etmək üçün kifayət deyil. Bundan əlavə, maşın öyrənmə modelləri qara qutudur və onun nəticəyə necə gəldiyini başa düşmək, səhvlərini izah etmək qəlizdir. Bu kursun davamında Məsul AI panelini necə qura və sistemi izləyə biləcəyimizi öyrənəcəyik. İdarə paneli data tədqiqatçıları və AI proqramçıları üçün aşağıdakıları yerinə yetirmək üçün vahid bir alət təqdim edir:
* **Xəta analizi**. Sistemin ədalətliliyinə və ya etibarlılığına təsir edə biləcək modelin statistik xəta paylanmasını müəyyən etmək.
* **Modelin təsviri**. Data topluları arasında modelin performansında uyğunsuzluğun harada olduğunu aşkar etmək.
* **Modelin təsviri**. Datasetlər arasında modelin performansında uyğunsuzluğun harada olduğunu aşkar etmək.
* **Data analizi**. Məlumatların paylanmasını başa düşmək və məlumatlarda ədalətlilik, əhatəlilik və etibarlılıq problemlərinə səbəb ola biləcək hər hansı potensial qərəzliyi müəyyən etmək.
* **Model tətbiq qabiliyyəti**. Modelin proqnozlarına nəyin təsir etdiyini başa düşmək. Bu modelin davranışını izah etməyə kömək edir, şəffaflıq və cavabdehlik üçün vacibdir.
@ -125,11 +125,11 @@ Zərərin baş verməsinin qabağını almaq üçün ilk növbədə biz:
- sistem üzərində işləyən insanların müxtəlif təcrübə və istiqamətlərdən gəldiyinə əmin olaq
- cəmiyyətimizin fərqliliyini özündə əks etdirən data toplusunu yığmağa sərmayə qoyaq
- problem olduqda cavabdeh Sİ-i tapmağa və düzəltməyə qadir olan daha yaxşı maşın öyrənməsi metodları tapaq
- problem olduqda cavabdeh AI-ı tapmağa və düzəltməyə qadir olan daha yaxşı maşın öyrənməsi metodları tapaq
Modelin qurulmasında və istifadəsində etibarsızlığın aşkar olduğu real həyat ssenariləri haqqında düşünün. Başqa nələri nəzərə almalıyıq?
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/6/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/6/?loc=az)
## Təkrarlayın və özünüz öyrənin
@ -137,21 +137,21 @@ Bu dərsdə siz maşın öyrənməsində ədalət və ədalətsizlik anlayışla
Mövzuları daha dərindən öyrənmək üçün bu seminara baxın:
- Məsuliyyətli Sİ axtarışında: Besmira Nushi, Mehrnoosh Sameki və Amit Sharma tərəfindən praktikaya prinsiplərin gətirilməsi
- Məsuliyyətli AI axtarışında: Besmira Nushi, Mehrnoosh Sameki və Amit Sharma tərəfindən praktikaya prinsiplərin gətirilməsi
[![Məsuliyyətli Sİ alətləri: Məsul Sİ yaratmaq üçün açıq mənbəli çərçivə](https://img.youtube.com/vi/tGgJCrA-MZU/0.jpg)](https://www.youtube.com/watch?v=tGgJCrA-MZU "MSİ (Məsuliyyətli Sİ) Toolbox: Məsuliyyətli Sİ yaratmaq üçün açıq mənbəli çərçivə")
[![Məsuliyyətli AI alətləri: Məsul AI yaratmaq üçün açıq mənbəli çərçivə](https://img.youtube.com/vi/tGgJCrA-MZU/0.jpg)](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI (Məsuliyyətli AI) Toolbox: Məsuliyyətli AI yaratmaq üçün açıq mənbəli çərçivə")
> 🎥 Videoya baxmaq üçün yuxarıdakı şəkilə klikləyin: MSİ (Məsuliyyətli Sİ) Toolbox: Besmira Nushi, Mehrnoosh Sameki və Amit Sharma tərəfindən məsuliyyətli Sİ yaratmaq üçün açıq mənbə çərçivəsi
> 🎥 Videoya baxmaq üçün yuxarıdakı şəkilə klikləyin: RAI (Məsuliyyətli AI) Toolbox: Besmira Nushi, Mehrnoosh Sameki və Amit Sharma tərəfindən məsuliyyətli AI yaratmaq üçün açıq mənbə çərçivəsi
Həmçinin oxuyun:
- Microsoft-un MSİ məlumat mərkəzi: [Məsuliyyətli Sİ məlumat mərkəzi – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
- Microsoft-un RAI məlumat mərkəzi: [Məsuliyyətli AI məlumat mərkəzi – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4)
- Microsoft-un FATE tədqiqat qrupu: [FATE: Süni intellektdə ədalət, cavabdehlik, şəffaflıq və etika - Microsoft Research](https://www.microsoft.com/research/theme/fate/)
MSİ Toolbox:
RAI Toolbox:
- [Məsuliyyətli Sİ Toolbox GitHub reposu](https://github.com/microsoft/responsible-ai-toolbox)
- [Məsuliyyətli AI Toolbox GitHub reposu](https://github.com/microsoft/responsible-ai-toolbox)
Ədalətliliyi təmin etmək üçün Azure Machine Learning alətləri haqqında oxuyun:
@ -159,4 +159,4 @@ MSİ Toolbox:
## Tapşırıq
[MSİ (RAI) Toolbox kəşf edin](assignment.az.md)
[RAI Toolboxu kəşf edin](assignment.az.md)

@ -1,8 +1,8 @@
# Məsuliyyətli Sİ Toolbox kəşf edin
# RAI Toolboxu kəşf edin
## Təlimatlar
Bu dərsdə siz "data alimlərinə Sİ sistemlərini təhlil etmək və təkmilləşdirməkdə kömək etmək üçün açıq mənbəli, icma tərəfindən idarə olunan layihə" olan Responsible AI Toolbox haqqında öyrəndiniz. Bu tapşırıq üçün RAI Toolbox-ın [noutbuklarından] (https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb)birini araşdırın və tapıntılarınızı yazı və ya təqdimatda bildirin.
Bu dərsdə siz "data mühəndislərinə AI sistemlərini təhlil etmək və təkmilləşdirməkdə kömək etmək üçün açıq mənbəli, icma tərəfindən idarə olunan layihə" olan Responsible AI Toolbox haqqında öyrəndiniz. Bu tapşırıq üçün RAI Toolbox-ın [noutbuklarından](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) birini araşdırın və tapıntılarınızı yazı və ya təqdimatda bildirin.
## Rubrika

@ -1,35 +1,35 @@
# Maşın öyrənmə texnikaları
Maşın öyrənmə modellərinin və onların istifadə etdiyi məlumatların qurulması, istifadəsi və saxlanması prosesi bir çox digər proqramlaşdırma axınlarından çox fərqli bir prosesdir. Bu dərsdə biz prosesin gizli tərəflərini aydınlaşdırıb və bilməli olduğunuz əsas texnikaları təsvir edəcəyik. Öyrənəcəklərin:
Maşın öyrənmə modellərinin və onların istifadə etdiyi məlumatların qurulması, istifadəsi və saxlanılması prosesi bir çox digər proqramlaşdırma proseslərindən çox fərqli bir prosesdir. Bu dərsdə biz prosesin gizli tərəflərini aydınlaşdırıb bilməli olduğunuz əsas texnikaları təsvir edəcəyik. Öyrənəcəklərin:
- Yüksək səviyyədə maşın öyrənməsinin əsasını təşkil edən prosesləri başa düşmək.
- "Modellər", "proqnozlar" və "təlim məlumatları" kimi əsas anlayışları kəşf etmək.
## [Mühazirə öncəsi test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/7/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/7/?loc=az)
[![Yeni başlayanlar üçün MÖ - Maşın öyrənmə texnikaları](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "Yeni başlayanlar üçün MÖ - Maşın öyrənmə texnikaları")
[![Yeni başlayanlar üçün ML- Maşın öyrənmə texnikaları](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "Yeni başlayanlar üçün ML- Maşın öyrənmə texnikaları")
> 🎥 Bu dərsin üzərindən keçən qısa video üçün yuxarıdakı şəkilin üzərinə klikləyin.
## Giriş
Yüksək səviyyədə maşın öyrənməsi (MÖ) prosesləri yaratmaq sənəti bir sıra addımlardan ibarətdir:
Yüksək səviyyədə maşın öyrənməsi (ML) prosesləri yaratmaq sənəti bir sıra addımlardan ibarətdir:
1. **Sualla bağlı qərar verin**. Əksər MÖ prosesləri sadə şərti proqram və ya qaydalara əsaslanan mühərrik tərəfindən cavablandırıla bilinməyən bir sual verməklə başlayır. Bu suallar çox vaxt məlumat toplusuna əsaslanan proqnozlar ətrafında fırlanır.
2. **Məlumatları toplayın və hazırlayın**. Sualınıza cavab vermək üçün sizə məlumat lazımdır. Məlumatlarınızın keyfiyyəti və bəzən kəmiyyəti ilkin sualınıza nə qədər yaxşı cavab verə biləcəyinizi müəyyən edəcək. Məlumatların vizuallaşdırılması bu mərhələnin vacib aspektidir. Bu mərhələ həmçinin model yaratmaq üçün məlumatların təlim və sınaq qrupuna bölünməsini də əhatə edir.
3. **Təlim üsulunu seçin**. Sualınızdan və məlumatlarınızın xarakterindən asılı olaraq, məlumatlarınızı ən yaxşı şəkildə əks etdirmək və ona qarşı dəqiq proqnozlar vermək üçün modeli necə öyrətmək istədiyinizi seçməlisiniz. Bu, MÖ prosesinizin xüsusi təcrübə və çox vaxt xeyli miqdarda təcrübə tələb edən hissəsidir.
4. **Modeli öyrədin**. Təlim məlumatlarınızdan istifadə edərək, siz məlumatlar daxilində qanunauyğunluqları tapmaq üçün müxtəlif alqoritmlər istifadə edəcəksiniz. Model, daha yaxşı bir model yaratmaq üçün məlumatların müəyyən hissələrini digərləri üzərində imtiyaz vermək üçün tənzimlənə bilən daxili çəkilərdən istifadə edə bilər.
5. **Modeli qiymətləndirin**. Modelin necə işlədiyini görmək üçün məlumat toplusundan əvvəl istifadə edilməmiş hissələri (sınaq məlumatlarınız) istifadə edirsiniz.
1. **Sualla bağlı qərar verin**. Əksər ML prosesləri sadə şərti proqram və ya qaydalara əsaslanan mühərrik tərəfindən cavablandırıla bilinməyən bir sual verməklə başlayır. Bu suallar çox vaxt məlumat toplusuna əsaslanan proqnozlar ətrafında fırlanır.
2. **Məlumatları toplayın və hazırlayın**. Sualınıza cavab vermək üçün sizə data lazımdır. Məlumatlarınızın keyfiyyəti və bəzən kəmiyyəti ilkin sualınıza nə qədər yaxşı cavab verə biləcəyinizi müəyyən edəcək. Məlumatların vizuallaşdırılması bu mərhələnin vacib aspektidir. Bu mərhələ həmçinin model yaratmaq üçün datanın öyrətmə və test qrupuna bölünməsini də əhatə edir.
3. **Təlim üsulunu seçin**. Sualınızdan və məlumatların xarakterindən asılı olaraq məlumatlarınızı ən yaxşı şəkildə əks etdirmək və ona qarşı dəqiq proqnozlar vermək üçün modeli necə öyrətmək istədiyinizi seçməlisiniz. Bu, ML prosesinizin xüsusi təcrübə və çox vaxt xeyli miqdarda təcrübə tələb edən hissəsidir.
4. **Modeli öyrədin**. Öyrətmə datadan istifadə edərək siz məlumatlar daxilində qanunauyğunluqları tapmaq üçün müxtəlif alqoritmlər istifadə edəcəksiniz. Model daha yaxşı bir model yaratmaq üçün məlumatların müəyyən hissələrini digərləri üzərində imtiyaz vermək üçün tənzimlənə bilən daxili çəkilərdən istifadə edə bilər.
5. **Modeli qiymətləndirin**. Modelin necə işlədiyini görmək üçün datasetdən əvvəl istifadə edilməmiş hissələri (test datanı) istifadə edirsiniz.
6. **Parametrlərin tənzimlənməsi**. Modelinizin performansına əsaslanaraq, modeli daha yaxşı öyrətmək üçün istifadə olunan alqoritmlərin parametrlərini dəyişərək prosesi yenidən təkrar edə bilərsiniz.
7. **Proqnoz vermək**. Modelinizin dəqiqliyini yoxlamaq üçün yeni giriş datalardan istifadə edin.
## Hansı sualı vermək lazımdır
Kompüterlər məlumatlarda gizli modelləri aşkar etməkdə xüsusilə bacarıqlıdırlar. Bu yardım proqramı şərti əsaslı qaydalar mühərriki yaratmaqla asanlıqla cavablandırıla bilinməyən müəyyən bir mövzular haqqında sualları olan tədqiqatçılar üçün çox faydalıdır. Məsələn, bir tapşırığı nəzərə alsaq, data mühəndisi siqaret çəkənlərə qarşı siqaret çəkməyənlərin ölümü ilə bağlı özü yaratdığı qaydaları qura bilər.
Kompüterlər məlumatlarda gizli modelləri aşkar etməkdə xüsusilə bacarıqlıdırlar. Bu yardım proqramı şərti əsaslı qaydalar mühərriki yaratmaqla asanlıqla cavablandırıla bilinməyən müəyyən bir mövzular haqqında sualları olan tədqiqatçılar üçün çox faydalıdır. Məsələn, bir tapşırığı nəzərə alsaq, data mühəndisi siqaret çəkənlərə qarşı siqaret çəkməyənlərin ölümü ilə bağlı özü yaratdığı model qura bilər.
Bir çox digər dəyişənlər tənliyə gətirildikdə, MÖ modeli keçmiş sağlamlıq tarixinə əsaslanaraq gələcək ölüm ehtimalını proqnozlaşdırmaq üçün daha səmərəli ola bilər. Daha pozitiv bir nümunə, enlik, uzunluq, iqlim dəyişikliyi, okeana yaxınlıq, cərəyanların axınının nümunələri və s. daxil olan məlumatlara əsaslanaraq müəyyən bir yerdə aprel ayı üçün hava proqnozları verilə bilər.
Bir çox digər dəyişənlər tənliyə gətirildikdə ML modeli keçmiş sağlamlıq tarixinə əsaslanaraq gələcək ölüm ehtimalını proqnozlaşdırmaq üçün daha səmərəli ola bilər. Daha pozitiv bir nümunə, enlik, uzunluq, iqlim dəyişikliyi, okeana yaxınlıq, cərəyanların axınının nümunələri və s. daxil olan məlumatlara əsaslanaraq müəyyən bir yerdə aprel ayı üçün hava proqnozları verilə bilər.
✅ [Bu təqdimatda](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) MÖ istifadə edilərək keçmiş hava məlumatları analizi istifadə edərək hava modelinin qurulmasını təsvir edir.
✅ [Bu təqdimatda](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) ML istifadə edilərək keçmiş hava məlumatları analizi istifadə edilərək hava modelinin qurulmasını təsvir edilir.
## Model qurmaqdan əvvəl tapşırıqlar
@ -39,50 +39,50 @@ Modelinizi qurmağa başlamazdan əvvəl yerinə yetirməli olduğunuz bir neç
Sualınıza hər cür əminliklə cavab verə bilmək üçün sizə düzgün tipdə və çox miqdarda məlumat lazımdır. Bu nöqtədə etməli olduğunuz iki şey var:
- **Məlumat toplayın**. Məlumatların təhlilində ədalətlə bağlı əvvəlki dərsi nəzərə alaraq, məlumatlarınızı ehtiyatla toplayın. Bu məlumatların mənbələrindən, malik ola biləcək hər hansı bir qərəzdən xəbərdar olun və mənşəyini sənədləşdirin.
- **Data toplayın**. Datanın təhlilində ədalətlə bağlı əvvəlki dərsi nəzərə alaraq ehtiyatla toplayın. Bu datanın mənbələrində malik ola biləcək hər hansı bir qərəzdən xəbərdar olun və mənşəyini sənədləşdirin.
- **Məlumat hazırlayın**. Məlumatların hazırlanması prosesində bir neçə addım var. Müxtəlif mənbələrdən gəldiyi üçün məlumatları toplamaq və normallaşdırmaq lazım ola bilər. Verilənlərin keyfiyyətini və kəmiyyətini müxtəlif üsullarla yaxşılaşdıra bilərsiniz, misal üçün söz kimi yazılmış ədədləri rəqəmlərə keçirmək ([Qruplaşdırma](../../../5-Clustering/1-Visualize/translations/README.az.md) bölməsində etdiyimiz kimi). Siz həmçinin əldə olunmuş məlumatlardan yeni məlumatlar da yarada bilərsiniz. ([Təsnifatlandırma](../../../4-Classification/1-Introduction/translations/README.az.md) bölməsində etdiyimiz kimi). Məlumatları təmizləyə və dəyişə bilərsiniz ([Veb tətbiq](../../../3-Web-App/translations/README.az.md) dərsində etdiyimiz kimi). Yekun olaraq siz təlim texnikasından asılı olaraq məlumatları təsadüfi seçimlərə əvəzləyə və ya yerlərini qarışdıra bilərsiniz.
- **Data hazırlayın**. Datanın hazırlanması prosesində bir neçə addım var. Müxtəlif mənbələrdən gəldiyi üçün datanı toplamaq və normallaşdırmaq lazım ola bilər. Verilənlərin keyfiyyətini və kəmiyyətini müxtəlif üsullarla yaxşılaşdıra bilərsiniz, misal üçün söz kimi yazılmış ədədləri rəqəmlərə keçirmək ([Klasterləşdirmə](../../../5-Clustering/1-Visualize/translations/README.az.md) bölməsində etdiyimiz kimi). Siz həmçinin əldə olunmuş məlumatlardan yeni məlumatlar da yarada bilərsiniz. ([Qruplaşdırma](../../../4-Classification/1-Introduction/translations/README.az.md) bölməsində etdiyimiz kimi). Datanı təmizləyə və dəyişə bilərsiniz ([Veb tətbiq](../../../3-Web-App/translations/README.az.md) dərsində etdiyimiz kimi). Yekun olaraq siz öyrətmə texnikasından asılı olaraq məlumatları təsadüfi seçimlərlə əvəzləyə və ya yerlərini qarışdıra bilərsiniz.
✅ Məlumatları yığdıqdan və emal etdikdən sonra vaxt ayırıb fikrinizdə tutduğunuz suala uyğun işləri gördüyünüzdən əmin olun. [Qruplaşdırma](../../../5-Clustering/1-Visualize/translations/README.az.md) dərslərində öyrəndiyimiz kimi bəzən yığdığımız məlumatlar bizim tapşırığımız üçün yaxşı nəticələr göstərməyə bilər!
✅ Datanı yığdıqdan və emal etdikdən sonra vaxt ayırıb fikrinizdə tutduğunuz suala uyğun işləri gördüyünüzdən əmin olun. [Klasterləşdirmə](../../../5-Clustering/1-Visualize/translations/README.az.md) dərslərində öyrəndiyimiz kimi bəzən yığdığımız məlumatlar bizim tapşırığımız üçün yaxşı nəticələr göstərməyə bilər!
### Xüsusiyyətlər və hədəf
[Xüsusiyyət](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) datanızın ölçülə bilən parametridir. Bir çox verilənlər bazasında o, 'tarix' 'ölçü' və ya 'rəng' adları ilə sütun başlığı kimi ifadə edilir. Kodda adətən `X` kimi təqdim olunan xüsusiyyət dəyişəniniz modeli öyrətmək üçün istifadə olunacaq giriş dəyişənini təmsil edir.
Hədəf, proqnozlaşdırmağa çalışdığınız bir şeydir. Kodda adətən `y` kimi təqdim olunan hədəf məlumatlarınız haqqında soruşmağa çalışdığınız sualın cavabını təmsil edir: dekabr ayında hansı **rəng** balqabaq ən ucuz olacaq? San Fransiskoda hansı məhəllələrdə ən yaxşı daşınmaz əmlak **qiyməti** olacaq? Bəzən hədəfə etiket atributu da deyilir.
Hədəf, proqnozlaşdırmağa çalışdığınız bir şeydir. Kodda adətən `y` kimi təqdim olunan hədəf məlumatlarınız haqqında soruşmağa çalışdığınız sualın cavabını təmsil edir: dekabr ayında hansı **rəng** balqabaq ən ucuz olacaq? San Fransiskoda hansı məhəllələrdə ən yaxşı daşınmaz əmlakın **qiyməti** neçə olacaq? Bəzən hədəfə etiket atributu da deyilir.
### Xüsusiyyət üçün dəyişən seçmək
🎓 **Xüsusiyyət seçimi və Xüsusiyyətlərin çıxarılması** Model qurarkən hansı dəyişəni seçmək lazım olduğunu necə bilirsiniz? Çox güman ki, ən effektiv model üçün düzgün dəyişənləri seçmək üçün **xüsusiyyət seçimi** və ya **xüsusiyyət çıxarılması** prosesindən keçəcəksiniz. Bununla belə, onlar eyni şey deyillər: "**Xüsusiyyətlərin çıxarılması** orijinal xüsusiyyətlərin funksiyalarından yeni xüsusiyyətlər yaradır, halbuki **xüsusiyyət seçimi** xüsusiyyətlərin alt dəstini qaytarır." ([mənbə](https://wikipedia.org/wiki/Feature_selection))
🎓 **Xüsusiyyət seçimi və xüsusiyyətlərin çıxarılması**. Model qurarkən hansı dəyişəni seçmək lazım olduğunu necə bilirsiniz? Çox güman ki, ən effektiv model üçün düzgün dəyişənləri seçmək üçün **xüsusiyyət seçimi** və ya **xüsusiyyət çıxarılması** prosesindən keçəcəksiniz. Bununla belə, onlar eyni şey deyillər: "**Xüsusiyyətlərin çıxarılması** orijinal xüsusiyyətlərin funksiyalarından yeni xüsusiyyətlər yaradır, halbuki **xüsusiyyət seçimi** xüsusiyyətlərin alt dəstini qaytarır." ([mənbə](https://wikipedia.org/wiki/Feature_selection))
### Data vizuallaşdırılması
Data mühəndisinin alət dəstinin mühüm cəhəti Seaborn və ya MatPlotLib kimi bir neçə mükəmməl kitabxanadan istifadə edərək məlumatları vizuallaşdırmaq gücüdür. Verilənlərinizi vizual şəkildə təmsil etmək sizə istifadə edə biləcəyiniz gizli uyğunluqları aşkar etməyə imkan verə bilər. Vizuallaşdırmalarınız sizə qərəzli və ya balanssız məlumatları da aşkar etməyə kömək edə bilər ([Təsnifatlandırma](../../../4-Classification/1-Introduction/translations/README.az.md) bölməsində öyrəndiyimiz kimi).
Data mühəndisinin alət dəstinin mühüm cəhəti Seaborn və ya MatPlotLib kimi bir neçə mükəmməl kitabxanadan istifadə edərək məlumatları vizuallaşdırmaq gücüdür. Verilənlərinizi vizual şəkildə təmsil etmək sizə istifadə edə biləcəyiniz gizli uyğunluqları aşkar etməyə imkan verə bilər. Vizuallaşdırmalarınız sizə qərəzli və ya balanssız məlumatları da aşkar etməyə kömək edə bilər ([Qruplaşdırma](../../../4-Classification/1-Introduction/translations/README.az.md) bölməsində öyrəndiyimiz kimi).
### Məlumat toplusunu bölün
### Dataseti bölün
Təlimdən əvvəl verilənlər bazanızı məlumatları yaxşı təmsil etməsini ödəyən qeyri-bərabər ölçülü iki və ya daha çox hissəyə bölmək lazımdır.
- **Təlim**. Modelinizi öyrətmək üçün uyğun seçilmiş məlumat dəstinin bir hissəsidir. Bu dəst orijinal məlumat dəstinin əksəriyyətini təşkil edir.
- **Sınaq**. Test verilənlər toplusu, qurulmuş modelin performansını təsdiqləmək üçün istifadə etdiyiniz, adətən orijinal məlumatlardan seçilən müstəqil məlumat qrupudur.
- **Doğrulama**. Doğrulama dəsti modeli təkmilləşdirmək üçün modelin hiperparametrlərini və ya arxitekturasını tənzimləmək üçün istifadə etdiyiniz daha kiçik müstəqil nümunələr qrupudur. Məlumatınızın ölçüsündən və verdiyiniz sualdan asılı olaraq, bu üçüncü dəsti qurmağa ehtiyacınız olmaya bilər ([Vaxt Seriyası Proqnozlaşdırma](../../../7-TimeSeries/1-Introduction/translations/README.az.md) bölməsində qeyd etdiyimiz kimi) ).
- **Öyrətmə**. Modelinizi öyrətmək üçün uyğun seçilmiş məlumat dəstinin bir hissəsidir. Bu dəst orijinal datasetin əksəriyyətini təşkil edir.
- **Test**. Test verilənlər toplusu qurulmuş modelin performansını təsdiqləmək üçün istifadə etdiyiniz, adətən orijinal məlumatlardan seçilən müstəqil datasetdir.
- **Doğrulama**. Doğrulama dəsti modeli təkmilləşdirmək üçün modelin hiperparametrlərini və ya arxitekturasını tənzimləmək üçün istifadə etdiyiniz daha kiçik müstəqil nümunələr qrupudur. Məlumatınızın ölçüsündən və verdiyiniz sualdan asılı olaraq bu üçüncü dəsti qurmağa ehtiyacınız olmaya bilər ([Zaman seriyalarının proqnozlaşdırılması](../../../7-TimeSeries/1-Introduction/translations/README.az.md) bölməsində qeyd etdiyimiz kimi).
## Model qurmaq
Sizin hədəfiniz təlim məlumatlarından və ya məlumatların statistik təsvirindən istifadə edərək model qurmaq və onu müxtəlif alqoritmlərlə **öyrətməkdir**. Modelin öyrədilməsi onun məlumatlara əlçatan edir və imkan verir ki, başa düşdüyü və kəşf etdiyi qanunauyğunları yoxlasın, qəbul etsin və ya imtina etsin.
Sizin hədəfiniz öyrətmə datasından və ya datanın statistik təsvirindən istifadə edərək model qurmaq və onu müxtəlif alqoritmlərlə **öyrətməkdir**. Modelin öyrədilməsi onun məlumatlara əlçatan edir və imkan verir ki, başa düşdüyü və kəşf etdiyi qanunauyğunları yoxlasın, qəbul etsin və ya imtina etsin.
### Öyrənmə üsulunu seçin
Sualınızdan və məlumatlarınızın xarakterindən asılı olaraq, siz onu öyrətmək üçün bir üsul seçəcəksiniz. Bu kursda istifadə etdiyimiz [Scikit-learn's sənədləri](https://scikit-learn.org/stable/user_guide.html) ilə addımlayaraq, siz bir modeli öyrətməyin bir çox yolunu araşdıra bilərsiniz. Təcrübənizdən asılı olaraq, ən yaxşı modeli yaratmaq üçün bir neçə fərqli metodu sınamalı ola bilərsiniz. Çox güman ki, siz data alimlərinin modellərin performansını ölçüdiklərini yollardan keçəcəksiniz. Bunlara modeli istifadə edilməmiş məlumatlarla öyrətmə, dəqiqliyin yoxlama, qərəz və digər keyfiyyəti aşağı sala biləcək problemləri aşkarlama yolları aiddir. Bunların sonunda isə siz ən uyğun öyrənmə metodunu seçmiş olacaqsınız.
Sualınızdan və məlumatlarınızın xarakterindən asılı olaraq, siz onu öyrətmək üçün bir üsul seçəcəksiniz. Bu kursda istifadə etdiyimiz [Scikit-learn's sənədləri](https://scikit-learn.org/stable/user_guide.html) ilə addımlayaraq siz bir modeli öyrətməyin bir çox yolunu araşdıra bilərsiniz. Təcrübənizdən asılı olaraq ən yaxşı modeli yaratmaq üçün bir neçə fərqli metodu sınamalı ola bilərsiniz. Çox güman ki, siz data mühəndislərinin modellərin performansını ölçdükləri yollardan keçəcəksiniz. Bunlara modeli istifadə edilməmiş datalarla öyrətmə, dəqiqliyin yoxlama, qərəz və digər keyfiyyəti aşağı sala biləcək problemləri aşkarlama yolları aiddir. Bunların sonunda isə siz ən uyğun öyrənmə metodunu seçmiş olacaqsınız.
### Modeli öyrətmək
Təlim məlumatlarınızı hazır tutmaqla siz modelinizi "uyğunlaşdırmağa" hazırsınız. Siz görəcəksiniz ki, bir çox MÖ kitabxanalarında 'model.fit' kodunu var - məhz burada siz xüsusiyyət dəyişənlərini məlumat toplusu kimi (adətən 'X') və hədəf dəyişənini (adətən 'y') ötürəcəksiniz.
Öyrətmə datanızı hazır tutmaqla siz modelinizi "uyğunlaşdırmağa" hazırsınız. Siz görəcəksiniz ki, bir çox ML kitabxanalarında 'model.fit' funksiyası var - məhz burada siz xüsusiyyət dəyişənlərini məlumat toplusu kimi (adətən 'X') və hədəf dəyişənini (adətən 'y') ötürəcəksiniz.
### Modeli qiymətləndirin
Təlim prosesi başa çatdıqdan sonra (böyük modeli hazırlamaq üçün bir çox təkrarlamalar və ya “epoxalar” tələb oluna bilər), siz modelin keyfiyyətini ölçmək üçün test məlumatlarından istifadə edə biləcəksiniz. Bu məlumat modelin əvvəllər təhlil etmədiyi ilkin məlumatların bir hissəsidir. Siz modelinizin keyfiyyətinə dair göstəricilər cədvəlini çap edə bilərsiniz.
Öyrətmə prosesi başa çatdıqdan sonra (böyük modeli hazırlamaq üçün bir çox təkrarlamalar və ya “epoxalar” tələb oluna bilər), siz modelin keyfiyyətini ölçmək üçün test məlumatlarından istifadə edə biləcəksiniz. Bu məlumat modelin əvvəllər təhlil etmədiyi ilkin məlumatların bir hissəsidir. Siz modelinizin keyfiyyətinə dair göstəricilər cədvəlini çap edə bilərsiniz.
🎓 **Modelin uyğunlaşdırılması**
@ -95,21 +95,21 @@ Maşın öyrənməsi kontekstində model uyğunluğu modelin əsas funksiyasın
## Parametrlərin tənzimlənməsi
İlkin təliminiz tamamlandıqdan sonra modelin keyfiyyətini müşahidə edin və onun “hiperparametrlərini” tənzimləməklə onu təkmilləşdirməyi düşünün. Proses haqqında bu [sənədlərdən](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott) ətraflı oxuya bilərsiniz.
İlkin öyrətmə tamamlandıqdan sonra modelin keyfiyyətini müşahidə edin və onun “hiperparametrlərini” tənzimləməklə təkmilləşdirməyi düşünün. Proses haqqında bu [sənədlərdən](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott) ətraflı oxuya bilərsiniz.
## Proqnoz
Bu anda siz modelin dəqiqliyini yoxlamaq üçün tamamilə yeni məlumatlardan istifadə edə bilərsiniz. "Tətbiqi" MÖ konfiqurasiyalarında siz veb mühitdə istifadəçilərdən giriş məlumatlarını alaraq dəyişənlər kimi modelinizə daxil edə və nəticəni hesablaya bilərsiniz.
Bu anda siz modelin dəqiqliyini yoxlamaq üçün tamamilə yeni məlumatlardan istifadə edə bilərsiniz. "Tətbiqi" ML konfiqurasiyalarında siz veb mühitdə istifadəçilərdən giriş məlumatlarını alaraq dəyişənlər kimi modelinizə daxil edə və nəticəni hesablaya bilərsiniz.
Bu dərslərdə siz data mühəndisinin istifadə etdiyi jestlərin hamısını - hazırlama, qurma, sınaqdan keçirmə, qiymətləndirmə və proqnozlaşdırma üçün bu addımlardan necə istifadə edəcəyinizi kəşf edəcəksiniz və bu sizin MÖ mühəndisi olmaq üçün öyrənmə səyahətinizdə kömək edəcək.
Bu dərslərdə siz data mühəndisinin istifadə etdiyi jestlərin hamısını - hazırlama, qurma, sınaqdan keçirmə, qiymətləndirmə və proqnozlaşdırma üçün bu addımlardan necə istifadə edəcəyinizi kəşf edəcəksiniz və bu sizin ML mühəndisi olmaq üçün öyrənmə səyahətinizdə kömək edəcək.
---
## 🚀 Məşğələ
MÖ təcrübəçisinin addımlarını əks etdirən proses sxemini çəkin. Hazırda prosesin gedişində özünüzü harada görürsünüz? Harada çətinlik çəkəcəyinizi proqnozlaşdırırsınız? Sizə asan görünən nədir?
ML təcrübəçisinin addımlarını əks etdirən proses sxemini çəkin. Hazırda prosesin gedişində özünüzü harada görürsünüz? Harada çətinlik çəkəcəyinizi proqnozlaşdırırsınız? Sizə asan görünən nədir?
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/8/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/8/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -2,10 +2,10 @@
## Təlimatlar
Öz şirkətində, dost qruplarında və ya qrup yoldaşlarından, peşəkar olaraq data mühəndisi kimi işləyən kiminləsə danışın. Onların gündəlik işləri barədə 500 sözlük yazı yazın. Onlar istisaslaşıblar, yoxsa bir çox sahələri əhatə edirlər?
Öz şirkətində, dost qruplarında və ya qrup yoldaşlarından peşəkar olaraq data mühəndisi kimi işləyən kiminləsə danış. Onların gündəlik işləri barədə 500 sözlük yazı yaz. Onlar kiçik sahədə ixtisaslaşıblar, yoxsa bir çox sahələri əhatə edirlər?
## Rubrika
| | Təqdir ediləsi | Bəs edən | İnkişaf etdirilməli |
| -------- | ------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- |
| Tələblər | Yazı düzgün uzunluqdadır, mənbələr qeyd olunub və .doc faylı kimi təqdim olunub | Yazı tələb olunan uzunluqda deyil və ya zəif hazırlanıb | Yazı təqdim olunmayıb |
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | --------- | -------- | ----------------- |
| | Yazı düzgün uzunluqdadır, mənbələr qeyd olunub və .doc faylı kimi təqdim olunub | Yazı tələb olunan uzunluqda deyil və ya zəif hazırlanıb | Yazı təqdim olunmayıb |

@ -1,6 +1,6 @@
# Maşın öyrənməsinə giriş
Kurikulumun bu hissəsində siz maşın öyrənməsi sahəsinin əsas fundamental konseptləri, onların tarixi və araşdırmaçıların onları istifadə etdikləri texnikalarla tanış olacaqsınız. Gəlin Maşın Öyrənməsinin (MÖ) bu yeni dünyasını birlikdə kəşf edək!
Kurikulumun bu hissəsində siz maşın öyrənməsi sahəsinin əsas fundamental konseptləri, onların tarixi və tədqiqatçıların onlarla işləmək üçün istifadə etdikləri texnikalarla tanış olacaqsınız. Gəlin Maşın Öyrənməsinin (ML) bu yeni dünyasını birlikdə kəşf edək!
![globe](../images/globe.jpg)
><a href="https://unsplash.com/s/photos/globe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a> platformasında <a href="https://unsplash.com/@bill_oxford?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Bill Oxford</a> tərəfindən təsvir
@ -9,8 +9,8 @@ Kurikulumun bu hissəsində siz maşın öyrənməsi sahəsinin əsas fundamenta
1. [Maşın öyrənməsinə giriş](../1-intro-to-ML/translations/README.az.md)
1. [Maşın öyrənmə tarixi](../2-history-of-ML/translations/README.az.md)
1. [Maşın öyrənmə və ədalət](../3-fairness/README.md)
1. [Maşın öyrənmə texnikaları](../4-techniques-of-ML/README.md)
1. [Maşın öyrənmə və ədalət](../3-fairness/translations/README.az.md)
1. [Maşın öyrənmə texnikaları](../4-techniques-of-ML/translations/README.az.md)
### Təşəkkürlər

@ -1,68 +1,68 @@
# Reqressiya modelləri üçün Python və SciKit-learn-ə giriş
# Reqressiya modellərinə Python və SciKit-learn ilə giriş
![Reqressiyaların eskizlərlə xülasəsi](../../../sketchnotes/ml-regression.png)
> [Tomomi Imura](https://www.twitter.com/girlie_mac) tərəfindən çəkilmiş eskiz
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/9/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/9/?loc=az)
### [Bu dərs R proqramlaşdırma dili ilə də mövcuddur!](../solution/R/lesson_1-R.ipynb)
## Giriş
Bu 4 dərsdə, siz reqressiya modellərinin necə qurulmasını öyrənəcəksiniz. Qısa olaraq bu modellərin nə üçün olduğunu müzakirə edəcəyik. Amma ilk öncə, prosesi başlatmaq üçün lazım olan bütün alətlərinizin olduğundan əmin olun.
Bu 4 dərsdə siz reqressiya modellərinin necə qurulmasını öyrənəcəksiniz. Qısa olaraq bu modellərin nə üçün olduğunu müzakirə edəcəyik. Amma ilk öncə, prosesi başlatmaq üçün lazım olan bütün alətlərinizin olduğundan əmin olun.
Bu dərsdə siz:
- Kompüterinizi lokal maşın öyrənməsi tapşırıqlarını icra etmək üçün sazlamağı
- Jupyter notebooks-la işləməyi
- Quraşdırılması daxil, SciKit-learn-dən istifadə etməyi
- Kompüterinizi lokal maşın öyrənməsi tapşırıqlarını icrası üçün konfiqurasiya etməyi
- Jupyter notbuklarla işləməyi
- SciKit-learn quraşdırmağı və istifadə etməyi
- Tətbiqi tapşırıqlarla xətti reqressiyanı kəşf etməyi
öyrənəcəksiniz.
## Quraşdırılma və Konfiqurasiyalar
[![Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsi modellərini qurmaq üçün alətlərinizi hazır vəziyyətə gətirin](https://img.youtube.com/vi/-DfeD2k2Kj0/0.jpg)](https://youtu.be/-DfeD2k2Kj0 "Başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsi modellərini qurmaq üçün alətlərinizi hazır vəziyyətə gətirin")
[![Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsi modellərini qurmaq üçün alətlərinizi hazır vəziyyətə gətirin](https://img.youtube.com/vi/-DfeD2k2Kj0/0.jpg)](https://youtu.be/-DfeD2k2Kj0 "Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsi modellərini qurmaq üçün alətlərinizi hazır vəziyyətə gətirin")
> 🎥 Kompüterin MÖ üçün konfiqurasiyasını izah edən qısa video üçün yuxarıdakı şəkilin üzərinə klikləyin.
> 🎥 Kompüterin ML üçün konfiqurasiyasını izah edən qısa video üçün yuxarıdakı şəkilin üzərinə klikləyin.
1. **Python-u yükləyin**. Kompüterinizə [Python](https://www.python.org/downloads/)-un yükləndiyindən əmin olun. Siz data elmi və maşın öyrənməsi tapşırıqlarının çoxu üçün Python-dan istifadə edəcəksiniz. Bəzi istifadəçilərimiz üçün quraşdırmanı daha asan etmək məqsədilə yaradılmış faydalı [Python Kodlaşdırma Paketləri](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) də mövcuddur.
1. **Python yükləyin**. Kompüterinizə [Python](https://www.python.org/downloads/) yükləndiyinizdən əmin olun. Siz data elmi və maşın öyrənməsi tapşırıqlarının çoxu üçün Python-dan istifadə edəcəksiniz. Bəzi istifadəçilər üçün quraşdırmanı daha asan etmək məqsədilə yaradılmış faydalı [Python Kodlaşdırma Paketləri](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) də mövcuddur.
Amma istifadəsindən asılı olaraq Python-un bəzən bir, bəzən isə digər versiyası tələb oluna bilər. Buna görə, [virtual mühitdə](https://docs.python.org/3/library/venv.html) işləmək daha məqsədəuyğundur.
Amma istifadəsindən asılı olaraq Python üçün bəzən bir, bəzən isə digər versiyası tələb oluna bilər. Buna görə, [virtual mühitdə](https://docs.python.org/3/library/venv.html) işləmək daha məqsədəuyğundur.
2. **Visual Studio Code-u yükləyin**. Kompüterinizə [Visual Studio Code](https://www.python.org/downloads/)-un yükləndiyindən əmin olun. Sadə formada [Visual Studio Code-u yükləmək](https://code.visualstudio.com/) üçün bu təlimatları izləyə bilərsiniz. Bu kursda Python-u Visual Studio Code vasitəsilə istifadə edəcəyiniz üçün, ola bilər ki, Visual Studio Code-u Python tərtibatçılığı üçün necə [konfiqurasiya](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) edəcəyinizi öyrənmək istəyəsiniz.
2. **Visual Studio Code yükləyin**. Kompüterinizə [Visual Studio Code](https://www.python.org/downloads/) yükləndiyindən əmin olun. Sadə formada [Visual Studio Code yükləmək](https://code.visualstudio.com/) üçün bu təlimatları izləyə bilərsiniz. Bu kursda Python-u Visual Studio Code vasitəsilə istifadə edəcəyiniz üçün, ola bilər ki, Visual Studio Code-u Python proqramlaşdırma üçün necə [konfiqurasiya](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) edəcəyinizi öyrənmək istəyəsiniz.
> Bu [öyrənmə modulları](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott) siyahısından istifadə etməklə özünüzü Python-la tanış edin.
>
> [![Visual Studio Code-la Python-u quraşdırın](https://img.youtube.com/vi/yyQM70vi7V8/0.jpg)](https://youtu.be/yyQM70vi7V8 "Visual Studio Code-la Python-u quraşdırın")
> [![Visual Studio Code-la Python quraşdırın](https://img.youtube.com/vi/yyQM70vi7V8/0.jpg)](https://youtu.be/yyQM70vi7V8 "Visual Studio Code-la Python quraşdırın")
>
> 🎥 Python-un Visual Studio Code-la istifadəsi ilə bağlı video üçün yuxarıdakı şəkilə klikləyin.
> 🎥 Python-un Visual Studio Code-da istifadəsi ilə bağlı video üçün yuxarıdakı şəkilə klikləyin.
3. **Install Scikit-learn-ü**, [bu təlimatları](https://scikit-learn.org/stable/install.html) izləyərək yükləyin. Python 3-ü istifadə etdiyinizdən əmin olmalı olduğunuz üçün, virtual mühitdən istifadə etməyinizi tövsiyyə edirik. Qeyd olaraq onu deyək ki, əgər bu kitabxananı M1 Mac-lər üçün yükləyirsinizsə, səhifənin yuxarısında qeyd olunmuş linkdə xüsusi təlimatlar mövcuddur.
3. **Scikit-learn yükləyin**. [Bu təlimatları](https://scikit-learn.org/stable/install.html) izləyərək yükləyin. Python 3-ü istifadə etdiyinizdən əmin olmalı olduğunuz üçün, virtual mühitdən istifadə etməyinizi tövsiyyə edirik. Qeyd olaraq onu deyək ki, əgər bu kitabxananı M prosessorlu Mac-lər üçün yükləyirsinizsə, səhifənin yuxarısında qeyd olunmuş linkdə xüsusi təlimatlar mövcuddur.
4. **Jupyter Notebook-u yükləyin**. [Jupyter paketini yükləməyiniz](https://pypi.org/project/jupyter/) lazım olacaq.
4. **Jupyter Notebooks yükləyin**. [Jupyter paketini yükləməyiniz](https://pypi.org/project/jupyter/) lazım olacaq.
## MÖ tərtibatı üçün mühitiniz
## ML tərtibatı üçün mühitiniz
Python kodları yazmaq və maşın öyrənməsi modellərini qurmanız üçün siz **dəftərçələrdən** istifadə edəcəksiniz. Bu fayl tipi data alimləri üçün geniş yayılmış alətdir və `.ipynb` uzantısı və yaxud suffiksi ilə ayırd oluna bilirlər.
Python kodları yazmaq və maşın öyrənməsi modellərini qurmanız üçün siz **notbuklardan** istifadə edəcəksiniz. Bu fayl tipi data mühəndisləri arasında geniş yayılmış alətdir və `.ipynb` uzantısı və yaxud suffiksi ilə ayırd oluna bilirlər.
Dəftərçələr tərtibatçılara kod yazmaq ilə yanaşı, həm koda qeydlər etmək, həm də kodla bağlı dokumentasiya yazmağa imkan verdiyi üçün eksperimental və ya araşdırma yönümlü proyektlər üçün çox yararlı olan interaktiv bir mühitdir.
Notbuklar proqramçılara kod yazmaq ilə yanaşı, həm kodda qeydlər etmək, həm də kodla bağlı dokumentasiya yazmağa imkan verdiyi üçün təcrübi və ya araşdırma yönümlü proyektlər üçün çox yararlı olan interaktiv bir mühitdir.
[![Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsi modellərini yaratmağa başlamaq üçün Jupyter Notebooks-u quraşdırın](https://img.youtube.com/vi/7E-jC8FLA2E/0.jpg)](https://youtu.be/7E-jC8FLA2E "Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsi modellərini yaratmağa başlamaq üçün Jupyter Notebooks-u quraşdırın")
[![Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsi modellərini yaratmağa başlamaq üçün Jupyter Notebooks quraşdırın](https://img.youtube.com/vi/7E-jC8FLA2E/0.jpg)](https://youtu.be/7E-jC8FLA2E "Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsi modellərini yaratmağa başlamaq üçün Jupyter Notebooks quraşdırın")
> 🎥 Bu tapşırığın üzərindən keçən qısa video üçün yuxarıdakı şəkilin üzərinə klikləyin.
### Tapşırıq - dəftərçələrlə iş
### Tapşırıq - notbuklarla iş
Bu qovluqda siz _notebook.ipynb_ adlı faylı görəcəksiniz.
1. _notebook.ipynb_ faylını Visual Studio Code-da açın.
Jupyter serveri Python 3+ ilə birgə başlayacaq. Dəftərçənin içərisində kod hissələrini çalışdıracaq `başlat` sahəsini görəcəksiniz. "Play" düyməsinə bənzəyən ikonu seçərək kod bloklarını çalışdıra bilərsiniz.
Jupyter serveri Python 3+ ilə birgə başlayacaq. Dəftərçənin içərisində kod hissələrini icra edəcək `başlat` sahəsini görəcəksiniz. "Play" düyməsinə bənzəyən ikonu seçərək kod bloklarını icra edə bilərsiniz.
2. `md` simgəsini seçin və biraz "markdown", ardınca da **# Dəftərçənizə xoş gəlmisiniz** mətnini əlavə edin.
2. `md` simgəsini seçin və əvvəlcə "markdown", ardınca da **# Notbuka xoş gəlmisiniz** mətnini əlavə edin.
Daha sonra, bir az Python kodu əlavə edin.
Daha sonra, bir az Python kodunuzu əlavə edin.
3. Kod blokunda **print('hello notebook')** yazın.
4. Kodu başlatmaq üçün ox simgəsini seçin.
@ -73,35 +73,35 @@ Bu qovluqda siz _notebook.ipynb_ adlı faylı görəcəksiniz.
hello notebook
```
![Açıq dəftərçə ilə VS Code](../images/notebook.jpg)
![Açıq notbuk ilə VS Code](../images/notebook.jpg)
Dəftərçəni sənədləşdirmək üçün öz kodunuza rəylər əlavə edə bilərsiniz.
Notbuku sənədləşdirmək üçün öz kodunuza rəylər əlavə edə bilərsiniz.
✅ Bir dəqiqəliyinə veb tərtibatçısı ilə data aliminin iş mühitinin necə fərqləndiyi barəsində düşünün.
✅ Bir dəqiqəliyinə veb proqramçısı ilə data mühitinin iş mühitinin necə fərqləndiyi barəsində düşünün.
## Scikit-learn ilə işin icrası
Artıq lokal mühitinizi quraşdırdığınız və özünüzü Jupyter dəftərçələrinə öyrəşdirdiyiniz üçün, keçək özümüzü Scikit-learnlə(`science` sözündəki `sci` kimi tələffüz edin) də bərabər formada tanış edək. Scikit-learn MÖ tapşırıqlarını həll etmənizdə köməkçi olacaq [geniş API](https://scikit-learn.org/stable/modules/classes.html#api-ref) təqdim edir.
Artıq lokal mühitinizi quraşdırdığınız və özünüzü Jupyter notbuklarına öyrəşdirdiyiniz üçün, keçək özümüzü Scikit-learn-lə(`science` sözündəki `sci` kimi tələffüz edin) də tanış edək. Scikit-learn ML tapşırıqlarını həll etmənizdə köməkçi olacaq [geniş API](https://scikit-learn.org/stable/modules/classes.html#api-ref) təqdim edir.
[Vebsaytlarına](https://scikit-learn.org/stable/getting_started.html) görə, "Scikit-learn açıq mənbə lisenziyalı, nəzarətli və nəzarətsiz öyrənməni dəstəkləyən maşın öyrənməsi kitabxanasıdır. O həmçinin model uyğunlaşdırılması, datanın ön-emalı, model seçilməsi və dəyərləndirilməsi kimi bir çox alətləri də təqdim edir.
Bu kursda siz, bizim 'ənənəvi maşın öyrənməsi' adlandırdığımız tapşırıqları, maşın öyrənməsi modelləri qurmaqla həll etmək üçün Scikit-learn və digər alətlərdən istifadə edəcəksiniz.
Bu kursda siz, bizim 'ənənəvi maşın öyrənməsi' adlandırdığımız tapşırıqları maşın öyrənməsi modelləri qurmaqla həll etmək üçün Scikit-learn və digər alətlərdən istifadə edəcəksiniz.
Scikit-learn, modelləri qurmaq və onların istifadəyə yararlılığının dəyərləndirməsini asanlaşdırır. O ədədi məlumatlar üzərinə fokusludur və öyrənmə aləti olaraq istifadə olunması üçün bir neçə hazır məlumat massivinə məxsusdur. Əlavə olaraq daxilində tələbələrin təcrübə etməsi üçün öncədən qurulmuş bir neçə model də mövcuddur. Gəlin əvvəlcədən paketlənmiş məlumatların yüklənməsini və bəzi əsas məlumatlarla Scikit-learn ilə öncədən qurulmuş qiymətləndirmə MÖ modelindən istifadə edilməsini araşdıraq.
Scikit-learn, modelləri qurmaq və onların istifadəyə yararlılığının dəyərləndirməsini asanlaşdırır. O ədədi məlumatlar üzərinə fokusludur və öyrənmə aləti olaraq istifadə olunması üçün bir neçə hazır məlumat massivinə məxsusdur. Əlavə olaraq daxilində tələbələrin təcrübə etməsi üçün öncədən qurulmuş bir neçə model də mövcuddur. Gəlin əvvəlcədən paketlənmiş dataların yüklənməsini və bəzi əsas datalarla Scikit-learn ilə öncədən qurulmuş qiymətləndirmə ML modelindən istifadə edilməsini araşdıraq.
## Tapşırıq - sizin ilk Scikit-learn dəftərçəniz
## Tapşırıq - sizin ilk Scikit-learn notbukunuz
> Bu təlimat Scikit-learn-ün vebsaytındakı [xətti reqressiya modelindən](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) ilhamlanmışdır.
[![Yeni başlayanlar üçün MÖ - Python-da ilk xətti reqressiya proyektiniz](https://img.youtube.com/vi/2xkXL5EUpS0/0.jpg)](https://youtu.be/2xkXL5EUpS0 "Yeni başlayanlar üçün MÖ - Python-da ilk xətti reqressiya proyektiniz")
[![Yeni başlayanlar üçün ML - Python-da ilk xətti reqressiya proyektiniz](https://img.youtube.com/vi/2xkXL5EUpS0/0.jpg)](https://youtu.be/2xkXL5EUpS0 "Yeni başlayanlar üçün ML - Python-da ilk xətti reqressiya proyektiniz")
> 🎥 Bu tapşırığın üzərindən keçən qısa video üçün yuxarıdakı şəkilin üzərinə klikləyin.
Bu dərslə əlaqəli olan _notebook.ipynb_ faylında 'zibil qutusu' simgəsinə klikləyərək bütün xanaları təmizləyin.
Bu bölmədə siz, Scikit-learn-də öyrənmə məqsədi üçün əvvəlcədən hazırlanmış şəkərli diabet xəstələri ilə bağlı olan kiçik məlumat massivi ilə işləyəcəksiniz. Maşın öyrənməsi modelləri dəyişənlərin kombinasiyası əsasında hansı xəstələrin müalicəyə daha yaxşı cavab verə biləcəyini müəyyən etməyə kömək edə bilər. Hətta ən sadə reqressiya modeli belə, vizuallaşdırıldıqda, nəzəri klinik sınaqlarınızı təşkil etməkdə sizə kömək edəcək dəyişənlər haqqında məlumat verə bilər.
Bu bölmədə siz Scikit-learn-də öyrənmə məqsədi üçün əvvəlcədən hazırlanmış şəkərli diabet xəstələri ilə bağlı olan kiçik data seti ilə işləyəcəksiniz. Maşın öyrənməsi modelləri dəyişənlərin kombinasiyası əsasında hansı xəstələrin müalicəyə daha yaxşı cavab verə biləcəyini müəyyən etməyə kömək edə bilər. Hətta ən sadə reqressiya modeli belə vizuallaşdırıldıqda nəzəri klinik sınaqlarınızı təşkil etməkdə sizə kömək edəcək dəyişənlər haqqında məlumat verə bilər.
✅ Reqressiya metodlarının bir çox növü mövcud olsa da, hansını seçməyiniz, axtardığınız cavabdan asıldır. Əgər insanın yaşına uyğun boyunun hündürlüyünü təxmin etmək istəyirsinizsə, bu məlumat ***ədədi dəyərə** malik olduğu üçün xətti reqressiyadan istifadə edə bilərsiniz. Yox əgər hansısa mətbəxin veqan hesab edilib edilməməli olduğunu tapmaqla maraqlanırsınızsa, deməli **kateqoriya mənimsədilməsini** axtarırsınız. Bunun üçün məntiqi reqressiyadan istifadə edə bilərsiniz. Məntiqi reqressiyalar haqqında sonradan daha çox öyrənəcəksiniz. Məlumatlarla bağlı soruşa biləcəyiniz suallar və bu metodlardan hansının daha uyğun ola biləcəyi ilə bağlı isə biraz düşünün.
✅ Reqressiya metodlarının bir çox növü mövcud olsa da, hansını seçməyiniz axtardığınız cavabdan asıldır. Əgər insanın yaşına uyğun boyunun hündürlüyünü təxmin etmək istəyirsinizsə, bu məlumat ***ədədi dəyərə** malik olduğu üçün xətti reqressiyadan istifadə edə bilərsiniz. Yox əgər hansısa mətbəxin veqan hesab edilib-edilməməli olduğunu tapmaqla maraqlanırsınızsa, deməli **kateqoriya mənimsədilməsini** axtarırsınız. Bunun üçün logistik reqressiyadan istifadə edə bilərsiniz. Logistik reqressiyalar haqqında sonradan daha çox öyrənəcəksiniz. Məlumatlarla bağlı soruşa biləcəyiniz suallar və bu metodlardan hansının daha uyğun ola biləcəyi ilə bağlı isə biraz düşünün.
Gəlin bu tapşırıqla başlayaq.
@ -124,21 +124,21 @@ Tapşırıqda sizə kömək olması üçün kitabxanalardan bəzilərini köçü
Yuxarıda siz `matplotlib`-i, `numpy`-ı və `sklearn`-dən `datasets`, `linear_model` və `model_selection`-ı köçürürsünüz. `model_selection` datanı öyrədilmə və test massivlərinə bölmək üçün istifadə olunur.
### Şəkərli diabet data massivi
### Şəkərli diabet data seti
Öncədən qurulmuş olan [şəkərli diabet data massivinə](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset), 10 xüsusiyyət dəyişəni olmaqla, bu xəstəliklə bağlı 442 nümunə daxildir. Xüsusiyyət dəyişənlərinin bəziləri aşağıdakılardır:
Öncədən qurulmuş olan [şəkərli diabet data setinə](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) 10 xüsusiyyət dəyişəni olmaqla bu xəstəliklə bağlı 442 nümunə daxildir. Xüsusiyyət dəyişənlərinin bəziləri aşağıdakılardır:
- age: illər ilə yaş
- bmi: bədənin çəki indeksi
- bp: ortalama qan təzyiqi
- s1 tc: T-hüceyrələri(ağ qan hüceyrələrinin növü)
- bp: eortalama qan təzyiqi
- s1 tc: T-hüceyrələri (ağ qan hüceyrələrinin növü)
✅ Bu data massivinə, şəkərli diabet haqqında araşdırma etmək üçün önəmli bir xüsusiyyət dəyişəni olaraq 'cins' anlayışı da daxildir. Əksər tibbi data massivlərinə bu tip ikili sinifləndirmə daxil edilir. Bir qədər bu formada kateqoriyalaşdırılmanın əhalinin bir qismini müalicələrdən necə kənarda tuta biləcəyi barəsində düşünün.
✅ Bu data setinə şəkərli diabet haqqında araşdırma etmək üçün önəmli bir xüsusiyyət dəyişəni olaraq 'cins' anlayışı da daxildir. Əksər tibbi data setinə bu tip ikili sinifləndirmə daxil edilir. Bir qədər bu formada kateqoriyalaşdırılmanın əhalinin bir qismini müalicələrdən necə kənarda tuta biləcəyi barəsində düşünün.
İndi isə, X və y datalarını yükləyək.
> 🎓 Yadda saxlayın ki, bu nəzarətli öyrənmə olduğuna görə 'y' adlı hədəfə ehtiyacımız var.
Yeni kod xanasında, şəkərli diabet data massivini `load_diabetes()`-i çağıraraq yükləyin. Verilən `return_X_y=True`, `X`-in bir data matrisi, `y`-in isə reqressiya hədəfi olacağını göstərir.
Yeni kod xanasında, şəkərli diabet data setini `load_diabetes()` çağıraraq yükləyin. Verilən `return_X_y=True`, `X`-in bir data matrisi, `y`-in isə reqressiya hədəfi olacağını göstərir.
1. Data matrisinin formasını və ilk elementini göstərmək üçün bir neçə "print" komandası əlavə edin:
@ -148,9 +148,9 @@ Yeni kod xanasında, şəkərli diabet data massivini `load_diabetes()`-i çağ
print(X[0])
```
Cavab olaraq aldığınız şey, tuple adlanır. Etdiyiniz isə, tuple-ın ilk iki dəyərini sıra ilə `X` və `y`-ə mənimsətməkdir. Tuple haqqında ətraflı [buradan](https://wikipedia.org/wiki/Tuple) öyrənin.
Cavab olaraq aldığınız şey - *tuple* adlanır. Etdiyiniz isə *tuple*-un ilk iki dəyərini sıra ilə `X` və `y`-ə mənimsətməkdir. Tuple haqqında ətraflı [buradan](https://wikipedia.org/wiki/Tuple) öyrənin.
Gördüyünüz kimi bu məlumat, 10 elementli massivi olan 442 bənddən ibarətdir:
Gördüyünüz kimi bu məlumat, 10 elementli massivi olan 442 sətirdən ibarətdir:
```text
(442, 10)
@ -158,18 +158,18 @@ Yeni kod xanasında, şəkərli diabet data massivini `load_diabetes()`-i çağ
-0.04340085 -0.00259226 0.01990842 -0.01764613]
```
✅ Data və reqressiya hədəfi arasındakı əlaqə barəsində biraz düşünün. Xətti reqressiya X xüsusiyyəti ilə y dəyişəni arasındakı əlaqəni təxmin edir. Dokumentasiyada şəkərli diabet data massivindəki [hədəfi](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) tapa bilərsiniz? Bu data massivi hədəf nəzərdə tutulduqda, nəyi təsvir edir?
✅ Data və reqressiya hədəfi arasındakı əlaqə barəsində biraz düşünün. Xətti reqressiya X xüsusiyyəti ilə y dəyişəni arasındakı əlaqəni təxmin edir. Dokumentasiyada şəkərli diabet data setindəki [hədəfi](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) tapa bilərsiniz? Bu data massivi hədəf nəzərdə tutulduqda nəyi təsvir edir?
2. Növbəti olaraq, qrafiki təsvir üçün bu data massivinin 3-cü sütununu seçin. Bunu `:` operatoru ilə bütün sıraları seçərək və daha sonra index(2) ilə bütün sütunları seçərək edə bilərsiniz. Əlavə olaraq, siz məlumatı qrafiki təsvir üçün tələb olunduğuna görə, `reshape(n_rows, n_columns)` istifadə edərək 2 ölçülü massiv formasına də sala bilərsiniz.
2. Növbəti olaraq qrafiki təsvir üçün bu data setinin 3-cü sütununu seçin. Bunu `:` operatoru ilə bütün sıraları seçərək və daha sonra `index(2)` ilə bütün sütunları seçərək edə bilərsiniz. Əlavə olaraq siz datanı qrafiki təsvir üçün tələb olunduğuna görə `reshape(n_rows, n_columns)` istifadə edərək 2 ölçülü massiv formasına də sala bilərsiniz.
```python
X = X[:, 2]
X = X.reshape((-1,1))
```
✅ İstənilən vaxt, datanın quruluşunu yoxlamaq üçün məlumatı ekrana çap edə bilərsiniz.
✅ İstənilən vaxt datanın quruluşunu yoxlamaq üçün məlumatı ekrana çap edə bilərsiniz.
3. Artıq qrafikləşdirilə bilən datanız olduğu üçün, maşının bu data massivindəki rəqəmlər arasındakı məntiqi bölgünü təyin etməyə yardımçı ola bilib-bilmədiyini görə bilərsiniz. Bunun üçün hər iki (X) və hədəf (y) datalarını test və öyrətmə massivlərinə ayırmağınıza ehtiyacınız var. Scikit-learn-ün bunu etmək üçün sadə bir yolu var; istənilən nöqtədə test datanızı ayıra bilərsiniz.
3. Artıq qrafikləşdirilə bilən datanız olduğu üçün maşının bu data setindəki rəqəmlər arasındakı məntiqi bölgünü təyin etməyə yardımçı ola bilib-bilmədiyini görə bilərsiniz. Bunun üçün hər iki (X) və hədəf (y) datalarını test və öyrətmə setlərinə ayırmağınıza ehtiyacınız var. Scikit-learn-ün bunu etmək üçün sadə bir yolu var; istənilən nöqtədə test datanızı ayıra bilərsiniz.
```python
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
@ -182,9 +182,9 @@ Yeni kod xanasında, şəkərli diabet data massivini `load_diabetes()`-i çağ
model.fit(X_train, y_train)
```
✅ `model.fit()` TensorFlow kimi birçox MÖ kitabxanasında görə biləcəyiniz bir funksiyadır.
✅ `model.fit()` TensorFlow kimi birçox ML kitabxanasında görə biləcəyiniz bir funksiyadır.
5. Daha sonra, test datasından və `predict()` funksiyasından istifadə etməklə proqnoz yaradın. Bu proqnoz, data qrupları arasındakı xəttin çəkilməsi üçün istifadə olunacaq.
5. Daha sonra, test datasından və `predict()` funksiyasından istifadə etməklə proqnoz yaradın. Bu proqnoz data qrupları arasındakı xəttin çəkilməsi üçün istifadə olunacaq.
```python
y_pred = model.predict(X_test)
@ -207,18 +207,18 @@ Yeni kod xanasında, şəkərli diabet data massivini `load_diabetes()`-i çağ
İlk reqressiya modelinizi qurduğunuz, onunla proqnoz yaradıb və təsvir etdiyiniz üçün təbriklər!
## 🚀Məşğələ
## 🚀 Məşğələ
Bu data massivindən fərqli bir dəyişən üçün qrafik çəkin. İpucu: bu sətirə düzəliş edin: `X = X[:,2]`. Data massivinin hədəfi verilmək şərti ilə, şəkərli diabetin xəstəlik olaraq inkişafı ilə bağlı nələri tapa bilərsiniz?
Bu data setindən fərqli bir dəyişən üçün qrafik çəkin. İpucu: bu sətirə düzəliş edin: `X = X[:,2]`. Data massivinin hədəfi verilmək şərti ilə şəkərli diabetin xəstəlik olaraq inkişafı ilə bağlı nələri tapa bilərsiniz?
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/10/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/10/?loc=az)
## Təkrarlayın və özünüz öyrənin
Bu təlimatda, çoxdəyişənli və yaxud çoxlu xətti reqressiya yerinə,sadə xətti reqressiya ilə işlədiniz. Bu metodlar arasındakı fərqlər barəsində oxuyun və ya [bu videoya](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) nəzər salın.
Bu təlimatda çoxdəyişənli və yaxud çoxlu xətti reqressiya yerinə,sadə xətti reqressiya ilə işlədiniz. Bu metodlar arasındakı fərqlər barəsində oxuyun və ya [bu videoya](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) nəzər salın.
Reqressiya konsepti haqqında oxuyun və bu texnika vasitəsilə hansı tip suallara cavab tapıla bildiyi barəsində düşünün. Anlayışınızı dərinləşdirmək üçün bu [təlimatı](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott) keçin.
## Tapşırıq
[Fərqli bir data massivi](assignment.az.md)
[Fərqli bir data seti](assignment.az.md)

@ -8,6 +8,6 @@ Scikit-learn-dəki [Linnerud data massivinə](https://scikit-learn.org/stable/mo
## Qiymətləndirmə
| Kriteriya | Örnək | Adekvat | İnkişaf Etdirilməlidir |
| ------------------------------ | ---------------------------------------- | ----------------------------- | -------------------------- |
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | -------- | ------- | ------------------------ |
| Təsviri paraqraf göndərin | Ətraflı izah edilmiş paraqraf göndərildi | Bir neçə cümlə göndərildi | İzah verilmədi |

@ -1,26 +1,26 @@
# Scikit-learn ilə reqressiya modelləri qurun: hazırlayın və datanı vizuallaşdırın
# Scikit-learn ilə reqressiya modelləri qurun: datanı hazırlayın və vizuallaşdırın
![Data vizuallaşdırılması barədə infoqraf](../images/data-visualization.png)
[Dasani Madipalli](https://twitter.com/dasani_decoded) tərəfindən yaradılmış infoqraf
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/11/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/11/?loc=az)
> ### [Bu dərs R proqramlaşdırma dili ilə də mövcuddur!](../solution/R/lesson_2.html)
## Giriş
Artıq Scikit-learn ilə maşın öyrənməsi modelləri qurmaq üçün lazım olan alətləri quraşdırdığınıza üçün, datanız haqqında suallar soruşmağa hazırsınız. Data ilə işləyərkən və maşın öyrənməsi həlləri tətbiq edərkən, data massivinizin potensialını düzgün formada ortaya çıxarmağınız üçün düzgün sualı necə verməli oldduğunuzu başa düşmək çox vacibdir.
Artıq Scikit-learn ilə maşın öyrənməsi modelləri qurmaq üçün lazım olan alətləri quraşdırdığınız üçün datanız haqqında suallar soruşmağa hazırsınız. Data ilə işləyərkən və maşın öyrənməsi həlləri tətbiq edərkən data setinizin potensialını düzgün formada ortaya çıxarmağınız üçün düzgün sualı necə verməli olduğunuzu başa düşmək çox vacibdir.
Bu dərsdə siz:
- Datanızı model qurulması necə hazırlamağı
- Matplotlib-i data vizuallaşdırması üçün necə istifadə etməyi
- Matplotlib data vizuallaşdırması üçün necə istifadə etməyi
öyrənəcəksiniz.
## Datanızla bağlı sualı düzgün formada soruşmaq
Cavablayacağınız sual, sizin hansı növ MÖ alqoritmlərindən faydalanacağınızı müəyyən edəcək. Alacağınız cavabın keyfiyyəti isə bilavasitə datanızın təbiətindən asılı olacaqdır.
Cavablayacağınız sual sizin hansı növ ML alqoritmlərindən faydalanacağınızı müəyyən edəcək. Alacağınız cavabın keyfiyyəti isə bilavasitə datanızın təbiətindən asılı olacaqdır.
Bu dərs üçün verilmiş [dataya](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) nəzər salın. Bu .csv faylını VS Code ilə aça bilərsiniz. Sürətli bir gözdən keçirmə ilə məlum olur ki, fayl boşluqlar, mətn və ədədi dataların qarışığından ibarətdir. Bundan əlavə, cədvəldə 'sacks', 'bins' və digər dəyərlərin qarışığından ibarət 'Package' adlı qəribə bir sütun da mövcuddur. Data, əslində, biraz qarışıqdır.
@ -28,7 +28,7 @@ Bu dərs üçün verilmiş [dataya](https://github.com/microsoft/ML-For-Beginner
> 🎥 Bu dərs üçün datanın hazırlanmasının üzərindən keçən qısa video üçün yuxarıdakı şəkilin üzərinə klikləyin.
Faktiki olaraq, MÖ modeli qurmaq üçün tamamilə istifadəyə hazır bir data massivi ilə təmin olunmaq o qədər də geniş yayılmayıb. Bu dərsdə siz xam data massivini standart Python kitabxanalarının köməyi ilə necə hazır formaya gətirəcəyinizi öyrənəcəksiniz. Bundan əlavə, həmin dataların vizuallaşdırma texnikalarını da öyrənmiş olacaqsınız.
Faktiki olaraq, ML modeli qurmaq üçün tamamilə istifadəyə hazır bir data seti ilə təmin olunmaq o qədər də geniş yayılmayıb. Bu dərsdə siz xam data setini standart Python kitabxanalarının köməyi ilə necə hazır formaya gətirəcəyinizi öyrənəcəksiniz. Bundan əlavə, həmin dataların vizuallaşdırma texnikalarını da öyrənmiş olacaqsınız.
## Araşdırma: 'balqabaq bazarı'
@ -36,7 +36,7 @@ Bu qovluqda yerləşən `data` adlı qovluğunda siz, şəhərlər üzrə sıral
### Datanın hazırlanması
Bu data publik domendə yerləşir. O Amerika Birləşmiş Ştatlarının Kənd Təsərrüfatı Nazirliyinin vebsaytından şəhərlər üzrə, ayrı-ayrı fayllar olaraq yüklənilə bilər. Çoxlu ayrı-ayrı fayllardan yayınmaq üçün, biz bütün şəhərlər üzrə olan dataları bir cədvələ yerləşdirmişik. Bununla, az da olsa datanı _hazırlamışıq_. Növbəti addımda, gəlin məlumatları daha diqqətlə nəzərdən keçirək.
Bu data publik domendə yerləşir. O Amerika Birləşmiş Ştatlarının Kənd Təsərrüfatı Nazirliyinin vebsaytından şəhərlər üzrə ayrı-ayrı fayllar olaraq yüklənilə bilər. Çoxlu ayrı-ayrı fayllardan yayınmaq üçün biz bütün şəhərlər üzrə olan dataları bir cədvələ yerləşdirmişik. Bununla az da olsa datanı _hazırlamışıq_. Növbəti addımda gəlin məlumatları daha diqqətlə nəzərdən keçirək.
### Balqabaqlar datası - ilkin nəticələr
@ -50,9 +50,9 @@ Gəlin bu balqabaqlar datasını analiz etmək və hazır formaya gətirmək ü
### Birinci, boş buraxılmış tarixləri yoxlayın
Boş buraxılan tarixləri yoxlamaq üçün ilk öncə bir neçə addımı icra etməliniz:
Boş buraxılan tarixləri yoxlamaq üçün ilk öncə bir neçə addımı icra etməliyik:
1. Tarixləri ay formatına keçirək(bu tarixlər ABŞ tarixləri olduğu üçün onların formatı `MM/DD/YYYY` kimidir).
1. Tarixləri ay formatına keçirdək (bu tarixlər ABŞ tarixləri olduğu üçün onların formatı `MM/DD/YYYY` kimidir).
2. Ayı başqa sütuna köçürün.
_notebook.ipynb_ faylını Visual Studio Code-da açın və cədvəli yeni Pandas datafreyminə köçürün.
@ -71,7 +71,7 @@ _notebook.ipynb_ faylını Visual Studio Code-da açın və cədvəli yeni Panda
```python
pumpkins.isnull().sum()
```
Boş datalar olsa da, düşünürük ki hazırki tapşırıqda bunun bir önəmi olmayacaq.
Boş datalar olsa da, düşünürük ki, hazırki tapşırıqda bunun bir önəmi olmayacaq.
3. Datafreym ilə işləməyi asanlaşdırmaq üçün orijinal datafreymdən sətirlər qrupunu (birinci parametr kimi ötürülür) və sütunları (ikinci parametr kimi ötürülür) çıxaran `loc` funksiyasından istifadə edərək yalnız sizə lazım olan sütunları seçin. Nümunədəki `:` ifadəsi "bütün sətirlər" deməkdir.
@ -84,7 +84,7 @@ _notebook.ipynb_ faylını Visual Studio Code-da açın və cədvəli yeni Panda
Verilən ayda balqabağın orta qiymətini necə təyin edəcəyiniz barədə biraz düşünün. Bu tapşırıq üçün hansı sütunları seçəcəksiniz? İpucu: 3 sütuna ehtiyacınız olacaq.
Həll: yeni Price sütununu doldurmaq üçün `Low Price` və `High Price` sütunlarının ortalama dəyərini götürün və Date sütununu yalnız ayları göstərəcək formaya çevirin. Xoşbəxtlikdən, yuxarıdakı yoxlanışa görə, tarixlər və qiymətlər üzrə boş data yoxdur.
Həll: yeni Price sütununu doldurmaq üçün `Low Price` və `High Price` sütunlarının ortalama dəyərini götürün və Date sütununu yalnız ayları göstərəcək formaya çevirin. Xoşbəxtlikdən, yuxarıdakı yoxlanışa görə tarixlər və qiymətlər üzrə boş data yoxdur.
1. Ortalamanı hesablamaq üçün aşağıdakı kodu əlavə edin:
@ -95,21 +95,21 @@ Həll: yeni Price sütununu doldurmaq üçün `Low Price` və `High Price` sütu
```
✅ İstədiyiniz datanı ekrana çap etdirmək üçün `print(month)` istifadə edə bilərsiniz.
2. İndi isə, çevrilmiş datanızı Pandas datafreyminə kopyalayın:
2. İndi isə çevrilmiş datanızı Pandas datafreyminə kopyalayın:
```python
new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
```
Datafreyminizi ekrana çap etdirdikdə yeni reqressiya modeli qura biləcəyiniz təmiz, səliqəli bir data massivi görəcəksiniz.
Datafreyminizi ekrana çap etdirdikdə yeni reqressiya modeli qura biləcəyiniz təmiz, səliqəli bir data seti görəcəksiniz.
### Amma gözləyin! Burada nəsə düz deyil
`Package` sütununa baxdıqda, balqabaqların fərqli konfiqurasiyalarda satıldığını görürük. Bəziləri '1 1/9 buşel' ölçüdə, bəziləri isə '1/2 bushel' ölçülərdə, bəziləri balqabaq başına, bəziləri funtla, bəziləri isə müxtəlif eni olan böyük qutularda satılır.
`Package` sütununa baxdıqda, balqabaqların fərqli konfiqurasiyalarda satıldığını görürük. Bəziləri '1 1/9 bushel' ölçüdə, bəziləri isə '1/2 bushel' ölçülərdə, bəziləri balqabaq başına, bəziləri funtla, bəziləri isə müxtəlif eni olan böyük qutularda satılır.
> Görünür balqabaqları standart formada çəkmək çox çətindir.
İlkin məlumatlara nəzər yetirdikdə, `Unit of Sale` ilə 'EACH' və ya 'PER BIN'-ə bərabər olan hər şeyin həm də hər düymə, qab başına və ya 'hər biri' tipli `Package` növü var. Balqabaqları standart formada çəkmək çox çətin olduğu üçün, gəlin onları `Package` sütununda yalnız 'bushel' sətri olan balqabaqları seçərək filterləyək.
İlkin məlumatlara nəzər yetirdikdə, `Unit of Sale` ilə 'EACH' və ya 'PER BIN'-ə bərabər olan hər şeyin həm də hər ədədinə, qab başına və ya 'hər biri' tipli `Package` növü var. Balqabaqları standart formada çəkmək çox çətin olduğu üçün, gəlin onları `Package` sütununda yalnız 'bushel' sətri olan balqabaqları seçərək filtirləyək.
1. Faylın başlıq hissəsinə, ilkin .csv köçürməsi etdiyiniz hissənin aşağısına filteri əlavə edin:
@ -135,11 +135,11 @@ Hər sıraya görə buşelin miqdarının fərqləndiyinin fərqinə vardınız?
Artıq siz, buşel ölçülərinə əsasən qiymətləri analiz edə bilərsiniz. Dataları yenidən ekrana çap etdirsəniz, onların necə standartlaşdırıldığını görəcəksiniz.
✅ Yarım buşel olaraq satılan balqabaqların çox baha olduğunun fərqinə vardınız? Səbəbini tapa bilərsiniz? İpucu: kiçik balqabaqların böyüklərdən qat-qat baha olmasının səbəbi, çox güman ki, bir böyük balqabağın buşeldə yaratdığı boş sahə ilə müqayisədə, balaca balqabaqlardan həmin buşelə daha çox yerləşmələridir.
✅ Yarım buşel olaraq satılan balqabaqların çox baha olduğunun fərqinə vardınız? Səbəbini tapa bilərsiniz? İpucu: kiçik balqabaqların böyüklərdən qat-qat baha olmasının səbəbi, çox güman ki, bir böyük balqabağın buşeldə yaratdığı boş sahə ilə müqayisədə balaca balqabaqlardan həmin buşelə daha çox yerləşmələridir.
## Vizuallaşdırma Texnikaları
Data aliminin vəzifələrinin bir hissəsi də üzərində işlədikləri datanın keyfiyyət və təbiətini göstərə bilmələridir. Bunu etmək üçün onlar tez-tez maraqlı vizuallar, datanın müxtəlif aspektlərini göstərmək məqsədilə qrafiklər qururlar. Bu yolla onlar, tapılması çətin olan əlaqələri və boşluqları vizual olaraq göstərməyə çalışırlar.
Data mühəndislərinin vəzifələrinin bir hissəsi də üzərində işlədikləri datanın keyfiyyət və təbiətini göstərə bilmələridir. Bunu etmək üçün onlar tez-tez maraqlı vizuallar, datanın müxtəlif aspektlərini göstərmək məqsədilə qrafiklər qururlar. Bu yolla onlar, tapılması çətin olan əlaqələri və boşluqları vizual olaraq göstərməyə çalışırlar.
[![Yeni başlayanlar üçün maşın öyrənməsi - Matplotlib ilə Datanın Vizuallaşdırılması](https://img.youtube.com/vi/SbUkxH6IJo0/0.jpg)](https://youtu.be/SbUkxH6IJo0 "Yeni başlayanlar üçün maşın öyrənməsi - Matplotlib ilə Datanın Vizuallaşdırılması")
@ -147,11 +147,11 @@ Data aliminin vəzifələrinin bir hissəsi də üzərində işlədikləri datan
Vizuallaşdırma data üçün ən uyğun maşın öyrənməsi texnikasının təyin olunmasında da yardımçı olur. Məsələn, düz xətt üzrə inkişaf edən paylanma qrafiki bu datanın xətti reqressiya üçün uyğun namizəd olduğuna işarə edir.
Jupyter dəftərçələri ilə əla formada işləyən data vizuallaşdırma kitabxanası [Matplotlib-dir](https://matplotlib.org/)(keçən dərsdə gördüyünüz).
Jupyter notbukları ilə əla formada işləyən data vizuallaşdırma kitabxanası [Matplotlib-dir](https://matplotlib.org/)(keçən dərsdə gördüyünüz).
> [Bu təlimatlar](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott) ilə data vizuallaşdırılması ilə bağlı təcrübənizi artırın.
## Tapşırıq - Matplotlib ilə eksperiment
## Tapşırıq - Matplotlib ilə təcrübə
Yaratdığınız datafreymi vizuallaşdırmaq üçün bir neçə qrafik yaratmağa çalışın.
@ -161,8 +161,8 @@ Yaratdığınız datafreymi vizuallaşdırmaq üçün bir neçə qrafik yaratma
import matplotlib.pyplot as plt
```
2. Yenilənmə üçün dəftərçəni yenidən başladın.
3. Dəftərçənin aşağı hissəsinə datanı qutu formasında təsvir etməsi üçün yeni xana əlavə edin:
2. Yenilənmə üçün notbuku yenidən başladın.
3. Notbukun aşağı hissəsinə datanı qutu formasında təsvir etməsi üçün yeni xana əlavə edin:
```python
price = new_pumpkins.Price
@ -177,9 +177,9 @@ Yaratdığınız datafreymi vizuallaşdırmaq üçün bir neçə qrafik yaratma
Etdiyi tək şey datanızı verilən aylar üzrə nöqtələr toplusu kimi göstərmək olduğu üçün o qədər də faydalı hesab olunmur.
### Onu işə yarar et
### Onu faydalı et
Qrafiklərin yararlı informasiya göstərə bilməsi üçün, adətən dataları hansısa yolla qruplaşdırmanıza ehtiyac yaranır. Gəlin y oxunun ayları, dataların isə məlumatın yayılmasını göstərdiyi bir qrafik qurmağa çalışaq.
Qrafiklərin yararlı informasiya göstərə bilməsi üçün adətən dataları hansısa yolla qruplaşdırmanıza ehtiyac yaranır. Gəlin y oxunun ayları, dataların isə məlumatın yayılmasını göstərdiyi bir qrafik qurmağa çalışaq.
1. Qruplaşdırılmış barqraf yaratmaq üçün yeni xana yaradın:
@ -190,15 +190,15 @@ Qrafiklərin yararlı informasiya göstərə bilməsi üçün, adətən datalar
![Qiymətlə ay arasındakı əlaqəni göstərən barqraf](../images/barchart.png)
Bu daha faydalı data vizuallaşdırılması oldu! Deyəsən, balqabağın ən yüksək qiyməti sentyabr və oktyabr aylarına təsadüf edir. Bu sizin gözləntilərinizi qarşılayırmı? Niyə və ya niyə yox?
Bu daha faydalı data vizuallaşdırılması oldu! Deyəsən, balqabağın ən yüksək qiyməti sentyabr və oktyabr aylarına təsadüf edir. Bu sizin gözləntilərinizi qarşılayırmı? Niyə hə və ya niyə yox?
---
## 🚀Məşğələ
## 🚀 Məşğələ
Matplotlib-in təklif etdiyi müxtəlif vizuallaşdırma tiplərini araşdırın. Hansılar reqressiya problemləri üçün ən uyğunudur?
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/12/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/12/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -1,9 +1,9 @@
# Vizuallaşdırmanın araşdırılması
Datanı vizuallaşdırmaq üçün müxtəlif kitabxanalar mövcuddur. Nümunə dəftərçədə matplotlib və seaborn ilə Balqabaq datasını bir neçə formada vizuallaşdırın. Kitabxanalardan hansı ilə işləmək daha rahatdır?
Datanı vizuallaşdırmaq üçün müxtəlif kitabxanalar mövcuddur. Nümunə notbukda matplotlib və seaborn ilə Balqabaq datasını bir neçə formada vizuallaşdırın. Kitabxanalardan hansı ilə işləmək daha rahatdır?
## Qiymətləndirmə
| Kriteriya | Örnək | Adekvat | İnkişaf Etdirilməlidir |
| ---------- | ------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------- |
| | 2 araşdırma/vizualizasiyadan ibarət dəftərçə göndərildi | 1 araşdırma/vizualizasiyadan ibarət dəftərçə göndərildi | Dəftərçə göndərilmədi |
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | -------- | ------- | ------------------------ |
| | 2 araşdırma/vizualizasiyadan ibarət notbuk göndərildi | 1 araşdırma/vizualizasiyadan ibarət notbuk göndərildi | Notbuk göndərilmədi |

@ -2,11 +2,11 @@
![Xətti və Polinom reqressiya infoqrafiki](../images/linear-polynomial.png)
> [Dasani Madipalli](https://twitter.com/dasani_decoded) tərəfindən çəkilmiş infoqrafik
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/13/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/13/?loc=az)
> ### [Bu dərs R proqramlaşdırma dili ilə də mövcuddur!](../solution/R/lesson_3.html)
Artıq indiyək, bu dərs ərzində də istifadə edəcəyimiz balqabaq qiymətlərinin data massivi ilə reqressiyanın nə olduğunu araşdırmısınız. Həmçinin, Matplotlib ilə də onu vizuallaşdırmısınız.
İndiyədək və bu dərs ərzində istifadə edəcəyimiz balqabaq qiymətlərinin data seti ilə reqressiyanın nə olduğunu araşdırmısınız. Həmçinin, Matplotlib ilə də onu vizuallaşdırmısınız.
Artıq maşın öyrənməsi üçün reqressiyanın dərinliklərinə enməyə hazırsınız. Vizuallaşdırma sizə datadan məna çıxarmaqda yardımçı olsa da, maşın öyrənməsi gücünü _öyrətmə modellərindən_ alır. Modellər, data asılılıqlarını avtomatik olaraq tutmaq üçün keçmiş datalar üzərində öyrədilir və sizə modelin daha əvvəllər görmədiyi yeni datalar üçün proqnozlar verməyə imkan verirlər.
@ -20,20 +20,20 @@ Bu dərsdə siz reqressiyanın daha 2 növü olan _sadə xətti reqressiya_ ilə
### İlkin Şərt
Araşdırdığımız balqabaq datalarının strukturu ilə artıq tanış olmalısınız. Siz onu bu dərsin _notebook.ipynb_ faylında əvvəlcədən yüklənmiş və əvvəlcədən təmizlənmiş şəkildə tapa bilərsiniz. Faylda balqabağın qiyməti yeni datafreymdə buşel ilə göstərilmişdir. Bu dəftərçələri Visual Studio Code-da işlədə bildiyinizdən əmin olun.
Araşdırdığımız balqabaq datalarının strukturu ilə artıq tanış olmalısınız. Siz onu bu dərsin _notebook.ipynb_ faylında əvvəlcədən yüklənmiş və təmizlənmiş şəkildə tapa bilərsiniz. Faylda balqabağın qiyməti yeni datafreymdə buşel ilə göstərilmişdir. Bu notbukları Visual Studio Code-da işlədə bildiyinizdən əmin olun.
### Hazırlıq
Bu dataları sual vermək üçün yüklədiyinizi xatırlatmaq istəyirik.
- Balqabaq almaq üçün ən yaxşı vaxt nə vaxtdır?
- Balqabaq almaq üçün ən yaxşı vaxt nə zamandır?
- Bir qab miniatür balqabaqdan nə qədər qiymət gözləyə bilərəm?
- Onları yarım buşellik səbətlərlə, yoxsa 1 1/9 buşellik qutularda almalıyam?
Gəlin bu dataları araşdırmağa davam edək.
Bundan öncəki dərsdə, siz Pandas-da yeni datafreym yaradaraq onu orijinal data massivinin bir hissəsi ilə doldurdunuz və qiymətləri buşellə standartlaşdırdınız. Amma bunu etməklə siz ancaq payız ayları üçün təxminən 400 data nöqtəsi toplaya bildiniz.
Bundan öncəki dərsdə siz Pandas-da yeni datafreym yaradaraq onu orijinal data setinin bir hissəsi ilə doldurdunuz və qiymətləri buşellə standartlaşdırdınız. Amma bunu etməklə siz ancaq payız ayları üçün təxminən 400 data nöqtəsi toplaya bildiniz.
Bu dərsi müşayiət edən dəftərçəyə yüklədiyimiz datalara nəzər salın. Məlumatlar əvvəlcədən yüklənilmiş və paylanma qrafiki aylarla bağlı datanı göstərəcək formada çəkilmişdir. Bu datanı biraz da təmizləyərək onun təbiəti haqqında az da olsa əlavə məlumat ala bilərik.
Bu dərsi müşayiət edən notbuka yüklədiyimiz datalara nəzər salın. Məlumatlar əvvəlcədən yüklənilmiş və paylanma qrafiki aylarla bağlı datanı göstərəcək formada çəkilmişdir. Bu datanı biraz da təmizləyərək onun təbiəti haqqında az da olsa əlavə məlumat ala bilərik.
### Xətti reqressiya xətti
@ -65,16 +65,16 @@ Bütün məlumat nöqtələrimizdən ən az məcmu məsafəyə malik olan xətti
>![tənliyi tamamlayın](../images/calculation.png)
>
> Y-in dəyərini hesablayın. Əgər 4$ ətrafında ödəyirsinizsə, bu Aprel ayı olmalıdır! [Jen Looper](https://twitter.com/jenlooper) tərəfindən çəkilən infoqrafik.
> Xəttin hesablayan riyazi əməliyyat, kəsəndən və ya `X = 0` olduqda `Y`-in bərabər olduğu dəyərdən asılı olan bucaq əmsalını göstərməlidir.
> Xətti hesablayan riyazi əməliyyat kəsəndən və ya `X = 0` olduqda `Y`-in bərabər olduğu dəyərdən asılı olan bucaq əmsalını göstərməlidir.
> Bu dəyərlərin hesablanması üçün olan metodlara [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) vebsaytından baxa bilərsiniz. Ədədlərin sahib olduğu dəyərin xəttə necə təsir etməsinə baxmaq üçün isə [Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) saytına keçid edin.
## Korrelyasiya
Başa düşməniz lazım olan daha bir ifadə isə X və Y dəyişənləri arasındakı **korrelyasiya əmsalıdır**. Paylanma qrafikindən istifadə edərək bu əmsalları tez bir şəkildə vizuallaşdıra bilərsiniz. Aydın bir xətt üzrə səpələnmiş data nöqtələri olan qarifikin yüksək korrelyasiyası, hər yerə səpələnmiş data nöqtələri olan qrafikin isə aşağı korrelyasiyası olur.
Yaxşı bir reqresiyya modeli, reqressiya xətti ilə Ən Kiçik Kvadratlar Reqresiyyası metodundan istifadə olunmuş yüksək(0-dan fərqli, 1-ə yaxın) Korrelyasiya Əmsalı olan model hesab olunacaq.
Yaxşı bir reqresiyya modeli, reqressiya xətti ilə Ən Kiçik Kvadratlar Reqresiyyası metodundan istifadə olunmuş yüksək (0-dan fərqli, 1-ə yaxın) Korrelyasiya Əmsalı olan model hesab olunacaq.
✅ Bu dərsi müşayiət edən dəftərçəni işə salın and Ay-Qiymət paylanma qrafikinə baxın. Paylanma qrafikinin vizual təsvirinə əsasən balqabaq satışı üçün Ay ilə Qiyməti əlaqələndirən datanın yüksək yoxsa aşağı korrelyasiyası var? `Ay` əvəzinə daha dəqiq ölçüdən, məsələn *ilin günündən*(məsələn, il başlayandan keçən günlərin sayı) istifadə etsəniz dəyişiklik olacaqmı?
✅ Bu dərsi müşayiət edən notbuku işə salın və Ay-Qiymət paylanma qrafikinə baxın. Paylanma qrafikinin vizual təsvirinə əsasən balqabaq satışı üçün Ay ilə Qiyməti əlaqələndirən datanın yüksək yoxsa aşağı korrelyasiyası var? `Ay` əvəzinə daha dəqiq ölçüdən, məsələn *ilin günündən*(məsələn, il başlayandan keçən günlərin sayı) istifadə etsəniz dəyişiklik olacaqmı?
Aşağıdakı kodda, biz datanı təmizlədiyimizi və aşağıdakı formaya bənzər `new_pumpkins` adlı datafreymini əldə etdiyimizi fərz edirik:
@ -86,7 +86,7 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
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
> Datanı təmizləmək üçün istifadə olunan kodlara [`notebook.ipynb`](./notebook.ipynb) faylından baxa bilərsiniz. Keçən dərsdəki eyni təmizləmə addımlarını icra etmişik və `DayOfYear` adlı sütunu aşağıdakı ifadə ilə hesablamışıq:
> Datanı təmizləmək üçün istifadə olunan kodlara [`notebook.ipynb`](../notebook.ipynb) faylından baxa bilərsiniz. Keçən dərsdəki eyni təmizləmə addımlarını icra etmişik və `DayOfYear` adlı sütunu aşağıdakı ifadə ilə hesablamışıq:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
@ -145,7 +145,7 @@ pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Başqa bir yanaşma həmin boş dəyərləri müvafiq sütundakı orta qiymətlərlə doldurmaq olardı.
Başqa bir yanaşma, həmin boş dəyərləri müvafiq sütundakı orta qiymətlərlə doldurmaq olardı.
## Sadə xətti reqressiya
@ -161,16 +161,16 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
İlkin olaraq giriş(özəlliklər) və çıxış(label) dəyərlərini fərqli massivlərə ayıraraq başlayırıq:
İlkin olaraq giriş(özəlliklər) və çıxış(label) dəyərlərini fərqli setlərə ayıraraq başlayırıq:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
Diqqət edin ki, Xətti Reqressiya paketinin, giriş datasını düzgün başa düşməsi üçün onu `reshape`(yenidən formalaşdırmaq) etməli olduq. Xətti reqressiya giriş parametri olaraq, hər sırasının giriş özəlliklərindən ibarət vektora uyğun olduğu 2 ölüçülü massiv gözləyir. Bizim situasiyada yalnız bir giriş olduğu üçün N&times;1 formalı massivə ehtiyacımız olacaq. Buradakı N data setinin ölçüsünü bildirir.
Diqqət edin ki, Xətti Reqressiya paketinin giriş datasını düzgün başa düşməsi üçün onu `reshape`(yenidən formalaşdırmaq) etməli olduq. Xətti reqressiya giriş parametri olaraq hər sırasının giriş özəlliklərindən ibarət vektora uyğun olduğu 2 ölüçülü set gözləyir. Bizim situasiyada yalnız bir giriş olduğu üçün N&times;1 formalı setə ehtiyacımız olacaq. Buradakı N data setinin ölçüsünü bildirir.
Öyrədilmədən sonra modelimizi validasiya etməyimiz üçün datanı öyrətmə və test data setlərinə ayırmağa ehtiyacımız var:
Öyrətmədən sonra modelimizi validasiya etməyimiz üçün datanı öyrətmə və test data setlərinə ayırmağa ehtiyacımız var:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
@ -183,9 +183,9 @@ lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`.coef_` istifadə edərək `LinearRegression` obyektinin `fit` ilə uyğunlaşdırılandan sonra özündə saxladığı bütün reqressiya əmsallarına baxa bilərsiniz. Bizim situasiyada yalnız bir əmsal var ki, o da `-0.017` civarında olmalıdır. Bu da o deməkdir ki, qiymətlər zamanla düşsə də, bu düşüş çox yox, təxminən günə 2 sent civarında dəyişir. Həmçinin reqressiyanın Y oxu ilə kəsişmə nöqtəsinə `lin_reg.intercept_` ilə baxa bilərik. O isə bizim situasiyada `21` aralığında olacaq ki, bu da ilin əvvəlindəki qiyməti göstərir.
`.coef_` istifadə edərək `LinearRegression` obyektinin `fit` ilə uyğunlaşdırılandan sonra özündə saxladığı bütün reqressiya əmsallarına baxa bilərsiniz. Bizim situasiyada yalnız bir əmsal var ki, o da `-0.017` civarında olmalıdır. Bu da o deməkdir ki, qiymətlər zamanla düşsə də, bu düşüş çox yox, təxminən günə 2 sent civarında dəyişir. Həmçinin reqressiyanın Y oxu ilə kəsişmə nöqtəsinə `lin_reg.intercept` ilə baxa bilərik. O isə bizim situasiyada `21` aralığında olacaq ki, bu da ilin əvvəlindəki qiyməti göstərir.
Modelimizin nə dərəcə dəqiq olduğunu görmək üçün, test data setində qiymətləri təxmin edib, daha sonra onların gözlənilən qiymətlərə nə dərəcə yaxın olduğunu ölçə bilərik. Bunu orta kvadratik xəta(OKX), daha aydın formada desək, bütün gözlənilən və təxmin olunan dəyərlər arasındakı fərqin kvadratları cəminin ədədi ortası ölçümü ilə həll edə bilərik.
Modelimizin nə dərəcə dəqiq olduğunu görmək üçün test data setində qiymətləri təxmin edib, daha sonra onların gözlənilən qiymətlərə nə dərəcə yaxın olduğunu ölçə bilərik. Bunu orta kvadratik xəta (OKX), daha aydın formada desək, bütün gözlənilən və təxmin olunan dəyərlər arasındakı fərqin kvadratları cəminin ədədi ortası ölçümü ilə həll edə bilərik.
```python
pred = lin_reg.predict(X_test)
@ -224,7 +224,7 @@ Date və Price arasındakı əlaqəyə fərqli bucaqdan baxmağa çalışın. Si
Polinom reqressiya qeyri-xətti datalara daha yaxşı uyğunlaşmaq üçün əyri xətt yaradır. İndiki situasiyada, `DayOfYear` dəyişəninin kvadratını giriş datasına daxil etsək, datamızı parabolik əyriyə uyğunlaşdıra bilərik. Bunun sayəsində il ərzindəki hansısa nöqtədə minimum dəyərə malik olacağıq.
Scikit-learn-də data emalının müxtəlif addımlarını birləşdirmək üçün [payplayn API-ı](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) mövcuddur. **Payplayn**, **təxminedicilərdən** formalaşan bir zəncirdir. Bizim situasiyada, ilk öncə polinom özəllikləri modelimizə əlavə edən payplaynı yaradacayıq və daha sonra reqressiyanı öyrədəcəyik:
Scikit-learn-də data emalının müxtəlif addımlarını birləşdirmək üçün [payplayn API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) mövcuddur. **Payplayn**, **təxminedicilərdən** formalaşan bir zəncirdir. Bizim situasiyada ilk öncə polinom özəllikləri modelimizə əlavə edən payplaynı yaradacayıq və daha sonra reqressiyanı öyrədəcəyik:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -237,7 +237,7 @@ pipeline.fit(X_train,y_train)
`PolynomialFeatures(2)` istifadə edilməsi, bizim giriş datasındakı bütün ikinci dərəcəli polinomları daxil edəcəyimizi bildirir. Bizim vəziyyətimizdə bu, sadəcə `DayOfYear`<sup>2</sup> mənasını verəcək, amma iki giriş dəyişəni, X və Y verildikdə isə, bu, X<sup>2</sup>, XY və Y<sup>2</sup>-ni əlavə edəcək. İstəyə bağlı olaraq daha yüksək dərəcəli polinom da istifadə edə bilərik.
Payplaynlar orijinal `LinearRegression` obyektində olduğu kimi, eyni üsulla istifadə oluna bilər. Məsələn, payplaynı `fit` ilə uyğunlaşdıra, daha sonra isə təxmin nəticələrini əldə etmək üçün `predict`-i istifadə edə bilərik. Aşağıdakı qrafikdə test datası və təxmin əyrisi göstərilmişdir:
Payplaynlar orijinal `LinearRegression` obyektində olduğu kimi, eyni üsulla istifadə oluna bilər. Məsələn, payplaynı `fit` ilə uyğunlaşdıra, daha sonra isə təxmin nəticələrini əldə etmək üçün `predict` istifadə edə bilərik. Aşağıdakı qrafikdə test datası və təxmin əyrisi göstərilmişdir:
<img alt="Polynomial regression" src="../images/poly-results.png" width="50%"/>
@ -249,7 +249,7 @@ Polinom Reqressiyadan istifadə etməklə biz nəzərəçarpacaq qədər olmasa
## Kateqorik Xüsusiyyətlər
İdeal şəraitdə eyni modeldən istifadə edərək fərqli balqabaq növləri üçün təxminlər istəyə bilərik. Amma `Variety` sütunu qeyri-ədədi dəyərlərdən ibarət olduğu üçün `Month` sütunundan fərqlənir. Bu tip sütunlar **categorical** adlandırılır.
İdeal şəraitdə eyni modeldən istifadə edərək fərqli balqabaq növləri üçün təxminlər istəyə bilərik. Amma `Variety` sütunu qeyri-ədədi dəyərlərdən ibarət olduğu üçün `Month` sütunundan fərqlənir. Bu tip sütunlar **kateqorik** adlandırılır.
[![Yeni başlayanlar üçün maşın öyrənməsi - Xətti Reqressiya ilə Kateqorik Xüsusiyyətlərin Təxmini](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "Yeni başlayanlar üçün maşın öyrənməsi - Xətti Reqressiya ilə Kateqorik Xüsusiyyətlərin Təxmini")
@ -257,7 +257,7 @@ Polinom Reqressiyadan istifadə etməklə biz nəzərəçarpacaq qədər olmasa
Burada ortalama qiymətin növdən asılılığını görə bilərsiniz:
<img alt="Növlər üzrə ortalama qiymət" src="../images/price-by-variety.png" width="50%"/>
<img alt="Növlər üzrə ortalama qiymət" src="../images/price-by-variety.png" width="50%" style="background-color: white"/>
Növləri nəzərə alsaq, ilk olaraq biz onu ədədi formaya çevirməli və yaxud **kodlaşdırmalıyıq**. Bunu etməyimiz üçün müxtəlif yollar vardır:
@ -289,7 +289,7 @@ X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
Kodun qalan hissəsi yuxarıda Xətti Reqressiyanı öyrətməyimiz üçün istifadə olunan kodlarla eynidir. Əgər yoxlasanız orta kvadratik xətanın eyni olduğunu, amma determinasiya əmsalının çox daha yüksək(~77%) olduğunu görəcəksiniz. Daha da dəqiq təxminlər əldə etmək üçün, `Month` və ya `DayOfYear` tipli ədədi özəllikləri də nəzərə ala bilərik. Özəlliklərdən ibarət böyük bir massiv əldə etmək üçün `join`-dən istifadə edə bilərik:
Kodun qalan hissəsi yuxarıda Xətti Reqressiyanı öyrətməyimiz üçün istifadə olunan kodlarla eynidir. Əgər yoxlasanız, orta kvadratik xətanın eyni olduğunu, amma determinasiya əmsalının çox daha yüksək(~77%) olduğunu görəcəksiniz. Daha da dəqiq təxminlər əldə etmək üçün, `Month` və ya `DayOfYear` tipli ədədi özəllikləri də nəzərə ala bilərik. Özəlliklərdən ibarət böyük bir set əldə etmək üçün `join` istifadə edə bilərik:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -299,11 +299,11 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Burada bizə 2.84 (10%) OKX(orta kvadratik xəta), 0.94 determinasiya qaytaran `City` və `Package` tiplərini də nəzərə alırıq!
Burada bizə 2.84 (10%) OKX (orta kvadratik xəta), 0.94 determinasiya qaytaran `City` və `Package` tiplərini də nəzərə alırıq!
## Hamısını bir araya gətirərək
Ən yaxşı modeli qurmaq üçün, biz kompleks(tək-aktiv kodlaşdırılmış kateqorik + ədədi) dataları Polinom Reqressiya ilə birlikdə istifadə edə bilərik. İşinizi asanlaşdırmaq üçün kod nümunəsini aşağıda yerləşdirmişik:
Ən yaxşı modeli qurmaq üçün, biz mürəkkəb (tək-aktiv kodlaşdırılmış kateqorik + ədədi) dataları Polinom Reqressiya ilə birlikdə istifadə edə bilərik. İşinizi asanlaşdırmaq üçün kod nümunəsini aşağıda yerləşdirmişik:
```python
# set up training data
@ -343,11 +343,11 @@ Bu bizə 97%-lə ən yaxşı determinasiya əmsalını, və OKX=2.23 (~8% təxmi
🏆 Əla! Siz bir dərsdə 4 Reqressiya modeli yaratdınız və modelin keyfiyyətini 97%-ə qədər artırdınız. Reqressiyanın final bölməsində kateqoriyaları müəyyənləşdirmək üçün olan Logistik Reqressiya haqqında öyrənəcəksiniz.
## 🚀Məşğələ
## 🚀 Məşğələ
Bu dəftərçədə bir neçə fərqli dəyişəni test edərək korrelyasiyanın modelin dəqiqliyinə necə təsir etdiyini izləyin.
Bu notbukda bir neçə fərqli dəyişəni test edərək korrelyasiyanın modelin dəqiqliyinə necə təsir etdiyini izləyin.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/14/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/14/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -2,10 +2,10 @@
## Təlimatlar
Bu dərsdə sizə Xətti və Polinom Reqressiyalardan istifadə olunaraq model qurulması göstərildi. Bu məlumatlardan istifadə etməklə, Scikit-learn-ün hazır setlərindən və ya başqa bir data seti tapmaqla yeni bir model qurun. Dəftərçənizdə istifadə etdiyiniz texnikadan istifadə səbəbinizi əsaslandırın və modelinizin dəqiqliyini göstərin. Əgər o dəqiq deyilsə, səbəbini izah edin.
Bu dərsdə sizə Xətti və Polinom Reqressiyalardan istifadə olunaraq model qurulması göstərildi. Bu məlumatlardan istifadə etməklə Scikit-learn hazır setlərindən və ya başqa bir data seti tapmaqla yeni bir model qurun. Notbukunuzda istifadə etdiyiniz texnikadan istifadə səbəbinizi əsaslandırın və modelinizin dəqiqliyini göstərin. Əgər o dəqiq deyilsə, səbəbini izah edin.
## Qiymətləndirmə
| Kriteriya | Örnək | Adekvat | İnkişaf Etdirilməlidir |
| ---------- | ------------------------------------------------------- | ----------------------------------------------- | ------------------------------------- |
| | əla formada sənədləşdirilmiş dəftərçəni təqdim edir | həll yarımçıqdır | həll qüsurlu və ya səhvdir |
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | -------- | ------- | ------------------------ |
| | əla formada sənədləşdirilmiş notbuk təqdim edilib | həll yarımçıqdır | həll qüsurlu və ya səhvdir |

@ -1,8 +1,8 @@
# Kateqoriyaları təxmin etmək üçün logistik reqressiya
![Logistik və xətti reqressiya infoqrafiki](./images/linear-vs-logistic.png)
![Logistik və xətti reqressiya infoqrafiki](../images/linear-vs-logistic.png)
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/15/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/15/?loc=az)
> ### [Bu dərs R proqramlaşdırma dili ilə də mövcuddur!](../solution/R/lesson_4.html)
@ -29,13 +29,13 @@ Gəlin bir neçə dəyişən verilməklə _balqabağın hansı rəngdə(narınc
## Sualı müəyyənləşdirin
İstəklərimiz üzərindən gedərək bunu ikili formasında ifadə edəcəyik: 'Ağ' və ya 'Ağ olmayan'. Data dəstimizdə "zolaqlı" kateqoriya olsa da, bu tip bir neçə nümunə olduğu üçün, ondan istifadə etməyəcəyik. Hər bir halda, data dəstimizdən boş dəyərləri sildikdən sonra yox olacaqlar.
İstəklərimiz üzərindən gedərək bunu ikili formasında ifadə edəcəyik: 'Ağ' və ya 'Ağ olmayan'. Data dəstimizdə "zolaqlı" kateqoriya olsa da, bu tip bir neçə nümunə olduğu üçün ondan istifadə etməyəcəyik. Hər bir halda data setimizdən boş dəyərləri sildikdən sonra yox olacaqlar.
> 🎃 Maraqlı fakt. Bəzən ağ balqabaqlara 'ruh' balqabaqlar da deyirlər. Onları çərtmək o qədər də asan olmadığı üçün, narıncı balqabaqlar qədər məşhur deyillər. Amma çox gözəl görünürlər! Ona görə də biz sualımızı bir balaca yenidən formalaşdıra bilərik: 'Ruh olan' or 'Ruh olmayan'. 👻
> 🎃 Maraqlı fakt. Bəzən ağ balqabaqlara 'ruh' balqabaqlar da deyirlər. Onları çərtmək o qədər də asan olmadığı üçün narıncı balqabaqlar qədər məşhur deyillər. Amma çox gözəl görünürlər! Ona görə də biz sualımızı bir balaca yenidən formalaşdıra bilərik: 'Ruh olan' or 'Ruh olmayan'. 👻
## Logistik reqressiya haqqında
Logistik reqressiya, keçən dərslərdə haqqında öyrəndiyiniz xətti reqressiyadan bir neçə vacib yolla fərqlənir.
Logistik reqressiya keçən dərslərdə haqqında öyrəndiyiniz xətti reqressiyadan bir neçə vacib yolla fərqlənir.
[![Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsində Klassifikasiya üçün Logistik Reqressiyanın başa düşülməsi](https://img.youtube.com/vi/KpeCT6nEpBY/0.jpg)](https://youtu.be/KpeCT6nEpBY "Yeni başlayanlar üçün maşın öyrənməsi - Maşın Öyrənməsində Klassifikasiya üçün Logistik Reqressiyanın başa düşülməsi")
@ -43,23 +43,23 @@ Logistik reqressiya, keçən dərslərdə haqqında öyrəndiyiniz xətti reqres
### İkili klassifikasiya
Logistik reqressiya, xətti reqressiyanın təklif etdiyi özəllikləri təklif etmir. Biri ikili kateqoriya("narıncı olan və ya olmayan") haqqında təxminlər irəli sürsə də, digəri balqabağın mənşəyi və yığılma vaxtını nəzərə alsaq, _qiymətinin nə qədər yüksələcəyi_ tipli davamedici dəyərləri təxmin etmək potensialındadır.
Logistik reqressiya xətti reqressiyanın təklif etdiyi özəllikləri təklif etmir. Biri ikili kateqoriya ("narıncı olan və ya olmayan") haqqında təxminlər irəli sürsə də, digəri balqabağın mənşəyi və yığılma vaxtını nəzərə alsaq, _qiymətinin nə qədər yüksələcəyi_ tipli davamedici dəyərləri təxmin etmək potensialındadır.
![Balqabaq təsnifatlandırma modeli](./images/pumpkin-classifier.png)
![Balqabaq qruplaşdırma modeli](../images/pumpkin-classifier.png)
> [Dasani Madipalli](https://twitter.com/dasani_decoded) tərəfindən çəkilmiş infoqrafik
### Digər klassifikasiya
Multinomial və ordinal daxil olmaqla logistik reqressiyanın digər növləri mövcuddur:
Multinomial və ordinal daxil olmaqla logistik reqressiyanın digər növləri də mövcuddur:
- **Multinomial** özündə daha çox kateqoriyanı ehtiva edir. Məsələn, "Narıncı, Ağ, and Zolaqlı".
- Sıralanmış kateqoriyalardan ibarət olan **Ordinal** isə, limitli ölçülərə(mini,sm,med,lg,xl,xxl) görə sıranlamış balqabaqlarımız kimi, nəticələrimizi məntiqi olaraq sıralamaq istədikdə faydalıdır.
- Sıralanmış kateqoriyalardan ibarət olan **Ordinal** isə limitli ölçülərə (mini,sm,med,lg,xl,xxl) görə sıralanmış balqabaqlarımız kimi nəticələrimizi məntiqi olaraq sıralamaq istədikdə faydalıdır.
![Multinomial və ordinal reqressiya](../images/multinomial-vs-ordinal.png)
### Dəyişənlər korrelyasiya etməli deyil
Xətti reqressiyanın daha çox korrelyasiyalı dəyişənlərlə necə daha rahat işlədiyini xatırlayırsınızmı? Logistik reqressiyada bunun əksi baş verir. Belə ki, dəyişənlər uyğunlaşmasına ehtiyac yoxdur. Ona görə də, zəif korrelyasiyaları olan bu datamız üçün işə yarardır.
Xətti reqressiyanın daha çox korrelyasiyalı dəyişənlərlə necə daha rahat işlədiyini xatırlayırsınızmı? Logistik reqressiyada bunun əksi baş verir. Belə ki, dəyişənlər uyğunlaşmasına ehtiyac yoxdur. Ona görə də, zəif korrelyasiyaları olan bu datamız üçün işə yarayır.
### Çoxlu təmiz dataya ehtiyacınız var
@ -93,9 +93,9 @@ Xətti reqressiya daha çox data istifadə etdikcə daha dəqiq nəticələr ver
### Vizuallaşdırma - kateqorik qrafik
Artıq bir neçə dəfə [başlanğıc dəftərçəsini](./notebook.ipynb) yükləmiş və `Color` dəyişəni də daxil olmaqla bir neçə dəyişən qalacaq şəkildə onu təmizləmisiniz. Gəlin dəftərçədə datafreymimizi fərqli kitabxanadan-[Seaborn](https://seaborn.pydata.org/index.html)-dan istifadə edərək vizuallaşdıraq. Bu kitabxana əvvəlki dərslərdə istifadə etmiş olduğumuz Matplotlib kitabxanası üzərinə qurulmuşdur.
Artıq bir neçə dəfə [başlanğıc dəftərçəsini](../notebook.ipynb) yükləmiş və `Color` dəyişəni də daxil olmaqla bir neçə dəyişən qalacaq şəkildə onu təmizləmisiniz. Gəlin dəftərçədə datafreymimizi fərqli kitabxanadan - [Seaborn](https://seaborn.pydata.org/index.html)-dan istifadə edərək vizuallaşdıraq. Bu kitabxana əvvəlki dərslərdə istifadə etmiş olduğumuz Matplotlib kitabxanası üzərinə qurulmuşdur.
1. `catplot` funksiyasından, `pumpkins` adlı balqabaq datamızdan istifadə etməklə və hər balqabaq kateqoriyası (narıncı və ya ağ) üçün rəng xəritəsini təyin etməklə belə bir qrafik yaradın:
1. `catplot` funksiyasından `pumpkins` adlı balqabaq datamızdan istifadə etməklə və hər balqabaq kateqoriyası (narıncı və ya ağ) üçün rəng xəritəsini təyin etməklə belə bir qrafik yaradın:
```python
import seaborn as sns
@ -122,7 +122,7 @@ Bizim balqabaq datalarımızdakı bütün sütunlar mətni dəyərlərdən ibar
Özəlliklərin kodlaşdırılması üçün kodlaşdırıcıların 2 əsas tipi var:
1. Ordinal şifrələyicilər data dəstimizdəki `Item Size` sütununda olduğu kimi müəyyən məntiqi sıralamanı izləyən ordinal dəyişənlər üçün uyğundur. Bu şifrələyici, hər kateqoriyanı aid olduğu kateqoriyanın sütun sırasına uyğun ədədlə ifadə edən bir əlaqə yaradır.
1. Ordinal şifrələyicilər data dəstimizdəki `Item Size` sütununda olduğu kimi müəyyən məntiqi sıralamanı izləyən ordinal dəyişənlər üçün uyğundur. Bu şifrələyici hər kateqoriyanı aid olduğu sütun sırasına uyğun ədədlə ifadə edən bir əlaqə yaradır.
```python
from sklearn.preprocessing import OrdinalEncoder
@ -131,7 +131,7 @@ Bizim balqabaq datalarımızdakı bütün sütunlar mətni dəyərlərdən ibar
ordinal_features = ['Item Size']
ordinal_encoder = OrdinalEncoder(categories=item_size_categories)
```
2. Kateqorik şifrələyicilər isə date dəstimizdə `Item Size`-ı çıxmaq şərtilə digər özəlliklər kimi heç bir məntiqi qanunauyğunluğu izləməyən kateqorik dəyişlənlər üçün uyğundur. Bu tək-aktiv növ şifrələmədir. Bu növ şifrələmədə hər kateqoriya ikili sütunla ifadə olunur. Əgər balqabaq həmin növə aiddirsə 1, deyilsə şifrələnmiş dəyişən 0-a bərabər olur.
2. Kateqorik şifrələyicilər isə date dəstimizdə `Item Size` çıxmaq şərtilə digər özəlliklər kimi heç bir məntiqi qanunauyğunluğu izləməyən kateqorik dəyişlənlər üçün uyğundur. Bu tək-aktiv növ şifrələmədir. Bu növ şifrələmədə hər kateqoriya ikili sütunla ifadə olunur. Əgər balqabaq həmin növə aiddirsə 1, deyilsə şifrələnmiş dəyişən 0-a bərabər olur.
```python
from sklearn.preprocessing import OneHotEncoder
@ -153,7 +153,7 @@ Daha sonra bir neçə şifrələyicini 1 addımda birləşdirmək və müvafiq s
ct.set_output(transform='pandas')
encoded_features = ct.fit_transform(pumpkins)
```
Digər tərəfdən etiketi kodlaşdırmaq üçün, onları yalnız 0 və siniflərin_sayı-1(burada 0 və 1-dir) arasında olan dəyərlərlə normallaşdıran scikit-learn-ün `LabelEncoder` sinifindən istifadə edəcəyik.
Digər tərəfdən etiketi kodlaşdırmaq üçün onları yalnız 0 və siniflərin_sayı-1 (burada 0 və 1-dir) arasında olan dəyərlərlə normallaşdıran scikit-learn-ün `LabelEncoder` sinifindən istifadə edəcəyik.
```python
from sklearn.preprocessing import LabelEncoder
@ -172,7 +172,7 @@ Digər tərəfdən etiketi kodlaşdırmaq üçün, onları yalnız 0 və sinifl
### Dəyişənlər arasındakı əlaqəni analiz edin
Artıq dəyişənlərimizi öncədən emal etdiyimizə görə, modelin verilən özəlliklərə uyğun etiketi nə qədər düzgün təxmin edə biləcəyi barədə fikir sahibi ola bilərik. Bunun üçün özəlliklərlə etiketlər arasındakı əlaqələri analiz edə bilərik.
Artıq dəyişənlərimizi öncədən emal etdiyimizə görə modelin verilən özəlliklərə uyğun etiketi nə qədər düzgün təxmin edə biləcəyi barədə fikir sahibi ola bilərik. Bunun üçün özəlliklərlə etiketlər arasındakı əlaqələri analiz edə bilərik.
Bu tip analizləri aparmağın ən yaxşı yolu onları qrafikləşdirməkdir. Bu dəfə də kateqorik qrafikdə `Item Size`, `Variety` və `Color` arasındakı əlaqəni vizuallaşdırmaq üçün Seaborn-un `catplot` funksiyasından istifadə edəcəyik. Datanı daha yaxşı vizuallaşdırmaq üçün şifrələnmiş `Item Size` və şifrələnməmiş `Variety` sütunlarını istifadə edirik.
```python
@ -217,7 +217,7 @@ Dəyişənləri yanaşı formada Seaborn qrafikləri ilə vizuallaşdıra bilər
> **🧮 Mənə riyaziyyatı göstərin**
>
> Logistik reqressiya [siqmoid funksiyalarından](https://wikipedia.org/wiki/Sigmoid_function) istifadə edən 'maksimum bənzərlik' konseptinə əsaslanır. Qrafiki formada 'Siqmoid Funksiyası' 'S' hərfinə oxşayır. Bu funksiya bir dəyər götürür və onu 0 və 1 arasındakı bir qiymətə köçürür. Qrafiki əyrisi isə 'logistik əyri' də adlanır. Düsturu isə bu formadadır:
> Logistik reqressiya [siqmoid funksiyalarından](https://wikipedia.org/wiki/Sigmoid_function) istifadə edilən 'maksimum bənzərlik' konseptinə əsaslanır. Qrafiki formada 'Siqmoid Funksiyası' 'S' hərfinə oxşayır. Bu funksiya bir dəyər götürür və onu 0 və 1 arasındakı bir qiymətə köçürür. Qrafiki əyrisi isə 'logistik əyri' də adlanır. Düsturu isə bu formadadır:
>
> ![logistic function](../images/sigmoid.png)
>
@ -292,26 +292,26 @@ Yuxarıdakıları ekrana çap edərək bir xal tablosu [reportu](https://scikit-
confusion_matrix(y_test, predictions)
```
Take a look at your model's confusion matrix:
Modelinizin xəta matrisinə baxın:
```output
array([[162, 4],
[ 11, 22]])
```
Scikit-learn-də, xəta matrisində Cərgələr(0 oxu) əsl etiketlər, sütunlar(1 oxu) isə təxmin edilənləri göstərir.
Scikit-learn-də xəta matrisində Cərgələr (0 oxu) əsl etiketlər, sütunlar (1 oxu) isə təxmin edilənləri göstərir.
| | 0 | 1 |
| :---: | :---: | :---: |
| 0 | TN | FP |
| 1 | FN | TP |
Burada nə baş verir? Misal üçün modelimizdən balqabaqları 2 ikili kateqoriya-'ağ' və 'ağ olmayan' üzrə təsnifləndirməyi istəmişik.
Burada nə baş verir? Misal üçün modelimizdən balqabaqları 2 ikili kateqoriya- 'ağ' və 'ağ olmayan' üzrə qruplaşdırmağı istəmişik.
- Modeliniz balqabağın ağ olmadığını təxmin edirsə və o, reallıqda 'ağ olmayan' kateqoriyasına aiddirsə, biz onu yuxarı sol rəqəmlə göstərilən doğru neqativ adlandırırıq.
- Modeliniz balqabağı ağ kimi təxmin edirsə və o, reallıqda 'ağ olmayan' kateqoriyasına aiddirsə, biz onu aşağı sol nömrə ilə göstərilən yanlış neqativ adlandırırıq.
- Modeliniz balqabağın ağ olmadığını təxmin edirsə və o, reallıqda 'ağ' kateqoriyasına aiddirsə, biz onu yuxarı sağ nömrə ilə göstərilən yanlış pozitiv adlandırırıq.
- Modeliniz balqabağı ağ kimi təxmin edirsə və o, reallıqda 'ağ' kateqoriyasına aiddirsə, biz onu aşağı sağ rəqəmlə göstərilən doğru pozitiv adlandırırıq.
- Modeliniz balqabağın ağ olmadığını təxmin edirsə və o reallıqda 'ağ olmayan' kateqoriyasına aiddirsə, biz onu yuxarı sol rəqəmlə göstərilən doğru neqativ (True Negative) adlandırırıq.
- Modeliniz balqabağı ağ kimi təxmin edirsə və o reallıqda 'ağ olmayan' kateqoriyasına aiddirsə, biz onu aşağı sol nömrə ilə göstərilən yanlış neqativ (False Negative) adlandırırıq.
- Modeliniz balqabağın ağ olmadığını təxmin edirsə və o reallıqda 'ağ' kateqoriyasına aiddirsə, biz onu yuxarı sağ nömrə ilə göstərilən yanlış pozitiv (False Positive) adlandırırıq.
- Modeliniz balqabağı ağ kimi təxmin edirsə və o reallıqda 'ağ' kateqoriyasına aiddirsə, biz onu aşağı sağ rəqəmlə göstərilən doğru pozitiv (True Positive) adlandırırıq.
Təxmin etdiyiniz kimi, daha çox sayda doğru pozitiv və doğru neqativlərə və daha az sayda yanlış pozitiv və yanlış neqativlərə üstünlük verilir. Bu da modelin daha yaxşı performans göstərdiyini göstərir.
@ -321,7 +321,7 @@ Dəqiqlik = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461
Xatırlama = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666
✅ Sual: Xəta matrisinə əsasən, bizim modelimiz necə işlədi? Cavab: O qədər də pis deyildi. Nəzərəçarpacaq qədər doğru neqativlər olmasına baxmayaraq, az da olsa yanlış neqativlər var.
✅ Sual: Xəta matrisinə əsasən bizim modelimiz necə işlədi? Cavab: O qədər də pis deyildi. Nəzərəçarpacaq qədər doğru neqativlər olmasına baxmayaraq, az da olsa yanlış neqativlər var.
TP/TN və FP/FN-nin xəta matrisinin xəritələşdirilməsinin köməyi ilə əvvəllər gördüyümüz şərtlərə yenidən baxaq:
@ -329,7 +329,7 @@ TP/TN və FP/FN-nin xəta matrisinin xəritələşdirilməsinin köməyi ilə ə
🎓 Xatırlama: TP/(TP + FN) Yaxşı etiketlənmiş və ya etiketlənməmiş fərqi olmadan, əldə edilmiş müvafiq nümunələrin bir hissəsi
🎓 f1-balı: (2 * dəqiqlik * Xatırlama)/(dəqiqlik + xatırlatma) Ən yaxşısı 1, ən pisi isə 0 olmaqla dəqiqlik və xatırlatmanın çəkili ortalaması
🎓 f1-balı: (2 * dəqiqlik * xatırlama)/(dəqiqlik + xatırlatma) Ən yaxşısı 1, ən pisi isə 0 olmaqla dəqiqlik və xatırlatmanın çəkili ortalaması
🎓 Dəstək: Alınan hər bir etiketin təkrarlanma sayı
@ -337,7 +337,7 @@ TP/TN və FP/FN-nin xəta matrisinin xəritələşdirilməsinin köməyi ilə ə
🎓 Makro Ortalama: Etiket balanssızlığını nəzərə almadan hər bir etiket üçün ölçülməmiş orta göstəricilərin hesablanması.
🎓 Çəkili Ortalama: Hər bir etiket üçün orta göstəricilərin hesablanması, etiket balanssızlığının hesaba qatılması və dəstəklərinə(hər etiket üçün doğru nümunələrin sayı) görə çəkiləndirilməsidir.
🎓 Çəkili Ortalama: Hər bir etiket üçün orta göstəricilərin hesablanması, etiket balanssızlığının hesaba qatılması və dəstəklərinə (hər etiket üçün doğru nümunələrin sayı) görə çəkiləndirilməsidir.
✅ Modelinizin yanlış neqativlərinin sayını azaltmaq istədikdə hansı ölçümü izləməli olduğunuzu düşünürsünüz?
@ -367,7 +367,7 @@ plt.title('ROC Curve')
plt.show()
```
Matplotlib-dən istifadə edərək modelin [Receiving Operating Characteristic(Qəbul Əməliyyatlarının Xarakteristikası)](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) və ya ROC əyrisini qrafikləşdirək. ROC əyriləri daha çox bir klassifikatorun nəticəsinin doğru və ya yanlış pozitivləri baxımından bir təsvirini yaratmaq üçün istifadə olunur. "ROC əyrilərində doğru pozitivlərin nisbəti Y oxu üzrə, yanlış pozitivlərin nisbəti isə X oxu üzrə göstərilir." Əyrinin dikliyi və qrafikin orta xətti ilə əyri arasındakı məsafə önəm daşıdığına görə, sürətlə yuxarı doğru çıxan və xətti keçən bir əyri istəyirsiniz. Bizim situasiyada, başlanğıcda yanlış pozitivlər var və daha sonra əyri düzgün bir şəkildə yuxarı və aşağı doğru gedir.
Matplotlib-dən istifadə edərək modelin [Receiving Operating Characteristic (Qəbul Əməliyyatlarının Xarakteristikası)](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) və ya ROC əyrisini qrafikləşdirək. ROC əyriləri daha çox bir klassifikatorun nəticəsinin doğru və ya yanlış pozitivləri baxımından bir təsvirini yaratmaq üçün istifadə olunur. "ROC əyrilərində doğru pozitivlərin nisbəti Y oxu üzrə, yanlış pozitivlərin nisbəti isə X oxu üzrə göstərilir." Əyrinin dikliyi və qrafikin orta xətti ilə əyri arasındakı məsafə önəm daşıdığına görə sürətlə yuxarı doğru çıxan və xətti keçən bir əyri istəyirsiniz. Bizim situasiyada, başlanğıcda yanlış pozitivlər var və daha sonra əyri düzgün bir şəkildə yuxarı və aşağı doğru gedir.
![ROC](../images/ROC_2.png)
@ -382,11 +382,11 @@ Nəticə `0.9749908725812341`-ə bərabərdir. ƏAS əmsalının 0 ilə 1 arası
Klassifikasiya ilə bağlı gələcək dərslərdə, modelin balını yüksəltmək üçün necə iterasiyalar etməyi öyrənəcəksiniz. Amma indilik bu qədər bəsdir. Reqressiya dərslərini bitirdiyinizə görə sizi təbrik edirik!
## 🚀Məşğələ
## 🚀 Məşğələ
Logistik reqressiya mövzusunda öyrəniləsi hələ çox şey var. Amma ən yaxşı öyrənmə təcrübə etməkdir. Bunun üçün dərsdəki analizə bənzər bir data dəsti tapın və onunla bir model qurun. Nə öyrəndiniz? Maraqlı data dəstləri üçün [Kaggle-ı](https://www.kaggle.com/search?q=logistic+regression+datasets) yoxlaya bilərsiniz.
Logistik reqressiya mövzusunda öyrəniləsi hələ çox şey var. Amma ən yaxşı öyrənmə təcrübə etməkdir. Bunun üçün dərsdəki analizə bənzər bir dataset tapın və onunla bir model qurun. Nə öyrəndiniz? Maraqlı datasetlər üçün [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) yoxlaya bilərsiniz.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/16/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/16/?loc=az)
## Təkrarlayın və özünüz öyrənin
@ -394,4 +394,4 @@ Logistik reqressiyanın praktiki istifadələri haqqında olan [bu məqalənin](
## Tapşırıq
[Reqressiyanın yenidən sınanması](assignment.az.md)
[Bəzi Reqressiyaların yenidən sınanması](assignment.az.md)

@ -1,11 +1,11 @@
# Reqressiyaların yenidən sınanması
# Bəzi Reqressiyaların yenidən sınanması
## Təlimatlar
Bu dərsdə siz balqabaqlarla bağlı olan məlumatların alt dəstindən istifadə etdiniz. İndi ilkin məlumatlara qayıdın və həmin dataların hamısının təmizlənmiş, standartlaşdırılmış formasından istifadə edərək Logistik Reqressiya modeli qurun.
Bu dərsdə siz balqabaqlarla bağlı olan məlumatların alt setindən istifadə etdiniz. İndi ilkin məlumatlara qayıdın və həmin dataların hamısının təmizlənmiş, standartlaşdırılmış formasından istifadə edərək Logistik Reqressiya modeli qurun.
## Qiymətləndirmə
| Meyarlar | Örnək | Adekvat | İnkişaf Etdirilməli olan |
| ---------- | ------------------------------------------------------- | ----------------------------------------------- | ------------------------------------- |
| | əla formada izah edilmiş və performansı güclü olan model təqdim edilir | minimal funksionallıqda bir model təqdim edilir | aşağı və ya qeyri funskionallıqlı model təqdim edilmişdir |
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | -------- | ------- | ------------------------ |
| | əla formada izah edilmiş və performansı güclü olan model təqdim edilib | minimal funksionallıqda bir model təqdim edilib | aşağı və ya qeyri funskionallıqlı model təqdim edilmişdir |

@ -15,25 +15,25 @@ Bu bölmədəki dərslər maşın öyrənməsi konteksti çərçivəsində reqre
Bu dərslər seriyasında, xətti və məntiqi reqressiyalar arasındakı fərqi, nə zaman hansını seçməli olduğunuzu öyrənəcəksiniz.
[![Yeni başlayanlar üçün MÖ - Maşın Öyrənməsi üçün reqressiya modellərinə giriş](https://img.youtube.com/vi/XA3OaoW86R8/0.jpg)](https://youtu.be/XA3OaoW86R8 "Yeni başlayanlar üçün MÖ - Maşın Öyrənməsi üçün reqressiya modellərinə giriş")
[![Yeni başlayanlar üçün ML- Maşın Öyrənməsi üçün reqressiya modellərinə giriş](https://img.youtube.com/vi/XA3OaoW86R8/0.jpg)](https://youtu.be/XA3OaoW86R8 "Yeni başlayanlar üçün ML- Maşın Öyrənməsi üçün reqressiya modellərinə giriş")
> 🎥 Reqressiya modellərinə giriş üçün yuxarıdakı şəkilin üzərinə klikləyin.
Bu dərslər qrupunda siz data alimləri üçün ümumi mühit olan dəftərçələri idarə etmək üçün Visual Studio Code-u konfiqurasiya etmək daxil olmaqla, maşın öyrənmə tapşırıqlarına başlamaq üçün hazırlaşdırılacaqsınız. Siz maşın öyrənməsi üçün olan Scikit-learn kitabxanası haqqında öyrənəcək və bu fəsildə Reqressiya modellərinə diqqət yetirərək ilk modellərinizi quracaqsınız.
Bu dərslər qrupunda siz data mühəndisləri üçün ümumi mühit olan notbukları maşın öyrənmə tapşırıqlarında idarə etmək üçün Visual Studio Code-u necə konfiqurasiya etməli olduğunuzu öyrənəcəksiniz. Siz maşın öyrənməsi üçün olan Scikit-learn kitabxanası haqqında öyrənəcək və bu fəsildə Reqressiya modellərinə diqqət yetirərək ilk modellərinizi quracaqsınız.
> Reqressiya modelləri ilə işləmək haqqında məlumat almanıza kömək olacaq az-kod yanaşmalı alətlər də mövcuddur. Bu tapşırıq üçün olan [Azure MÖ-i](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) sınaqdan keçirin.
> Reqressiya modelləri ilə işləmək haqqında məlumat almanıza kömək olacaq az-kod yanaşmalı alətlər də mövcuddur. Bu tapşırıq üçün olan [Azure ML-i](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) sınaqdan keçirin.
### Dərslər
1. [Ticarət alətləri](../1-Tools/translations/README.az.md)
2. [Datanın idarə olunması](2-Data/README.md)
3. [Xətti and polinomial reqressiya](3-Linear/README.md)
4. [Məntiqi reqressiya](4-Logistic/README.md)
2. [Datanın idarə olunması](../2-Data/transalations/README.az.md)
3. [Xətti and polinomial reqressiya](../3-Linear/translations/README.az.md)
4. [Logistik reqressiya](../4-Logistic/translations/README.az.md)
### Təşəkkürlər
"Reqressiya ilə MÖ" [Jen Looper](https://twitter.com/jenlooper) tərəfindən ♥️-lə yazılmışdır.
"Reqressiya ilə ML" [Jen Looper](https://twitter.com/jenlooper) tərəfindən ♥️-lə yazılmışdır.
♥️ Quizlərə töhvə verənlər: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) və [Ornella Altunyan](https://twitter.com/ornelladotcom)
Balqabaq data massivi [Kaagle-dakı bu proyekt](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) tərəfindən məsləhət görülmüşdür və məlumatlar Amerika Birləşmiş Ştatlarının Kənd Təsərrüfatı Nazirliyi tərəfindən dərc olunmuş [Xüsusi Bitkilər Terminal Bazarlarının Standart Hesabatlarından](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) götürülmüşdür. Paylanmanı normallaşdırmaq üçün müxtəlifliyə görə rəng əsaslı bəzi nöqtələr əlavə etmişik. Bu məlumatlar publik domendədir.
Balqabaq data seti [Kaagle-dakı bu proyekt](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) tərəfindən məsləhət görülmüşdür və datalar Amerika Birləşmiş Ştatlarının Kənd Təsərrüfatı Nazirliyi tərəfindən dərc olunmuş [Xüsusi Bitkilər Terminal Bazarlarının Standart Hesabatlarından](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) götürülmüşdür. Paylanmanı normallaşdırmaq üçün müxtəlifliyə görə rəng əsaslı bəzi nöqtələr əlavə etmişik. Bu məlumatlar publik domendədir.

@ -1,15 +1,15 @@
# MÖ Modeli istifadə etmək üçün veb tətbiq yaradaq
# ML modeli istifadə etmək üçün veb tətbiq yaradaq
Bu dərsdə MÖ modelini dünyamızdan tamamilə kənar data toplusu ilə məşq etdirəcəyik: _Ötən əsrdə UFO müşahidələri_, nümunəsi NUFORC verilənlər bazasından mənbə götürmüşdür.
Bu dərsdə ML modelini dünyamızdan tamamilə kənar data toplusu ilə öyrədəcəyik: _Ötən əsrdə UFO müşahidələri_, nümunəsi NUFORC verilənlər bazasından mənbə götürmüşdür.
Nələr öyrənəcəksiniz:
- Təlim edilmiş modeli necə pikl etmək ("turşuya qoymaq") (uzunmüddətli istifadə üçün) olar.
- Öyrədilmiş modeli necə pikl etmək ("turşuya qoymaq") (uzunmüddətli istifadə üçün) olar.
- Bu modeli Flask proqramında necə istifadə etmək olar
Məlumatları təmizləmək və modelimizi öyrətmək üçün noutbuklardan istifadəni davam etdirəcəyik. Prosesi bir addım irəli aparıb modeli “yabanı mühitdə” istifadə etməklə təcrübə apara bilərsiniz: Veb tətbiq daxilində bunu etmək üçün Flask istifadə edərək veb proqram qurmalısınız.
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/17/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/17/?loc=az)
## Proqram yaratmaq
@ -19,15 +19,15 @@ Maşın öyrənmə modellərini emal etmək üçün veb tətbiq yaratmağın bir
Soruşmalı olduğunuz çoxlu suallar var:
- **Bu veb yoxsa mobil tətbiqdir?** Əgər mobil tətbiq yaradırsınızsa və tətbiqi Əİ konteksində istifadə edəcəksinizsə, modeli Android və ya iOS tətbiqdə istifadə edə edərək [TensorFlow Lite](https://www.tensorflow.org/lite/) işlədə bilərsiniz.
- **Bu veb yoxsa mobil tətbiqdir?** Əgər mobil tətbiq yaradırsınızsa və tətbiqi IoT konteksində istifadə edəcəksinizsə, modeli Android və ya iOS tətbiqdə istifadə etmək üçün [TensorFlow Lite](https://www.tensorflow.org/lite/) istifadə edə bilərsiniz.
- **Model harada yerləşəcək?** Bulud yoxsa lokal yaddaşda?
- **Oflayn dəstək.** Tətbiq oflayn da işləməlidirmi?
- **Modeli öyrətmək üçün hansı texnologiya istifadə edilmişdir?** Seçilmiş texnologiya istifadə etməli olduğunuz alətlərə təsir göstərə bilər.
- **TensorFlow.** Məsələn, modeli TensorFlow istifadə edərək öyrədirsinizsə, ekosistem TensorFlow modelini veb proqramında istifadə etmək üçün çevirmək/dəyişdirmək imkanı verir. [TensorFlow.js](https://www.tensorflow.org/js/).
- **PyTorch.** Əgər modeli [PyTorch](https://pytorch.org/) ilə öyrədirsinizsə, onu [ONNX](https://onnx.ai/) istifadə edərək JavaScript veb tətbiqində [Onnx Runtime](https://www.onnxruntime.ai/) işlədə bilən xüsusi (Open Neural Network Exchange) formata eksport edə bilərsiniz. Bu seçim növbəti dərsdə Scikit tərəfindən öyrənilən model üçün araşdırılacaq.
- **Lobe.ai və ya Azure Custom Vision** Əgər modeli MÖ SaaS (Xidmət kimi Program) sistemi kimi [Lobe.ai](https://lobe.ai/) və ya [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) istifadə edərək öyrədirsinizsə, bu tip proqram təminatı bir çox platformalar üçün onu eksport etmək imkanı, həmçinin onlayn tətbiq tərəfindən buludda sorğulanan növbəli API yaradılmasını təmin edir.
- **Lobe.ai və ya Azure Custom Vision** Əgər modeli ML SaaS (Xidmət kimi Proqram) sistemi kimi [Lobe.ai](https://lobe.ai/) və ya [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) istifadə edərək öyrədirsinizsə, bu tip proqram təminatı bir çox platformalar üçün onu eksport etmək imkanı, həmçinin onlayn tətbiq tərəfindən buludda sorğulanan növbəli API yaradılmasını təmin edir.
Bütöv bir Flask veb tətbiqi yaradaraq veb brauzerdə modeli öyrətmək imkanınız var. Bunu həm də, JavaScript konteksində TensorFlow.js istifadə edərək də edə bilərsiniz.
Bütöv bir Flask veb tətbiqi yaradaraq veb brauzerdə modeli öyrətmək imkanınız var. Bunu həm də JavaScript konteksində TensorFlow.js istifadə edərək də edə bilərsiniz.
Məqsədə uyğun olaraq, Python əsaslı noutbuklarla işlədiyimizə görə öyrədilmiş modeli Python-da qurulmuş veb tətbiqi ilə oxuna bilən formatda daxil etmək üçün atmalı olduğunuz addımları araşdıraq.
@ -37,7 +37,7 @@ Bu tapşırığı yerinə yetirmək üçün iki alətə ehtiyacınız var: Pytho
✅ [Flask](https://palletsprojects.com/p/flask/) nədir? Yaradıcıları tərəfindən 'mikro-çərçivə' kimi adlandırılan Flask, Python istifadə edərək veb çərçivələrin əsas xüsusiyyətlərini və veb səhifələr yaratmaq üçün şablon mexanizmini təmin edir. Flask yaratmaq üçün [bu öyrənmə moduluna](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott) nəzər yetirin.
✅ [Pickle](https://docs.python.org/3/library/pickle.html) nədir? Pickle 🥒, Python obyekt strukturunu seriallaşdıran və deseriallaşdıran bir Python moduludur. Modeli 'pickle' etdiyiniz zaman, onun strukturunu veb üçün seriallaşdırır və dəqiqləşdirirsiniz. Diqqət edin ki pickle mahiyətcə təhlükəsiz deyil. Bu səbəbdən faylı 'un-pickle' etməyə çağrıldıqda diqqətli olmaq lazımdır. 'pickle' edilmiş fayl `.pkl` uzantısına sahib olur.
✅ [Pickle](https://docs.python.org/3/library/pickle.html) nədir? Pickle 🥒, Python obyekt strukturunu seriallaşdıran və deseriallaşdıran bir Python moduludur. Modeli 'pickle' etdiyiniz zaman, onun strukturunu veb üçün seriallaşdırır və dəqiqləşdirirsiniz. Diqqət edin ki pickle mahiyyətcə təhlükəsiz deyil. Bu səbəbdən faylı 'un-pickle' etməyə çağrıldıqda diqqətli olmaq lazımdır. 'pickle' edilmiş fayl `.pkl` uzantısına sahib olur.
## Məşğələ - datanı təmizlə
@ -48,7 +48,7 @@ Bu dərsdə [NUFORC](https://nuforc.org) (Milli UFO Melumatlar Mərkəzi) tərə
[ufos.csv](../data/ufos.csv) cədvəli görülmənin baş verdiyi `şəhər`, `ştat` and `ölkə`, obyektin `forması`, `coğrafi enlik` və `çoğrafi uzunluq` sütunlarına bölün.
Bu dərsə daxil olan boş [qeyd dəftəri](../notebook.ipynb) verilmişdir.
Bu dərsə daxil olan boş [qeyd notbuk](../notebook.ipynb) verilmişdir.
1. `pandas`, `matplotlib`, və `numpy` kitabxanalarını və ufolar cədvəlini keçən dərs olduğu kimi daxil edin. Sadə verilənlər toplusuna nəzər yetirin:
@ -78,7 +78,7 @@ Bu dərsə daxil olan boş [qeyd dəftəri](../notebook.ipynb) verilmişdir.
ufos.info()
```
1. Scikit- öyrənilməsi `LabelEncoder` kitabxanası ölkələr üçün növbəti dəyərləri rəqəmlərə keçirtmək üçündür:
1. Scikit-learn `LabelEncoder` kitabxanası ölkələr üçün növbəli dəyərləri rəqəmlərə keçirtmək üçündür:
✅ LabelEncoder datanı əlifba sırası ilə kodlaşdırır.
@ -105,7 +105,7 @@ Bu dərsə daxil olan boş [qeyd dəftəri](../notebook.ipynb) verilmişdir.
Artıq modeli öyrətmək üçün məlumatları tədris və sınaq qruplarına bölməyə başlaya bilərsiniz.
1. X vektorunda öyrətmək istədiyiniz 3 xüsusiyyəti seçin, və Y vektoru `Ölkə` olacaq. `Saniyələr`, `Coğrafi enlik`, `Coğrafi uzunluq` daxil edə bilməli və ölkə id-i geri qaytara bilməlisiniz.
1. X vektorunda öyrətmək istədiyiniz 3 xüsusiyyəti seçin, və Y vektoru `Ölkə` olacaq. `Saniyələr`, `Coğrafi enlik`, `Coğrafi uzunluq` daxil edə bilməli və ölkənin `id` dəyərini geri qaytara bilməlisiniz.
```python
from sklearn.model_selection import train_test_split
@ -118,7 +118,7 @@ Artıq modeli öyrətmək üçün məlumatları tədris və sınaq qruplarına b
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
1. Məntiqi reqrasiya testi istifadə etməklə modelinizi öyrədin:
1. Məntiqi reqressiya testi istifadə etməklə modelinizi öyrədin:
```python
from sklearn.metrics import accuracy_score, classification_report
@ -149,7 +149,7 @@ model = pickle.load(open('ufo-model.pkl','rb'))
print(model.predict([[50,44,-12]]))
```
Model **'3'** qaytarır, Hansıki Birləşmiş Krallığın kodudur. İnanılmaz! 👽
Model **'3'** qaytarır, hansıki Birləşmiş Krallığın kodudur. İnanılmaz! 👽
## Məşğələ - Flask tətbiq yarat
@ -253,7 +253,7 @@ Model **'3'** qaytarır, Hansıki Birləşmiş Krallığın kodudur. İnanılmaz
<input type="number" name="seconds" placeholder="Seconds" required="required" min="0" max="60" />
<input type="text" name="latitude" placeholder="Latitude" required="required" />
<input type="text" name="longitude" placeholder="Longitude" required="required" />
<button type="submit" class="btn">Predict country where the UFO is seen</button>
<button type="submit" class="btn">UFO görünən ölkəni təxmin et</button>
</form>
<p>{{ prediction_text }}</p>
@ -266,9 +266,9 @@ Model **'3'** qaytarır, Hansıki Birləşmiş Krallığın kodudur. İnanılmaz
</html>
```
Bu faylda şablonlaşdırmaya diqqət yetirin. Tətbiq tərəfindən dəyişənlər ətrafında 'saqqal' sintaksisini görəcəksiniz, məsələn öngörmə mətni kimi: `{{}}`. Həmçinin, öngörməni `/predict` istiqamətinə göndərən xüsusi form da var.
Bu faylda şablonlaşdırmaya diqqət yetirin. Tətbiq tərəfindən dəyişənlər ətrafında 'saqqal' sintaksisini görəcəksiniz, məsələn təxmin mətni kimi: `{{}}`. Həmçinin təxminin `/predict` istiqamətinə göndərən xüsusi form da var.
Yekunda, modelin emalı və proqnozların göstərilməsini təmin edən python faylını yaratmağa hazırsınız:
Yekunda modelin emalı və proqnozların göstərilməsini təmin edən python faylını yaratmağa hazırsınız:
1. `app.py` faylında aşağıdakıları əlavə edin:
@ -307,22 +307,22 @@ Model **'3'** qaytarır, Hansıki Birləşmiş Krallığın kodudur. İnanılmaz
app.run(debug=True)
```
> 💡 Ipucu: Flask istifadə edərək veb tətbiqi işə salanda [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) əlavə edərkən, proqramınıza etdiyiniz istənilən dəyişiklik ani olaraq tətbiq olunacaq. Serveri yenidən başlatmağa ehtiyac olmayacaq. Ehtiyyatlı olun! Bu formatı real istehsalatda aktiv etmək doğru olmaz.
> 💡 Ipucu: Flask istifadə edərək veb tətbiqi işə salanda [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) əlavə edərkən proqramınıza etdiyiniz istənilən dəyişiklik ani olaraq tətbiq olunacaq. Serveri yenidən başlatmağa ehtiyac olmayacaq. Ehtiyyatlı olun! Bu formatı real mühitdə aktiv etmək doğru olmaz.
Əgər `python app.py` və ya `python3 app.py` işlədirsinizsə - veb-serveriniz daxili serverdə (lokalda) işə başlayır və bu zaman UFO-ların harada göründüyü barədə sualınıza cavab almaq üçün qısa formanı doldura bilərsiniz!
Bunu etmədən öncə, `app.py` faylına nəzər yetirək:
1. Əvvəlcə, lazimi resurslar yüklənir və proqram başlayır.
1. Sonra, model daxil edilir.
1. Daha sonra, index.html lokal dövrədə göstərilir.
1. Əvvəlcə lazımi resurslar yüklənir və proqram başlayır.
1. Sonra model daxil edilir.
1. Daha sonra index.html lokal mühitdə göstərilir.
`/predict` istiqamətində, form yerləşdirilərkən, birdən çox proses baş verir:
`/predict` istiqamətində form yerləşdirilərkən birdən çox proses baş verir:
1. Forma dəyişənləri toplanır və numpy massivinə çevrilir. Daha sonra modelə göndərilir və proqnoz geri qaytarılır.
2. Göstərilməsini istədiyimiz ölkələr onların proqnozlaşdırılan ölkə kodundan istifadə etməklə oxunaqlı mətn kimi yenidən göstərilir və həmin dəyər şablonda göstərilmək üçün index.html-ə geri göndərilir.
Flask və pikl(turşu) model ilə bu şəkildə bir model istifadə etmək nisbətən sadədir. Ən çətini, proqnoz almaq üçün modelə göndərilməli olan məlumatların hansı formada olduğunu başa düşməkdir. Bütün bunlar modelin necə öyrədildiyindən asılıdır. Proqnoz əldə etmək üçün daxil edilməli üç məlumat nöqtəsi var.
Flask və pikl model ilə bu şəkildə bir model istifadə etmək nisbətən sadədir. Ən çətini proqnoz almaq üçün modelə göndərilməli olan məlumatların hansı formada olduğunu başa düşməkdir. Bütün bunlar modelin necə öyrədildiyindən asılıdır. Proqnoz əldə etmək üçün daxil edilməli üç məlumat nöqtəsi var.
Peşəkar şəraitdə modeli öyrədən insanlarla onu veb və ya mobil proqramda istifadə edənlər arasında yaxşı ünsiyyətin nə qədər zəruri olduğunu görmək olar. Bizim şərtlər daxilində bu yalnız bir nəfərdir, siz!
@ -330,14 +330,14 @@ Peşəkar şəraitdə modeli öyrədən insanlarla onu veb və ya mobil proqramd
## 🚀 Rubrika
Noutbukda işləyərək modeli Flask proqramına daxil etmək yerinə, onu birbaşa Flask proqramında öyrədə bilərsiniz! Modeli `qatar` adlı istiqamət üzrə proqram daxilində öyrətmək üçün, məsələn, məlumatlarınız təmizləndikdən sonra, Python kodunuzu notebookda çevirməyə cəhd edin. Bu metodu tətbiq etməyin müsbət və mənfi tərəfləri nələrdir?
Noutbukda işləyərək modeli Flask proqramına daxil etmək yerinə onu birbaşa Flask proqramında öyrədə bilərsiniz! Modeli `train` adlı istiqamət üzrə proqram daxilində öyrətmək üçün, məsələn, məlumatlarınız təmizləndikdən sonra Python kodunuzu notbukda çevirməyə cəhd edin. Bu metodu tətbiq etməyin müsbət və mənfi tərəfləri nələrdir?
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/18/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/18/?loc=az)
## Təkrarla və Özün öyrən
## Təkrarla və özün öyrən
MÖ modellərini dərk etmək üçün veb tətbiq yaratmağın bir çox üsulu var. Maşın öyrənməsində istifadə etmək üçün veb tətbiqi yaratmağa JavaScript və ya Python-dan istifadə edə biləcəyiniz üsulların siyahısını hazırlayın. Arxitekturaya nəzər salın: model proqramda qalmalıdır, yoxsa buludda? Ən son versiyaya necə daxil olardınız? Tətbiq olunan MÖ veb həlli üçün arxitektura modelini çəkin.
ML modellərini dərk etmək üçün veb tətbiq yaratmağın bir çox üsulu var. Maşın öyrənməsində istifadə etmək üçün veb tətbiqi yaratmağa JavaScript və ya Python-dan istifadə edə biləcəyiniz üsulların siyahısını hazırlayın. Arxitekturaya nəzər salın: model proqramda qalmalıdır yoxsa buludda? Ən son versiyaya necə daxil olardınız? Tətbiq olunan ML veb həlli üçün arxitektura modelini çəkin.
## Tapşırıq
[Başqa bir model istifadə edin](assignment.md)
[Başqa bir model yoxlayın](assignment.az.md)

@ -1,11 +1,11 @@
# Başqa bir model ilə yoxlayın
# Başqa bir model yoxlayın
## Təlimatlar
Artıq öyrədilmiş Reqrassiya modeli ilə veb tətbiq qurduqdan sonra, bu veb tətbiqini yenidən qurmaq üçün əvvəlki Reqressiya dərsindəki modellərdən birini istifadə edin. Balqabaq datalarını əks etdirmək üçün mövcud üslubu saxlaya və ya fərqli dizayn edə bilərsiniz. Modelinizin təlim metodunu düzgün əks etdirmək üçün daxil edilən məlumatları dəyişdirdiyinizdən əmin olun.
Artıq öyrədilmiş reqressiya modeli ilə veb tətbiq qurduqdan sonra bu veb tətbiqini yenidən qurmaq üçün əvvəlki reqressiya dərsindəki modellərdən birini istifadə edin. Balqabaq datalarını əks etdirmək üçün mövcud üslubu saxlaya və ya fərqli dizayn edə bilərsiniz. Modelinizin təlim metodunu düzgün əks etdirmək üçün daxil edilən məlumatları dəyişdirdiyinizdən əmin olun.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------- |
| | Veb tətbiq buludda deploy olunub və gözlənildiyi kimi işləyir | Veb tətbiqin işində qusurlar var və ya yalnış cavablar qaytarır | Veb tətbiq düzgün işləmir |
| -------- | -------- | ------- | ------------------------ |
| | Veb tətbiq buluda yüklənilib və gözlənildiyi kimi işləyir | Veb tətbiqin işində qusurlar var və ya yalnış cavablar qaytarır | Veb tətbiq düzgün işləmir |

@ -1,6 +1,6 @@
# MÖ modeli istifadə etmək üçün veb tətbiq yarat
# ML modelini istifadə etmək üçün veb tətbiq yarat
Kurrikulumun bu bölməsində tətbiqi MÖ mövzusu ilə tanış olacaqsınız: Scikit-öyrənilməsi modelini veb proqram daxilində proqnozlar vermək üçün istifadə oluna bilən fayl kimi necə saxlamaq olar. Model yadda saxlandıqdan sonra onu Flask-da qurulmuş veb tətbiqdə necə istifadə edəcəyinizi öyrənəcəksiniz. Əvvəlcə, müəyyən məlumatlardan istifadə edərək UFO müşahidələri ilə bağlı model yaradacaqsınız! Daha sonra hansı ölkənin UFO gördüyünü bildirdiyini təxmin etmək üçün coğrafi enlik və coğrafi uzunluq dəyəri ilə birlikdə saniyələri daxil etmə imkan verən veb tətbiqi quracaqsınız.
Kurrikulumun bu bölməsində tətbiqi ML mövzusu ilə tanış olacaqsınız: Scikit-learn modelini veb proqram daxilində proqnozlar vermək üçün istifadə oluna bilən fayl kimi necə saxlamaq olar. Model yadda saxlandıqdan sonra onu Flask-da qurulmuş veb tətbiqdə necə istifadə edəcəyinizi öyrənəcəksiniz. Əvvəlcə, müəyyən məlumatlardan istifadə edərək UFO müşahidələri ilə bağlı model yaradacaqsınız! Daha sonra hansı ölkənin UFO gördüyünü bildirdiyini təxmin etmək üçün coğrafi enlik və coğrafi uzunluq dəyəri ilə birlikdə saniyələri daxil etmə imkan verən veb tətbiq quracaqsınız.
![UFO Dayanacağı](../images/ufo.jpg)
@ -16,6 +16,6 @@ Kurrikulumun bu bölməsində tətbiqi MÖ mövzusu ilə tanış olacaqsınız:
♥️ Quizlər Rohan Raj tərəfindən hazırlanıb.
Data toplusu [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings)-dan götürülmüşdür.
Dataset [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings) platformasından götürülmüşdür.
Veb tətbiqin arxitekturası [bu məqalə](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) və [bu proyekt](https://github.com/abhinavsagar/machine-learning-deployment) Abhinav Sagar tərəfindən təklif olunmuşdur.
Veb tətbiqin arxitekturası [bu məqalə](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) və [bu layihə](https://github.com/abhinavsagar/machine-learning-deployment) üzərində Abhinav Sagar tərəfindən təklif olunmuşdur.

@ -1,57 +1,57 @@
# Təsnifatlandırma bölməsinə giriş
# Qruplaşdırıcı bölməsinə giriş
Bu bölmədəki 4 dərsdə ənənəvi maşın öyrənməsinin fundamental mövzusu olan _təsnifatlandırma_ haqqında öyrənəcəksiniz. Biz Asiyanın və Hindistanın möhtəşəm mətbəxləri üçün olan data massivi istifadə edərək müxtəlif təsnifatlandırma alqoritmlərinin üzərindən keçəcəyik. Ümid edək ki, acsınız!
Bu bölmədəki 4 dərsdə ənənəvi maşın öyrənməsinin fundamental mövzusu olan _qruplaşdırıcı_ haqqında öyrənəcəksiniz. Biz Asiyanın və Hindistanın möhtəşəm mətbəxləri üçün olan data massivi istifadə edərək müxtəlif qruplaşdırıcı alqoritmlərinin üzərindən keçəcəyik. Ümid edək ki, acsınız!
![sadəcə bir çimdik!](../images/pinch.png)
> Bu dərslərdə pan-Asiya mətbəxlərini qeyd edin! [Jen Looper](https://twitter.com/jenlooper) tərəfindən təsvir
Təsnifatlandırma [yönləndirilmiş öyrənmə](https://wikipedia.org/wiki/Supervised_learning)nin bir formasıdır və reqressiya texnikaları ilə çoxlu ortaq cəhətləri var. Əgər desək ki, maşın öyrənməsi dəyərləri proqnozlaşdırmaqdan və obyektləri etiketləməkdən ibarətdir, o zaman təsnifatlandırmanı ümumi 2 qrupa ayıra bilərik: _binar təsnifatlandırma_ və _çox sinifli təsnifatlandırma_.
Qruplaşdırıcı [nəzarətli öyrənmə](https://wikipedia.org/wiki/Supervised_learning)nin bir formasıdır və reqressiya texnikaları ilə çoxlu ortaq cəhətləri var. Əgər desək ki, maşın öyrənməsi dəyərləri proqnozlaşdırmaqdan və obyektləri etiketləməkdən ibarətdir, o zaman qruplaşdırıcını ümumi 2 qrupa ayıra bilərik: _ikili qruplaşdırıcı_ və _çox sinifli qruplaşdırıcı_.
[![Təsnifatlandırma bölməsinə giriş](https://img.youtube.com/vi/eg8DJYwdMyg/0.jpg)](https://youtu.be/eg8DJYwdMyg "Təsnifatlandırma bölməsinə giriş")
[![Qruplaşdırıcı bölməsinə giriş](https://img.youtube.com/vi/eg8DJYwdMyg/0.jpg)](https://youtu.be/eg8DJYwdMyg "Qruplaşdırıcı bölməsinə giriş")
> 🎥 Yuxarıdakı təsvirə klikləməklə videoya baxın: John Guttag MIT-də təsnifatlandırma mövzusunu təqdim edir
> 🎥 Yuxarıdakı təsvirə klikləməklə videoya baxın: John Guttag MIT-də qruplaşdırıcı mövzusunu təqdim edir
Yadda saxlayın:
- **Xətti reqressiya** sizə dəyişənlər arasındakı əlaqəni proqnozlaşdırmağa və yeni məlumatın həmin xəttə nəzərən harada yerləşəcəyi barədə həqiqətə yaxın olan təxminlər etməyə kömək etdi. Beləliklə siz, _balqabağın Sentyabrdakı qiyməti ilə Dekabrdakı qiymətinin arasındakı fərq nə qədər olar_ kimi suallara təxmini cavablar verə biləcəksiniz.
- **Lojistik reqressiya** sizə "binar kateqoriyaları" aydınlaşdırmağa kömək etdi: bu qiymət nöqtəsində _balqabaq narıncıdır, yoxsa narıncı deyil_?
- **Lojistik reqressiya** sizə "ikili kateqoriyaları" aydınlaşdırmağa kömək etdi: bu qiymət nöqtəsində _balqabaq narıncıdır, yoxsa narıncı deyil_?
Təsnifatlandırma müxtəlif alqoritmləri istifadə edərək verilənin etiketini və ya sinfini təyin etmək üçün başqa yollar tapmağa imkan verir. Gəlin inqrediyentləri analiz etməklə mətbəxin aid olduğu yeri tapa bilib bilməyəcəyimizi görmək üçün mətbəx datası ilə işləyək.
Qruplaşdırıcı müxtəlif alqoritmləri istifadə edərək verilənin etiketini və ya sinfini təyin etmək üçün başqa yollar tapmağa imkan verir. Gəlin inqrediyentləri analiz etməklə mətbəxin aid olduğu yeri tapa bilib-bilməyəcəyimizi görmək üçün mətbəx datası ilə işləyək.
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/19/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/19/?loc=az)
> ### [Bu dərs R proqramlaşdırma dili ilə də əlçatandır!](../solution/R/lesson_10.html)
### Giriş
Təsnifatlandırma, bir maşın öyrənmə tədqiqatçısının və bir data mühəndisinin ən əsas fəaliyyətlərindən biridir. Binar dəyərin təsnifatlandırılması ("bu imeyl spamdır yoxsa spam deyil?") kimi sadə məsələlərdən, komputer görüşü istifadə edərək qarışıq şəkillərin təsnifatlandırılması və seqmentasiyası məsələlərinə qədər, datanı siniflərə ayırmaq və data haqqında suallar verə bilmək hər zaman faydalıdır.
Qruplaşdırıcı bir maşın öyrənmə tədqiqatçısının və bir data mühəndisinin ən əsas fəaliyyətlərindən biridir. İkili dəyərin qruplaşdırılması ("bu imeyl spamdır, yoxsa spam deyil?") kimi sadə məsələlərdən komputer görüşü istifadə edərək qarışıq şəkillərin qruplaşdırılması və seqmentasiyası məsələlərinə qədər datanı siniflərə ayırmaq və data haqqında suallar verə bilmək hər zaman faydalıdır.
Prosesi daha elmi dildə izah etsək, sizin təsnifatlandırma metodunuz, praqnozlaşdırıcı bir model yaradaraq sizə giriş və çıxış dəyərləri arasında əlaqəni təsvir etməyə imkan verir.
Prosesi daha elmi dildə izah etsək, sizin qruplaşdırıcı metodunuz praqnozlaşdırıcı bir model yaradaraq sizə giriş və çıxış dəyərləri arasında əlaqəni təsvir etməyə imkan verir.
![binar və çox sinifli təsnifatlandırma](../images/binary-multiclass.png)
![ikili və çox sinifli qruplaşdırıcı](../images/binary-multiclass.png)
> Təsnifatlandırma alqoritmlərinin həll etməli olduğu binar və çox sinifli təsnifatlandırma problemləri. [Jen Looper](https://twitter.com/jenlooper) tərəfindən infoqraf
> Qruplaşdırıcı alqoritmlərinin həll etməli olduğu ikili və çox sinifli qruplaşdırıcı problemləri. [Jen Looper](https://twitter.com/jenlooper) tərəfindən infoqraf
Datanı təmizləməyə, vizuallaşdırmağa və MÖ tapşırıqlarımız üçün hazırlamağa başlamazdan əvvəl, gəlin, maşın öyrənməsinin hansı üsullarla datanı təsnifatlandırmaq üçün istifadə edilə biləcəyini öyrənək.
Datanı təmizləməyə, vizuallaşdırmağa və ML tapşırıqlarımız üçün hazırlamağa başlamazdan əvvəl gəlin, maşın öyrənməsinin hansı üsullarla datanı qruplaşdırmaq üçün istifadə edilə biləcəyini öyrənək.
Ənənəvi maşın öyrənməsi vasitəsilə təsnifatlandırma əsasını [statistika](https://wikipedia.org/wiki/Statistical_classification)dan alır və _X xəstəliyinin yaranma ehtimalı_nı müəyyən etmək üçün `siqaret çəkən`, `çəki` və `yaş` kimi xarakteristikalardan istifadə edir. Yönləndirilmiş öyrənmə metodu olduğuna görə, daha əvvəl yerinə yetirdiyiniz reqressiya tapşırıqlarında olduğu kimi datanız etiketlənir və MÖ alqoritmləri data massivin siniflərini (ya da 'xarakteristikalar'ını) təsnifatlandırmaq və proqnozlaşdırmaq, həmçinin onları qruplara bölmək və ya nəticə çıxarmaq üçün həmin etiketləri istifadə edir.
Ənənəvi maşın öyrənməsi vasitəsilə qruplaşdırıcı əsasını [statistika](https://wikipedia.org/wiki/Statistical_classification)dan alır və _X xəstəliyinin yaranma ehtimalı_nı müəyyən etmək üçün `siqaret çəkən`, `çəki` və `yaş` kimi xarakteristikalardan istifadə edir. Nəzarətli öyrənmə metodu olduğuna görə daha əvvəl yerinə yetirdiyiniz reqressiya tapşırıqlarında olduğu kimi datanız etiketlənir və ML alqoritmləri datasetin siniflərini (ya da 'xarakteristikalar'ını) qruplaşdırmaq və proqnozlaşdırmaq, həmçinin onları qruplara bölmək və ya nəticə çıxarmaq üçün həmin etiketlərdən istifadə edir.
✅ Bir anlıq mətbəxlər haqqında data massiv təsəvvür edin. Çox sinifli model nələrə cavab verə bilərdi? Binar model nələrə cavab verə bilərdi? Əgər verilən mətbəxdə samanlıq güldəfnəsinin istifadə olunub olunmadığını müəyyən etmək istəsəniz nə baş verəcək? Deyək ki, bir ərzaq çantasında sizə illicium verum, artişok, gül kələmi və adi qıtıqotu təqdim olunur və siz bu ərzaqlardan ənənəvi Hindistan yeməyi hazırlaya bilib bilməyəcəyinizi öyrənmək istəyirsiniz. Bu zaman nə baş verəcək?
✅ Bir anlıq mətbəxlər haqqında dataset təsəvvür edin. Çox sinifli model nələrə cavab verə bilərdi? İkili model nələrə cavab verə bilərdi? Əgər verilən mətbəxdə samanlıq güldəfnəsinin istifadə olunub olunmadığını müəyyən etmək istəsəniz nə baş verəcək? Deyək ki, bir ərzaq çantasında sizə ulduz anis, ənginar, gül kələmi və yaban turpu təqdim olunur və siz bu ərzaqlardan ənənəvi Hindistan yeməyi hazırlaya bilib bilməyəcəyinizi öyrənmək istəyirsiniz. Bu zaman nə baş verəcək?
[![Çılğın sirli səbətlər](https://img.youtube.com/vi/GuTeDbaNoEU/0.jpg)](https://youtu.be/GuTeDbaNoEU "Çılğın sirli səbətlər")
> 🎥 Yuxarıdakı təsvirə klikləməklə videoya baxın. 'Chopped' proqramının xülasəsini belə verə bilərik: Aşpazlar 'sirli səbət'də olan təsadüfi seçilmiş inqrediyentlərdən yemək hazırlamalıdırlar. Şübhəsiz ki, burada MÖ modeli köməyə çatardı!
> 🎥 Yuxarıdakı təsvirə klikləməklə videoya baxın. 'Chopped' proqramının xülasəsini belə verə bilərik: Aşpazlar 'sirli səbət'də olan təsadüfi seçilmiş inqrediyentlərdən yemək hazırlamalıdırlar. Şübhəsiz ki, burada ML modeli köməyə çatardı!
## Salam 'təsnifatlandırıcı'
## Salam 'qruplaşdırıcı'
Bu mətbəx data massivi haqqında soruşmaq istədiyimiz sual həqiqətən də çox sinifli məsələ sualıdır, çünki biz bir neçə mümkün milli mətbəx ilə işləyə bilərik. İnqrediyentlər verilərsə, data bu siniflərdən hansına uyğun gələr?
Bu mətbəx dataseti haqqında soruşmaq istədiyimiz sual həqiqətən də çox sinifli məsələ sualıdır, çünki biz bir neçə mümkün milli mətbəx ilə işləyə bilərik. İnqrediyentlər verilərsə, data bu siniflərdən hansına uyğun gələr?
Scikit-learn, həll etmək istədiyiniz məsələdən asılı olaraq, datanı təsnifatlandırmaq üçün bir neçə müxtəlif alqoritm təklif edir. Növbəti iki dərsdə bu alqoritmlərdən bir neçəsi haqqında öyrənəcəksiniz.
Scikit-learn, həll etmək istədiyiniz məsələdən asılı olaraq datanı qruplaşdırıcı üçün bir neçə müxtəlif alqoritm təklif edir. Növbəti iki dərsdə bu alqoritmlərdən bir neçəsi haqqında öyrənəcəksiniz.
## Tapşırıq - datanı təmizləyin və balanslaşdırın
Proyektə başlamazdan öncə yerinə yetirilməli olan ilk tapşırıq, daha yaxşı nəticələr əldə etmək məqsədilə datanı təmizləmək və balanslaşdırmaqdır. Olduğunuz qovluqla eyni qovluqda olan boş _notebook.ipynb_ faylı ilə başlayın.
Layihəyə başlamazdan öncə yerinə yetirilməli olan ilk tapşırıq - daha yaxşı nəticələr əldə etmək məqsədilə datanı təmizləmək və balanslaşdırmaqdır. Olduğunuz qovluqla eyni qovluqda olan boş _notebook.ipynb_ faylı ilə başlayın.
Quraşdırılmalı olan ilk komponent [imblearn](https://imbalanced-learn.org/stable/)-dür. Bu, datanı daha yaxşı balanslaşdırmağa imkan verən Scikit-learn komponentidir (bu tapşırıq haqqında az sonra öyrənəcəksiniz).
@ -227,9 +227,9 @@ Artıq datanı daha dərindən analiz edib hər mətbəxdə daha çox istifadə
feature_df.head()
```
## Data massivi balanslaşdırın
## Dataseti balanslaşdırın
Datanı təmizlədikdən sonra, onu balanslaşdırmaq üçün [SMOTE-u](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Synthetic Minority Over-sampling Technique" - istifadə edin.
Datanı təmizlədikdən sonra, onu balanslaşdırmaq üçün [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Synthetic Minority Over-sampling Technique" - istifadə edin.
1. `fit_resample()` funksiyasını çağırın. Bu funksiya interpolyasiya üsulu ilə yeni nümunələr yaradır.
@ -238,7 +238,7 @@ Datanı təmizlədikdən sonra, onu balanslaşdırmaq üçün [SMOTE-u](https://
transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df)
```
Datanı balanslaşdırdırdan sonra onu təsnifatlandırarkən daha yaxşı nəticələr əldə edəcəksiniz. Binar təsnifatlandırmanı nümunə götürün. Əgər datanızın böyük bir hissəsi bir sinfə aiddirsə, həmin sinfə aid daha çox data olduğu üçün MÖ modeli həmin sinfi daha yüksək tezliklə proqnozlaşdıracaq. Datanı balanslaşdırmaq bu data əyrilərini yox edərək tarazsızlığı aradan qaldırır.
Datanı balanslaşdırdırdan sonra onu qruplaşdırarkən daha yaxşı nəticələr əldə edəcəksiniz. İkili qruplaşdırıcını nümunə götürün. Əgər datanızın böyük bir hissəsi bir sinfə aiddirsə, həmin sinfə aid daha çox data olduğu üçün ML modeli həmin sinfi daha yüksək tezliklə proqnozlaşdıracaq. Datanı balanslaşdırmaq bu data əyrilərini yox edərək tarazsızlığı aradan qaldırır.
2. Artıq hər bir inqrediyent üzrə etiketlərin sayına baxa bilərsiniz:
@ -284,16 +284,16 @@ Datanı təmizlədikdən sonra, onu balanslaşdırmaq üçün [SMOTE-u](https://
---
## 🚀Məşğələ
## 🚀 Məşğələ
Bu proqramda bir neçə maraqlı data massiv var. `data` qovluqlarına baxın. Bu qovluqlardan hansısa birində binar və çox sinifli təsnifatlandırma üçün uyğun ola biləcək data massivlər varmı? Onlar haqqında hansı sualları verərdiniz?
Bu proqramda bir neçə maraqlı dataset var. `data` qovluqlarına baxın. Bu qovluqlardan hansısa birində ikili və çox sinifli qruplaşdırıcı üçün uyğun ola biləcək datasetlər varmı? Onlar haqqında hansı sualları verərdiniz?
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/20/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/20/?loc=az)
## Təkrarlayın və özünüz öyrənin
SMOTE TPİ-ni tədqiq edin. Bu TPİ ən çox hansı hallarda istifadə olunur? Hansı problemləri həll edir?
SMOTE API-ni tədqiq edin. Bu ən çox hansı hallarda istifadə olunur? Hansı problemləri həll edir?
## Tapşırıq
[Təsnifatlandırma metodlarını tədqiq edin](assignment.az.md)
[Qruplaşdırıcı metodlarını tədqiq edin](assignment.az.md)

@ -1,11 +1,11 @@
# Təsnifatlandırma metodlarını tədqiq edin
# Qruplaşdırıcı metodlarını tədqiq edin
## Təlimatlar
[Scikit-learn-ün sənədlərində](https://scikit-learn.org/stable/supervised_learning.html) datanı təsnifatlandırmağın çoxlu yollarını tapacaqsınız. Bu sənədlərdə kiçik bir axtarışa çıxın: məqsədiniz təsnifatlandırma metodlarına nəzər salmaq və proqramda olan data massivi, bu data massiv haqqında verə biləcəyiniz bir sualı və təsnifatlandırma metodunu uyğunlaşdırmaqdır. Elektron cədvəl və ya .doc faylında bir cədvəl yaradıb həmin təsnifatlandırma metodunun data massiv üzərində necə işlədiyini izah edin.
[Scikit-learn sənədlərində](https://scikit-learn.org/stable/supervised_learning.html) datanı qruplaşdırmağın çoxlu yollarını tapacaqsınız. Bu sənədlərdə kiçik bir axtarışa çıxın: məqsədiniz qruplaşdırma metodlarına nəzər salmaq və proqramda olan dataseti, bu dataset haqqında verə biləcəyiniz bir sualı və qruplaşdırma metodunu uyğunlaşdırmaqdır. Elektron cədvəl və ya .doc faylında bir cədvəl yaradıb həmin qruplaşdırma metodunun dataset üzərində necə işlədiyini izah edin.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| | təqdim olunan sənəd 5 alqoritm ilə yanaşı təsnifatlandırma metodunu da əhatə edir. İcmal detallıdır və yaxşı izah olunub. | təqdim olunan sənəd 3 alqoritm ilə yanaşı təsnifatlandırma metodunu da əhatə edir. İcmal detallıdır və yaxşı izah olunub. | təqdim olunan sənəd 3-dən az alqoritmi, eləcə də təsnifatlandırma metodunu əhatə edir və icmal nə detallıdır, nə də yaxşı izah olunub. |
| -------- | -------- | ------- | ------------------------ |
| | Təqdim olunan sənəd 5 alqoritm ilə yanaşı qruplaşdırma metodunu da əhatə edir. İcmal detallıdır və yaxşı izah olunub. | Təqdim olunan sənəd 3 alqoritm ilə yanaşı qruplaşdırma metodunu da əhatə edir. İcmal detallıdır və yaxşı izah olunub. | Təqdim olunan sənəd 3-dən az alqoritmi, eləcə də qruplaşdırma metodunu əhatə edir və icmal nə detallıdır, nə də yaxşı izah olunub. |

@ -1,13 +1,14 @@
# Mətbəx təsnifatlandıcıları - hissə 1
# Mətbəx qruplaşdırıcıları - hissə 1
Bu dərsdə əvvəlki dərsdən əldə etdiyimiz balanslı və təmizlənmiş mətbəx data massivindən istifadə edəcəksiniz.
Bu dərsdə əvvəlki dərsdən əldə etdiyimiz balanslı və təmizlənmiş mətbəx datasetindən istifadə edəcəksiniz.
Bu data massivini müxtəlif qruplaşdırıcılarda istifadə edərək _inqrediyentlər əsasında milli mətbəxləri təxmin edəcəksiniz_. Bunu edərkən alqoritmi başqa hansı qruplaşdırma tapşırıqlarında istifadə edə biləcəyinizi də öyrənəcəksiniz.
Bu dataseti müxtəlif qruplaşdırıcılarda istifadə edərək _inqrediyentlər əsasında milli mətbəxləri təxmin edəcəksiniz_. Bunu edərkən alqoritmi başqa hansı qruplaşdırma tapşırıqlarında istifadə edə biləcəyinizi də öyrənəcəksiniz.
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/21/?loc=az)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/21/)
# Hazırlıq
Sizin [1-ci dərsi](../../1-Introduction/translations/assignment.az.md) bitirdiyinizi güman edirik. Əlavə olaraq isə bu 4 dərsdə istifadə edəcəyimiz _cleaned_cuisines.csv_ faylının `/data` qovluğunda olduğundan əmin olun.
Sizin [1-ci dərsi](../../1-Introduction/translations/README.az.md) bitirdiyinizi güman edirik. Əlavə olaraq isə bu 4 dərsdə istifadə edəcəyimiz _cleaned_cuisines.csv_ faylının `/data` qovluğunda olduğundan əmin olun.
## Tapşırıq - milli mətbəxi təxmin et
@ -77,53 +78,53 @@ Sizin [1-ci dərsi](../../1-Introduction/translations/assignment.az.md) bitirdiy
Modelimizi öyrətməyə hazır sayılırıq!
## Təsnifatlandırıcı seçimi
## Qruplaşdırıcı seçimi
Artıq datanız təmizlənib və öyrədilmək üçün hazırdır. İndi siz bu iş üçün hansı alqoritmi seçməli olduğunuza qərar verməlisiniz.
**Scikit-learn** kitabxanası təsnifatlandırmanı "Supervised Learning (Nəzarətli öyrənmə)" adı altında qruplaşdırır və siz burada çoxlu təsnifatlandırma üsullarını tapa bilərsiniz. [Seçimlər](https://scikit-learn.org/stable/supervised_learning.html) ilk baxışdan həddindən artıq çox görünəcəkdir. Aşağıdakı metodların hamısı təsnifatlandırma texnikalarıdır:
**Scikit-learn** kitabxanası qruplaşdırmanı "Supervised Learning (Nəzarətli öyrənmə)" adı altında qruplaşdırır və siz burada çoxlu qruplaşdırma üsullarını tapa bilərsiniz. [Seçimlər](https://scikit-learn.org/stable/supervised_learning.html) ilk baxışdan həddindən artıq çox görünəcəkdir. Aşağıdakı metodların hamısı qruplaşdırma texnikalarıdır:
- **Linear Models** (Xətti modellər)
- **Support Vector Machines** (Dəstək Vektor Maşını)
- **Stochastic Gradient Descent** (Stokastik qradient eniş)
- **Stochastic Gradient Descent** (Stoxastik qradient eniş)
- **Nearest Neighbors** (Yaxın qonşular)
- **Gaussian Processes** (Qauss emalları)
- **Decision Trees** (Qərar sxemləri)
- **Ensemble methods (voting Classifier)** Ansambl üsullar (səsvermə əsaslı təsnifatlandırma)
- **Ensemble methods (voting Classifier)** Ansambl üsullar (səsvermə əsaslı qruplaşdırma)
- Çoxsaylı etiket və çoxsaylı çıxış alqoritmləri (multiclass and multilabel classification, multiclass-multioutput classification)
> Siz həmçinin [təsnifatlandırma üçün neyron şəbəkələr](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) də istifadə edə bilərsiniz, lakin bu mövzu bizim dərsimizdən kənardır.
> Siz həmçinin [qruplaşdırma üçün neyron şəbəkələr](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) də istifadə edə bilərsiniz, lakin bu mövzu bizim dərsimizdən kənardır.
### Hansı təsnifatlandırıcı seçilməlidir?
### Hansı qruplaşdırıcı seçilməlidir?
İndi siz hansı təsnifatlandırıcı seçməlisiniz? Adətən bunun cavabını bir çox üsulu yoxlamaq və daha yaxşı nəticə göstərəni seçməklə tapmaq olur. Yaratdığınız data qruplarını **Scikit-learn** kitabxanasında [yanbayan müqayisə](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) edə bilərsiniz. Aşağıda nümunə kimi KNeighbors, SVC two ways, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB and QuadraticDiscrinationAnalysis alqoritmləri müqayisəsi göstərilib:
İndi siz hansı qruplaşdırıcı seçməlisiniz? Adətən bunun cavabını bir çox üsulu yoxlamaq və daha yaxşı nəticə göstərəni seçməklə tapmaq olur. Yaratdığınız data qruplarını **Scikit-learn** kitabxanasında [yanbayan müqayisə](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) edə bilərsiniz. Aşağıda nümunə kimi KNeighbors, SVC two ways, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB and QuadraticDiscrinationAnalysis alqoritmləri müqayisəsi göstərilib:
![təsnifatlandırıcıların müqayisəsi](../images/comparison.png)
![qruplaşdırıcıların müqayisəsi](../images/comparison.png)
> Qrafiklər Scikit-learn sənədlərindən yaradılmışdır
> AutoML platforması bulud mühitində belə nəticələri özü müqayisə edərək sizə ən yaxşı alqoritmi tapmaqda kömək edə bilər. [Buradan](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) pulsuz yoxlaya bilərsiniz.
> Auto ML platforması bulud mühitində belə nəticələri özü müqayisə edərək sizə ən yaxşı alqoritmi tapmaqda kömək edə bilər. [Buradan](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) pulsuz yoxlaya bilərsiniz.
### Daha yaxşı yanaşma
Özünüz təxmin etməkdənsə, [MÖ hazır cavablar siyahısından](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) ideyalara əməl edərək daha yaxşı seçim edə bilərsiniz. Misal üçün bizim çoxsaylı etiketləndirmə məsələmizdə bir neçə seçim vardır:
Özünüz təxmin etməkdənsə, [ML hazır cavablar siyahısından](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) ideyalara əməl edərək daha yaxşı seçim edə bilərsiniz. Misal üçün bizim çoxsaylı etiketləndirmə məsələmizdə bir neçə seçim vardır:
![çoxsaylı etiketləmə problemlərinə hazır cavablar](../images/cheatsheet.png)
> Çoxsaylı etiket təsnifatlandırma seçimləri üçün Microsoft-un Alqoritm Hazır Cavablar siyahısından bir fraqment
> Çoxsaylı etiket qruplaşdırma seçimləri üçün Microsoft Alqoritm Hazır Cavablar siyahısından bir fraqment
✅ Bu hazır cavablar siyahısını yüklə, çap et və divarından as!
✅ Bu hazır cavablar siyahısını yüklə, çap et və divardan as!
### Əsaslandırma
Gəlin baxaq biz seçimimizi aşağıdakı şərtlərə əsasən də əsaslandıra bilirikmi:
- **Neyron şəbəkələr çox qəlizdir**. Bizim təmiz və sadə data massivimizi yalnız öz komputerimizdə öyrədəcəyimizi nəzərə alsaq, neyron şəbəkələr bu tapşırıq üçün çox çətin bir seçimdir.
- **İki-etiket təsnifatlandırıcısına yox**. Biz iki-etiket təsnifatlandırıcısı istifadə etmirik, buna görə də digər oxşar seçimləri nəzərə almırıq.
- **Qərar sxemləri və ya logistik reqressiya işi görə bilərk**. Qərar sxemi işimizə yaraya bilər. Logistik reqressiyə isə çoxsaylı etiket datası üçün istifadə oluna bilər.
- **Çoxsaylı etiket gücləndirilmiş qərar sxemləri başqa problemləri həll edir**. Çoxsaylı etiket gücləndirilmiş qərar sxemləri parametrsiz tapşırıqlar üçün daha uyğundur, Misal üçün sıralandırma tapşırıqları. Lakin bizim üçün uyğun deyil.
- **Neyron şəbəkələr çox qəlizdir**. Bizim təmiz və sadə datasetimizi yalnız öz komputerimizdə öyrədəcəyimizi nəzərə alsaq, neyron şəbəkələr bu tapşırıq üçün çox çətin bir seçimdir.
- **İki-etiket qruplaşdırıcısına yox**. Biz iki-etiket qruplaşdırıcısı istifadə etmirik, buna görə də digər oxşar seçimləri nəzərə almırıq.
- **Qərar sxemləri və ya logistik reqressiya işi görə bilər**. Qərar sxemi işimizə yaraya bilər. Logistik reqressiyə isə çoxsaylı etiket datası üçün istifadə oluna bilər.
- **Çoxsaylı etiket gücləndirilmiş qərar sxemləri başqa problemləri həll edir**. Çoxsaylı etiket gücləndirilmiş qərar sxemləri parametirsiz tapşırıqlar üçün daha uyğundur, misal üçün sıralandırma tapşırıqları. Lakin bizim üçün uyğun deyil.
### Scikit-learn istifadə etmək
Data analizi üçün Scikit-learn istifadə edəcəyik. Scikit-learn kitabxanasında logistik reqressiyanı istifadəsi üçün bir çox üsul mövcuddur. Hansı parametrlərin ötürülməsi lazım olduğunu bilmək üçün [sənədlə](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) tanış olun.
Data analizi üçün Scikit-learn istifadə edəcəyik. Scikit-learn kitabxanasında logistik reqressiyanın istifadəsi üçün bir çox üsul mövcuddur. Hansı parametrlərin ötürülməsinin lazım olduğunu bilmək üçün [sənədlə](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) tanış olun.
Scikit-learn kitabxanasında logistik reqressiyanı icra etmək üçün bizə əsas iki parametr ötürmək vacibdir - `multi_class` və `solver`. `multi_class` parametri müəyyən olunmuş davranışı bildirir. `solver` parametri isə istifadə olunacaq alqoritmi təyin edir. Nəzərə almaq lazımdır ki, hər alqoritm `multi_class` parametri ilə uyğunlaşmır.
@ -132,9 +133,9 @@ Sənədlərə əsasən `multi_class` seçimində aşağıdakı öyrənmə alqori
- **one-vs-rest (OvR) sxemi istifadə edənlər**, əgər `multi_class` parametri `ovr` seçilmişdirsə.
- **cross-entropy loss (çarpaz-entropiya itkisi) istifadə edənlər**, əgər `multi_class` parametri `multinomial` seçilmişdirsə. (Hazırda `multinomial` seçimi yalnız ‘lbfgs’, ‘sag’, ‘saga’ və ‘newton-cg’ alqoritmləri tərəfindən dəstəklənir)"
> 🎓 Burada 'scheme' parametri 'ovr' (one-vs-rest) və ya 'multinomial' ola bilər. Logistik reqressiya əslində binary (ikili) təsnifatlandırma üçün tərtib olunduğu üçün bu sxemlər çoxsaylı etiket təsnifatlandırma tapşırıqları üçün daha uyğundur. [mənbə](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 Burada `'scheme'` parametri 'ovr' (one-vs-rest) və ya 'multinomial' ola bilər. Logistik reqressiya əslində ikili qruplaşdırma üçün tərtib olunduğu üçün bu sxemlər çoxsaylı etiket qruplaşdırma tapşırıqları üçün daha uyğundur. [mənbə](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'solver' parametri "optimizasiya üçün istifadə olunacaq alqoritmi" nəzərdə tutur. [mənbə](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 `'solver'` parametri "optimizasiya üçün istifadə olunacaq alqoritmi" nəzərdə tutur. [mənbə](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Aşağıdakı cədvəldə Scikit-learn kitabxanasındakı alqoritmlərlə müxtəlif növ tapşırıqları və data strukturlarını necə idarə edə biləcəyiniz göstərilib:
@ -142,7 +143,7 @@ Aşağıdakı cədvəldə Scikit-learn kitabxanasındakı alqoritmlərlə müxt
## Tapşırıq - datanı bölün
Biz indi ilk öyrənmə cəhdimizdə logistik reqressiyasına fokuslana bilərik. `train_test_split()` istifadə etməklə datanı öyrənmə və test üçün iki qrupa ayırın:
Biz indi ilk öyrənmə cəhdimizdə logistik reqressiyasına fokuslana bilərik. `train_test_split()` istifadə etməklə datanı öyrətmə və test üçün iki qrupa ayırın:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
@ -184,7 +185,7 @@ Biz çoxsaylı etiket məsələsinə baxdığımız üçün _scheme_ və _solver
✅ Fərqli sıra nömrələrini yoxla və nəticəyə bax.
1. Daha dərinə getsək, təsnifat modelinin dəqiqliyini belə yoxlaya bilərsiniz:
1. Daha dərinə getsək, qruplaşdırma modelinin dəqiqliyini belə yoxlaya bilərsiniz:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -196,7 +197,7 @@ Biz çoxsaylı etiket məsələsinə baxdığımız üçün _scheme_ və _solver
topPrediction.head()
```
Nəticə çap olundu - Hindisdan mətbəxi ən yuxarı dəqiqliklə təsnifatlandırılır:
Nəticə çap olundu - Hindisdan mətbəxi ən yuxarı dəqiqliklə qruplaşdırılır:
| | 0 |
| -------: | -------: |
@ -208,7 +209,7 @@ Biz çoxsaylı etiket məsələsinə baxdığımız üçün _scheme_ və _solver
✅ Bu modelin Hindistan mətbəxini nə üçün seçdiyini izah edə bilərsən?
1. Daha çox məlumat almaq üçün təsnifatlandırma hesabatını çap edin:
1. Daha çox məlumat almaq üçün qruplaşdırma hesabatını çap edin:
```python
y_pred = model.predict(X_test)
@ -226,11 +227,11 @@ Biz çoxsaylı etiket məsələsinə baxdığımız üçün _scheme_ və _solver
| macro avg | 0.80 | 0.80 | 0.80 | 1199 |
| weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
## 🚀Məşğələ
## 🚀 Məşğələ
Bu dərsdə siz təmizlənmiş data istifadə edərək inqrediyentlər əsasında milli mətbəxi təxmin edə biləcək maşın öyrənməsi modelini qurdunuz. Scikit-learn kitabxanası istifadə etməklə daha hansı üsullarla təsnifatlandırma etmək mümkün olduğunu oxuyun. "Solver (alqoritm)" anlayışı üzərində daha dərinə gedərək arxa planda necə işlədiyini öyrənin.
Bu dərsdə siz təmizlənmiş data istifadə edərək inqrediyentlər əsasında milli mətbəxi təxmin edə biləcək maşın öyrənməsi modelini qurdunuz. Scikit-learn kitabxanası istifadə etməklə daha hansı üsullarla qruplaşdırma etmək mümkün olduğunu oxuyun. "Solver (alqoritm)" anlayışı üzərində daha dərinə gedərək arxa planda necə işlədiyini öyrənin.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/22/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/22/?loc=az)
## Təkrarlayın və özünüz öyrənin
@ -238,4 +239,4 @@ Logistik reqressiya metodunda hansı riyazı modellər istifadə olunduğunu [bu
## Tapşırıq
[Təsnifatlandırıcı alqoritmlərini araşdır](assignment.az.md)
[Qruplaşdırıcı alqoritmlərini araşdır](assignment.az.md)

@ -1,11 +1,11 @@
# Təsnifatlandırıcı alqoritmlərini araşdır
# Qruplaşdırıcı alqoritmlərini araşdır
## Təlimatlar
Bu dərsdə siz təsnifatlandırıcı alqoritmlərinin maşın öyrənməsi alqoritmləri ilə necə birlikdə dəqiq modellər qurulmasını öyrəndiniz. Təsnifatlandırma alqoritmləri üzərindən keçin və ikisini seçin. Öz sözlərinizlə bu alqoritmləri bir-biri ilə müqayisə edin. Hansı növ problemləri həll etməyə nəzərdə tutulublar? Müxtəlif data strukturları ilə necə işləyirlər? Birini digəri əvəzinə nə üçün seçərsən?
Bu dərsdə siz qruplaşdırıcı alqoritmlərin maşın öyrənməsi alqoritmləri ilə necə birlikdə dəqiq modellər qurulmasını öyrəndiniz. Qruplaşdırma alqoritmləri üzərindən keçin və ikisini seçin. Öz sözlərinizlə bu alqoritmləri bir-biri ilə müqayisə edin. Hansı növ problemləri həll etməyə nəzərdə tutulublar? Müxtəlif data strukturları ilə necə işləyirlər? Birini digəri əvəzinə nə üçün seçərsən?
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| | .doc sənədində hərəsi bir təsnifatlandırma alqoritminə aid iki paraqraf. Alqoritmlərin müqayisəsi də əhatə olunmalıdır. | .doc sənədində bir paraqraf | Natamam tapşırıq |
| -------- | -------- | ------- | ------------------------ |
| | .doc sənədində hərəsi bir qruplaşdırma alqoritminə aid iki paraqraf. Alqoritmlərin müqayisəsi də əhatə olunmalıdır. | .doc sənədində bir paraqraf | Natamam tapşırıq |

@ -2,22 +2,22 @@
İkinci qruplaşdırma dərsində siz, ədədi dataları qruplaşdırmaq üçün olan əlavə yolları kəşf edəcəksiniz. Bundan əlavə olaraq isə bir qruplaşdırıcını digəri ilə əvəz etməyin nəticələri haqqında öyrənəcəksiniz.
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/23/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/23/?loc=az)
### İlkin şərt
Əvvəlki dərsi bitirdiyinizi və 4-cü dərsin ana qovluğunda yerləşən `data` qovluğunda, _cleaned_cuisines.csv_ adlı data setinizin olduğunu güman edirik.
Əvvəlki dərsi bitirdiyinizi və 4-cü dərsin ana qovluğunda yerləşən `data` qovluğunda _cleaned_cuisines.csv_ adlı datasetinizin olduğunu güman edirik.
### Hazırlıq
_notebook.ipynb_ faylınızı təmizlənmiş data set ilə yükləyib, X və y datafreymlərinə bölərək model qurulması prosesi üçün hazır vəziyyətə gətirmişik.
_notebook.ipynb_ faylınızı təmizlənmiş dataset ilə yükləyib X və y datafreymlərinə bölərək model qurulması prosesi üçün hazır vəziyyətə gətirmişik.
## Qruplaşdırma xəritəsi
Öncədən, Microsoft-un yaddaş vərəqindən datanın qruplaşdırmağın müxtəlif növləri haqqında öyrənmisiniz. Scikit-learn də buna oxşar, amma təxminedicilərinizi(qruplaşdırıcıların digər adı) daha dəqiq təyin etmənizdə sizə yardım edəcək bir yaddaş vərəqəsi təklif edir:
![Scikit-learn-dən MÖ Xəritəsi](../images/map.png)
> Tövsiyyə: [Bu xəritəyə onlayn formada](https://scikit-learn.org/stable/tutorial/machine_learning_map/) baxaraq, cığırlar üzrə hərəkət edərkən üzərlərinə klik edərək dokumentasiyaları oxuya bilərsiniz.
![Scikit-learn-dən ML Xəritəsi](../images/map.png)
> Tövsiyyə: [Bu xəritəyə onlayn formada](https://scikit-learn.org/stable/tutorial/machine_learning_map/) baxaraq cığırlar üzrə hərəkət edərkən üzərlərinə klik edərək sənədləri oxuya bilərsiniz.
### Plan
@ -27,18 +27,18 @@ Datanız haqqında aydın fikirləriniz olduğu zaman bu xəritə sizə çox kö
- Kateqoriyanı təxmin etmək istəyirik
- Etiketlənmiş datamız var
- 100 mindən daha az nümunəmiz var
- ✨ Xətti DVQ(Dəstək-Vektor Qruplaşdırıcı)-i seçə bilərik
- Ədədi datamız olduğuna görə, əgər işinizə yaramazsa
- ✨ Xətti SVC (Dəstək-Vektor Qruplaşdırıcı) seçə bilərik
- Ədədi datamız olduğuna görə əgər işinizə yaramazsa
- ✨ K-Qonşu Qruplaşdırıcını yoxlaya bilərik
- Əgər bu da işinizə yaramazsa, ✨ DVQ və ✨ Ansambl Qruplaşdırıcılarını yoxlayın.
- Əgər bu da işinizə yaramazsa, ✨ SVC və ✨ Ansambl Qruplaşdırıcılarını yoxlayın.
Bu izləyə biləcəyiniz çox faydalı bir yoldur.
## Tapşırıq - datanı ayırmaq
Həmin cığırı izləyərək, istifadə etmək üçün bəzi kitabxanaları idxal edərək başlamalıyıq.
Həmin cığırı izləyərək istifadə etmək üçün bəzi kitabxanaları daxil edərək başlamalıyıq.
1. Tələb olunan kitabxanaları idxal edin:
1. Tələb olunan kitabxanaları daxil edin:
```python
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
@ -49,21 +49,21 @@ Həmin cığırı izləyərək, istifadə etmək üçün bəzi kitabxanaları id
import numpy as np
```
2. Öyrədilmə və test datalarını ayırın:
2. Öyrətmə və test datalarını ayırın:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
```
## Xətti DVQ(Dəstək-Vektor Qruplaşdırıcı)
## Xətti SVC (Dəstək-Vektor Qruplaşdırıcı)
Dəstək-Vektor klasterləşmə, MÖ texnikalarından(aşağıda bu haqda ətraflı öyrənə bilərsiniz) olan Dəstək-Vektor maşınları ailəsinin bir üzvüdür. Bu metodda siz etiketləri klasterləşdirmək üçün 'kernel(özək)' seçə bilərsiniz. 'C' parametri, parametrlərin təsirini nizamlayan 'regularization(nizamlama)'-ı bildirir. Özək [bunlardan](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) biri ola bilər. Burada biz xətti DVQ-ı istifadə edəcəyimizə görə onun da 'xətti' olaraq təyin etmişik. Ehtimalın öz standart olaraq təyin olunmuş dəyəri 'false(yanlış)'-dur. Amma burada ehtimal haqqında təxminlər toplamağımız üçün onu 'true(doğru)'-a dəyişmişik. Random state-i(Random vəziyyəti) isə, ehtimalları datanı qarışdıraraq əldə etmək üçün '0'-a bərabər etmişik.
Dəstək-Vektor klasterləşmə ML texnikalarından(aşağıda bu haqda ətraflı öyrənə bilərsiniz) olan Dəstək-Vektor maşınları ailəsinin bir üzvüdür. Bu metodda siz etiketləri klasterləşdirmək üçün 'kernel(özək)' seçə bilərsiniz. 'C' parametri, parametrlərin təsirini nizamlayan 'regularization(nizamlama)'-ı bildirir. Özək [bunlardan](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) biri ola bilər. Burada biz xətti SVC istifadə edəcəyimizə görə onu da 'xətti' olaraq təyin etmişik. Ehtimalın özü standart olaraq təyin olunmuş dəyəri 'false(yanlış)'-dur. Amma burada ehtimal haqqında təxminlər toplamağımız üçün onu 'true(doğru)'-a dəyişmişik. Random state (Təsadüfi vəziyyəti) isə ehtimalları datanı qarışdıraraq əldə etmək üçün '0'-a bərabər etmişik.
### Tapşırıq - xətti DVQ-i tətbiq edin
### Tapşırıq - xətti SVC tətbiq edin
Qruplaşdırıcılardan ibarət bir massiv yaratmaqla başlayın. Testlər apardıqca, bu massivə əlavələr edəcəksiniz.
1. Xətti DVQ ilə başlayın:
1. Xətti SVC ilə başlayın:
```python
C = 10
@ -73,7 +73,7 @@ Qruplaşdırıcılardan ibarət bir massiv yaratmaqla başlayın. Testlər apard
}
```
2. Xətti DVQ istifadə edərək modeli öyrədin və reportu ekrana çap edin:
2. Xətti SVC istifadə edərək modeli öyrədin və reportu ekrana çap edin:
```python
n_classifiers = len(classifiers)
@ -105,13 +105,13 @@ Qruplaşdırıcılardan ibarət bir massiv yaratmaqla başlayın. Testlər apard
```
## K-Qonşu qruplaşdırıcısı
K-Qonşu, MÖ metodlarının həm nəzarətli, həm də nəzarətsiz öyrənmə üçün istifadə edilən "qonşular" ailəsinin bir hissəsidir. Bu metodda, öncədən təyin olunan sayda data nöqtələri yaradılır və datalar bu nöqtələr ətrafında məlumatlar üçün ümumiləşdirilmiş etiketlər proqnozlaşdırıla bilinəcəyi formada toplanılır.
K-Qonşu ML metodlarının həm nəzarətli, həm də nəzarətsiz öyrənmə üçün istifadə edilən "qonşular" ailəsinin bir hissəsidir. Bu metodda öncədən təyin olunan sayda data nöqtələri yaradılır və datalar bu nöqtələr ətrafında məlumatlar üçün ümumiləşdirilmiş etiketlərin proqnozlaşdırıla bilinəcəyi formada toplanılır.
### Tapşırıq - K-Qonşu qruplaşdırıcısını tətbiq edin
Öncəki qruplaşdırıcı yaxşı idi və data ilə əla işlədi. Amma daha yuxarı dəqiqlik əldə edə bilərik. K-Qonşu qruplaşdırıcısını yoxlayın.
1. Qruplaşdırıcı massivinizə yeni sətir əlavə edin (Xətti DVQ-dən sonra vergül qoyun):
1. Qruplaşdırıcı massivinizə yeni sətir əlavə edin (Xətti SVC-dən sonra vergül qoyun):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -138,7 +138,7 @@ K-Qonşu, MÖ metodlarının həm nəzarətli, həm də nəzarətsiz öyrənmə
## Dəstək-Vektor Qruplaşdırıcısı
Dəstək-Vektor qruplaşdırıcıları, MÖ metodlarının qruplaşdırma və reqressiya tapşırıqları üçün istifadə edilən [Dəstək-Vektor Maşını](https://wikipedia.org/wiki/Support-vector_machine) ailəsinin bir hissəsidir. DVM-lər iki kateqoriya arasındakı məsafəni maksimallaşdırmaq üçün "öyrətmə nümunələrini fəzadakı nöqtələrə köçürür". Sonrakı datalar kateqoriyalarının müəyyən olunması üçün bu fəzaya köçürülür.
Dəstək-Vektor qruplaşdırıcıları ML metodlarının qruplaşdırma və reqressiya tapşırıqları üçün istifadə edilən [Dəstək-Vektor Maşını](https://wikipedia.org/wiki/Support-vector_machine) ailəsinin bir hissəsidir. SCM-lər iki kateqoriya arasındakı məsafəni maksimallaşdırmaq üçün "öyrətmə nümunələrini fəzadakı nöqtələrə köçürür". Sonrakı datalar kateqoriyalarının müəyyən olunması üçün bu fəzaya köçürülür.
### Dəstək Vektor Qruplaşdırıcısını tətbiq edin
@ -167,11 +167,11 @@ Gəlin Dəstək Vektor Qruplaşdırıcı ilə daha dəqiq nəticə əldə etməy
weighted avg 0.84 0.83 0.83 1199
```
✅ [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm) haqqında ətraflı öyrənin
✅ [Dəstək-Vektorları](https://scikit-learn.org/stable/modules/svm.html#svm) haqqında ətraflı öyrənin
## Ansambl Qruplaşdrıcıları
Gəlin cığırı əvvəlki testimiz kifayət qədər yaxşı olsa da axıra qədər izləyək. 'Ansambl Qruplaşdırıcılarını, xüsusilə Random Meşə və AdaBoost-u' yoxlayaq:
Gəlin cığırı əvvəlki testimiz kifayət qədər yaxşı olsa da axıra qədər izləyək. 'Ansambl Qruplaşdırıcılarını, xüsusilə Random Forest və AdaBoost-u' yoxlayaq:
```python
'RFST': RandomForestClassifier(n_estimators=100),
@ -210,24 +210,24 @@ weighted avg 0.73 0.72 0.72 1199
✅ [Ansambl Qruplaşdırıcıları](https://scikit-learn.org/stable/modules/ensemble.html) haqqında ətraflı öyrənin
Maşın Öyrənməsinin bu metodu, modelin keyfiyyətini artırmaq üçün 'bir neçə təxminedicilərin təxminlərini özündə birləşdirir'. Nümunəmizdə, Random Ağacları və AdaBoost-u istifadə etdik.
Maşın Öyrənməsinin bu metodu modelin keyfiyyətini artırmaq üçün 'bir neçə təxminedicilərin təxminlərini özündə birləşdirir'. Nümunəmizdə, Random Forest və AdaBoost-u istifadə etdik.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), ortalama hesablayan bir metod olaraq, həddən artıq uyğunlaşmamaq üçün təsadüfiliklə doldurulmuş 'qərarvermə ağaclarından' təşkil olunmuş 'meşə' yaradır. n_estimators parametri, ağacların sayını bildirir.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest) ortalama hesablayan bir metod olaraq həddən artıq uyğunlaşmamaq üçün təsadüfiliklə doldurulmuş 'qərarvermə ağaclarından' təşkil olunmuş 'meşə' yaradır. n_estimators parametri ağacların sayını bildirir.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) isə qruplaşdırıcını data setə uyğunlaşdırır və daha sonra öz surətlərini həmin datasetə uyğunlaşdırır. O yanlış qruplaşdırılmış qruplaşdırıcıların çəkilərinə fokuslanır və bir sonrakı qruplaşdırıcının düzəltməsi üçün uyğunluğa düzəlişlər edir.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) isə qruplaşdırıcını datasetə uyğunlaşdırır və daha sonra öz surətlərini həmin datasetə uyğunlaşdırır. O, yanlış qruplaşdırılmış qruplaşdırıcıların çəkilərinə fokuslanır və bir sonrakı qruplaşdırıcının düzəltməsi üçün uyğunluğa düzəlişlər edir.
---
## 🚀Məşğələ
## 🚀 Məşğələ
Bu texnikaların hər birinin dəyişiklər edə biləcəyiniz çox sayda parametrləri mövcuddur. Hər birinin standart olaraq təyin edilmiş parametrlərini araşdırın və bu parametrlərin dəyişdirilməsinin modelin keyfiyyəti üçün önəmi haqqında düşünün.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/24/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/24/?loc=az)
## Təkrarlayın və özünüz öyrənin
Bu dərslərdə çoxlu jarqon sözlər mövcuddur. Ona görə də bir dəqiqənizi ayıraraq, praktiki terminologiyaların olduğu [bu siyahıya](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) nəzər yetirin.
Bu dərslərdə çoxlu jarqon sözlər mövcuddur. Ona görə də bir dəqiqənizi ayıraraq praktiki terminologiyaların olduğu [bu siyahıya](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) nəzər yetirin.
## Tapşırıq
[Parameter oyunu](assignment.az.md)
[Parametr oyunu](assignment.az.md)

@ -1,11 +1,11 @@
# Parameter Oyunu
# Parametr oyunu
## Təlimatlar
Bu klassifikatorlarla işləyərkən standart olaraq təyin edilmiş bir çox parametrlər mövcuddur. VS Code-un Intellisense-i onları öyrənməyə kömək edə bilər. Bu dərsdə Maşın Öyrənmə Təsnifat Metodlarından birini seçin və müxtəlif parametrlərin dəyərlərini dəyişdirərək modelləri yenidən öyrədin. Bəzi dəyişikliklərin niyə modelin keyfiyyətini yaxşılaşdırdığını, bəzilərinin isə onu azaltdığını izah edən bir dəftərçə hazırlayın. Cavabınızı ətraflı izah etməyə çalışın.
Bu qruplaşdırıcılarla işləyərkən standart olaraq təyin edilmiş bir çox parametrlər mövcuddur. VS Code-un Intellisense-i onları öyrənməyə kömək edə bilər. Bu dərsdə Maşın Öyrənmə Qruplaşdırma Metodlarından birini seçin və müxtəlif parametrlərin dəyərlərini dəyişdirərək modelləri yenidən öyrədin. Bəzi dəyişikliklərin niyə modelin keyfiyyətini yaxşılaşdırdığını, bəzilərinin isə onu azaltdığını izah edən bir notbuk hazırlayın. Cavabınızı ətraflı izah etməyə çalışın.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ----------------------------- |
| | Dəftərçə tam qurulu, parametrləri dəyişdirilmiş və nəticələri paraqraflarda göstərilmiş qruplaşdrıcı ilə təqdim olunub | Dəftərçə yarımçıq formada və natamam şəkildə izahla təqdim olunub | Dəftərçə problemli və qüsurludur |
| -------- | -------- | ------- | ------------------------ |
| | Notbuk tam qurulu, parametrləri dəyişdirilmiş və nəticələri paraqraflarda göstərilmiş qruplaşdrıcı ilə təqdim olunub | Dəftərçə yarımçıq formada və natamam şəkildə izahla təqdim olunub | Notbuk problemli və qüsurludur |

@ -1,14 +1,14 @@
# Mətbəx tövsiyyə edən Veb tətbiq yaradaq
Bu dərsdə əvvəlki dərslərdə öyrəndiyimiz bəzi üsullar və bu bölmədə istifadə olunan ləzzətli mətbəx data seti ilə təsnifat modeli quracağıq. Bundan əlavə, Onnx-in veb runtime versiyasından istifadə edərək yadda saxlanmış modeli tətbiq etmək üçün kiçik veb tətbiqi yaratmalıyıq.
Bu dərsdə əvvəlki dərslərdə öyrəndiyimiz bəzi üsullar və bu bölmədə istifadə olunan ləzzətli mətbəx data seti ilə qruplaşdırıcı modeli quracağıq. Bundan əlavə, Onnx-in veb runtime versiyasından istifadə edərək yadda saxlanmış modeli tətbiq etmək üçün kiçik veb tətbiqi yaratmalıyıq.
Maşın Öyrənməsinin ən faydalı praktik istifadələrindən biri tövsiyə sistemlərinin qurulmasıdır və biz bu istiqamətdə ilk addımı atacağıq!
Maşın öyrənməsinin ən faydalı praktik istifadələrindən biri tövsiyə sistemlərinin qurulmasıdır və biz bu istiqamətdə ilk addımı atacağıq!
[![Veb tətbiqin təqdimatı](https://img.youtube.com/vi/17wdM9AHMfg/0.jpg)](https://youtu.be/17wdM9AHMfg "Tətbiqi MÖ")
> 🎥 Video üçün yuxardakı şəklə klikləyin: Jen Looper təsnifləşdirilmiş mətbəx datası istifadə etməklə veb tətbiq yaradır.
> 🎥 Video üçün yuxardakı şəklə klikləyin: Jen Looper qruplaşdırılmış mətbəx datası istifadə etməklə veb tətbiq yaradır.
## [Mühazirə öncəsi sual-cavab](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/25/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/25/?loc=az)
Bu dərsdə öyrənəcəksiniz:
@ -18,26 +18,26 @@ Bu dərsdə öyrənəcəksiniz:
## Modelinizi yaradın
Tətbiq olunan MÖ sistemlərinin yaradılması biznes sistemləri üçün bu texnologiyalardan istifadə etməyin vacib hissəsidir. Onnx-dən istifadə etməklə veb proqramlar daxilində modellərdən istifadə etmək olar (ehtiyac olduqda onları oflayn kontekstdə istifadə etmək lazımdır).
Tətbiq olunan ML sistemlərinin yaradılması biznes sistemləri üçün bu texnologiyalardan istifadə etməyin vacib hissəsidir. Onnx-dən istifadə etməklə veb proqramlar daxilində modellərdən istifadə etmək olar (ehtiyac olduqda onları oflayn mühitdə istifadə etmək lazımdır).
[Əvvəlki dərsdə](../../../3-Web-App/1-Web-App/README.md), UFO ilə bağlı reqresiya modelini yaradıb, "pickle" edib, və Flask tətbiqi daxilində istifadə etmişdik. Bu arxitekturanı bilmək çox faydalı olsa da, tamamilə Python proqramıdır. Lakin, sizdən Javascript tətbiqi də yazmaq tələb oluna bilər.
[Əvvəlki dərsdə](../../../3-Web-App/1-Web-App/translations/README.az.md) UFO ilə bağlı reqresiya modelini yaradıb, "pickle" edib Flask tətbiqi daxilində istifadə etmişdik. Bu arxitekturanı bilmək çox faydalı olsa da, tamamilə Python proqramıdır. Lakin, sizdən Javascript tətbiqi də yazmaq tələb oluna bilər.
Bu dərsdə nəticə almaq üçün Javascript əsasında veb tətbiq yarada bilərik. Əvvəlcə, modeli öyrətmək və Onnx ilə işləməsi üçün hazırlamaq lazımdır.
Bu dərsdə nəticə almaq üçün Javascript əsasında veb tətbiq yarada bilərik. Əvvəlcə modeli öyrətmək və Onnx ilə işləməsi üçün hazırlamaq lazımdır.
## Tapşırıq - klassifikasiya modelini öyrədin
## Tapşırıq - qruplaşdırıcı modelini öyrədin
İlk öncə, klassifikasiya modelini təmizlənmiş mətbəxlər data dəstini istifadə etməklə öyrədək
İlk öncə qruplaşdırıcı modeli təmizlənmiş mətbəxlər data dəstini istifadə etməklə öyrədək.
1. Lazımlı kitabxanaları əlavə etməklə başlayaq:
1. Lazımi kitabxanaları əlavə etməklə başlayaq:
```python
!pip install skl2onnx
import pandas as pd
```
Scikit-learn modelini Onnx formatına keçirmək üçün '[skl2onnx](https://onnx.ai/sklearn-onnx/)'-nun köməyinə ehtiyacımız var.
Scikit-learn modelini Onnx formatına keçirmək üçün '[skl2onnx](https://onnx.ai/sklearn-onnx/)' köməyinə ehtiyacımız var.
1. CSV faylını oxumaq üçün `read_csv()` istifadə etməklə əvvəlki dərsdə etdiyimiz kimi data dəsti ilə işləməliyik:
1. CSV faylını oxumaq üçün `read_csv()` istifadə etməklə əvvəlki dərsdə etdiyimiz kimi dataset ilə işləməliyik:
```python
data = pd.read_csv('../data/cleaned_cuisines.csv')
@ -56,7 +56,6 @@ Bu dərsdə nəticə almaq üçün Javascript əsasında veb tətbiq yarada bil
```python
y = data[['cuisine']]
y.head()
```
### Təlim rutininə başlayaq
@ -91,7 +90,7 @@ Biz yüksək dəqiqliyə malik "SVC" kitabxanasından istifadə edəcəyik.
y_pred = model.predict(X_test)
```
1. Modelin keyfiyyətini yoxlamaq üçün təsnifat hesabatını çap edək:
1. Modelin keyfiyyətini yoxlamaq üçün qruplaşdırıcı hesabatını çap edək:
```python
print(classification_report(y_test,y_pred))
@ -135,20 +134,20 @@ Düzgün Tensor nömrəsi ilə çevirmə etdiyimizə əmin olmalıyıq. Bu data
f.write(onx.SerializeToString())
```
> Konvertasiya skriptində [options](https://onnx.ai/sklearn-onnx/parameterized.html)-ı ötürə bilərik. Bu halda, 'nocl'-nın True və 'zipmap'-ın False olmasını təmin etdik.
Bu təsnifat modeli olduğundan, lüğətlərin siyahısını yaradan ZipMap-ı silmək seçimimiz var (vacib deyil). `nocl` modelə daxil edilmiş sinif məlumatlarına istinad edir. `nocl`-i 'True' olaraq təyin edərək modelinizin ölçüsünü azaldaq.
> Konvertasiya skriptində [options](https://onnx.ai/sklearn-onnx/parameterized.html) ötürə bilərik. Bu halda, 'nocl' True və 'zipmap' False olmasını təmin etdik.
Bu qruplaşdırıcı model olduğundan lüğətlərin siyahısını yaradan ZipMap-ı silmək seçimimiz var (vacib deyil). `nocl` modelə daxil edilmiş sinif məlumatlarına istinad edir. `nocl`-i 'True' olaraq təyin edərək modelinizin ölçüsünü azaldaq.
Bütün notebooku işə salmaqla Onnx modelini yaradaraq onu bu qovluqda yadda saxlaya biləcəyik.
Bütün notbuku işə salmaqla Onnx modelini yaradaraq onu bu qovluqda yadda saxlaya biləcəyik.
## Modelə nəzər yetirək
Onnx modelləri Visual Studio kodunda visual olaraq görünmür. Bir çox tədqiqatçı modelin düzgün qurulmasını təmin etmək üçün onu vizuallaşdırmağa istifadə etdiyi pulsuz proqramlardan istifadə edir. [Netron](https://github.com/lutzroeder/Netron) yükləyək və model.onnx faylını açaq. Sadə modelin 380 girişi və siyahıda göstərilən təsnifatı ilə vizuallaşdırıldığını görə bilərsiniz:
Onnx modelləri Visual Studio kodunda visual olaraq görünmür. Bir çox tədqiqatçı modelin düzgün qurulmasını təmin etmək üçün onu vizuallaşdırmağa istifadə olunan pulsuz proqramlardan istifadə edir. [Netron](https://github.com/lutzroeder/Netron) yükləyək və model.onnx faylını açaq. Sadə modelin 380 girişi və siyahıda göstərilən təsnifatı ilə vizuallaşdırıldığını görə bilərsiniz:
![Netron vizualı](images/netron.png)
![Netron vizualı](../images/netron.png)
Netron modelləri vizual olaraq görmək üçün bir vasitədir.
İndi bu səliqəli modeli veb proqramında istifadə etməyə hazırıq. Gəlin, soyuducuya baxan zaman işimizə yarayacaq bir proqram yaradaq və modelə görə müəyyən edilmiş mətbəx növünü bişirmək üçün qalıq inqrediyentlərin hansı kombinasiyasından istifadə edə biləcəyinizi anlamağa çalışaq.
İndi bu səliqəli modeli veb proqramda istifadə etməyə hazırıq. Gəlin soyuducuya baxan zaman işimizə yarayacaq bir proqram yaradaq və modelə görə müəyyən edilmiş mətbəx növünü bişirmək üçün qalıq inqrediyentlərin hansı kombinasiyasından istifadə edə biləcəyinizi anlamağa çalışaq.
## Tövsiyə verən bir veb tətbiq yaradaq
@ -168,44 +167,44 @@ Modeli birbaşa veb proqramında istifadə edə bilərik. Bu arxitektura həm d
</html>
```
1. İndi isə `body` taqları ilə işləyərək, ingridientləri əks etdirən bölmələri əlavə edək:
1. İndi isə `body` teqləri ilə işləyərək ingridientləri əks etdirən bölmələri əlavə edək:
```html
<h1>Soyuducuya bax. Nə bişirə bilərsən?</h1>
<div id="wrapper">
<div class="boxCont">
<input type="checkbox" value="4" class="checkbox">
<label>apple</label>
<label>alma</label>
</div>
<div class="boxCont">
<input type="checkbox" value="247" class="checkbox">
<label>pear</label>
<label>armud</label>
</div>
<div class="boxCont">
<input type="checkbox" value="77" class="checkbox">
<label>cherry</label>
<label>vişnə</label>
</div>
<div class="boxCont">
<input type="checkbox" value="126" class="checkbox">
<label>fenugreek</label>
<label>çəmən otu</label>
</div>
<div class="boxCont">
<input type="checkbox" value="302" class="checkbox">
<label>sake</label>
<label>düyü şərabı</label>
</div>
<div class="boxCont">
<input type="checkbox" value="327" class="checkbox">
<label>soy sauce</label>
<label>soya sousu</label>
</div>
<div class="boxCont">
<input type="checkbox" value="112" class="checkbox">
<label>cumin</label>
<label>cirə</label>
</div>
</div>
<div style="padding-top:10px">
@ -213,17 +212,17 @@ Modeli birbaşa veb proqramında istifadə edə bilərik. Bu arxitektura həm d
</div>
```
Qeyd edək ki, hər bir xanaya dəyər verilir. Bu, verilənlər bazasına uyğun olaraq tərkib hissəsinin tapıldığı indeksi əks etdirir. Məsələn, 'Apple' əlifba siyahısında beşinci sütundadır, ona görə də biz 0-dan saymağa başladığımız zaman verilmiş tərkib indeksinə görə onun dəyəri '4'dür. [inqrediyentlər cədvəli](../../data/ingredient_indexes.csv)-ni nəzərdən keçirməklə verilmiş tərkib hissələrini görə bilərsiniz.
Qeyd edək ki, hər bir xanaya dəyər verilir. Bu, verilənlər bazasına uyğun olaraq tərkib hissəsinin tapıldığı indeksi əks etdirir. Məsələn, 'Alma' əlifba siyahısında beşinci sütundadır, ona görə də biz 0-dan saymağa başladığımız zaman verilmiş tərkib indeksinə görə onun dəyəri '4'dür. [inqrediyentlər cədvəli](../../data/ingredient_indexes.csv)ni nəzərdən keçirməklə verilmiş tərkib hissələrini görə bilərsiniz.
index.html faylında işi davam etdirərək, `</div>` yekunlaşdırıcı bağlandıqdan sonra modelin çağrıldığı skript blokunu əlavə edin.
1. İlk öncə, [Onnx Runtime](https://www.onnxruntime.ai/)-ı əlavə edək:
1. İlk öncə, [Onnx Runtime](https://www.onnxruntime.ai/) əlavə edək:
```html
<script src="https://cdn.jsdelivr.net/npm/onnxruntime-web@1.9.0/dist/ort.min.js"></script>
```
> Onnx Runtime, Onnx modelləri optimallaşdırmaq və istifadə edə bilmək üçün API daxil olmaqla, geniş çeşidli platformalarında işləməyə imkan vermək üçün istifadə olunur.
> Onnx Runtime, Onnx modelləri optimallaşdırmaq və istifadə edə bilmək üçün API daxil olmaqla geniş çeşidli platformalarda işləməyə imkan vermək üçün istifadə olunur.
1. Runtime yerini aldıqdan sonra işə sala bilərik:
@ -280,31 +279,32 @@ Modeli birbaşa veb proqramında istifadə edə bilərik. Bu arxitektura həm d
Bu kodda eyni anda bir neçə prosses baş verir:
1. Mümkün 380 dəyərdən (1 və ya 0) ibarət massiv yaratdıq və inqrediyentin işarələnib göstərilməsindən asılı olaraq nəticə çıxarmaq üçün modelə göndəriləcək.
2. Qeyd qutuları massivi və onların proqram başlayanda çağırılan `init` funksiyasında yoxlanılıb-yoxlanılmadığını müəyyən etmək üçün bir üsul yaratdıq. Yoxlama qutusu işarələndikdə, `ingredients` massivi seçilmiş inqrediyenti əks etdirmək üçün yenilənir.
3. `testCheckboxes` funksiyası yaradaraq hansısa qeyd qutusunun işarələnib işarələnmədiyini yoxlanılır.
4. `startInference` funksiyasını istifadə edərək, hansısa düymə kliklənəndə və ya hər hansı işarə qutusu seçiləndə hərəkətə keçilir.
2. Qeyd qutuları massivinin proqram başlayanda çağırılan `init` funksiyasında yoxlanılıb-yoxlanılmadığını müəyyən etmək üçün bir üsul yaratdıq. Yoxlama qutusu işarələndikdə, `ingredients` massivi seçilmiş inqrediyenti əks etdirmək üçün yenilənir.
3. `testCheckboxes` funksiyası yaradaraq hansısa qeyd qutusunun işarələnib-işarələnmədiyini yoxlanılır.
4. `startInference` funksiyasını istifadə edərək hansısa düymə basılanda və ya hər hansı işarə qutusu seçiləndə hərəkətə keçilir.
5. Nəticə çıxarma ardıcıllığı aşağıdakıları əhatə edir:
1. Modelin asinxron yükünün qurulması
2. Modelə göndərmək üçün Tensor strukturunun yaradılması
3. Modeli öyrədərkən yaratdığımız `float_input` daxiletməsini əks etdirən `feeds` datasının yaradılması (bu adı yoxlamaq üçün Netron-dan istifadə edə bilərsiniz)
4. `feeds` məlumatını modelə göndərmək və ondan cavab gözləmək
## Proqraqmı test edək
## Proqramı test edək
index.html faylının yerləşdiyi qovluqda Visual Studio-da yeni terminal açaq və qlobalda quraşdırılmış [http-server](https://www.npmjs.com/package/http-server) mövcud olduğundan əmin olaq. Sorğuda `http-server` yazdıqdan sonra Localhost açılacaq. Beləliklə Veb tətbiqə nəzər yetirə bilərik. Müxtəlif inqridiyentlər əsasında hansı mətbəxin tövsiyə olunduğunu yoxlayaq:
index.html faylının yerləşdiyi qovluqda Visual Studio-da yeni terminal açaq və qlobalda quraşdırılmış [http-server](https://www.npmjs.com/package/http-server) mövcud olduğundan əmin olaq. Sorğuda `http-server` yazdıqdan sonra Localhost açılacaq. Beləliklə Veb tətbiqə nəzər yetirə bilərik. Müxtəlif inqrediyentlər əsasında hansı mətbəxin tövsiyə olunduğunu yoxlayaq:
![ingrediyent veb tətbiq](../images/web-app.png)
Təbriklər, 'tövsiyyə edən' veb tətbiq yaratdıq. İndi isə sistemi qurmaq üçün daha çox vaxt ayıraq!
## 🚀Məşğələ
## 🚀 Məşğələ
Hazırki veb tətbiq minimal səviyyədədir. Bu səbəbdən inqrediyentlər və onların indekslərinə əsasən [ingredient_indexes](../../data/ingredient_indexes.csv) datasından istifadə etməklə davam etmək lazımdır. Verilmiş milli yeməyi hazırlamaq üçün hansı dadlardan istifadə edilməlidir, müəyyən edək.
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/26/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/26/?loc=az)
## Təkrarlayın və özünüz öyrənin
Biz bu dərsdə qida maddələri üçün tövsiyə sisteminin yaradılmasına səthi toxunsaq da, MÖ tətbiqlərinin bu sahədə töhvələri çox zəngindir. Bu sistemlərin necə qurulduğu haqqında daha ətraflı oxuyun:
Biz bu dərsdə qida maddələri üçün tövsiyə sisteminin yaradılmasına səthi toxunsaq da, ML tətbiqlərinin bu sahədə töhvələri çox zəngindir. Bu sistemlərin necə qurulduğu haqqında daha ətraflı oxuyun:
- https://www.sciencedirect.com/topics/computer-science/recommendation-engine
- https://www.technologyreview.com/2014/08/25/171547/the-ultimate-challenge-for-recommendation-engines/
@ -312,4 +312,4 @@ Biz bu dərsdə qida maddələri üçün tövsiyə sisteminin yaradılmasına s
## Tapşırıq
[Yeni tövsiyyə sistemi yaradın](assignment.md)
[Yeni tövsiyyə sistemi yaradın](assignment.az.md)

@ -1,11 +1,11 @@
# Tövsiyə sistemi yaradın
# Yeni tövsiyə sistemi yaradın
## Təlimatlar
Bu dərslərdəki təcrübələrə əsasən, Onnx Runtime və ya çevrilmiş bir Onnx modeli istifadə edərək JavaScript əsaslı veb tətbiqi necə yaratmağı artıq bilirik. Bu dərsdəki məlumatlardan və ya başqa mənbədən (zəhmət olmasa, mənbəni göstərməklə) məlumatları istifadə edərək yeni bir tövsiyə yaratmaqla təcrübələr aparın. Fərqli şəxsiyyət xüsusiyyətlərinə görə müəyyən bir ev heyvanı tövsiyəçisi və ya şəxsin əhvalına uyğun musiqi janrı tövsiyə edən bir sistem yarada bilərsiniz. Kreativ olun!
Bu dərslərdəki təcrübələrə əsasən Onnx Runtime və ya çevrilmiş bir Onnx modeli istifadə edərək JavaScript əsaslı veb tətbiqi necə yaratmağı artıq bilirik. Bu dərsdəki məlumatlardan və ya başqa mənbədən (zəhmət olmazsa, mənbəni göstərməklə) məlumatları istifadə edərək yeni bir tövsiyə sistemi yaratmaqda təcrübələr aparın. Fərqli şəxsiyyət xüsusiyyətlərinə görə müəyyən bir ev heyvanı tövsiyəçisi və ya şəxsin əhvalına uyğun musiqi janrı tövsiyə edən bir sistem yarada bilərsiniz. Yaradıcı olun!
## Rubrika
| Kriteriya | Nümunəvi | Adekvat | İnkişafa ehtiyyacı olan |
| -------- | ---------------------------------------------------------------------- | ------------------------------------- | --------------------------------- |
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | -------- | ------- | ------------------------ |
| | Veb tətbiq və ya notbuk verilib. Hər ikisi istifadəyə hazırdır. | İkisindən biri əskikdir və ya qüsurludur. | Hər ikisi ya əskikdir, ya da qüsurludur. |

@ -1,27 +1,27 @@
# Təsnifatlandırma bölməsinə başlayırıq
# Qruplaşdırma bölməsinə başlayırıq
## Regional mövzu: Ləzzətli Asiya və Hindistan Mətbəxləri 🍜
Asiyada və Hindistanda yeməklərlə bağlı olan adət-ənənələr son dərəcə çeşidli və çox ləzzətlidir! Gəlin, regional mətbəxlər üçün olan dataya baxaraq hansı inqrediyentlərin istifadə olunduğunu başa düşməyə çalışaq.
Asiyada və Hindistanda yeməklərlə bağlı olan adət-ənənələr son dərəcə çeşidli və çox ləzzətlidir! Gəlin regional mətbəxlər üçün olan dataya baxaraq hansı inqrediyentlərin istifadə olunduğunu başa düşməyə çalışaq.
![Tay yeməkləri satıcısı](../images/thai-food.jpg)
> <a href="https://unsplash.com/s/photos/asian-food?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a> platformasında <a href="https://unsplash.com/@changlisheng?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Lisheng Chang</a> tərəfindən çəkilmiş şəkil
## Nə öyrənəcəksiniz
## Nə öyrənəcəksiniz?
Bu bölmədə siz, Reqressiya haqqında əvvəlki bölmələrdən öyrəndiklərinizi təkmilləşdirəcək və datanı daha yaxşı başa düşmək üçün istifadə edə biləcəyiniz digər təsnifatlandırıcılar haqqında öyrənəcəksiniz.
Bu bölmədə siz Reqressiya haqqında əvvəlki bölmələrdən öyrəndiklərinizi təkmilləşdirəcək və datanı daha yaxşı başa düşmək üçün istifadə edə biləcəyiniz digər qruplaşdırıcılar haqqında öyrənəcəksiniz.
> Təsnifatlandırma modelləri ilə işləmək haqqında məlumat almanıza kömək olacaq az-kod yanaşmalı alətlər də mövcuddur. Bu tapşırıq üçün olan [Azure MÖ-i](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) sınaqdan keçirin.
> Qruplaşdırıcı modelləri ilə işləmək haqqında məlumat almanıza kömək olacaq az-kod yanaşmalı alətlər də mövcuddur. Bu tapşırıq üçün olan [Azure ML](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) sınaqdan keçirin.
## Dərslər
1. [Təsnifatlandırma bölməsinə giriş](../1-Introduction/translations/README.az.md)
2. [More classifiers](../2-Classifiers-1/README.md)
3. [Yet other classifiers](../3-Classifiers-2/README.md)
4. [Applied ML: build a web app](../4-Applied/README.md)
1. [Qruplaşdırıcı bölməsinə giriş](../1-Introduction/translations/README.az.md)
2. [Daha çox qruplaşdırıcılar](../2-Classifiers-1/translations/README.az.md)
3. [Bir başqa qruplaşdırıcı](../3-Classifiers-2/translations/README.az.md)
4. [Tətbiqi ML: veb tətbiq qur](../4-Applied/translations/README.az.md)
## Təşəkkürlər
"Təsnifatlandırma bölməsinə başlayırıq" [Cassie Breviu](https://www.twitter.com/cassiebreviu) və [Jen Looper](https://www.twitter.com/jenlooper) tərəfindən ♥️-lə yazılmışdır
"Qruplaşdırıcı bölməsinə giriş" [Cassie Breviu](https://www.twitter.com/cassiebreviu) və [Jen Looper](https://www.twitter.com/jenlooper) tərəfindən ♥️-lə yazılmışdır
Ləzzətli mətbəxlər data massivi [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines)-dan götürülmüşdür.
Ləzzətli mətbəxlər data massivi [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines) platformasından götürülmüşdür.

@ -1,60 +1,63 @@
# Klasterləşdirmə bölməsinə giriş
Klasterləşdirmə, verilən data massivin etiketlənməmiş olduğunu ya da giriş dəyərlərinin öncədən müəyyən olunmuş çıxış dəyərləri ilə uyğunlaşdırılmış olmadığını fərz edən [yönləndirilməyən öyrənmə](https://wikipedia.org/wiki/Unsupervised_learning)nin bir formasıdır. Klasterləşdirmə etiketlənməmiş datanı çeşidləmək və datada tapdığı təkrarlanan nümənələri təmin etmək üçün müxtəlif alqoritmlərdən istifadə edir.
Klasterləşdirmə verilən datasetin etiketlənməmiş olduğunu və ya giriş dəyərlərinin öncədən müəyyən olunmuş çıxış dəyərləri ilə uyğunlaşdırılmış olmadığını fərz edən [nəzarətsiz öyrənmə](https://wikipedia.org/wiki/Unsupervised_learning)nin bir formasıdır. Klasterləşdirmə etiketlənməmiş datanı çeşidləmək və datada tapdığı təkrarlanan nümunələri təmin etmək üçün müxtəlif alqoritmlərdən istifadə edir.
[![P-Square - No One Like You](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "P-Square - No One Like You")
> 🎥 Videoya keçid üçün yuxarıdakı təsvirə klikləyin. Maşın öyrənməsində klasterləşdirmə bölməsini öyrənərkən Dance Hall janrında olan Nigeriya treklərindən zövq alın - bu mahnı 2014-cü ilin bəyənilən mahnısı olub, P-Square adlı musiqi ikilisinə aiddir.
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/27/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/27/?loc=az)
### Giriş
[Klasterləşdirmə](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) datanın tədqiqi üçün çox faydalıdır. Gəlin bu üsulun Nigeriyalı auditoriyanın üstünlük verdiyi musiqidə tendensiyanı və təkrarlanan nümunələri kəşf etməyə kömək edə bilib bilməyəcəyinə baxaq.
[Klasterləşdirmə](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) datanın tədqiqi üçün çox faydalıdır. Gəlin bu üsulun Nigeriyalı auditoriyanın üstünlük verdiyi musiqidə tendensiyanı və təkrarlanan nümunələri kəşf etməyə kömək edə bilib-bilməyəcəyinə baxaq.
✅ Bir az dayanıb klasterləşdirmənin hansı hallarda istifadə olunduğu haqqında düşünün. Real həyatda bir yığın camaşırdan ailə üzvlərinizin geyimlərini çeşidlədiyiniz zaman klasterləşdirmə etmiş olursunuz 🧦👕👖🩲. Data elmində klasterləşdirməyə nümunə olaraq istifadəçinin üstünlük verdiyi seçimləri analiz etməyi və ya etiketlənməmiş data massivin xarakteristikalarını müəyyən etməyi göstərmək olaraq. Klasterləşdirmə bir növ corab çəkməcəsi kimi qarmaqarışıqlığı anlamağa kömək edir.
✅ Bir az dayanıb klasterləşdirmənin hansı hallarda istifadə olunduğu haqqında düşünün. Real həyatda bir yığın paltardan ailə üzvlərinizin geyimlərini çeşidlədiyiniz zaman klasterləşdirmə etmiş olursunuz 🧦👕👖🩲. Data elmində klasterləşdirməyə nümunə olaraq istifadəçinin üstünlük verdiyi seçimləri analiz etməyi və ya etiketlənməmiş datasetin xarakteristikalarını müəyyən etməyi göstərmək olar. Klasterləşdirmə bir növ corab çəkməcəsi kimi qarmaqarışıqlığı anlamağa kömək edir.
[![MÖ-nə giriş](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "Klasterləşdirmə bölməsinə giriş")
[![ML-ə giriş](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "Klasterləşdirmə bölməsinə giriş")
> 🎥 Yuxarıdakı təsvirə toxunmaqla videoya baxın: John Guttag MIT-də klasterləşdirməni təqdim edir
> 🎥 Yuxarıdakı təsvirə klikləməklə videoya baxın: John Guttag MIT-də klasterləşdirməni təqdim edir
Klasterləşdirmənin daha professional istifadəsinə bazar seqmentasiyasının müəyyən edilməsini, məsələn, hansı yaş qrupunun daha çox nələri aldığını müəyyən etməyi aid etmək olar. Bundan başqa, kredit kartı transaksiyalarının data massivində dələduzluq və bu kimi başqa anomaliyaların aşkarlanmasında klasterləşdirmə faydalı ola bilər. Həmçinin, tibbi təsvirlərdə bədxassəli şişlərin aşkar olunmasında da klasterləşdirməni istifadə etmək mümkündür.
Klasterləşdirmənin daha professional istifadəsinə bazar seqmentasiyasının müəyyən edilməsini, məsələn, hansı yaş qrupunun daha çox nələri aldığını müəyyən etməyi aid etmək olar. Bundan başqa, kredit kartı transaksiyalarının datasetində dələduzluq və bu kimi başqa anomaliyaların aşkarlanmasında klasterləşdirmə faydalı ola bilər. Həmçinin, tibbi təsvirlərdə bədxassəli şişlərin aşkar olunmasında da klasterləşdirməni istifadə etmək mümkündür.
✅ Bir az dayanıb real həyatda, bankçılıqda, elektron ticarətdə ya da biznes şəraitində klasterləşdirmənin istifadəsinə rast gəlmiş ola biləcəyiniz haqqında düşünün.
> 🎓 Maraqlıdır ki, klaster analizi 1930-cu illərdə Antropologiya və Psixologiya sahələrində meydana çıxmağa başlamışdır. Necə istifadə olunduğunu xəyalınızda canlandıra bilərsinizmi?
Alternativ olaraq, klasterləşdirmədən axtarış nəticələrini qruplaşdırmaq üçün istifadə edə bilərsiniz - məsələn, alış-veriş linkləri, şəkillər ya da rəylər ilə qruplaşdıraraq. Klasterləşdirmə böyük data massivi kiçiltmək və kiçildilmiş massivi detallı analiz etmək istədiyiniz zaman köməyə çatır, ona görə də bu üsul başqa modellər yaratmazdan öncə datanın tədqiqi üçün istifadə oluna bilər.
Alternativ olaraq, klasterləşdirmədən axtarış nəticələrini qruplaşdırmaq üçün istifadə edə bilərsiniz - məsələn, alış-veriş linkləri, şəkillər ya da rəylər ilə qruplaşdıraraq. Klasterləşdirmə böyük dataseti kiçiltmək və kiçildilmiş massivi detallı analiz etmək istədiyiniz zaman köməyə çatır, ona görə də bu üsul başqa modellər yaratmazdan öncə datanın tədqiqi üçün istifadə oluna bilər.
✅ Datanı klasterlərə yerləşdirdikdən sonra onlara klaster identifikator təyin olunur və bu üsul datanın məxfiliyini qorumaq üçün də istifadə oluna bilər; hər hansı bir verilənə aşkarlana və müəyyən edilə bilən data ilə istinad etməkdənsə klaster identifikator vasitəsilə istinad edə bilərsiniz. Sizcə, başqa hansı səbəblərə görə klasteri fərqləndirmək üçün klaster identifikator istifadə etmək klasterin digər elementlərini istifadə etməkdən üstün tutula bilər?
Bu [öyrənmə modulunda](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott) klasterləşdirmə üsulları haqqında bildiklərinizi inkişaf etdirin
Bu [öyrənmə modulunda](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott) klasterləşdirmə üsulları haqqında bildiklərinizi inkişaf etdirin.
## Klasterləşdirmə bölməsinə başlayırıq
[Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html) klasterləşdirməni icra etmək üçün müxtəlif üsullardan ibarət geniş spektr təklif edir. Seçəcəyiniz tip istifadə şərtlərindən asılı olacaq. Dokumentasiyaya əsasən, hər bir metodun müxtəlif faydaları var. Scikit-learn tərəfindən dəstəklənən metodlar və onların müvafiq istifadə ssenariləri aşağıdakı sadələşdirilmiş cədvəldə verilib:
| Method name | Use case |
| :--------------------------- | :--------------------------------------------------------------------- |
| K-Means | general purpose, inductive |
| Affinity propagation | many, uneven clusters, inductive |
| Mean-shift | many, uneven clusters, inductive |
| Spectral clustering | few, even clusters, transductive |
| Ward hierarchical clustering | many, constrained clusters, transductive |
| Agglomerative clustering | many, constrained, non Euclidean distances, transductive |
| DBSCAN | non-flat geometry, uneven clusters, transductive |
| OPTICS | non-flat geometry, uneven clusters with variable density, transductive |
| Gaussian mixtures | flat geometry, inductive |
| BIRCH | large dataset with outliers, inductive |
[Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html) klasterləşdirməni icra etmək üçün müxtəlif üsullardan ibarət geniş spektr təklif edir. Seçəcəyiniz tip istifadə şərtlərindən asılı olacaq. Dokumentasiyaya əsasən hər bir metodun müxtəlif faydaları var. Scikit-learn tərəfindən dəstəklənən metodlar və onların müvafiq istifadə ssenariləri aşağıdakı sadələşdirilmiş cədvəldə verilib:
| Metodun adı | Ssenari |
| :----------------------------| :------------------------------------------------------------------------- |
| K-Means | ümumi məqsəd, induktiv |
| Affinity propagation | çox, cüt olmayan klasterlər, induktiv |
| Mean-shift | çox, cüt olmayan klasterlər, induktiv |
| Spectral clustering | az, cüt klasterlər, transduktiv |
| Ward hierarchical clustering | çox, məhdudlaşdırılmış klasterlər, transduktiv |
| Agglomerative clustering | çox, məhdudlaşdırılmış, qeyri-Evklid məsafələr, transduktiv |
| DBSCAN | düz olmayan həndəsə, cüt olmayan klasterlər, transduktiv |
| OPTICS | düz olmayan həndəsə, cüt olmayan müxtəlif sıxlıqlı klasterlər, transduktiv |
| Gaussian mixtures | düz həndəsə, induktiv |
| BIRCH | istisnaları olan böyük dataset, induktiv |
> 🎓 Klasterləri necə yaratmağımız data nöqtələrini qruplara necə ayırdığımızla çox bağlıdır. Gəlin bəzi terminlərə baxaq:
>
> 🎓 ['Transduktiv' və 'induktiv'](https://wikipedia.org/wiki/Transduction_(machine_learning))
>
> Transduktiv nəticə, xüsusi test nümunələrinə uyğunlaşdırılan müşahidə edilən təlim nümunələrindən əldə edilir. İnduktiv nəticə yalnız sonra test nümunələrinə tətbiq edilən ümumi qaydalara uyğun gələn təlim nümunələrindən əldə edilir.
> Transduktiv nəticə xüsusi test nümunələrinə uyğunlaşdırılan, müşahidə edilən təlim nümunələrindən əldə edilir. İnduktiv nəticə yalnız sonradan test nümunələrinə tətbiq edilən ümumi qaydalara uyğun gələn təlim nümunələrindən əldə edilir.
>
> Nümunə: Təsəvvür edin ki, sizdə yalnız qismən etiketlənmiş data massiv var. Bəzi şeylər 'qeydlər', bəziləri 'cdlər' olaraq etiketlənmişdir, bəziləri isə boşdur. Öhdəliyiniz qalan hissəni də etiketləməkdir. Əgər induktiv yanaşmanı seçsəniz, modelinizə 'qeydləri' və 'cdləri' axtarmağı öyrədərdiniz və bu etiketləri etiketlənməmiş dataya tətbiq edərdiniz. Bu yanaşma əslində 'kaset' olan şeyləri təsnif etməkdə işə yaramayacaq. Digər tərəfdən transduktiv yanaşma isə bu naməlum məlumatları daha effektiv idarə edir, çünki o, oxşar elementləri birlikdə qruplaşdırmağı hədəfləyir və sonra hər bir qrupa etiket tətbiq edir. Bu halda, klasterlər 'dəyirmi musiqi əşyaları' və 'kvadrat musiqi əşyaları'nı əks etdirə bilər.
> Nümunə: Təsəvvür edin ki, sizdə yalnız qismən etiketlənmiş dataset var. Bəzi şeylər 'qeydlər', bəziləri 'cdlər' olaraq etiketlənmişdir, bəziləri isə boşdur. Öhdəliyiniz qalan hissəni də etiketləməkdir. Əgər induktiv yanaşmanı seçsəniz, modelinizə 'qeydləri' və 'cdləri' axtarmağı öyrədərdiniz və bu etiketləri etiketlənməmiş dataya tətbiq edərdiniz. Bu yanaşma əslində 'kaset' olan şeyləri təsnif etməkdə işə yaramayacaq. Digər tərəfdən transduktiv yanaşma isə bu naməlum məlumatları daha effektiv idarə edir, çünki o oxşar elementləri birlikdə qruplaşdırmağı hədəfləyir və sonra hər bir qrupa etiket tətbiq edir. Bu halda, klasterlər 'dəyirmi musiqi əşyaları' və 'kvadrat musiqi əşyaları'nı əks etdirə bilər.
>
> 🎓 ['Qeyri-Evklid' və 'Evklid' həndəsəsi](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
> 🎓 ['Qeyri-Evklid' və 'Evklid' həndəsələri](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
>
> Riyazi terminlər olan qeyri-Evklid və Evklid həndəsəsi nöqtələr arasındakı məsafələrin 'Evklid' ([Evklid](https://wikipedia.org/wiki/Euclidean_geometry)) və ya 'qeyri-Evklid' (qeyri-Evklid) həndəsi üsullarla ölçülməsinə aiddir.
> Riyazi terminlər olan qeyri-Evklid və Evklid həndəsələr nöqtələr arasındakı məsafələrin 'Evklid' ([Evklid](https://wikipedia.org/wiki/Euclidean_geometry)) və ya 'qeyri-Evklid' (qeyri-Evklid) həndəsi üsullarla ölçülməsinə aiddir.
>
> Bu kontekstdə 'düz' Evklid həndəsəsinə (hissələri 'müstəvi' həndəsə kimi də bilinir), 'düz olmayan' isə qeyri-Evklid həndəsəsinə aid edilir. Həndəsənin maşın öyrənməsi ilə nə əlaqəsi var? Riyaziyyatda kök salan iki sahə kimi, klasterlərdəki nöqtələr arasındakı məsafələri ölçmək üçün ümumi bir yol olmalıdır və bu, məlumatların xarakterindən asılı olaraq 'düz' və ya 'düz olmayan' şəkildə edilə bilər. [Evklid məsafələr](https://wikipedia.org/wiki/Euclidean_distance) iki nöqtə arasındakı xəttin uzunluğu ilə ölçülür. [Qeyri-Evklid məsafələr](https://wikipedia.org/wiki/Non-Euclidean_geometry) əyri vasitəsilə ölçülür. Əgər vizuallaşdırılmış data müstəvidə mövcud deyilsə, onun üçün xüsusi alqoritmdən istifadə etməli ola bilərsiniz.
>
@ -67,9 +70,9 @@ Bu [öyrənmə modulunda](https://docs.microsoft.com/learn/modules/train-evaluat
>
> 🎓 ['Məhdudlaşdırılmış'](https://wikipedia.org/wiki/Constrained_clustering)
>
> [Məhdudlaşdırılmış Klasterləşdirmə](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) yönləndirilməmiş üsula 'qismən yönləndirilmiş' öyrənməni tətbiq edir. Nöqtələr arasındakı əlaqələr 'bağlana bilməz' və ya 'bağlanmalıdır' kimi işarələnir, buna görə də bəzi qaydalar data massivdə məcburi olaraq tətbiq olunur.
> [Məhdudlaşdırılmış Klasterləşdirmə](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) nəzarətsiz üsula 'qismən nəzarətli' öyrənməni tətbiq edir. Nöqtələr arasındakı əlaqələr 'bağlana bilməz' və ya 'bağlanmalıdır' kimi işarələnir, buna görə də bəzi qaydalar datasetdə məcburi olaraq tətbiq olunur.
>
>Nümunə: Əgər alqoritm etiketsiz və ya qismən etiketli verilənlər toplusunda sərbəst buraxılıbsa, onun yaratdığı klasterlər keyfiyyətsiz ola bilər. Yuxarıdakı nümunədə klasterlər 'dəyirmi musiqi əşyaları', 'kvadrat musiqi əşyaları', 'üçbucaqlı şeylər' və 'külçələri'i qruplaşdıra bilər. Bəzi məhdudiyyətlər və ya riayət edilməli qaydalar ('əşya plastikdən hazırlanmalıdır', 'əşya musiqi səsi çıxara bilməlidir') verilərsə, bu, daha yaxşı seçim etmək üçün alqoritmi 'məhdudlaşdırmağa' kömək edə bilər.
> Nümunə: Əgər alqoritm etiketsiz və ya qismən etiketli verilənlər toplusunda sərbəst buraxılıbsa, onun yaratdığı klasterlər keyfiyyətsiz ola bilər. Yuxarıdakı nümunədə klasterlər 'dəyirmi musiqi əşyaları', 'kvadrat musiqi əşyaları', 'üçbucaqlı şeylər' və 'külçələri' qruplaşdıra bilər. Bəzi məhdudiyyətlər və ya riayət edilməli qaydalar ('əşya plastikdən hazırlanmalıdır', 'əşya musiqi səsi çıxara bilməlidir') verilərsə, bu daha yaxşı seçim etmək üçün alqoritmi 'məhdudlaşdırmağa' kömək edə bilər.
>
> 🎓 'Sıxlıq'
>
@ -84,7 +87,7 @@ Bu [öyrənmə modulunda](https://docs.microsoft.com/learn/modules/train-evaluat
![İyerarxik klasterləşdirmə üçün təsvir](../images/hierarchical.png)
> [Dasani Madipalli](https://twitter.com/dasani_decoded) tərəfindən təsvir
- **Mərkəzi klasterləşdirmə**. Bu məşhur alqoritm 'k' seçimini və ya formalaşacaq klasterlərin sayını tələb edir, bundan sonra alqoritm klasterin mərkəz nöqtəsini təyin edir və həmin nöqtə ətrafında datanı toplayır. [K-Ortalama klasterləşdirmə](https://wikipedia.org/wiki/K-means_clustering) mərkəzi klasterləşdirmənin məşhur növüdür. Mərkəz ən yaxın orta ilə müəyyən edilir, adını da elə buradan götürmüşdür. Klasterdən kvadrat məsafə minimuma endirilir.
- **Mərkəzi klasterləşdirmə**. Bu məşhur alqoritm 'k' seçimini və ya formalaşacaq klasterlərin sayını tələb edir, bundan sonra alqoritm klasterin mərkəz nöqtəsini təyin edir və həmin nöqtə ətrafında datanı toplayır. [K-Ortalama klasterləşdirmə](https://wikipedia.org/wiki/K-means_clustering) mərkəzi klasterləşdirmənin məşhur növüdür. Mərkəz ən yaxın orta ilə müəyyən edilir, adını da elə buradan götürmüşdür. Klasterdən kvadratik məsafə minimuma endirilir.
![Mərkəzi klasterləşdirmənin təsviri](../images/centroid.png)
> [Dasani Madipalli](https://twitter.com/dasani_decoded) tərəfindən təsvir
@ -206,9 +209,9 @@ Bir texnika olaraq klasterləşdirmə düzgün vizuallaşdırma olduqda çox dah
| 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 |
| max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 |
> 🤔 Əgər yönləndirilməyən öyrənmənin bir forması olan və datanın etiketlənmiş olmağını tələb etməyən klasterləşdirmə üsulundan istifadə ediriksə, niyə bu datanı etiketlərlə göstəririk? Etiketlər datanın tədqiqi mərhələsində köməyə çatsa da, klasterləşdirmə alqoritmlərinin işləyə bilməsi üçün vacib deyil. Belə ki, sütunların başlıqlarını silə və dataya sütunun nömrəsi ilə istinad edə bilərsiniz.
> 🤔 Əgər nəzarətsiz öyrənmənin bir forması olan və datanın etiketlənmiş olmağını tələb etməyən klasterləşdirmə üsulundan istifadə ediriksə, niyə bu datanı etiketlərlə göstəririk? Etiketlər datanın tədqiqi mərhələsində köməyə çatsa da, klasterləşdirmə alqoritmlərinin işləyə bilməsi üçün vacib deyil. Belə ki, sütunların başlıqlarını silə və dataya sütunun nömrəsi ilə istinad edə bilərsiniz.
Datanın daha ümumi dəyərlərini nəzərdən keçirin. Note that popularity can be '0', which show songs that have no ranking. Let's remove those shortly.
Datanın daha ümumi dəyərlərini nəzərdən keçirin. Nəzərə alın ki məşhurluq sütununda dəyər '0' ola bilər, bu mahnının heç bir reytinqi olmadığını bildirir. Gəlin bunu tezliklə silək.
1. Ən məşhur janrları tapmaq üçün zolaqlı diaqramdan istifadə edin:
@ -243,7 +246,7 @@ Nəzərə alın ki, əgər ən yaxşı janr "itkin" kimi təsvir olunubsa, bu o
![ən məşhur](../images/all-genres.png)
2. İndiyə qədər bu verilənlər bazasında ilk üç janr üstünlük təşkil edir. Gəlin diqqəti “afro dancehall”, “afropop” və “nigerian pop” üzərində cəmləşdirək, əlavə olaraq 0 populyarlıq dəyəri olan hər hansı bir şeyi silmək üçün verilənlər toplusunu süzgəcdən keçirək (bu o deməkdir ki, data populyarlıqla təsnif olunmayıb və tapşırıq üçün səs-küy hesab edilə bilər):
2. İndiyə qədər bu verilənlər bazasında ilk üç janr üstünlük təşkil edir. Gəlin diqqəti “afro dancehall”, “afropop” və “nigerian pop” üzərində cəmləşdirək, əlavə olaraq 0 populyarlıq dəyəri olan hər hansı bir şeyi silmək üçün verilənlər toplusunu filtrdən keçirək (bu o deməkdir ki, data populyarlıqla təsnif olunmayıb və tapşırıq üçün səs-küy hesab edilə bilər):
```python
df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
@ -265,11 +268,11 @@ Nəzərə alın ki, əgər ən yaxşı janr "itkin" kimi təsvir olunubsa, bu o
![korrelyasiyalar](../images/correlation.png)
Yeganə güclü əlaqə 'enerji' və 'səs' arasındadır; yüksək səsli musiqinin adətən olduqca enerjili olduğunu nəzərə alsaq, bu çox da təəccüblü deyil. Əks halda, korrelyasiya nisbətən zəifdir. Bir klaster alqoritminin bu məlumatlardan hansı nəticəyə gələ biləcəyini görmək maraqlı olacaq.
Yeganə güclü əlaqə 'enerji' və 'səs' arasındadır; yüksək səsli musiqinin adətən olduqca enerjili olduğunu nəzərə alsaq, bu çox da təəccüblü deyil. Əks halda korrelyasiya nisbətən zəifdir. Bir klaster alqoritminin bu məlumatlardan hansı nəticəyə gələ biləcəyini görmək maraqlı olacaq.
> 🎓 Yadda saxlayın ki, korrelyasiya səbəb-nəticəni nəzərdə tutmur! Korrelyasiya üçün sübut var, lakin səbəb-nəticə üçün sübut yoxdur. Bu [əyləncəli veb sayt](https://tylervigen.com/spurious-correlations)da sözü gedən məqamı vurğulayan bəzi vizuallar var.
Bu data massivdə mahnının qəbul edilən populyarlığı və oynaqlığı ətrafında hər hansı uyğunluq varmı? FacetGrid göstərir ki, janrdan asılı olmayaraq sıralanan konsentrik dairələr var. Bunun səbəbi Nigeriyalı auditoriyanın zövqlərinin bu janr üçün müəyyən bir oynaqlıq dərəcəsində birləşməsi ola bilərmi?
Bu datasetdə mahnının qəbul edilən populyarlığı və oynaqlığı ətrafında hər hansı uyğunluq varmı? FacetGrid göstərir ki, janrdan asılı olmayaraq sıralanan konsentrik dairələr var. Bunun səbəbi Nigeriyalı auditoriyanın zövqlərinin bu janr üçün müəyyən bir oynaqlıq dərəcəsində birləşməsi ola bilərmi?
✅ Fərqli məlumat nöqtələrini (enerji, yüksəklik, nitq) və daha çox və ya fərqli musiqi janrlarını sınayın. Nə kəşf edə bilərsiniz? Məlumat nöqtələrinin ümumi yayılmasını görmək üçün `df.describe()` cədvəlinə nəzər salın.
@ -291,7 +294,7 @@ Bu üç janr populyarlıqlarına görə onların oynaqlıq dərəcəsini dərk e
Nöqtələrin paylanmasını göstərən və ümumi yaxınlaşma nöqtəsi ətrafında olan konsentrik çevrələri görə bilərsiniz.
> 🎓 Nəzərə alın ki, bu nümunədə davamlı ehtimal sıxlığı əyrisindən istifadə edərək datanı əks etdirən KDE (Kernel Density Estimate) qrafikindən istifadə olunur. Bu, birdən çox paylamalarla işləyərkən datanı şərh etməyə imkan verir.
> 🎓 Nəzərə alın ki, bu nümunədə davamlı ehtimal sıxlığı əyrisindən istifadə edərək datanı əks etdirən KDE (Kernel Density Estimate) qrafikindən istifadə olunub. Bu, birdən çox paylamalarla işləyərkən datanı şərh etməyə imkan verir.
Ümumilikdə, bu üç janr populyarlıq və oynaqlıq dərəcəsi baxımından biraz sərbəst şəkildə uyğunlaşır. Belə sərbəst uyğunlaşan datada klasterləri müəyyən etmək çətin olacaq:
@ -309,19 +312,19 @@ Bu üç janr populyarlıqlarına görə onların oynaqlıq dərəcəsini dərk e
![Facetgrid](../images/facetgrid.png)
Ümumiyyətlə, datada olan klasterləri müəyyən etmək üçün səpələnmə qrafiklərindən istifadə edə bilərsiniz. Ona görə də bu növ vizuallaşdırmanın mənimsənilməsi çox faydalıdır. Növbəti dərsdə K-Ortalama klasterləşdirməni bu filtrdən keçmiş data üzərində tətbiq edərək datada olan qrupları və onların maraqlı şəkildə üst-üstə düşməsini müşahidə edəcəyik.
Ümumiyyətlə datada olan klasterləri müəyyən etmək üçün səpələnmə qrafiklərindən istifadə edə bilərsiniz. Ona görə də bu növ vizuallaşdırmanın mənimsənilməsi çox faydalıdır. Növbəti dərsdə K-Ortalama klasterləşdirməni bu filtrdən keçmiş data üzərində tətbiq edərək datada olan qrupları və onların maraqlı şəkildə üst-üstə düşməsini müşahidə edəcəyik.
---
## 🚀Məşğələ
## 🚀 Məşğələ
Növbəti dərsə hazırlıq üçün indiyə qədər haqqında öyrənmiş olduğunuz müxtəlif klasterləşdirmə alqoritmlərinin olduğu bir qrafik hazırlayın və onları real mühitdə istifadə edin. Klasterləşdirmə hansı qrup problemləri həll etməyə çalışır?
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/28/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/28/?loc=az)
## Təkrarlayın və özünüz öyrənin
Öyrəndiyimiz kimi, klasterləşdirmə alqoritmlərini tətbiq etməzdən əvvəl yaxşı olar ki, əlinizdə olan data massivin təbiətini başa düşəsiniz. Bu mövzu haqqında daha ətraflı [bu keçidə](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) klikləyərək oxuyun.
Öyrəndiyimiz kimi, klasterləşdirmə alqoritmlərini tətbiq etməzdən əvvəl yaxşı olar ki, əlinizdə olan datasetin təbiətini başa düşəsiniz. Bu mövzu haqqında daha ətraflı [bu keçidə](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) klikləyərək oxuyun.
[Bu faydalı məqalədə](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) göstərilir ki, müxtəlif klasterləşdirmə alqoritmləri fərqli cür formalaşmış data üçün tətbiq edildikdə fərqli nəticələr verə bilir.

@ -2,10 +2,10 @@
## Təlimatlar
Bu dərsdə siz datanı qruplaşdırmağa çalışarkən onun planını qurmağı başa düşmək üçün bəzi vizuallaşdırma üsulları ilə işləmisiniz. Səpələnmə qrafikləri, xüsusən də obyekt qruplarını tapmaq üçün faydalıdır. Səpələnmə qrafikləri yaratmaq və işinizi noutbukda sənədləşdirmək üçün müxtəlif yolları və müxtəlif kitabxanaları araşdırın. Siz bu dərsdən, digər dərslərdən və ya özünüz əldə etdiyiniz məlumatlardan istifadə edə bilərsiniz (zəhmət olmasa onun mənbəyini noutbukda qeyd edin). Səpələnmə qrafikləri istifadə edərək datanı vizuallaşdırın və necə başa düşdüyünüzü izah edin.
Bu dərsdə siz datanı klasterləşdirməyə çalışarkən onun planını qurmağı başa düşmək üçün bəzi vizuallaşdırma üsulları ilə işləmisiniz. Səpələnmə qrafikləri xüsusən obyekt qruplarını tapmaq üçün faydalıdır. Səpələnmə qrafikləri yaratmaq və işinizi notbukda sənədləşdirmək üçün müxtəlif yolları və müxtəlif kitabxanaları araşdırın. Siz bu dərsdən, digər dərslərdən və ya özünüzün əldə etdiyiniz məlumatlardan istifadə edə bilərsiniz (zəhmət olmasa onun mənbəyini notbukda qeyd edin). Səpələnmə qrafikləri istifadə edərək datanı vizuallaşdırın və necə başa düşdüyünüzü izah edin.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------- |
| | Noutbuk beş yaxşı sənədləşdirilmiş səpələnmə qrafiki ilə təqdim olunub | Noutbuk beşdən az səpələnmə qrafiki ilə təqdim olunub və o, daha pis sənədləşdirilib | Natamam noutbuk təqdim olunub |
| -------- | -------- | ------- | ------------------------ |
| | Notbuk beş yaxşı sənədləşdirilmiş səpələnmə qrafiki ilə təqdim olunub | Notbuk beşdən az səpələnmə qrafiki ilə təqdim olunub və ya daha zəif sənədləşdirilib | Natamam notbuk təqdim olunub |

@ -1,8 +1,8 @@
# K-Ortalama Klasterləşməsi
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/29/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/29/?loc=az)
Bu dərsdə siz Scikit-learn və Nigeriya musiqiləri data seti ilə klasterlərin yaradılması öyrənəcəksiniz. Biz Klasterləşmə üçünü K-Ortalamanın əsaslarından bəhs edəcəyik. Unutmayın ki, əvvəlki dərslərdən də sizə tanış olduğu kimi, klasterlərmə işləməyin müxtəlif yolları var və istifadə metodunuz datanızdan bilavasitə asılıdır. Ən yayğın klasterləşmə textnikası olduğu üçün K-Ortalamanı istifadə edəcəyik. Gəlin başlayaq!
Bu dərsdə siz Scikit-learn və Nigeriya musiqiləri data seti ilə klasterlərin yaradılması öyrənəcəksiniz. Biz Klasterləşmə üçünü K-Ortalamanın əsaslarından bəhs edəcəyik. Unutmayın ki, əvvəlki dərslərdən də sizə tanış olduğu kimi, klasterlərlə işləməyin müxtəlif yolları var və istifadə metodunuz datanızdan bilavasitə asılıdır. Ən yayğın klasterləşmə texnikası olduğu üçün K-Ortalamanı istifadə edəcəyik. Gəlin başlayaq!
Haqqında öyrənəcəyiniz anlayışlar:
- Siluet hesabı
@ -20,12 +20,12 @@ Klasterlər [Voronoy diaqramları](https://wikipedia.org/wiki/Voronoi_diagram) k
> [Jen Looper](https://twitter.com/jenlooper) tərəfindən çəkilmiş infoqrafik
1. Alqoritm data setindən seçmə yolu ilə mərkəz nöqtələrinin k-sayda seçir. Bundan sonra, aşağıdakı addımları dövri olaraq təkrar edir:
1. Alqoritm datasetdən seçmə yolu ilə mərkəz nöqtələrinin k-sayda seçir. Bundan sonra, aşağıdakı addımları dövri olaraq təkrar edir:
1. O, hər bir nümunəni ən yaxın mərkəzə təyin edir.
2. Əvvəlki mərkəzlərə təyin edilmiş bütün nümunələrin orta qiymətini alaraq yeni mərkəzlər yaradır.
3. Sonra, yeni və köhnə mərkəzlər arasındakı fərqi hesablayır və mərkəzlər sabitləşənə qədər təkrarlanır.
3. Sonra yeni və köhnə mərkəzlər arasındakı fərqi hesablayır və mərkəzlər sabitləşənə qədər təkrarlanır.
K-Ortalama istifadə etməyin bir çatışmazlığı, 'k'-ı, yəni mərkəzlərin sayını qurmağınız lazım olacaq. Xoşbəxtlikdən, "dirsək üsulu" "k" üçün yaxşı başlanğıc dəyərini tapmağa kömək edir. Bir dəqiqədən sonra sınayacaqsınız.
K-Ortalama istifadə etməyin bir çatışmazlığı, 'k'-nı, yəni mərkəzlərin sayını qurmağınız lazım olacaq. Xoşbəxtlikdən "dirsək üsulu" "k" üçün yaxşı başlanğıc dəyərini tapmağa kömək edir. Bir dəqiqədən sonra sınayacaqsınız.
## İlkin şərt
@ -77,13 +77,13 @@ Mahnı məlumatlarına bir daha nəzər salmaqla başlayın.
sns.boxplot(x = 'release_date', data = df)
```
Bu məlumatlar bir az səs-küylüdür: hər sütunu bir boxplot şəklində müşahidə etməklə, kənar göstəriciləri görə bilərsiniz.
Bu məlumatlar bir az səs-küylüdür: hər sütunu bir boxplot şəklində müşahidə etməklə kənar göstəriciləri görə bilərsiniz.
![kənar göstəricilər](../images/boxplots.png)
Siz datasetə göz gəzdirə və oradan kənar göstəriciləri silə bilərsiniz, amma belə olduqda datalar olduqca minimal olacaqdır.
1. Hələlik, klasterləşdirmə tapşırığınız üçün hansı sütunlardan istifadə edəcəyinizi seçin. Oxşar diapazonlu olanları seçin və `artist_top_genre` sütununu rəqəmsal data kimi kodlayın:
1. Hələlik klasterləşdirmə tapşırığınız üçün hansı sütunlardan istifadə edəcəyinizi seçin. Oxşar diapazonlu olanları seçin və `artist_top_genre` sütununu rəqəmsal data kimi kodlayın:
```python
from sklearn.preprocessing import LabelEncoder
@ -125,15 +125,15 @@ Siz data setdəki hər bir sətir üçün proqnozlaşdırılan klasterlərlə (0
score
```
## Siluet xalını
## Siluet xalı
Siluet hesabı 1-ə yaxın olanı axtarın. Bu xal -1-dən 1-ə qədər dəyişir və əgər xal 1-dirsə, deməli klaster sıx və digər çoxluqlardan yaxşı ayrılmışdır. 0-a yaxın dəyər isə qonşu klasterlərin qərar sərhədinə çox yaxın olan nümunələrlə üst-üstə düşən klasterləri təmsil edir. [(Mənbə)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)
Hesabımız **.53**-dir, yəni ortadadır. Bu, məlumatlarımızın bu tip klasterləşdirmə üçün o qədər də uyğun olmadığını göstərir, amma davam edək.
Hesabımız **.53**-dür, yəni ortadadır. Bu, məlumatlarımızın bu tip klasterləşdirmə üçün o qədər də uyğun olmadığını göstərir, amma davam edək.
### Tapşırıq - model qurun
1. `KMeans`-i import edin və klasterləşdirmə prosesinə başlayın.
1. `KMeans` dəyərini daxil edin və klasterləşdirmə prosesinə başlayın.
```python
from sklearn.cluster import KMeans
@ -148,13 +148,13 @@ Hesabımız **.53**-dir, yəni ortadadır. Bu, məlumatlarımızın bu tip klast
Burada izah tələb edən bir neçə məqam var.
> 🎓 diapazon: Bunlar klasterləşmə prosesinin iterasiyalarıdır
> 🎓 diapazon: Bunlar klasterləşmə prosesinin dövrləridir
> 🎓 random_state: "Mərkəzi nöqtənin ilkin təyini üçün təsadüfi ədəd generasiyasını müəyyən edir." [Mənbə](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans)
> 🎓 WCSS: "kvadratların çoxluqdaxili cəmi" çoxluqdakı bütün nöqtələrin klaster mərkəzinə olan orta məsafəsinin kvadratını ölçür. [Mənbə](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce).
> 🎓 Ətalət: K-Ortalama alqoritmləri “ətalət”-i, daha dəqiq desək “daxili çoxluqların nə əlaqəliliyinin ölçülməsini” minimuma endirmək üçün mərkəzləri seçməyə çalışır. [Mənbə](https://scikit-learn.org/stable/modules/clustering.html). Dəyər hər iterasiyada wcss dəyişəninə əlavə olunur.
> 🎓 Ətalət: K-Ortalama alqoritmləri “ətalət”-i, daha dəqiq desək “daxili çoxluqların əlaqəliliyinin ölçülməsini” minimuma endirmək üçün mərkəzləri seçməyə çalışır. [Mənbə](https://scikit-learn.org/stable/modules/clustering.html). Dəyər hər dövrdə wcss dəyişəninə əlavə olunur.
> 🎓 k-means++: [Scikit-learn]-də(https://scikit-learn.org/stable/modules/clustering.html#k-means) "k-means++" optimallaşdırmasından istifadə edə bilərsiniz. Mərkəzlərin (ümumiyyətlə) bir-birindən uzaq olması, təsadüfi başlanğıcdan daha yaxşı nəticələrə gətirib çıxarır.
@ -173,7 +173,7 @@ Hesabımız **.53**-dir, yəni ortadadır. Bu, məlumatlarımızın bu tip klast
plt.show()
```
Dirsəkdəki 'əyilmə'-nin harada olduğunu göstərən diaqram yaratmaq üçün əvvəlki addımda qurduğunuz `wcss` dəyişənindən istifadə edin.Bu dəyişən optimal klaster sayını göstərir. Bəlkə də elə **3-dür**!
Dirsəkdəki 'əyilmə'-nin harada olduğunu göstərən diaqram yaratmaq üçün əvvəlki addımda qurduğunuz `wcss` dəyişənindən istifadə edin. Bu dəyişən optimal klaster sayını göstərir. Bəlkə də elə **3-dür**!
![dirsək üsulu](../images/elbow.png)
@ -210,32 +210,32 @@ Hesabımız **.53**-dir, yəni ortadadır. Bu, məlumatlarımızın bu tip klast
Bu məlumatlar çox balanssızdır, çox aşağı korrelyasiyalıdır və yaxşı qruplaşdırmaq üçün sütun dəyərləri arasında çoxlu fərq var. Əslində, formalaşan klasterlər, çox güman ki, yuxarıda müəyyən etdiyimiz üç janr kateqoriyasından çox təsirlənmiş və ya əyilmişdir. Bu, öyrənmə prosesi idi!
Scikit-learn-in sənədlərində, çox yaxşı demarkasiya edilməmiş çoxluqları olan bu kimi bir modelin "variasiya" problemi olduğunu görə bilərsiniz:
Scikit-learn-in sənədlərində çox yaxşı demarkasiya edilməmiş çoxluqları olan bu kimi bir modelin "variasiya" problemi olduğunu görə bilərsiniz:
![problem modelləri](../images/problems.png)
> Scikit-learn-dən infoqrafik
## Variasiya
Variasiya "Ortalamadan kvadrat fərqlərin ortası" [(Mənbə)](https://www.mathsisfun.com/data/standard-deviation.html) kimi müəyyən edilir. Bu klaster problemi kontekstində, data setimizin nömrələrinin orta qiymətdən bir qədər çox ayrılmağa meyilli olduğu məlumatlara aiddir.
Variasiya "Ortalamadan kvadrat fərqlərin ortası" [(Mənbə)](https://www.mathsisfun.com/data/standard-deviation.html) kimi müəyyən edilir. Bu klaster problemi kontekstində datasetimizin nömrələrinin orta qiymətdən bir qədər çox ayrılmağa meyilli olduğu məlumatlara aiddir.
✅ Hazırki problemi düzəltmək üçün mümkün olan bütün yollar haqqında düşünmək üçün əla vaxtdır. Məlumatları bir az daha dəyişək? Fərqli sütunlar istifadə olunur? Fərqli alqoritmdən istifadə edilir? İpucu: Normallaşdırmaq və digər sütunları yoxlamaq üçün [məlumatlarınızı miqyaslandırmağa](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) cəhd edin.
> Konsepti bir az daha başa düşmək üçün '[variasiya kalkulyatorunu](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' yoxlayın.
> Konsepti bir az daha yaxşı başa düşmək üçün '[variasiya kalkulyatorunu](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' yoxlayın.
---
## 🚀Məşğələ
## 🚀 Məşğələ
Parametrləri düzəltmək üçün bu dəftərçə faylında bir az vaxt keçirin. Məlumatları daha çox təmizləməklə (məsələn, kənar göstəriciləri silməklə) modelin dəqiqliyini artıra bilərsinizmi? Verilmiş məlumat nümunələrinə daha çox çəki vermək üçün çəkilərdən istifadə edə bilərsiniz. Daha yaxşı klasterlər yaratmaq üçün başqa nə edə bilərsiniz?
Parametrləri düzəltmək üçün bu notbuk faylında bir az vaxt keçirin. Məlumatları daha çox təmizləməklə (məsələn, kənar göstəriciləri silməklə) modelin dəqiqliyini artıra bilərsinizmi? Verilmiş məlumat nümunələrinə daha çox çəki vermək üçün çəkilərdən istifadə edə bilərsiniz. Daha yaxşı klasterlər yaratmaq üçün başqa nə edə bilərsiniz?
İpucu: Məlumatlarınızı ölçməyə çalışın. Dəftərçədə məlumat sütunlarının diapazon baxımından bir-birinə daha çox bənzəməsi üçün standart miqyas əlavə edən şərhə alınmış kod var. Siz, siluet göstəricisi aşağı düşərkən, dirsək qrafikindəki 'bilmə'-nin hamarlaşdığını tapa bilərsiniz. Bunun səbəbi, verilənlərin miqyassız buraxılması daha az fərqlilikli məlumatların daha çox çəki daşımasına imkan verir. Bu problem haqqında bir az daha ətraflı [burada](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226 ) oxuyun.
İpucu: Məlumatlarınızı ölçməyə çalışın. Notbukda məlumat sütunlarının diapazon baxımından bir-birinə daha çox bənzəməsi üçün standart miqyas əlavə edən şərhə alınmış kod var. Siz, siluet göstəricisi aşağı düşərkən dirsək qrafikindəki 'bilmə'-nin hamarlaşdığını tapa bilərsiniz. Bu, datanın miqyassız buraxılmasının daha az variasiya ilə daha çox çəki daşımasına imkan verməsinə görə baş verir. Bu problem haqqında bir az daha ətraflı [buradan](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226) oxuyun.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/30/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/30/?loc=az)
## Təkrarlayın və özünüz öyrənin
[Bu kimi](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/) K-Ortalama Simulyatoruna nəzər salın. Nümunə məlumat nöqtələrini vizuallaşdırmaq və onların mərkəzlərini təyin etmək üçün bu alətdən istifadə edə bilərsiniz. Bundan əlavə, məlumatların təsadüfiliyini, klasterlərin sayını və centroidlərin sayını redaktə edə bilərsiniz. Bu, məlumatların necə qruplaşdırıla biləcəyi barədə fikir əldə etməyə kömək edirmi?
[Bu kimi](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/) K-Ortalama Simulyatoruna nəzər salın. Nümunə məlumat nöqtələrini vizuallaşdırmaq və onların mərkəzlərini təyin etmək üçün bu alətdən istifadə edə bilərsiniz. Bundan əlavə, məlumatların təsadüfiliyini, klasterlərin və mərkəzlərin sayını dəyişə bilərsiniz. Bu, məlumatların necə qruplaşdırıla biləcəyi barədə fikir əldə etməyə kömək edirmi?
Həmçinin, Stenforddan [K-Ortalama haqqında olan bu materiala](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) nəzər salın.

@ -2,9 +2,9 @@
## Təlimatlar
Bu dərsdə siz K-Ortalama klasterləşməsi haqqında öyrəndiniz. Bəzən K-Ortalama datanız üçün uyğun olmur. Bu dərslərdən və ya başqa yerdən götürdüyünüz datalardan istifadə edərək dəftərçə faylı yaradın (mənbənizi qeyd edin) və K-Ortalama-dan istifadə etmədən fərqli klasterləşdirmə metodunu göstərin. Nə öyrəndiniz?
Bu dərsdə siz K-Ortalama klasterləşməsi haqqında öyrəndiniz. Bəzən K-Ortalama datanız üçün uyğun olmur. Bu dərslərdən və ya başqa yerdən götürdüyünüz datalardan istifadə edərək notbuk faylı yaradın (mənbənizi qeyd edin) və K-Ortalama-dan istifadə etmədən fərqli klasterləşdirmə metodunu göstərin. Nə öyrəndiniz?
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | --------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------- |
| | Dəftərçə yaxşı sənədləşdirilmiş klasterləşdirmə modeli ilə təqdim olunur | Dəftərçə yaxşı sənədləşdirilmə olmadan və/və ya yarımçıq təqdim olunur | Yarımçıq iş təqdim olunub |
| -------- | -------- | ------- | ------------------------ |
| | Notbuk yaxşı sənədləşdirilmiş klasterləşdirmə modeli ilə təqdim olunub | Notbuk yaxşı sənədləşdirilmə olmadan və/və ya yarımçıq təqdim olunub | Yarımçıq iş təqdim olunub |

@ -4,25 +4,25 @@ Klasterləşdirmə maşın öyrənməsi tapşırığı olub, məqsədi bir-birin
## Regional mövzu: Nigeriyalı auditoriyanın musiqi zövqünə görə modellərin klasterləşdirilməsi 🎧
Nigeriyanın çeşidli dinləyici auditoriyası çeşidli musiqi zövqünə sahibdir. Gəlin Spotify-dan əldə olunan datadan istifadə edərək ([bu məqalədən](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421) ilham alınmışdır), Nigeriyada məşhur olan musiqiyə nəzər salaq. Bu data massivdə müxtəlif mahnıların 'oynaqlıq' dərəcəsi, 'akustikliyi', gurluğu, 'sözlülüyü', məşhurluğu və enerjisi haqqında məlumat var. Burada təkrarlanan nümunələri kəşf etmək maraqlı olacaq!
Nigeriyanın çeşidli dinləyici auditoriyası çeşidli musiqi zövqünə sahibdir. Gəlin Spotify-dan əldə olunan datadan istifadə edərək ([bu məqalədən](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421) ilham alınmışdır) Nigeriyada məşhur olan musiqiyə nəzər salaq. Bu data massivdə müxtəlif mahnıların 'oynaqlıq' dərəcəsi, 'akustikliyi', gurluğu, 'sözlülüyü', məşhurluğu və enerjisi haqqında məlumat var. Burada təkrarlanan nümunələri kəşf etmək maraqlı olacaq!
![turntable aləti](../images/turntable.jpg)
> <a href="https://unsplash.com/s/photos/nigerian-music?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a> platformasında <a href="https://unsplash.com/@marcelalaskoski?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Marcela Laskoski</a> tərəfindən çəkilmiş şəkil
Bu dərslərdə siz, klasterləşdirmə texnikalarından istifadə edərək datanı analiz etməyin yeni yolları ilə tanış olacaqsınız. Klasterləşdirmə, data massivdə etiketlər çatışmayan hallarda xüsusilə faydalıdır. Əgər etiketlər mövcuddursa, o zaman əvvəlki dərslərdə öyrəndiyiniz təsnifatlandırma texnikaları daha faydalı ola bilər. Lakin məsələ etiketlənməmiş datanı qruplaşdıran zaman təkrarlanan nümunələri tapmaqdırsa, o zaman klasterləşdirmə əla üsuldur.
Bu dərslərdə siz, klasterləşdirmə texnikalarından istifadə edərək datanı analiz etməyin yeni yolları ilə tanış olacaqsınız. Klasterləşdirmə, datasetdə etiketlərin çatışmayan hallarında xüsusilə faydalıdır. Əgər etiketlər mövcuddursa, o zaman əvvəlki dərslərdə öyrəndiyiniz təsnifatlandırma texnikaları daha faydalı ola bilər. Lakin məsələ etiketlənməmiş datanı qruplaşdıran zaman təkrarlanan nümunələri tapmaqdırsa, o zaman klasterləşdirmə əla üsuldur.
> Klasterləşdirmə modelləri ilə işləmək haqqında məlumat almanıza kömək olacaq az-kod yanaşmalı alətlər də mövcuddur. Bu tapşırıq üçün olan [Azure MÖ-i](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) sınaqdan keçirin.
> Klasterləşdirmə modelləri ilə işləmək haqqında məlumat almanıza kömək olacaq az-kod yanaşmalı alətlər də mövcuddur. Bu tapşırıq üçün olan [Azure ML](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) sınaqdan keçirin.
## Dərslər
1. [Klasterləşdirmə bölməsinə giriş](../1-Visualize/translations/README.az.md)
2. [K-Means clustering](2-K-Means/README.md)
2. [K-Ortalama klasterləşməsi](../2-K-Means/translations/README.az.md)
## Təşəkkürlər
Bu dərslər [Jen Looper](https://www.twitter.com/jenlooper) tərəfindən 🎶 ilə və [Rishit Dagli](https://www.twitter.com/rishit_dagli) və [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) tərəfindən gələn faydalı rəylərin köməkliyi ilə yazılmışdır.
[Nigeria Mahnıları](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) data massivi Spotify-dan əldə olunduğu formatda Kaggle-dan götürülmüşdür.
[Nigeria Mahnıları](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) dataseti Spotify-dan əldə olunduğu formatda Kaggle-dan götürülmüşdür.
Bu dərsin yaradılmasına kömək olan faydalı K-Means nümunələrinə [süsənin tədqiqi](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), bu [başlanğıc üçün praktika dəftəri](https://www.kaggle.com/prashant111/k-means-clustering-with-python), və bu [xəyali QHT nümunəsi](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering) daxildir.
Bu dərsin yaradılmasına kömək olan faydalı K-Ortalama nümunələrinə [süsənin tədqiqi](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), bu [başlanğıc üçün praktika notbuku](https://www.kaggle.com/prashant111/k-means-clustering-with-python), və bu [xəyali QHT nümunəsi](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering) daxildir.

@ -1,8 +1,8 @@
# Təbii dil emalına giriş
Bu dərs *komputer dilçiliyi* alt bölməsi olan *təbii dil emalının* qısa tarixçəsini və vacib anlayışları əhatə edir.
Bu dərs *komputer dilçiliyinin* alt bölməsi olan *təbii dil emalının* qısa tarixçəsini və vacib anlayışları əhatə edir.
## [Mühazirədən əvvəl quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/31/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/31/?loc=az)
## Giriş
@ -14,7 +14,7 @@ NLP (Natural Language Processing - Təbii Dil Emalı) maşın öyrənməsinin t
Bunlar barədə öyrənəcəksən:
- **Dillər ideyası**. Dillər necə inkişaf edib və hansı sahələrdə vacib araşdırlmalar aparılıb.
- **Tərif və anlayışlar**. Sən həmçinin komputerlərin mətnləri necə emal etməsi (qrammatikanın anlamaq, isimləri və fellər seçmək daxil olmaqla) barədə tərifləri və anlayışları öyrənəcəksən. Bu dərsdə bəzi kodlaşdırma tapşırıqları var və növbəti dərslərdə digər vacib anlayışlarla bunun davamı gələcək.
- **Tərif və anlayışlar**. Sən həmçinin komputerlərin mətnləri necə emal etməsi (qrammatikanı anlamaq, isimləri və felləri seçmək daxil olmaqla) barədə tərifləri və anlayışları öyrənəcəksən. Bu dərsdə bəzi kodlaşdırma tapşırıqları var və növbəti dərslərdə digər vacib anlayışlarla bunun davamı gələcək.
## Komputer dilçiliyi
@ -22,15 +22,14 @@ Komputer dilçiliyi on illərdir araşdırma və inkişaf etdirilən bir sahədi
### Nümanə - telefon imlası
Əgər indiyə kimi telefonunda yazmaq əvəzinə imla demisənsə, və ya virtual köməkçiyə sual vermisənsə, sənin nitqin mətn formasına çevrilir və sonra emal olunur. Tapılmış açar sözlər yenidən telefonun və ya köməksiçinin başa düşəcəyi, işini görə biləcəyi formaya çevrilir.
Əgər indiyə kimi telefonunda yazmaq əvəzinə imla demisənsə, və ya virtual köməkçiyə sual vermisənsə, sənin nitqin mətn formasına çevrilib və sonra emal olunub. Tapılmış açar sözlər yenidən telefonun və ya köməkçinin başa düşəcəyi, işini görə biləcəyi formaya çevrilir.
![anlama](../images/comprehension.png)
> Həqiqi dilçilik anlaması çətindir! [Jen Looper](https://twitter.com/jenlooper) təfədindən təsvir.
> Həqiqi dilçiliyi anlamaq çətindir! [Jen Looper](https://twitter.com/jenlooper) təfədindən təsvir.
### Bu texnologiya necə mümkündür?
Biz bunu etməsi üçün komputer proqramı yazdığımıza görə mümkündür. Bir neçə onilliklər əvvəl bəzi elmi fantastika yazıçıları biz çox insanın komputerlə danışacağını, və komputerin onları həmişə doğru anlayacağını təxmin etmişdilər. Təəssüflər olsun ki bu təsəvvür ediləndən daha çətin bir problem olduğu anlaşıldı, 'həqiqi' təbii dili emal etmək və cümlənin ifadə etdiyi mənanı başa düşmək üçün çox çətinliklər mövcuddur. Daxilində yumor və sarkazm daşıyan cümlələri başa düşmək xüsusilə çətin məsələdir.
Biz bunu etməsi üçün komputer proqramı yazdığımıza görə mümkündür. Bir neçə onilliklər əvvəl bəzi elmi fantastika yazıçıları biz çox insanın komputerlə danışacağını, və komputerin onları həmişə doğru anlayacağını təxmin etmişdilər. Təəssüflər olsun ki, bu təsəvvür ediləndən daha çətin bir problem olduğu anlaşıldı, 'həqiqi' təbii dili emal etmək və cümlənin ifadə etdiyi mənanı başa düşmək üçün çox çətinliklər mövcuddur. Daxilində yumor və sarkazm daşıyan cümlələri başa düşmək xüsusilə çətin məsələdir.
Biz burada məktəb dərslərində müəllimlərin cümlənin daxilində istifadə olunan qrammatikanı əhatə etməsini xatırlayırıq. Bəzi ölkələrdə tələbələr qrammatika və dilçilik mövzularını xüsusi bir fənn kimi keçirlər, və ya bu mövzular onların öyrənmə kurikulumuna daxil edilirlər: ya ibtidai sinifdə oxuma və yazmaq dərsi kimi, ya orta məktəbdə ikinci dil kimi, ya da ali məktəbdə. İsimləri fellərdən və ya zərfləri sifətlərdən ayırd etməkdə ekspert deyilsənsə, buna görə narahat olma!
@ -44,7 +43,7 @@ Kodlaşdırma tapşırığında Python 3.8 proqramlaşdırma dili və nümunə m
Bu bölmədə sənə lazım olacaq və istifadə edəcəksən:
- **Python 3 anlamaq**. Python 3 dilində bəzi proqramlaşdırma paradiqmlərini anlamaq lazımdır. Bu dərsdə giriş (input), dövrlər (loogs), fayl oxuma (file reading) və massivlər (arrays) istifadə olunmuşdur.
- **Python 3 anlamaq**. Python 3 dilində bəzi proqramlaşdırma paradiqmlərini anlamaq lazımdır. Bu dərsdə giriş (input), dövrlər (loops), fayl oxuma (file reading) və massivlər (arrays) istifadə olunmuşdur.
- **Visual Studio Code + extension**. Biz Visual Studio Code proqramını və Python əlavəsini (extension) istifadə edəcəyik. İstədiyin başqa Python IDE də istifadə edə bilərsən.
- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) Python dilində sadələşdirilmiş mətn emalı üçün kitabxanadır. TextBlob veb saytındakı təlimatları izləyərək proqramı öz sisteminə yüklə (corpora proqramını da aşağıda qeyd olunduğu kimi yüklə):
@ -61,31 +60,31 @@ Komputerlərin insan dilini anlaması tarixçəsi bir neçə onilliklərə gedir
### 'Turinq testi'
Türinq 1950-ci illərdə *süni intellekt* haqqında araşdırma apararkən, insanın yazı vasitəsi ilə ünsiyyət qurduğu tərəfin başqa bir insan və ya komputer olduğunu fərqində olmamasının mümkünlüyü düşünürdü.
Turinq 1950-ci illərdə *süni intellekt* haqqında araşdırma apararkən insanın yazı vasitəsi ilə ünsiyyət qurduğu tərəfin başqa bir insan və ya komputer olduğunu fərqində olmamasının mümkünlüyü düşünürdü.
Əgər müəyyən bir müddət söhbətdən sonra insan cavabları komputerdən, yoxsa insandan aldığını fərqləndirə bilməzsə, biz hesab bilərik ki komputer *düşünə bilir*?
### İlham - 'təqlid oyunu'
Bun ideya qrup daxili oynanılan *Təqlid oyunundan* götürülüb. Oyun zamanı otaqda olan bir şəxs (sorğu aparan) digər otaqda olan iki nəfərin uyğun olaraq oğlan və ya qız olduğunu tapması tələb olunur.
Bu ideya qrup daxili oynanılan *Təqlid oyunundan* götürülüb. Oyun zamanı otaqda olan bir şəxs (sorğu aparan) digər otaqda olan iki nəfərin uyğun olaraq oğlan və ya qız olduğunu tapması tələb olunur.
Sorğu aparan şəxs qeydlər göndərə bilər və yazılı cavablardan sirli şəxsin cinsini aşkar edə biləcək sualları düşünməyə çalışmalıdır. Təbii ki, digər otaqdakı oyunçular sorğuçunu səmimi cavablandırdıqlarına inandırmaqla çaşdırmağa da çalışırlar.
### Elizanın yaradılması
1960-cı illərdə *Cosept Veizenbaum* adlı MIT alimi insanlara sual verməklə onların cavabını başa düşdüyü görünüşü verən [*Eliza*](https://wikipedia.org/wiki/ELIZA) adlı komputer 'terapisti' yaratdı. Lakin Elizanın cümləndə bəzi açar sözləri və qrammatika quruluşunu oxuyaraq cavab verə bilməsi, onun cümləni həqiqətən *anladığı* demək olmaz. Əgər Elizaya "**Mən** <u>pisəm</u>" kimi cümlə daxil edilsə, o sözlərin yerini dəyişəcək və yeni cavab formalaşdıracaq - "**Sən** nə qədər müddətdir <u>pissən</u>".
1960-cı illərdə *Cosept Veizenbaum* adlı MIT alimi insanlara sual verməklə onların cavabını başa düşdüyü görünüşü verən [*Eliza*](https://wikipedia.org/wiki/ELIZA) adlı komputer 'terapisti' yaratdı. Lakin Elizanın cümləndə bəzi açar sözləri və qrammatika quruluşunu oxuyaraq cavab verə bilməsi, onun cümləni həqiqətən *anladığı* demək olmaz. Əgər Elizaya "**Mən** <u>pisəm</u>" kimi cümlə daxil edilsə, o sözlərin yerini dəyişəcək və yeni cavab formalaşdıracaq - "**Sən** nə qədər müddətdir <u>pissən</u>?".
Bu Elizanın cümləni anladığı hissi verib açıq suallarla davam etsə də, reallıqda o sadəcə cümlənin zamanını dəyişir və əlavə sözlər daxil edir. Əgər Eliza cavab verə biləcək açar söz tapa bilməsə, o fərqli mənalara gətirə biləcək təsadüfi cavab verəcək. Eliza rahatlıqla aldadıla bilər, misal üçün istifadəçi əgər "**Sən** <u>velosipedsən</u>" yazsa, o mənalı cavab yerinə "Nə qədər müddətdir **mən** <u>velosipedəm</u>?" kimi cavab verəcək.
[![Eliza ilə danışmaq](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "Eliza ilə danışmaq")
> 🎥 Original ELIZA proqramı barədə videoya baxmaq üçün yuxarıdakı şəkilə kliklə
> 🎥 Orijinal ELIZA proqramı barədə videoya baxmaq üçün yuxarıdakı şəkilə kliklə
> Qeyd: Əgər ACM hesabın varsa, 1966-cı ildə nəşr edilmiş [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) haqqında orijinal məqaləni
oxuya bilərsən. Əlavə olaraq Eliza haqqında [wikipediada](https://wikipedia.org/wiki/ELIZA) da oxuya bilərsən.
## Tapşırıq - sadə danışıq botu kodlaması
Eliza kimi danışıq botu, istifadəçi daxiletməsini qəbul edən edən, ağıllı şəkildə başa düşən və cavab verə bilən proqramdır. Elizadan fərqli olaraq bizim botun ağıllı söhbət apardığı görünüşü yaraqmaq üçün qaydaları olmayacaq. Bunun əvəzinə, bizim botumuz hər bir sadə söhbətdə işlədilə biləcək təsadüfi cavabları verməklə söhbəti davam etdirməyə çalışacaq bir qabiliyyətə sahib olacaq.
Eliza kimi danışıq botu istifadəçi daxiletməsini qəbul edən, ağıllı şəkildə başa düşən və cavab verə bilən proqramdır. Elizadan fərqli olaraq bizim botun ağıllı söhbət apardığı görünüşü yaraqmaq üçün qaydaları olmayacaq. Bunun əvəzinə bizim botumuz hər bir sadə söhbətdə işlədilə biləcək təsadüfi cavabları verməklə söhbəti davam etdirməyə çalışacaq bir qabiliyyətə sahib olacaq.
### Plan
@ -147,13 +146,13 @@ Gəlin indi botu yaradaq. Bəzi ifadələri təyin etməklə başlayacağıq.
---
## 🚀Məşğələ
## 🚀 Məşğələ
Yuxarıdakı "dayan və düşün" elementlərindən birini seç və onu kodda tətbiq etməyə və ya həlli kağızda kod planı (pseudocode) kimi yazmağa çalış.
Növbəti dərsdə təbii dilin emalı və maşın öyrənməsi üçün bir neçə yanaşma öyrənəcəksən.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/32/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/32/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -7,5 +7,5 @@ Botlar hər yerdədir. Sənin tapşırığın: birini tap və sahiblən! Sən on
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | --------------------- |
| -------- | -------- | ------- | ------------------------ |
| | 1 səhifəlik esse yazılmışdır, botun işləmə mexanizmi izahı və onunla olan təcrübən əhatə olunmuşdur | Esse yarımçıqdır və tam araşdırılma yerinə yetirilməyib | Esse hazırlanmayıb |

@ -1,12 +1,13 @@
# Çox işlənən təbii dil emalı tapşırıqları və texnikaları
Əksər *təbii dil emalı* tapşırıqları üçün emal ediləcək mətn hissələrə ayrılmalı, tədqiq edilməli və nəticələr ya haradasa saxlanmalı, ya da qaydalar və data setləri ilə çarpaz istinad edilməlidir. Bu tapşırıqlar proqramçıya mətndəki termin və sözlərin _mənasını_, _niyyətini_ və yaxud da yalnız _tezliyini əldə etməyə imkan verir.
Əksər *təbii dil emalı* tapşırıqları üçün emal ediləcək mətn hissələrə ayrılmalı, tədqiq edilməli və nəticələr ya haradasa saxlanmalı, ya da qaydalar və data setləri ilə çarpaz istinad edilməlidir. Bu tapşırıqlar proqramçıya mətndəki termin və sözlərin _mənasını_, _niyyətini_ və yaxud da yalnız _tezliyini_ əldə etməyə imkan verir.
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/33/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/33/?loc=az)
Mətn emalında tez-tez istifadə olunan texnikaları kəşf edək. Maşın öyrənməsi ilə birlikdə bu üsullar böyük həcmdə mətni səmərəli şəkildə təhlil etməyə kömək edir. Bu tapşırıqlara MÖ tətbiq etməzdən əvvəl, gəlin NLP mütəxəssisinin qarşılaşdığı problemləri anlayaq.
Mətn emalında tez-tez istifadə olunan texnikaları kəşf edək. Maşın öyrənməsi ilə birlikdə bu üsullar böyük həcmdə mətni səmərəli şəkildə təhlil etməyə kömək edir. Bu tapşırıqlara ML tətbiq etməzdən əvvəl gəlin NLP mütəxəssisinin qarşılaşdığı problemləri anlayaq.
## NLP-ə xas tapşırıqlar
Üzərində işlədiyiniz mətni təhlil etməyin müxtəlif yolları var. Burada sizin yerinə yetirə biləcəyiniz tapşırıqlar mövcuddur. Həmin tapşırıqlar vasitəsilə siz mətni başa düşə və nəticələr çıxara bilərsiniz. Əksərən bu tapşırıqlar sıra ilə yerinə yetirilir.
### Tokenləşdirmə
@ -23,7 +24,7 @@ Yəqin ki, əksər NLP alqoritmlərinin etməli olduğu ilk şey mətni tokenlə
![söz daxiletmələri](../images/embedding.png)
> "I have the highest respect for your nerves, they are my old friends." - **Qürur və Qərəz**-dən bir cümlə üçün söz daxiletmələri. [Jen Looper](https://twitter.com/jenlooper) tərəfindən çəkilmiş infoqrafik.
✅ Söz yerləşdirmələrilə sınaqlar keçirmək üçün [bu maraqlı aləti](https://projector.tensorflow.org/) sınayın. Bir sözə kliklədikdə oxşar sözlərdən ibarət qruplar görünür: 'oyuncaq' ilə 'disney', 'lego', 'playstation' və 'console' klasterləri.
✅ Söz yerləşdirmələr ilə sınaqlar keçirmək üçün [bu maraqlı aləti](https://projector.tensorflow.org/) sınayın. Bir sözə kliklədikdə oxşar sözlərdən ibarət qruplar görünür: 'oyuncaq' ilə 'disney', 'lego', 'playstation' və 'console' klasterləri.
### Təhlil & Nitq hissələrinin etiketlənməsi
@ -35,7 +36,7 @@ Tokenləşdirilmiş hər bir söz nitq hissəsi olaraq isim, fel və ya sifət k
Hissələrə ayırma bir cümlədə hansı sözlərin bir-biri ilə əlaqəli olduğunu tanımaqdır - məsələn, `the quick red fox jumped`, `lazy brown dog` ardıcıllığından ayrı olan sifət-isim-fel ardıcıllığıdır.
### Söz və İfadə Tezlikləri
### Söz və ifadə tezlikləri
Böyük bir mətni təhlil edərkən məsləhətdir ki, hər bir söz və ya söz birləşməsini və onun nə qədər tez rast gəlindiyini göstərən lüğət yaradılsın. `The quick red fox jumped over the lazy brown dog` cümləsindəki `the` 2 söz tezliyinə malikdir.
@ -85,7 +86,7 @@ Onları cümlə üzərində sürüşmə qutusu kimi göstərmək daha asan ola b
### İsimin çıxarılması
Əksər cümlələrdə cümlənin subyekti və ya obyekti olan isim mövcud olur. İngilis dilində tez-tez həmin isimlərin qarşısında 'a', 'an' və ya 'the' görə bilərik. NLP-də cümlənin mənasını qavramağa çalışarkən, "isimi çıxarmaq" yolu ilə cümlənin subyektinin və ya obyektinin müəyyən edilməsi tez-tez edilən bir üsuldur.
Əksər cümlələrdə cümlənin subyekti və ya obyekti olan isim mövcud olur. İngilis dilində tez-tez həmin isimlərin qarşısında 'a', 'an' və ya 'the' görə bilərik. NLP-də cümlənin mənasını qavramağa çalışarkən "isimi çıxarmaq" yolu ilə cümlənin subyektinin və ya obyektinin müəyyən edilməsi tez-tez edilən bir üsuldur.
✅ "I cannot fix on the hour, or the spot, or the look or the words, which laid the foundation. It is too long ago. I was in the middle before I knew that I had begun." cümləsində olan isimləri müəyyənləşdirə bilərsinizmi?
@ -93,13 +94,13 @@ Onları cümlə üzərində sürüşmə qutusu kimi göstərmək daha asan ola b
### Emosionallıq təhlili
Cümlə və ya mətn, onun emosionallığını təyin etmək və ya nə dərəcədə *müsbət* və ya *mənfi* olması üçün təhlil edilə bilər. Emosionallıq *qütblük* və *obyektivlik/subyektivlik* ilə ölçülür. Qütblülük -1.0-dən 1.0-ə (mənfidən müsbətə) və 0.0-dan 1.0-ə qədər (ən obyektivdən ən subyektivinə) ölçülür.
Cümlə və ya mətn onun emosionallığını təyin etmək və ya nə dərəcədə *müsbət* və ya *mənfi* olması üçün təhlil edilə bilər. Emosionallıq *qütblük* və *obyektivlik/subyektivlik* ilə ölçülür. Qütblülük -1.0-dən 1.0-ə (mənfidən müsbətə) və 0.0-dan 1.0-ə qədər (ən obyektivdən ən subyektivinə) ölçülür.
✅ Sonradan öyrənəcəksiniz ki, maşın öyrənməsindən istifadə edərək emosionallığı müəyyən etməyin müxtəlif yolları var, lakin bunun bir yolu insan eksperti tərəfindən müsbət və ya mənfi olaraq təsnif edilən söz və ifadələrin siyahısına sahib olmaq və həmin modeli verilən mətnə tətbiq edərək qütbilik hesabını tapmaqdır. Bu üsulun bəzi hallarda necə işlədiyini və digərlərində daha az yaxşı olacağını görə bilərsinizmi?
### Bükülmə
Bükülmə, verilən sözə görə həmin sözün tək və ya cəm halını əldə etməyə imkan verir.
Bükülmə verilən sözə görə həmin sözün tək və ya cəm halını əldə etməyə imkan verir.
### Lemmatizasiya(Söz kökünün müəyyən olunması)
@ -109,15 +110,15 @@ NLP tədqiqatçısı üçün faydalı data bazaları da mövcuddur, xüsusən:
### WordNet
[WordNet](https://wordnet.princeton.edu/) hər bir söz üçün müxtəlif dillərdə onların qarşılığı, sinonimləri, antonimləri və bir çox başqa təfərrüatları özündə saxlayan lüğət bazasıdır. Tərcümələr, orfoqrik yoxlayıcılar və ya istənilən növ dil alətləri yaratmaq üçün inanılmaz dərəcədə faydalıdırlar.
[WordNet](https://wordnet.princeton.edu/) hər bir söz üçün müxtəlif dillərdə onların qarşılığı, sinonimləri, antonimləri və bir çox başqa təfərrüatları özündə saxlayan lüğət bazasıdır. Tərcümələr, orfoqrafik yoxlayıcılar və ya istənilən növ dil alətləri yaratmaq üçün inanılmaz dərəcədə faydalıdırlar.
## NLP Kitabxanaları
## NLP kitabxanaları
Xoşbəxtlikdən, bu texnikaların hamısını özünüzün yaratmasına ehtiyac yoxdur. Çünki təbii dil emalı və ya maşın öyrənməsi üzrə ixtisaslaşmamış tərtibatçılar üçün onu daha əlçatan edən əla Python kitabxanaları mövcuddur. Növbəti dərslərdə bunlara dair daha çox nümunə olacaq, lakin burada növbəti tapşırığı yerinə yetirməkdə sizə kömək etmək üçün bəzi faydalı nümunələr öyrənəcəksiniz.
Xoşbəxtlikdən bu texnikaların hamısını özünüzün yaratmasına ehtiyac yoxdur. Çünki təbii dil emalı və ya maşın öyrənməsi üzrə ixtisaslaşmamış tərtibatçılar üçün onu daha əlçatan edən əla Python kitabxanaları mövcuddur. Növbəti dərslərdə bunlara dair daha çox nümunə olacaq, lakin burada növbəti tapşırığı yerinə yetirməkdə sizə kömək etmək üçün bəzi faydalı nümunələr öyrənəcəksiniz.
### Tapşırıq - `TextBlob` kitabxanasından istifadə etmək
Gəlin bu tip tapşırıqların həlli üçün faydalı API-ləri ehtiva edən TextBlob adlı kitabxanadan istifadə edək. TextBlob, "[NLTK](https://nltk.org) və [pattern](https://github.com/clips/pattern)-in nəhəng çiyinləri üzərində dayanır və hər ikisi ilə yaxşı uyğunlaşır." Onun API-sinə daxil edilmiş xeyli miqdarda MÖ var.
Gəlin bu tip tapşırıqların həlli üçün faydalı API-ləri ehtiva edən TextBlob adlı kitabxanadan istifadə edək. TextBlob, "[NLTK](https://nltk.org) və [pattern](https://github.com/clips/pattern)-in nəhəng çiyinləri üzərində dayanır və hər ikisi ilə yaxşı uyğunlaşır." Onun API-sinə daxil edilmiş xeyli miqdarda ML var.
> Qeyd: Təcrübəli Python tərtibatçıları üçün tövsiyə olunan faydalı [Quick Start](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) bələdçisi TextBlob üçün mövcuddur.
@ -137,11 +138,11 @@ Gəlin bu tip tapşırıqların həlli üçün faydalı API-ləri ehtiva edən T
np = user_input_blob.noun_phrases
```
> Burada nə baş verir? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) "ConLL-2000 ilə öyrədilmiş yığın təhlilindən istifadə edən isim çıxarıcı öyrətmə korpusudur”. ConLL-2000, 2000-ci ildə Hesabi Təbii Dil Öyrənmə Konfransına işarə edir. Hər il bu konfrans çətin bir NLP problemini həll etmək üçün seminar keçirir. 2000-ci ildə isə bu problem isim parçalanması olmuşdur. Həmin model Wall Street Journal-dakı "15-18-ci bölmələri öyrətmə datası (211727 token) və 20-ci bölməni isə test datası (47377 token)" kimi götürərək hazırlanmışdır. Siz istifadə olunan prosedurlara [burada](https://www.clips.uantwerpen.be/conll2000/chunking/) və nəticələrə [burada](https://ifarm.nl/erikt/research/np-chunking.html) baxa bilərsiniz.
> Burada nə baş verir? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) "ConLL-2000 ilə öyrədilmiş toplu təhlilindən istifadə edən isim çıxarıcı öyrətmə korpusudur”. ConLL-2000 2000-ci ildə Hesabi Təbii Dil Öyrənmə Konfransına işarə edir. Hər il bu konfrans çətin bir NLP problemini həll etmək üçün seminar keçirir. 2000-ci ildə isə bu problem isim parçalanması olmuşdur. Həmin model Wall Street Journal-dakı "15-18-ci bölmələri öyrətmə datası (211727 token) və 20-ci bölməni isə test datası (47377 token)" kimi götürərək hazırlanmışdır. Siz istifadə olunan prosedurlara [burada](https://www.clips.uantwerpen.be/conll2000/chunking/), nəticələrə isə [buradan](https://ifarm.nl/erikt/research/np-chunking.html) baxa bilərsiniz.
### Çağırış - NLP ilə botunuzun təkmilləşdirilməsi
Əvvəlki dərsdə siz çox sadə bir sual-cavab botu yaratmışdınız. İndi, əhval-ruhiyyə üçün daxil etdiyinizi təhlil edərək və əhval-ruhiyyəyə uyğun cavabı çap etməklə Marvini bir az daha anlayışlı etmiş olacaqsınız. Bundan əlavə, həmçinin siz `isimi` təyin etməli və bu barədə soruşmalısınız.
Əvvəlki dərsdə siz çox sadə bir sual-cavab botu yaratmışdınız. İndi əhval-ruhiyyə üçün daxil etdiyinizi təhlil edərək və əhval-ruhiyyəyə uyğun cavabı çap etməklə Marvini bir az daha anlayışlı etmiş olacaqsınız. Bundan əlavə, həmçinin siz `isimi` təyin etməli və bu barədə soruşmalısınız.
Daha yaxşı danışıq botu qurarkən atmalı olduğunuz addımlar bunlardır:
@ -190,15 +191,15 @@ Tapşırığın mümkün həlli [buradadır](https://github.com/microsoft/ML-For
✅ Bilik yoxlanışı
1. Sizcə, anlayışlı cavablar kimisə botun həqiqətən də onları başa düşdüyünü düşünməyə 'inandıra biləcək'?
1. Sizcə anlayışlı cavablar kimisə botun həqiqətən də onları başa düşdüyünü düşünməyə 'inandıra biləcək'?
2. İsimi müəyyən etmək botu daha 'inandırıcı' edirmi?
3. Nəyə görə cümlədən 'isimi' çıxarmaq faydalı olardı?
## 🚀Məşğələ
## 🚀 Məşğələ
Əvvəlki bilik yoxlamasındakı tapşırığı götürün və onu həyata keçirməyə çalışın. Botu dostunuz vasitəsilə test edin. Onu aldada bilərmi? Botunuzu daha 'inandırıcı' edə bilərsinizmi?
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/34/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/34/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -2,10 +2,10 @@
## Təlimatlar
Son bir neçə dərsdə söhbət etmək üçün sadə bir bot proqramlaşdırmısınız. Bu bot siz 'bye' deyənə qədər təsadüfi cavablar verir. 'Niyə' və ya 'necə' kimi konkret şeylər desəniz, verməli olduğu cavabları daha az təsadüfi edə bilərsinizmi? Botunuzu genişləndirdiyiniz zaman maşın öyrənmənin bu cür işi necə daha az mexaniki edə biləcəyi haqqında bir az düşünün. Tapşırıqlarınızı asanlaşdırmaq üçün NLTK və ya TextBlob kitabxanalarından istifadə edə bilərsiniz.
Son bir neçə dərsdə söhbət etmək üçün sadə bir bot proqramlaşdırmısınız. Bu bot siz 'bye' deyənə qədər təsadüfi cavablar verir. 'Niyə' və ya 'necə' kimi konkret şeylər soruşsanız verməli olduğu cavabları daha az təsadüfi edə bilərsinizmi? Botunuzu genişləndirdiyiniz zaman maşın öyrənmənin bu cür işi necə daha az mexaniki edə biləcəyi haqqında bir az düşünün. Tapşırıqlarınızı asanlaşdırmaq üçün NLTK və ya TextBlob kitabxanalarından istifadə edə bilərsiniz.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ------------------------------------------------------- | ------------------------------------------------- | -------------------------------- |
| | Yeni bot.py faylı təqdim olunur və sənədləşdirilir | Yeni bot faylı təqdim olunsa da, səhvlər ehtiva edir | Fayl təqdim edilmir |
| -------- | -------- | ------- | ------------------------ |
| | Yeni bot.py faylı təqdim olunub və sənədləşdirilib | Yeni bot faylı təqdim olunsa da, səhvlər mövcuddur | Fayl təqdim edilməyib |

@ -1,10 +1,10 @@
# Tərcümə və mətn analizi ilə MÖ
# Tərcümə və mətn analizi ilə ML
Əvvəlki dərslərdə, əsas nitq birləşmələrinin çıxarılması kimi əsas NLP vəzifələrini yerinə yetirmək üçün səhnə arxasında MÖ istifadə edən TextBlob kitabxanası ilə bot yaratmağı öyrəndiniz. Hesablama dilçiliyində digər mühüm bir məsələ isə bir cümlənin danışıq və ya yazılı dildən digərinə dəqiq tərcümə edilməsidir.
Əvvəlki dərslərdə əsas nitq birləşmələrinin çıxarılması kimi əsas NLP vəzifələrini yerinə yetirmək üçün səhnə arxasında ML istifadə edən TextBlob kitabxanası ilə bot yaratmağı öyrəndiniz. Hesablama dilçiliyində digər mühüm bir məsələ isə bir cümlənin danışıq və ya yazılı dildən digərinə dəqiq tərcümə edilməsidir.
## [Mühazirədən əvvəl sual-cavab](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/35/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/35/?loc=az)
Tərcümə çox çətin bir məsələdir, çünki minlərlə dil var və hər birinin çox fərqli qrammatika qaydaları ola bilər. Bir yanaşma, bir dili, məsələn, İngilis dilinin rəsmi qrammatika qaydalarını dilin özündən asılı olmayan bir struktura çevirmək və sonra başqa bir dilə tərcümə edərək geri çevirməkdir. Bu yanaşma aşağıdakı addımları atmağınızı tələb edir:
Tərcümə çox çətin bir məsələdir, çünki minlərlə dil var və hər birinin çox fərqli qrammatika qaydaları ola bilər. Bir yanaşma bir dili, məsələn, İngilis dilinin rəsmi qrammatika qaydalarını dilin özündən asılı olmayan bir struktura çevirmək və sonra başqa bir dilə tərcümə edərək geri çevirməkdir. Bu yanaşma aşağıdakı addımları atmağınızı tələb edir:
1. **İdentifikasiya**. Daxil olan dildəki sözləri isim, fel və s. kimi müəyyənləşdirin və ya işarələyin.
2. **Tərcümə yaradın**. Hədəf dil formatında hər sözün birbaşa tərcüməsini hazırlayın.
@ -21,12 +21,11 @@ Lakin, 'İrland' dilində eyni cümlə çox fərqli qrammatik quruluşa malikdir
İngilis dilindəki `I feel happy` ifadəsi İrland dilində `Tá athas orm` formasında olardı. *literal* tərcüməsi `Xoşbəxtlik mənim üstümdədir`. olaraq anlaşılır.
An Irish speaker translating to English would say , not , because they understand the meaning of the sentence, even if the words and sentence structure are different.
İrland dilində danışan biri İngilis dilinə tərcümə edərkən `I feel happy` deyər, `Happy is upon me` (Xoşbəxtlik mənim üzərimdədir) deməz, çünki cümlənin mənasını fərqli formada başa düşülər, hətta sözlər və cümlə quruluşu fərqli olsa belə.
İrland dilindəki cümlə quruluşu:
- **feil** (Tá və ya is)
- **fel** (Tá və ya is)
- **sifət** (athas, və ya xoşbəxt)
- **isim** (orm, or mənim üzərimdə)
@ -44,7 +43,7 @@ Sadə tərcümə yanlış tərcümələrə (bəzən möhtəşəmlərinə) gətir
İndiyə kimi təbii dil emalına rəsmi qaydalarla yanaşmalarını öyrənmisən. Başqa yanaşma sözlərin mənasını nəzərə almamaq və _onun yerinə maşın öyrənmə istifadə etməklə modeli tapmaqdır_. Əgər həm başlanğıc, həm də təyinat dillərdə çox sayda söz (*corpus*) və ya sözləri (*corpora*) tərcümə etmək istəyirsənsə, bu metod yaxşı işləyir.
Misal olaraq 1813-cü ildə Ceyn Austin tərəfindən yazılan məşhur inglis hekayəsi *Qürur və qərəz* nəzərə alaq. Əgər sən kitabı inglis dilində analiz etsən və insan tərəfindən *fransız* dilinə tərcümə olunmuş versiyasını oxusan orada bəzi söz birləşmələrinin _idiomatik olaraq_ digər dilinə tərcümə olunduğuna şahid olacaqsan. Tezliklə bunu görəcəksən.
Misal olaraq 1813-cü ildə Ceyn Austin tərəfindən yazılan məşhur inglis hekayəsi *Qürur və qərəzi* nəzərə alaq. Əgər sən kitabı inglis dilində analiz etsən və insan tərəfindən *fransız* dilinə tərcümə olunmuş versiyasını oxusan orada bəzi söz birləşmələrinin _idiomatik olaraq_ digər dilinə tərcümə olunduğuna şahid olacaqsan. Tezliklə bunu görəcəksən.
Misal üçün inglis dilində `I have no money`(mənim pulum yoxdur) ifadəsi hərfi olaraq fransız dilinə tərcümə olunanda `Je n'ai pas de monnaie` çevrilir. "Monnaie" sözü fransız dilində 'yanlış qohum' sözdür, belə ki 'money' və 'monnaie' sözləri sinonim deyillər. İnsan tərəfindən daha yaxşı tərcümə olsunsa `Je n'ai pas d'argent` kimi olardı, çünki burda daha aydın şəkildə pulun olmadığı mənası verir (nəinki 'monnaie' sözünün mənası 'boş dəyişiklik' mənasını verir).
@ -90,7 +89,7 @@ Bu yanaşma Marvin tapşırığında gördüyümüz cümlə kimi çox rahatlıql
### ML yanaşmaları
ML yanaşması mətnin mənfi və müsbət hissələrini - tvitləri, film rəylərini və ya insanın xal *və* yazılı rəy verdiyi hər şeyi əl ilə toplamaq olardı. Sonra NLP texnikaları fikirlərə və xallara tətbiq oluna bilər, beləliklə nümunələr meydana çıxa bilər (məsələn, müsbət film rəylərində mənfi film rəylərindən daha çox "Oskara layiqdir" ifadəsi olur və ya müsbət restoran rəyləri "iyrənc"dən daha çox "gurme" sözü istifadə olunur. ).
ML yanaşması mətnin mənfi və müsbət hissələrini - tvitləri, film rəylərini və ya insanın xal *və* yazılı rəy verdiyi hər şeyi əl ilə toplamaq olardı. Sonra NLP texnikaları fikirlərə və xallara tətbiq oluna bilər, beləliklə nümunələr meydana çıxa bilər (məsələn, müsbət film rəylərində mənfi film rəylərindən daha çox "Oskara layiqdir" ifadəsi olur və ya müsbət restoran rəyləri "iyrənc"dən daha çox "gurme" sözü istifadə olunur.).
> ⚖️ **Nümunə**: Əgər siz siyasətçinin ofisində işləmisinizsə və yeni qanun müzakirə olunurdusa, seçicilər xüsusi yeni qanunu dəstəkləyən və ya əleyhinə olan e-poçtların daxil olduğunu görə bilərdiniz. Deyək ki, sizə e-poçtları oxumaq və onları *lehinə* və *əleyhinə* olmaqla 2 qrupa çeşidləmək tapşırılıb. Əgər çox e-məktublar olsaydı, onların hamısını oxumağa cəhd etmək sizə yorucu gələ bilər. Bir bot sizin üçün onların hamısını oxuyub başa düşsə və hər bir e-poçtun hansı qrupa aid olduğunu sizə bildirsə, gözəl olmazdımı?
@ -134,7 +133,7 @@ Darcy, as well as Elizabeth, really loved them; and they were
## Məşğələ - hiss şkalasını yoxla
Sənin tapşırığın hiss şkaları istifadə etməklə *Qürur və Qərəz* mütləq sayda mənfidən daha çox müsbət cümlələrin olduğu halı təyin etməkdir. Bu tapşırıq üçün sən şkalanın 1 və ya -1 dəyərlərini müvafiq olaraq mütləq müsbət və ya mənfi kimi saya bilərsən.
Sənin tapşırığın hiss şkalaları istifadə etməklə *Qürur və Qərəz* mütləq sayda mənfidən daha çox müsbət cümlələrin olduğu halı təyin etməkdir. Bu tapşırıq üçün sən şkalanın 1 və ya -1 dəyərlərini müvafiq olaraq mütləq müsbət və ya mənfi kimi saya bilərsən.
**Addımlar:**
@ -150,35 +149,35 @@ Nümunə [həll](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3
✅ Bilik yoxlaması
1. Hiss cümlədə istifadə olunan sözlərə əsaslanır, lakin kod sözləri *anlayırmı*?
2. Sizcə, hiss şkalası dəqiqdirmi, başqa sözlə, siz xallarla *razısan*?
1. Xüsusilə, aşağıdaki cümlələrin mütləq **müsbət** şkala ilə qiymətləndirilməsinə razısan və ya razı deyilsən?
2. Sizcə, hiss şkalası dəqiqdirmi, başqa sözlə, xallarla *razısan*?
1. Xüsusilə aşağıdaki cümlələrin mütləq **müsbət** şkala ilə qiymətləndirilməsinə razısan, yoxsa razı deyilsən?
* “Nə gözəl atanız var, qızlar!” qapı bağlananda dedi.
* “Cənab Darsi ilə bağlı imtahanınız bitdi, məncə,” Miss Binqli dedi; "Və dua et, nəticəsi nə olacaq?" “Mən buna tam əmin oldum ki, cənab Darsinin heç bir qüsuru yoxdur”.
* Bu cür şeylər necə də gözəl baş verir!
* Dünyada bu cür şeylərə ən böyük nifrətim var.
* Seyə bilərəm ki, Şarlotta əla menecerdir.
* “Bu, həqiqətən də ləzzətlidir!
* “Bu, həqiqətən də ləzzətlidir!“
* Mən çox xoşbəxtəm!
* Ponilər haqqında təsəvvürünüz ləzzətlidir.
2. Növbəti 3 cümlə mütləq müsbət əhval-ruhiyyə ilə qiymətləndirildi, lakin yaxından oxuduqda onlar müsbət cümlələr deyil. Nə üçün hisslərin təhlili onların müsbət cümlələr olduğunu düşündü?
* “Onun Niderfilddə qalması başa çatanda xoşbəxt olacağam!” Elizabet cavab verdi: “Kaş ki, sənə təsəlli verəcək bir şey deyə biləydim”; “Ancaq bu, mənim gücümdən tamamilə kənardır”.
* Səni xoşbəxt görə bilsəydim!
* Bizim əziyyətimiz, əzizim Lizzy, çox böyükdür.
3. Aşağıdakı cümlələrin mütləq **mənfi** şkalası ilə razısan və ya razı deyilsən?
3. Aşağıdakı cümlələrin mütləq **mənfi** şkalası ilə razısan, yoxsa razı deyilsən?
- Onun qürurundan hamı iyrənir.
- "Mən onun yad insanlar arasında necə davrandığını bilmək istərdim." "Onu eşidəcəksən, amma özünü çox qorxunc bir şeyə hazırla".
- Fasil' Elizabethin hissləri üçün qorxunc idi.
- "Mən onun yad insanlar arasında necə davrandığını bilmək istərdim." "Onu eşidəcəksən, amma özünü çox qorxunc bir şeyə hazırla."
- Fasil Elizabetin hissləri üçün qorxunc idi.
- Dəhşətli olardı!
✅ Jane Austen-in hər hansı bir həvəskarı başa düşəcək ki, o, tez-tez kitablarından İngilis Regency cəmiyyətinin daha gülməli aspektlərini tənqid etmək üçün istifadə edir. *Qürur və qərəz* əsərinin baş qəhrəmanı Elizabeth Bennett (müəllif kimi) diqqətli sosial müşahidəçidir və onun danışığı tez-tez ağır sözlərlə dolu olur. Hətta cənab Darsi (hekayədəki sevgi marağı) Elizabetin oynaq və zəhlətökən dildən istifadə etdiyini qeyd edir: “Sizinlə uzun müddətli tanışlığımızdan həzz alıram və sizin hərdən özünüzə aid olmayan fikirləri söyləməkdən böyük həzz aldığınızı da bilirəm."
✅ Jane Austenin hər hansı bir həvəskarı başa düşəcək ki, o, tez-tez kitablarından İngilis Regency cəmiyyətinin daha gülməli aspektlərini tənqid etmək üçün istifadə edir. *Qürur və qərəz* əsərinin baş qəhrəmanı Elizabet Bennett (müəllif kimi) diqqətli sosial müşahidəçidir və onun danışığı tez-tez ağır sözlərlə dolu olur. Hətta cənab Darsi (hekayədəki sevgi marağı) Elizabetin oynaq və zəhlətökən dildən istifadə etdiyini qeyd edir: “Sizinlə uzun müddətli tanışlığımızdan həzz alıram və sizin hərdən özünüzə aid olmayan fikirləri söyləməkdən böyük həzz aldığınızı da bilirəm."
---
## 🚀 Məşğələ
İstifadəçi məlumatlarından digər xüsusiyyətləri çıxarmaqla Marvin'i daha da yaxşılaşdıra bilərsinizmi?
İstifadəçi məlumatlarından digər xüsusiyyətləri çıxarmaqla Marvin-i daha da yaxşılaşdıra bilərsinizmi?
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/36/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/36/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -2,10 +2,10 @@
## Təlimatlar
[Bu notbukda](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) Azure mətn analitikası istifadə edərək hiss analizi üçün istifadə edilən 500-dən çox Emili Dikinsonun şeirlərini tapa bilərsən. Bu dataseti istifadə edərək dərsdə bəhs olunan texinika ilə analiz et. Şeirlərdən çıxarılan hiss nəticəsi daha təkmil Azure xidmətlərinin qərarları ilə tutuşurmu? Sənin fikrincə, nə üçün tutuşur və ya tutuşmur? Nəsə sənə müəmmalı gəldi?
[Bu notbukda](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) Azure mətn analitikası istifadə edərək hiss analizi üçün istifadə edilən 500-dən çox Emili Dikinsonun şeirlərini tapa bilərsən. Bu dataseti istifadə edərək dərsdə bəhs olunan texnika ilə analiz et. Şeirlərdən çıxarılan hiss nəticəsi daha təkmil Azure xidmətlərinin qərarları ilə tutuşurmu? Sənin fikrincə nə üçün tutuşur və ya tutuşmur? Nəsə sənə müəmmalı gəldi?
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ---------| ------- | ------------------------ |
| -------- | -------- | ------- | ------------------------ |
| | Müəllifin nümunə məlumatlarının tam analizi notbukda təqdim olunub | Notbuk natamamdır və ya analiz yerinə yetirilməyib | Notbuk təqdim olunmayıb |

@ -4,13 +4,13 @@ Bu bölmədə siz böyük verilənlər toplusunun kəşfiyyat xarakterli məluma
- lazımsız sütunları necə çıxarmağı
- mövcud sütunlar əsasında bəzi yeni məlumatları necə hesablamağı
- nəticədə əldə edilən data massivi son problemdə istifadə etmək üçün necə yadda saxlamağı
- nəticədə əldə edilən dataseti son problemdə istifadə etmək üçün necə yadda saxlamağı
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/37/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/37/?loc=az)
### Giriş
İndiyə qədər siz mətn tipli datanın ədədi data növlərindən tamamilə fərqli olduğunu öyrəndiniz. Əgər bu data insan tərəfindən yazılmış və ya danışılan mətndirsə, nümunələri və tezlikləri, duyğuları və mənanı tapmaq üçün təhlil edilə bilər. Bu dərs sizə real bir məsələ ilə bağlı və [CC0: İctimai Domen lisenziyası](https://creativecommons.org/publicdomain/zero/1.0/) olan real data massiv (**[Avropada 515 min otel rəyi](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)**) təqdim edir. Bu data massiv Booking.com saytındakı açıq mənbələrdən götürülüb və Jiashen Liu tərəfindən yaradılmışdır.
İndiyə qədər siz mətn tipli datanın ədədi data növlərindən tamamilə fərqli olduğunu öyrəndiniz. Əgər bu data insan tərəfindən yazılmış və ya danışılan mətndirsə, nümunələri və tezlikləri, duyğuları və mənanı tapmaq üçün təhlil edilə bilər. Bu dərs sizə real bir məsələ ilə bağlı və [CC0: İctimai Domen lisenziyası](https://creativecommons.org/publicdomain/zero/1.0/) olan real dataset (**[Avropada 515 min otel rəyi](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)**) təqdim edir. Bu dataset Booking.com saytındakı açıq mənbələrdən götürülüb və Jiashen Liu tərəfindən yaradılmışdır.
### Hazırlıq
@ -19,44 +19,45 @@ Sizə lazım olacaq:
* Python 3-dən istifadə edərək .ipynb noutbuklarını idarə etmək imkanı
* pandas
* [Cihazınızda quraşdırmalı olduğunuz](https://www.nltk.org/install.html) NLTK
* Kaggle-dan əldə edə biləcəyiniz [Avropada 515 min otel rəyi](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe) data massivi. Datanın original halında ölçüsü təxminən 230 MB-dır. Datanı NLP dərsləri ilə bağlı olan `/data` qovluğuna endirin.
* Kaggle-dan əldə edə biləcəyiniz [Avropada 515 min otel rəyi](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe) dataseti. Datanın orijinal halında ölçüsü təxminən 230 MB-dır. Datanı NLP dərsləri ilə bağlı olan `/data` qovluğuna endirin.
## Kəşfiyyat xarakterli məlumat təhlili
Bu məşğələ güman edir ki, siz duyğu analizi və qonaq rəylərindən istifadə edərək bir otel tövsiyə botu yaradırsınız. İstifadə edəcəyiniz data massivə 6 şəhərdə yerləşən 1493 müxtəlif otel haqqında rəylər daxildir.
Bu məşğələ güman edir ki, siz duyğu analizi və qonaq rəylərindən istifadə edərək bir otel tövsiyə botu yaradırsınız. İstifadə edəcəyiniz datasetə 6 şəhərdə yerləşən 1493 müxtəlif otel haqqında rəylər daxildir.
Python-dan, otel rəyləri üçün olan data massivdən və NLTK-nın duyğu analizindən istifadə edərək siz aşağıdakıları öyrənə bilərsiniz:
Python-dan, otel rəyləri üçün olan datasetdən və NLTK-nın duyğu analizindən istifadə edərək siz aşağıdakıları öyrənə bilərsiniz:
* Rəylərdə ən çox istifadə olunan söz və ifadələr hansılardır?
* Oteli təsvir edən rəsmi *teqlər* rəy qiymətləri ilə əlaqələndirilirmi (məsələn, hansısa otel *Solo səyahət edənlər* ilə müqayisədə *Azyaşlı uşaqlı ailələr* tərəfindən daha mənfi qiymətləndirilib, bəlkə də, bu, otelin *Solo səyahət edənlər* üçün daha yaxşı olduğunu göstərir?)
* NLTK duyğu analizinin qiymətləndirməsi ilə otel rəylərindəki ədədi qiymətləndirmə arasında uyğunluq varmı?
#### Data massiv
#### Dataset
Gəlin cihazınıza endirdiyiniz və yaddaşda saxladığınız data massivi araşdıraq. Faylı VS Code redaktorunda və ya elə Excel-də açın.
Gəlin cihazınıza endirdiyiniz və yaddaşda saxladığınız dataseti araşdıraq. Faylı VS Code redaktorunda və ya elə Excel-də açın.
Data massivdəki başlıqlar aşağıdakı kimidir:
Datasetdəki başlıqlar aşağıdakı kimidir:
*Hotel_Address, Additional_Number_of_Scoring, Review_Date, Average_Score, Hotel_Name, Reviewer_Nationality, Negative_Review, Review_Total_Negative_Word_Counts, Total_Number_of_Reviews, Positive_Review, Review_Total_Positive_Word_Counts, Total_Number_of_Reviews_Reviewer_Has_Given, Reviewer_Score, Tags, days_since_review, lat, lng*
Burada onlar yoxlanması daha asan ola biləcək şəkildə qruplaşdırılıb:
##### Oteli təsvir edən sütunlar
* `Hotel_Name`, `Hotel_Address`, `lat` (en dairəsi), `lng` (uzunluq dairəsi)
* *lat* və *lng* sütunlarını istifadə edərək, Python ilə otellərin olduğu yerləri göstərən xəritə çəkə bilərsiniz (mənfi və müsbət rəyli otelləri ayırmaq üçün seçilmiş rənglər də istifadə etmək olar)
* *lat* və *lng* sütunlarını istifadə edərək Python ilə otellərin olduğu yerləri göstərən xəritə çəkə bilərsiniz (mənfi və müsbət rəyli otelləri ayırmaq üçün seçilmiş rənglər də istifadə etmək olar)
* Hotel_Address sütunu bizim üçün çox da faydalı olmadığından yəqin ki, daha asan çeşidləmə və axtarış üçün bunu ölkə ilə əvəz edəcəyik
**Otelin əsas rəy sütunları**
* `Average_Score`
* Data massivin yaradıcısına görə, bu sütun *Son bir ildəki ən son şərhə əsasən hesablanmış otelin orta qiymətidir*. Bu üsul qiyməti hesablamaq üçün olan ənənəvi üsullardan olmasa da, datanı birbaşa bu şəkildə əldə etdiyimizə görə biz onu hələlik nominal dəyər kimi qəbul edə bilərik.
* Datasetin yaradıcısına görə bu sütun *Son bir ildəki ən son şərhə əsasən hesablanmış otelin orta qiymətidir*. Bu üsul qiyməti hesablamaq üçün olan ənənəvi üsullardan olmasa da, datanı birbaşa bu şəkildə əldə etdiyimizə görə biz onu hələlik nominal dəyər kimi qəbul edə bilərik.
✅ Bu datadakı digər sütunlara əsaslanaraq, ortalama qiyməti hesablamaq üçün başqa yol düşünə bilərsinizmi?
✅ Bu datadakı digər sütunlara əsaslanaraq ortalama qiyməti hesablamaq üçün başqa yol düşünə bilərsinizmi?
* `Total_Number_of_Reviews`
* Bu otel üçün olan rəylərin ümumi sayı - bu sayın data massivdəki rəylərə aid olub-olmadığını, qısa kodlama etmədən, müəyyən etmək olmur.
* Bu otel üçün olan rəylərin ümumi sayı - bu sayın datasetdəki rəylərə aid olub-olmadığını qısa kodlama etmədən müəyyən etmək olmur.
* `Additional_Number_of_Scoring`
* Bu o deməkdir ki, rəy qiyməti verilib, lakin qonaq tərəfindən müsbət və ya mənfi rəy yazılmayıb
* Bu o deməkdir ki, rəy qiyməti verilib, lakin qonaq tərəfindən müsbət və ya mənfi rəy yazılmayıb.
**Rəy sütunları**
@ -65,19 +66,19 @@ Burada onlar yoxlanması daha asan ola biləcək şəkildə qruplaşdırılıb:
- 2,5-in niyə mümkün olan ən aşağı bal olduğu izah edilməyib
- `Negative_Review`
- Əgər qonaq rəy bildirməyibsə, bu xanada "**No Negative**" dəyəri olacaq
- Nəzərə alın ki, rəy sahibinin yazdığı müsbət rəy Mənfi rəy sütununda ola bilər (məs. "bu otel ilə bağlı pis heç nə yoxdur")
- Nəzərə alın ki, rəy sahibinin yazdığı müsbət rəy _mənfi rəy_ sütununda ola bilər (məs. "bu otel ilə bağlı pis heç nə yoxdur")
- `Review_Total_Negative_Word_Counts`
- Daha yüksək sayda mənfi sözlərin olmağı daha aşağı bala işarədir (əgər sentimentallığı yoxlamasaq)
- `Positive_Review`
- Əgər qonaq rəy bildirməyibsə, bu xanada "**No Positive**" dəyəri olacaq
- Nəzərə alın ki, rəy sahibinin yazdığı mənfi rəy Müsbət rəy sütununda ola bilər (məs. "bu otel ilə bağlı yaxşı heç nə yoxdur")
- Nəzərə alın ki, rəy sahibinin yazdığı mənfi rəy _müsbət rəy_ sütununda ola bilər (məs. "bu otel ilə bağlı yaxşı heç nə yoxdur")
- `Review_Total_Positive_Word_Counts`
- Daha yüksək sayda müsbət sözlərin olmağı daha yüksək bala işarədir (əgər sentimentallığı yoxlamasaq)
- `Review_Date` və `days_since_review`
- Rəylərə yenilik və ya köhnəlik ölçü meyarları tətbiq oluna bilər (köhnə rəylər yeniləri qədər dəqiq olmaya bilər, çünki otel rəhbərliyi dəyişib, təmir işləri aparılıb və ya hovuz əlavə edilib və s.)
- `Tags`
- Teqlər rəy sahibinin olduğu qonaq növünü (məsələn, solo və ya ailə), qonaq olduğu otağın növünü, qalma müddətini və rəyin necə təqdim olunduğunu təsvir etmək üçün seçə biləcəyi qısa təsvirlərdir.
- Təəssüf ki, bu teqlərdən istifadə problemlidir, onların faydalılığını müzakirə edən aşağıdakı bölməni nəzərdən keçirin
- Təəssüf ki, bu teqlərdən istifadə problemlidir, onların faydalılığını müzakirə edən aşağıdakı bölməni nəzərdən keçirin.
**Rəy sahibləri ilə bağlı sütunlar**
@ -90,19 +91,19 @@ Burada onlar yoxlanması daha asan ola biləcək şəkildə qruplaşdırılıb:
| Ortalama Bal | Ümumi rəy sayı | Rəy Sahibinin Qiymətləndirməsi | Mənfi <br />Rəy | Müsbət Rəy | Teqlər |
| -------------- | ---------------------- | ---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------- |
| 7.8 | 1945 | 2.5 | Bu, hazırda otel deyil, tikinti sahəsidir. Uzun bir səfərdən sonra istirahət edərkən və otaqda işləyərkən səhər tezdən və bütün günü qəbuledilməz bina səs-küyü ilə dəhşətə gəldim. İnsanlar bütün günü bitişik otaqlarda çəkiclərlə işləyirdilər. Mən otağı dəyişmək istədim, amma səssiz otaq yox idi. Bütün bunların üzərinə məndən əlavə ödəniş də tutuldu. Növbəti gün uçuşum erkən olduğu üçün oteli gecədən tərk etdim, və bunun üçün müvafiq ödəməni aldım. Bir gün sonra otel mənim razılığım olmadan rezervasiya edilmiş qiymətdən artıq ödəniş tutdu. Çox pis yerdir. Burada otaq bron etməklə özünüzə pislik etməyin | Söz yoxdur Çox pis yerdir Uzaq durun | İşgüzar səyahət Cütlük Standart İkili Otaq 2 gecə |
| 7.8 | 1945 | 2.5 | Bu hazırda otel deyil, tikinti sahəsidir. Uzun bir səfərdən sonra istirahət edərkən və otaqda işləyərkən səhər tezdən və bütün günü qəbuledilməz bina səs-küyü ilə dəhşətə gəldim. İnsanlar bütün günü bitişik otaqlarda çəkiclərlə işləyirdilər. Mən otağı dəyişmək istədim, amma səssiz otaq yox idi. Bütün bunların üzərinə məndən əlavə ödəniş də tutuldu. Növbəti gün uçuşum erkən olduğu üçün oteli gecədən tərk etdim və bunun üçün müvafiq ödəməni aldım. Bir gün sonra otel mənim razılığım olmadan rezervasiya edilmiş qiymətdən artıq ödəniş tutdu. Çox pis yerdir. Burada otaq bron etməklə özünüzə pislik etməyin | Söz yoxdur Çox pis yerdir Uzaq durun | İşgüzar səyahət Cütlük Standart İkili Otaq 2 gecə |
Gördüyünüz kimi, bu qonaq bu oteldən razı qalmayıb. Otelin yaxşı orta balı (7,8) və haqqında 1945 rəy var, lakin bu qonaq otelə 2,5 qiymət verib və onların qonaqlamasının nə qədər mənfi olduğuna dair 115 söz yazıb. Əgər onlar Positive_Review sütununda heç nə yazmasaydılar, pozitiv heç nə olmadığını təxmin etmək olardı, amma təəssüf ki, xəbərdarlıq üçün 7 söz yazıblar. Əgər sözlərin mənası və ya duyğusu əvəzinə sadəcə sözləri saysaq, rəy sahibinin niyyəti ilə bağlı yanlış istiqamətdə fikirlərə sahib ola bilərdik. Qəribədir ki, onların verdiyi 2,5 bal çaşqınlıq yaradır, çünki əgər o oteldə qalmaq belə pis idisə, niyə ümumiyyətlə, ona xal verirsiniz? Verilənlər toplusunu daha diqqətlə araşdırdıqda, mümkün olan ən aşağı balın 0 deyil, 2,5 olduğunu görəcəksiniz. Mümkün olan ən yüksək bal isə 10-dur.
Gördüyünüz kimi bu qonaq bu oteldən razı qalmayıb. Otelin yaxşı orta balı (7,8) və haqqında 1945 rəy var, lakin bu qonaq otelə 2,5 qiymət verib və onların qonaqlamasının nə qədər mənfi olduğuna dair 115 söz yazıb. Əgər onlar Positive_Review sütununda heç nə yazmasaydılar, pozitiv heç nə olmadığını təxmin etmək olardı, amma təəssüf ki, xəbərdarlıq üçün 7 söz yazıblar. Əgər sözlərin mənası və ya duyğusu əvəzinə sadəcə sözləri saysaq, rəy sahibinin niyyəti ilə bağlı yanlış istiqamətdə fikirlərə sahib ola bilərdik. Qəribədir ki, onların verdiyi 2,5 bal çaşqınlıq yaradır, çünki əgər o oteldə qalmaq belə pis idisə, niyə ümumiyyətlə, ona xal verirsiniz? Verilənlər toplusunu daha diqqətlə araşdırdıqda, mümkün olan ən aşağı balın 0 deyil, 2,5 olduğunu görəcəksiniz. Mümkün olan ən yüksək bal isə 10-dur.
##### Teqlər
Yuxarıda qeyd edildiyi kimi, ilk baxışdan məlumatları kateqoriyalara ayırmaq üçün `Teqlər`dən istifadə etmək fikri məntiqlidir. Təəssüf ki, bu etiketlər standartlaşdırılmayıb, yəni müəyyən bir oteldə seçimlər *Single room*, *Twin room*, və *Double room*, amma digər bir oteldə eyni otaqlar *Deluxe Single Room*, *Classic Queen Room*, və *Executive King Room* kimi fərqli adlandırılıb. Bunlar eyni şeylər ola bilər, lakin o qədər çox variasiya var ki, seçim belə olur:
1. Bütün şərtləri vahid standarta dəyişdirməyə cəhd etmək, lakin bu, çox çətindir, çünki bu halda müxtəlif növlər arasında uyğunluq bəlli deyil. (məs. *Classic single room*, *Single room* seçiminə uyğun gəlir, lakin *Superior Queen Room with Courtyard Garden or City View* seçimini standartlaşdırmaq çox daha çətindir)
1. Bütün şərtləri vahid standarta dəyişdirməyə cəhd etmək, lakin bu çox çətindir, çünki bu halda müxtəlif növlər arasında uyğunluq bəlli deyil. (məs. *Classic single room*, *Single room* seçiminə uyğun gəlir, lakin *Superior Queen Room with Courtyard Garden or City View* seçimini standartlaşdırmaq çox daha çətindir)
2. Biz NLP yanaşması ilə başlaya və *Solo*, *Business Traveller*, ya da *Family with young kids* kimi bəzi ifadələrin istifadə tezliyini ölçə bilər və onları tövsiyyə modelində amil olaraq nəzərə ala bilərik, çünki bunlar bütün otellər üçün uyğundur
2. Biz NLP yanaşması ilə başlaya və *Solo*, *Business Traveller*, ya da *Family with young kids* kimi bəzi ifadələrin istifadə tezliyini ölçə bilər və onları tövsiyyə modelində amil olaraq nəzərə ala bilərik, çünki bunlar bütün otellər üçün uyğundur.
Teqlər adətən (lakin həmişə deyil) *Səyahətin növü*, *Qonaqların növü*, *Otaq növü*, *Gecə sayı* və *Rəyin təqdim olunduğu cihazın növü* kimi kateqoriyalara uyğunlaşdırılan 5-6 vergüllə ayrılmış dəyərlərin siyahısından ibarət sahədir. Bununla belə, bəzi rəy sahibləri hər bir sahəni doldurmadığına görə (bəzilərini doldurmaya bilirlər), dəyərlər həmişə eyni ardıcıllıqla olmur.
Teqlər adətən (lakin həmişə deyil) *Səyahətin növü*, *Qonaqların növü*, *Otaq növü*, *Gecə sayı* və *Rəyin təqdim olunduğu cihazın növü* kimi kateqoriyalara uyğunlaşdırılan 5-6 vergüllə ayrılmış dəyərlərin siyahısından ibarət sahədir. Bununla belə bəzi rəy sahibləri hər bir sahəni doldurmadığına görə (bəzilərini doldurmaya bilirlər) dəyərlər həmişə eyni ardıcıllıqla olmur.
Nümunə olaraq *Qrupun növü* kateqoriyasını götürək. `Teqlər` sütununda bu kateqoriya üçün 1025 unikal dəyər var və təəssüf ki, onlardan yalnız bəziləri qrup növünə istinad edir (bəziləri otaq növüdür və s.). Qrup növü olaraq yalnız ailə qeyd edənləri filtrləsəniz, nəticələrdə çoxlu *Ailə otağı* tipli otaq növü dəyərləri də olacaq. Əgər ailənin növünü də filtrə daxil etsəniz, bu zaman nəticə daha yaxşı olacaq, çünki 515 000 nəticədən 80 000-dən çoxunda "Gənc uşaqlı ailə" və ya "Yaşlı uşaqlı ailə" ifadəsi var.
@ -110,9 +111,9 @@ Bu o deməkdir ki, teqlər sütunu bizim üçün tamamilə yararsız deyil, laki
##### Otelin ortalama balı
Data massiv ilə bağlı bir sıra qəribəliklər və ya uyğunsuzluqlar var ki, mən onları anlaya bilmirəm, lakin modellərinizi qurarkən onlardan xəbərdar olmanız üçün burada təsvir edilmişdir. Əgər başa düşsəniz, zəhmət olmasa müzakirə bölməsində bizə bildirin!
Dataset ilə bağlı bir sıra qəribəliklər və ya uyğunsuzluqlar var ki, mən onları anlaya bilmirəm, lakin modellərinizi qurarkən onlardan xəbərdar olmanız üçün burada təsvir edilmişdir. Əgər başa düşsəniz, zəhmət olmasa müzakirə bölməsində bizə bildirin!
Data massivdə ortalama bal və rəylərin sayı ilə bağlı aşağıdakı sütunlar var:
Datasetdə ortalama bal və rəylərin sayı ilə bağlı aşağıdakı sütunlar var:
1. Hotel_Name
2. Additional_Number_of_Scoring
@ -120,22 +121,22 @@ Data massivdə ortalama bal və rəylərin sayı ilə bağlı aşağıdakı süt
4. Total_Number_of_Reviews
5. Reviewer_Score
Bu data massivdə ən çox rəyi olan tək otel 515.000 rəydən 4789 rəylə *Britannia International Hotel Canary Wharf*dır. Amma bu otel üçün `Total_Number_of_Reviews` dəyərinə baxsaq görərik ki, bu 9086-dır. Güman edə bilərsiniz ki, rəyi olmayan çoxlu qiymətləndirmə var, ona görə də bəlkə də `Additional_Number_of_Scoring` sütunundakı dəyəri bu dəyərə əlavə etmək lazımdır. Bu dəyər 2682-dir və onu 4789-a əlavə etməklə 7,471 əldə edirik ki, bu da hələ də `Total_Number_of_Reviews` sütun dəyərindən 1615 azdır.
Bu datasetdə ən çox rəyi olan tək otel 515.000 rəydən 4789 rəylə *Britannia International Hotel Canary Wharf*-dır. Amma bu otel üçün `Total_Number_of_Reviews` dəyərinə baxsaq görərik ki, bu 9086-dır. Güman edə bilərsiniz ki, rəyi olmayan çoxlu qiymətləndirmə var, ona görə də bəlkə də `Additional_Number_of_Scoring` sütunundakı dəyəri bu dəyərə əlavə etmək lazımdır. Bu dəyər 2682-dir və onu 4789-a əlavə etməklə 7,471 əldə edirik ki, bu da hələ də `Total_Number_of_Reviews` sütun dəyərindən 1615 azdır.
Əgər `Average_Score` sütun dəyərlərinə baxsaq, bunun data massivdəki balların ortalaması olduğunu güman edə bilərsiniz, lakin Kaggle-da verilən təsvir "*Otelin son bir ildəki ən son şərhə əsasən hesablanmış orta balı*" şəklindədir. Bu, o qədər də faydalı görünmür, lakin biz data massivdəki ballara əsaslanaraq öz ortalamamızı hesablaya bilərik. Nümunə olaraq eyni oteldən istifadə edərək, orta otel balı 7,1 kimi verilir, lakin hesablanmış bal (data massivdə rəy sahibinin ortalama qiymətləndirməsi) 6,8-dir. Bu yaxındır, lakin eyni dəyər deyil və biz yalnız təxmin edə bilərik ki, `Additional_Number_of_Scoring` sütununda olan bal dəyərləri ortalama göstəricisini 7.1-ə yüksəldib. Təəssüf ki, bu iddianı sınamaq və ya sübut etmək üçün heç bir yol olmadığından `Average_Score`, `Additional_Number_of_Scoring` və `Total_Number_of_Reviews` sütun dəyərləri bizdə olmayan dataya əsaslandıqda və ya onlara istinad etdikdə onlardan istifadə etmək və ya onların doğruluğuna inanmaq çətindir.
Əgər `Average_Score` sütun dəyərlərinə baxsaq, bunun datasetdəki balların ortalaması olduğunu güman edə bilərsiniz, lakin Kaggle-da verilən təsvir "*Otelin son bir ildəki ən son şərhə əsasən hesablanmış orta balı*" şəklindədir. Bu, o qədər də faydalı görünmür, lakin biz datasetdəki ballara əsaslanaraq öz ortalamamızı hesablaya bilərik. Nümunə olaraq eyni oteldən istifadə edərək orta otel balı 7,1 kimi verilir, lakin hesablanmış bal (datasetdə rəy sahibinin ortalama qiymətləndirməsi) 6,8-dir. Bu yaxındır, lakin eyni dəyər deyil və biz yalnız təxmin edə bilərik ki, `Additional_Number_of_Scoring` sütununda olan bal dəyərləri ortalama göstəricisini 7.1-ə yüksəldib. Təəssüf ki, bu iddianı sınamaq və ya sübut etmək üçün heç bir yol olmadığından `Average_Score`, `Additional_Number_of_Scoring` və `Total_Number_of_Reviews` sütun dəyərləri bizdə olmayan dataya əsaslandıqda və ya onlara istinad etdikdə onlardan istifadə etmək və ya onların doğruluğuna inanmaq çətindir.
Bütün bunların üzərinə, ən çox rəy alan ikinci otelin hesablanmış orta balı 8,12 və data massivdəki `Average_Score` sütun dəyəri isə 8.1-dir. Bu düzgün hesab təsadüfdür yoxsa ilk otel datası doğru deyil?
Bütün bunların üzərinə, ən çox rəy alan ikinci otelin hesablanmış orta balı 8,12 və datasetdəki `Average_Score` sütun dəyəri isə 8.1-dir. Bu düzgün hesab təsadüfdür yoxsa ilk otel datası doğru deyil?
Bu otellərin istisna olmaları ehtimalı və bəlkə də dəyərlərin əksəriyyətinin üst-üstə düşməsi (niyəsə bəziləri üst-üstə düşmür) ehtimalı üzərinə data massivdəki dəyərlərin düzgün istifadə edilməsini (və ya edilməməsini) araşdırmaq üçün qısa proqram yazacağıq.
Bu otellərin istisna olmaları ehtimalı və bəlkə də dəyərlərin əksəriyyətinin üst-üstə düşməsi (niyəsə bəziləri üst-üstə düşmür) ehtimalı üzərinə datasetdəki dəyərlərin düzgün istifadə edilməsini (və ya edilməməsini) araşdırmaq üçün qısa proqram yazacağıq.
> 🚨 Qeyd
>
> Bu verilənlər toplusu ilə işləyərkən siz mətni özünüz oxumadan və ya təhlil etmədən mətndən nəyisə hesablayan kod yazacaqsınız. NLP-nin mahiyyəti də elə bundan ibarətdir, insandan asılı olmadan məna və ya duyğuları analiz və şərh edir. Bununla belə, bəzi mənfi rəyləri oxumağınız mümkündür. Mən oxumamağınızın tərəfdarıyam, çünki buna məcbur deyilsiniz. Onlardan bəziləri mənasız və ya aidiyyatı olmayan mənfi otel rəyləridir, məsələn, "Hava əla deyildi", hansı ki, oteldən və ya həqiqətən də hər hansı birindən asılı olmadan baş verən bir şeydir. Ancaq bəzi rəylərin qaranlıq tərəfi də var. Bəzən mənfi rəylər irqçi, cinsiyyətçi və ya yaş ilə bağlı ayrı-seçkilik etməyə yönəlib. Bu təəssüf doğurur, lakin ictimai vebsaytdan əldə edilmiş verilənlər bazasında gözləniləndir. Bəzi rəy sahibləri xoşagəlməz, narahat və ya əsəbi hesab edə biləcəyiniz rəylər yazırlar. Kodunuzun duyğu analizi etməsinə icazə vermək, onları özünüz oxuyub üzülməkdən daha yaxşıdır. Bununla belə, belə rəylər azlıq təşkil edir, lakin həmişə mövcud olduğunu bilməkdə fayda var.
> Bu verilənlər toplusu ilə işləyərkən siz mətni özünüz oxumadan və ya təhlil etmədən mətndən nəyisə hesablayan kod yazacaqsınız. NLP-nin mahiyyəti də elə bundan ibarətdir, insandan asılı olmadan məna və ya duyğuları analiz və şərh edir. Bununla belə, bəzi mənfi rəyləri oxumağınız mümkündür. Mən oxumamağınızın tərəfdarıyam, çünki buna məcbur deyilsiniz. Onlardan bəziləri mənasız və ya aidiyyatı olmayan mənfi otel rəyləridir, məsələn, "Hava əla deyildi", hansı ki, oteldən və ya həqiqətən də hər hansı birindən asılı olmadan baş verən bir şeydir. Ancaq bəzi rəylərin qaranlıq tərəfi də var. Bəzən mənfi rəylər irqçi, cinsiyyətçi və ya yaş ilə bağlı ayrı-seçkilik etməyə yönəlib. Bu təəssüf doğurur, lakin ictimai vebsaytdan əldə edilmiş verilənlər bazasında gözləniləndir. Bəzi rəy sahibləri xoşagəlməz, narahat və ya əsəbi hesab edə biləcəyiniz rəylər yazırlar. Kodunuzun duyğu analizi etməsinə icazə vermək, onları özünüz oxuyub üzülməkdən daha yaxşıdır. Bununla belə, bu tip rəylər azlıq təşkil edir, lakin həmişə mövcud olduğunu bilməkdə fayda var.
## Məşğələ - Datanın təhlili
### Datanı yükləyin
Datanı vizual olaraq bu qədər yoxlamaq kifayətdir, artıq biraz kod yazacaq və bəzi cavablar alacaqsınız! Bu hissə pandas kitabxanasını istifadə edir. İlk tapşırığınız CSV məlumatlarını yükləyə və oxuya bildiyinizə əmin olmaqdır. Pandas kitabxanasının sürətli CSV yükləyicisi var, və əvvəlki dərslərdə olduğu kimi nəticə datafreymə yerləşdiriləcək. Yüklədiyimiz CSV-də yarım milyondan çox sətir, lakin cəmi 17 sütun var. Pandas sizə datafreym ilə qarşılıqlı əməliyyatlar aparmaq üçün çoxlu faydalı metodlar, o cümlədən hər sətirdə əməliyyatlar yerinə yetirmək imkanı verir.
Datanı vizual olaraq bu qədər yoxlamaq kifayətdir, artıq biraz kod yazacaq və bəzi cavablar alacaqsınız! Bu hissə pandas kitabxanasını istifadə edir. İlk tapşırığınız CSV məlumatlarını yükləyə və oxuya bildiyinizə əmin olmaqdır. Pandas kitabxanasının sürətli CSV yükləyicisi var və əvvəlki dərslərdə olduğu kimi nəticə datafreymə yerləşdiriləcək. Yüklədiyimiz CSV-də yarım milyondan çox sətir, lakin cəmi 17 sütun var. Pandas sizə datafreym ilə qarşılıqlı əməliyyatlar aparmaq üçün çoxlu faydalı metodlar, o cümlədən hər sətirdə əməliyyatlar yerinə yetirmək imkanı verir.
Bu hissədən etibarən bu dərs koddan fraqmentlər, kodun ümumi analizi və nəticələrin nə mənaya gəldiyi üzərinə aparılan müzəkirələrdən ibarət olacaq. Kodunuz üçün _notebook.ipynb_ noutbukunu istifadə edin.
@ -162,29 +163,30 @@ Artıq data *təmizdir*, bu isə o deməkdir ki, data onunla işlənilməyə haz
✅ NLP üsullarını tətbiq etməzdən əvvəl onu formatlaşdırmaq üçün bəzi ilkin emal tələb edən data ilə işləməli ola bilərdiniz, lakin bu dəfə buna ehtiyac yoxdur. Əgər olsaydı, ingiliscədə istifadə olunmayan simvolların öhdəsindən necə gələrdiniz?
Data yükləndikdən sonra onu yazdığınız kodu istifadə edərək araşdıra biləcəyinizdən əmin olun. İlk baxışdan `Negative_Review` və `Positive_Review` sütunlarına diqqəti cəmləmək daha asan görünür. Həmin sütunlar sizin NLP alqoritmlərinizin rahatlıqla işləyə biləcəyi, təbii dildə yazılmış mətnlərdən ibarətdir. Lakin gözləyin! NLP və duyğu analizinə başlamazdan əvvəl, ilk addım kimi, aşağıdakı kodu istifadə edərək data massivdəki dəyərlər ilə pandas kitabxanasını istifadə edərək hesabladığınız dəyərlərin uyğunlaşdığına əmin olun.
Data yükləndikdən sonra onu yazdığınız kodu istifadə edərək araşdıra biləcəyinizdən əmin olun. İlk baxışdan `Negative_Review` və `Positive_Review` sütunlarına diqqəti cəmləmək daha asan görünür. Həmin sütunlar sizin NLP alqoritmlərinizin rahatlıqla işləyə biləcəyi, təbii dildə yazılmış mətnlərdən ibarətdir. Lakin gözləyin! NLP və duyğu analizinə başlamazdan əvvəl, ilk addım kimi, aşağıdakı kodu istifadə edərək datasetdəki dəyərlər ilə pandas kitabxanasını istifadə edərək hesabladığınız dəyərlərin uyğunlaşdığına əmin olun.
## Datafreym əməliyyatları
Bu dərsdəki ilk tapşırıq datafreymi (dəyişdirmədən) yoxlayan kod yazaraq aşağıdakı iddiaların düzgün olub-olmadığını yoxlamaqdır.
> Bir çox proqramlaşdırma tapşırıqları kimi, bu tapşırığı da başa çatdırmağın bir neçə yolu var, lakin məsləhət odur ki, bunu edə biləcəyiniz ən sadə, ən asan şəkildə edəsiniz, çünki gələcəkdə bu koda qayıtdığınız zaman onu başa düşmək daha asan olacaq. Bu istədiyinizə bir çox hallarda səmərəli şəkildə nail olmağınıza kömək ola biləcək datafreym üçün olan API-lar var.
> Bir çox proqramlaşdırma tapşırıqları kimi bu tapşırığı da başa çatdırmağın bir neçə yolu var, lakin məsləhət odur ki, bunu edə biləcəyiniz ən sadə, ən asan şəkildə edəsiniz, çünki gələcəkdə bu koda qayıtdığınız zaman onu başa düşmək daha asan olacaq. Burda istədiyinizə bir çox hallarda səmərəli şəkildə nail olmağınıza kömək ola biləcək datafreym üçün olan API-lar var.
Aşağıdakı suallara kodlaşdırma tapşırıqları kimi baxın və həllinə baxmadan onlara cavab verməyə çalışın.
1. İndicə yüklədiyiniz datafreymin *formasını* çap edin (burada forma deyəndə sətir və sütunların sayı nəzərdə tutulur)
2. Müxtəlif milliyətlərdən olan rəy sahibləri üçün tezliyi hesablayın:
1. `Reviewer_Nationality` sütunu üçün neçə fərqli dəyər var və hansılardır?
2. Data massivdə ən çox hansı milliyyətdən olan rəy sahibi var (ölkəni və rəylərin sayını çap edin)?
2. Datasetdə ən çox hansı milliyyətdən olan rəy sahibi var (ölkəni və rəylərin sayını çap edin)?
3. Növbəti 10 milliyət hansıdır və tezlikləri nə qədərdir?
3. Bu 10 milliyyətdən olan rəy sahiblərinin ən çox qiymətləndirdiyi otel hansıdır?
4. Data massivdə hər bir otel üçün neçə rəy var (otellərin rəy sıxlığı necədir)?
5. Baxmayaraq ki, data massivdə hər bir otel üçün `Average_Score` sütunu var, siz də ortalama balı hesablaya bilərsiniz (bunun üçün hər bir otelin data massivdəki rəy qiymətləndirmələrinin ortalamasını hesablamaq lazımdır). Datafreymə `Calc_Average_Score` başlıqlı və hesablanmış ortalamanı göstərən yeni sütun əlavə edin.
4. Datasetdə hər bir otel üçün neçə rəy var (otellərin rəy sıxlığı necədir)?
5. Baxmayaraq ki, datasetdə hər bir otel üçün `Average_Score` sütunu var, siz də ortalama balı hesablaya bilərsiniz (bunun üçün hər bir otelin datasetdəki rəy qiymətləndirmələrinin ortalamasını hesablamaq lazımdır). Datafreymə `Calc_Average_Score` başlıqlı və hesablanmış ortalamanı göstərən yeni sütun əlavə edin.
6. Hansısa otelin eyni `Average_Score` və `Calc_Average_Score` (kəsr hissəsi onluqlara yuvarlaqlaşdırılmış) dəyəri varmı?
1. Giriş olaraq sətir götürən və dəyərləri müqayisə edən bir Python funksiyası yazmağa çalışın və dəyərlər eyni olmadıqda mesaj çağ edin. Daha sonra isə `.apply()` funksiyasını istifadə edərək yazdığınız funksiyanı digər sətirlərə də tətbiq edin.
7. `Negative_Review` sütununda neçə sətrin "No Negative" dəyəri olduğunu hesablayın və nəticəni çap edin
8. `Positive_Review` sütununda neçə sətrin "No Positive" dəyəri olduğunu hesablayın və nəticəni çap edin
9. Neçə sətrin `Positive_Review` sütun və "No Positive" dəyəri, **və** neçəsinin `Negative_Review` sütun və "No Negative" dəyəri olduğunu hesablayın və nəticəni çap edin
1. Giriş olaraq sətir götürən və dəyərləri müqayisə edən bir Python funksiyası yazmağa çalışın və dəyərlər eyni olmadıqda mesaj çap edin. Daha sonra isə `.apply()` funksiyasını istifadə edərək yazdığınız funksiyanı digər sətirlərə də tətbiq edin.
7. `Negative_Review` sütununda neçə sətrin "No Negative" dəyəri olduğunu hesablayın və nəticəni çap edin.
8. `Positive_Review` sütununda neçə sətrin "No Positive" dəyəri olduğunu hesablayın və nəticəni çap edin.
9. Neçə sətrin `Positive_Review` sütun və "No Positive" dəyəri, **və** neçəsinin `Negative_Review` sütun və "No Negative" dəyəri olduğunu hesablayın və nəticəni çap edin.
### Kodlaşdırma tapşırıqlarına cavablar
1. İndicə yüklədiyiniz datafreymin *formasını* çap edin (burada forma deyəndə sətir və sütunların sayı nəzərdə tutulur)
@ -197,7 +199,7 @@ Aşağıdakı suallara kodlaşdırma tapşırıqları kimi baxın və həllinə
2. Müxtəlif milliyətlərdən olan rəy sahibləri üçün tezliyi hesablayın:
1. `Reviewer_Nationality` sütunu üçün neçə fərqli dəyər var və hansılardır?
2. Data massivdə ən çox hansı milliyyətdən olan rəy sahibi var (ölkəni və rəylərin sayını çap edin)?
2. Datasetdə ən çox hansı milliyyətdən olan rəy sahibi var (ölkəni və rəylərin sayını çap edin)?
```python
# value_counts() creates a Series object that has index and values in this case, the country and the frequency they occur in reviewer nationality
@ -268,7 +270,7 @@ Aşağıdakı suallara kodlaşdırma tapşırıqları kimi baxın və həllinə
The most reviewed hotel for Canada was St James Court A Taj Hotel London with 61 reviews.
```
4. Data massivdə hər bir otel üçün neçə rəy var (otellərin rəy sıxlığı necədir)?
4. Datasetdə hər bir otel üçün neçə rəy var (otellərin rəy sıxlığı necədir)?
```python
# First create a new dataframe based on the old one, removing the uneeded columns
@ -291,9 +293,9 @@ Aşağıdakı suallara kodlaşdırma tapşırıqları kimi baxın və həllinə
| Hotel Wagner | 135 | 10 |
| Hotel Gallitzinberg | 173 | 8 |
`Total_Number_of_Reviews` sütunundakı dəyərlərin *data massivdə tapılan* nəticələr ilə uyğunlaşmadığını görə bilərsiniz. Bizə məlum deyil ki, bu dəyər otelə aid olan bütün rəylərin sayını göstərir (lakin bütün rəylər saytdan əldə edilməmişdir), ya da başqa hesablamanın nəticəsidir. Bu qeyri-müəyyənliyə görə `Total_Number_of_Reviews` sütunu modeldə istifadə edilməmişdir.
`Total_Number_of_Reviews` sütunundakı dəyərlərin *datasetdə tapılan* nəticələr ilə uyğunlaşmadığını görə bilərsiniz. Bizə məlum deyil ki, bu dəyər otelə aid olan bütün rəylərin sayını göstərir (lakin bütün rəylər saytdan əldə edilməmişdir), yoxsa başqa hesablamanın nəticəsidir. Bu qeyri-müəyyənliyə görə `Total_Number_of_Reviews` sütunu modeldə istifadə edilməmişdir.
5. Baxmayaraq ki, data massivdə hər bir otel üçün `Average_Score` sütunu var, siz də ortalama balı hesablaya bilərsiniz (bunun üçün hər bir otelin data massivdəki rəy qiymətləndirmələrinin ortalamasını hesablamaq lazımdır). Datafreymə `Calc_Average_Score` başlıqlı və hesablanmış ortalamanı göstərən yeni sütun əlavə edin. `Hotel_Name`, `Average_Score` və `Calc_Average_Score` sütunlarını çap edin.
5. Baxmayaraq ki datasetdə hər bir otel üçün `Average_Score` sütunu var, siz də ortalama balı hesablaya bilərsiniz (bunun üçün hər bir otelin datasetdəki rəy qiymətləndirmələrinin ortalamasını hesablamaq lazımdır). Datafreymə `Calc_Average_Score` başlıqlı və hesablanmış ortalamanı göstərən yeni sütun əlavə edin. `Hotel_Name`, `Average_Score` və `Calc_Average_Score` sütunlarını çap edin.
```python
# define a function that takes a row and performs some calculation with it
@ -315,7 +317,7 @@ Aşağıdakı suallara kodlaşdırma tapşırıqları kimi baxın və həllinə
display(review_scores_df[["Average_Score_Difference", "Average_Score", "Calc_Average_Score", "Hotel_Name"]])
```
Sizə `Average_Score` sütunundakı dəyər və bu dəyərin bəzən niyə hesablanmış ortalama baldan fərqli olduğu maraqlı ola bilər. Niyə bəzi dəyərlərin üst-üstə düşüb, digərlərinin isə fərqləndiyini bilə bilmədiyimiz üçün, ortalama balını özümüzün hesablamalı olduğumuz rəy qiymətləndirmələrini istifadə etmək ən doğrusudur. Bununla belə, fərqliliklər adətən çox kiçikdir və aşağıda data massivdəki ortalama rəy dəyəri ilə hesablanmış ortalama rəy dəyəri ən çox fərqlənən otellər göstərilib:
Sizə `Average_Score` sütunundakı dəyər və bu dəyərin bəzən niyə hesablanmış ortalama baldan fərqli olduğu maraqlı ola bilər. Niyə bəzi dəyərlərin üst-üstə düşüb, digərlərinin isə fərqləndiyini bilmədiyimiz üçün ortalama balını özümüzün hesablamalı olduğumuz rəy qiymətləndirmələrini istifadə etmək ən doğrusudur. Bununla belə, fərqliliklər adətən çox kiçikdir və aşağıda datasetdəki ortalama rəy dəyəri ilə hesablanmış ortalama rəy dəyəri ən çox fərqlənən otellər göstərilib:
| Average_Score_Difference | Average_Score | Calc_Average_Score | Hotel_Name |
| :----------------------: | :-----------: | :----------------: | ------------------------------------------: |
@ -333,11 +335,11 @@ Aşağıdakı suallara kodlaşdırma tapşırıqları kimi baxın və həllinə
Sadəcə bir oteldə bu fərq 1-dən böyük olduğundan fərqi nəzərə almayıb hesablanmış ortalama qiymətləndirməni istifadə edə bilərik.
6. `Negative_Review` sütununda neçə sətrin "No Negative" dəyəri olduğunu hesablayın və nəticəni çap edin
6. `Negative_Review` sütununda neçə sətrin "No Negative" dəyəri olduğunu hesablayın və nəticəni çap edin.
7. `Positive_Review` sütununda neçə sətrin "No Positive" dəyəri olduğunu hesablayın və nəticəni çap edin
7. `Positive_Review` sütununda neçə sətrin "No Positive" dəyəri olduğunu hesablayın və nəticəni çap edin.
8. Neçə sətrin `Positive_Review` sütun və "No Positive" dəyəri, **və** neçəsinin `Negative_Review` sütun və "No Negative" dəyəri olduğunu hesablayın və nəticəni çap edin
8. Neçə sətrin `Positive_Review` sütun və "No Positive" dəyəri, **və** neçəsinin `Negative_Review` sütun və "No Negative" dəyəri olduğunu hesablayın və nəticəni çap edin.
```python
# with lambdas:
@ -384,16 +386,16 @@ Digər bir üsul Lambdas istifadə etmədən sözügedən dəyərləri saymaq v
Sum took 0.19 seconds
```
127 sətr üçün `Negative_Review` və `Positive_Review` sütunlarında müvafiq olaraq həm "No Negative", həm də "No Positive" dəyərlərinin olduğunu görmüş ola bilərsiniz. Bu o deməkdir ki, qonaq oteli ədədi olaraq qiymətləndirib, lakin nə mənfi nə də müsbət rəy yazıb. Xoşbəxtlikdən belə sətirlərin sayı azdır (127/515738, hansı ki 0.02% təşkil edir), ona görə də böyük ehtimalla bu sətirlər bizim modeli hansısa yanlış istiqamətdə yönləndirməyəcək. Bununla belə, rəylərin data massivində rəy olmayan sətirlərin olması təbii olaraq gözlənilməz olduğundan, datanı təhlil etmək həmişə vacibdir.
127 sətr üçün `Negative_Review` və `Positive_Review` sütunlarında müvafiq olaraq həm "No Negative", həm də "No Positive" dəyərlərinin olduğunu görmüş ola bilərsiniz. Bu o deməkdir ki, qonaq oteli ədədi olaraq qiymətləndirib, lakin nə mənfi nə də müsbət rəy yazıb. Xoşbəxtlikdən belə sətirlərin sayı azdır (127/515738, hansı ki 0.02% təşkil edir), ona görə də böyük ehtimalla bu sətirlər bizim modeli hansısa yanlış istiqamətdə yönləndirməyəcək. Bununla belə, rəylərin datasetində rəy olmayan sətirlərin olması təbii olaraq gözlənilməz olduğundan, datanı təhlil etmək həmişə vacibdir.
Data massivin təhlilini bitirdiyinizə görə artıq növbəti dərsdə datanı filtrləyəcək və data üzərində duyğu analizi aparacaqsınız.
Datasetin təhlilini bitirdiyinizə görə artıq növbəti dərsdə datanı filtrləyəcək və data üzərində duyğu analizi aparacaqsınız.
---
## 🚀Məşğələ
## 🚀 Məşğələ
Bu dərs, əvvəlki dərslərdə də gördüyümüz kimi, data üzərində əməliyyatlar etməzdən əvvəl onu və onun çatışmazlıqlarını başa düşməyin nə qədər vacib olduğunu nümayiş etdirir. Xüsusilə də mətnə əsaslanan data diqqətlə araşdırılır. Müxtəlif mətn ağırlıqlı data massivləri araşdırın və modeldə qərəzli və ya başqa istiqamətə yönəldən duyğu yarada biləcək hissələri aşkar edə bilib-bilmədiyinizə baxın.
Bu dərs, əvvəlki dərslərdə də gördüyümüz kimi data üzərində əməliyyatlar etməzdən əvvəl onun özünü və çatışmazlıqlarını başa düşməyin nə qədər vacib olduğunu nümayiş etdirir. Xüsusilə də mətnə əsaslanan data diqqətlə araşdırılır. Müxtəlif mətn ağırlıqlı datasetləri araşdırın və modeldə qərəzli və ya başqa istiqamətə yönəldən duyğu yarada biləcək hissələri aşkar edə bilib-bilmədiyinizə baxın.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/38/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/38/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -3,4 +3,3 @@
## Təlimatlar
NLTK kompüter dilçiliyi və NLP üçün olan məşhur kitabxanadır. Fürsətdən istifadə edərək '[NLTK kitabını](https://www.nltk.org/book/)' oxuyun və məşğələləri nəzərdən keçirin. Bu tapşırıq qiymətləndirilməyəcək, lakin siz bu kitabxananı daha dərindən öyrənə biləcəksiniz.

@ -2,7 +2,7 @@
Sən artıq dataseti ətraflı kəşf etmisən və indi sütunları filtrasiya edərək yeni məlumatlar toplamaq üçün NLP texnikalarını tətbiq edəcəksən.
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/39/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/39/?loc=az)
### Filtrasiya və fikir analizi əməliyyatları
@ -53,7 +53,7 @@ Datanı biraz təmizlə. Sonradan faydalı ola biləcək sütunlar əlavə et, d
print(df["Hotel_Address"].value_counts())
```
Now you can query country level data:
Artıq ölkə səviyyəsində sorğu yarada bilərsən:
```python
display(df.groupby("Hotel_Address").agg({"Hotel_Name": "nunique"}))
@ -68,7 +68,7 @@ Datanı biraz təmizlə. Sonradan faydalı ola biləcək sütunlar əlavə et, d
| Paris, France | 458 |
| Vienna, Austria | 158 |
2. Otel rəylə əlaqəli sütunları email et
2. Otel rəyləri ilə əlaqəli sütunları emal et
1. `Additional_Number_of_Scoring` sütununu sil
@ -108,7 +108,7 @@ Təəssüf ki, biz 1 söz yerinə çoxlu söz birləşməsi ilə maraqlanırıq
### Teqlərin filtrasiyası
Yadda saxlayaq ki datasetin məqsədi sənin ən yaxşı oteli seçməyinə kömək etməsi üçün fikir və sütunlar əlavə etməkdir (özün və ya müştərin üçün otel tövsiyyəsi edəcək bot hazırlamaq kimi tapşırığın var). Özünə hansı teqlərin yekun datasetdə mənalı olub-olmayacağı barədə sual ver. Nümunə bir ssenari (əgər sənə başqa məqsəqlər üçün dataset lazımdırsa, hansı teqləri əlavə edə və ya çıxarmağın öz əlindədir):
Yadda saxlayaq ki, datasetin məqsədi sənin ən yaxşı oteli seçməyinə kömək etməsi üçün fikir və sütunlar əlavə etməkdir (özün və ya müştərin üçün otel tövsiyyəsi edəcək bot hazırlamaq kimi tapşırığın var). Özünə hansı teqlərin yekun datasetdə mənalı olub-olmayacağı barədə sual ver. Nümunə bir ssenari (əgər sənə başqa məqsəqlər üçün dataset lazımdırsa, hansı teqləri əlavə edə və ya çıxarmağın öz əlindədir):
1. Hansı növ səyahət uyğundursa, onlar qalmalıdır
2. Qonaq qrupunun tipi vacibdirsə, onlar qalmalıdır
@ -131,7 +131,7 @@ Hər teq buna bənzər bir hala çevriləcək: `Business trip, Solo traveler, Si
İndi başqa bir bir problemlə üzləşirik. Rəylərin (sətirlərin) bəzilərində 5, bəzilərində 3, digərlərində 6 sütun var. Dataset özü belə yaradılıb və bunu həll etmək çətindir. Hər bir sözün istifadə tezliyini saymaq istəyirsən, lakin onlar hər rəydə fərqli sıradadır. Sıralamanın standart olmaması otellərə daha layiqli olduğu teqləri mənsub etməkdə çətinlik yaradır.
Bunun yerinə biz sıralamanı özümüzə sərf edən vəziyyətə çevirə bilərik. Belə ki, hər teq söz birləşməsindən ibarət olsa da vergüllə ayrılır! Ən sadə yolu, müvəqqəti olaraq 6 sütun yaradıb hər birinə teq əlavə edə bilərik. Bundan sonra biz 6 sütunu böyük bir sütun içinə birləşdirə və `value_counts()` funksiyası ilə saya bilərik. Bunu icra etdikdən sonra 2428 vahid teq olduğunu görəcəksən. Kiçik nümunə:
Bunun yerinə biz sıralamanı özümüzə sərf edən vəziyyətə çevirə bilərik. Belə ki, hər teq söz birləşməsindən ibarət olsa da vergüllə ayrılır! Ən sadə yolu müvəqqəti olaraq 6 sütun yaradıb hər birinə teq əlavə edə bilərik. Bundan sonra biz 6 sütunu böyük bir sütun içinə birləşdirə və `value_counts()` funksiyası ilə saya bilərik. Bunu icra etdikdən sonra 2428 vahid teq olduğunu görəcəksən. Kiçik nümunə:
| Tag | Count |
| ------------------------------ | ------ |
@ -336,7 +336,7 @@ print(df[["Negative_Review", "Negative_Sentiment"]])
df = df.sort_values(by=["Positive_Sentiment"], ascending=True)
print(df[["Positive_Review", "Positive_Sentiment"]])
```
Bu faylı tapşırıqda istifadə etməkdən əvvəl ediləcək ən son şey bunun yadda saxlamaqdır! Sən həmçinin bütün yeni sütunları daha rahat istifadə edilə bilməsi üçün yerlərini dəyişə bilərsən (bu yalnız insanlar üçün olan kosmetik dəyişiklikdir).
Bu faylı tapşırıqda istifadə etməzdən əvvəl ediləcək ən son şey bunun yadda saxlamaqdır! Sən həmçinin bütün yeni sütunları daha rahat istifadə edilə bilməsi üçün yerlərini dəyişə bilərsən (bu yalnız insanlar üçün olan kosmetik dəyişiklikdir).
```python
# Reorder the columns (This is cosmetic, but to make it easier to explore the data later)
@ -352,19 +352,20 @@ Sən bütün kodu [analiz notbukunda](https://github.com/microsoft/ML-For-Beginn
1. Original dataset faylı **Hotel_Reviews.csv** əvvəlki dərsdə [kəşfetmə notbukunda](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb) analiz olunub
2. Hotel_Reviews.csv faylı [filtrasiya notbuku](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) ilə filtrlənib və nəticə **Hotel_Reviews_Filtered.csv** faylına yazılıb
3. Hotel_Reviews_Filtered.csv faylı [fikir analizi notbuku](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) ilə emal olunub nəticə **Hotel_Reviews_NLP.csv** faylına yazılıb
4. Hotel_Reviews_NLP.csv faylını aşağldakı NLP Məşğələsində istifadə olunacaq
3. Hotel_Reviews_Filtered.csv faylı [fikir analizi notbuku](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) ilə emal olunub və nəticə **Hotel_Reviews_NLP.csv** faylına yazılıb
4. Hotel_Reviews_NLP.csv faylını aşağldakı NLP məşğələsində istifadə olunacaq
### Nəticə
Başlayanda sənin sütunlarla datasetin var idi və onların hamısının nə doğruluğunu yoxlamaq mümkün idi, nə də istifadəsi. Sən datanı kəşf etdin, lazımsız hissələri filtrlədin, taqları faydalı formaya saldın, ortalama nəticəni hesabladın, fikirlərin analizini bəzi sütunlara yazdın və ümid edirik ki, təbii mətnləri emal etməklə bağlı maraqlı nələrsə öyrəndin.
## [Müharizə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/40/)
## Məşğələ
---
## 🚀 Məşğələ
Artıq sən bu datasetdə fikir analizini yerinə yetirdin, indi isə fikir ətrafında oxşarlıqları (modelləri) təyin etmək üçün bu kursda öyrəndiyin başqa hansı strategiyaları (klasterləşdirmə bəlkə?) tətbiq edə biləcəyini düşün.
## [Müharizə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/40/?loc=az)
## Təkrarlayın və özünüz öyrənin
[Bu öyrənmə modulunu](https://docs.microsoft.com/en-us/learn/modules/classify-user-feedback-with-the-text-analytics-api/?WT.mc_id=academic-77952-leestott) götür və mətnlərdə fikir analizi üçün istifadə olunan müxtəlif alətləri öyrən.

@ -2,10 +2,10 @@
## Təlimatlar
Sən artıq NLTK istifadə etməklə mətndən fikirləri təyin etməyi öyrəndiyini nəzərə alaraq indi başqa dataset üzərində tətbiq edək. Sən, çox güman ki, bunun üzərində bəzi data emalı edəcəksən, notbuk yaracaqsan və fikirlərindəki prosesləri sənədləşdirəcəksən. Nəyi kəşf etdiyini paylaş.
Sənin artıq NLTK istifadə etməklə mətndən fikirləri təyin etməyi öyrəndiyini nəzərə alaraq indi başqa dataset üzərində tətbiq edək. Sən, çox güman ki, bunun üzərində bəzi data emalı edəcəksən, notbuk yaracaqsan və fikirlərindəki prosesləri sənədləşdirəcəksən. Nəyi kəşf etdiyini paylaş.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ------------ | -------------- | -------------- |
| | Tamamlanmış notbuk və dataset təqdim olunub. Fikirlərin təyin olunması və sütunların məqsədi yaxşı sənədləşdirilmişdir. | Notbukda izahlar yaxşı verilməyib | Notbuk işlək və ya yararlı deyil |
| | Tamamlanmış notbuk və dataset təqdim olunub. Fikirlərin təyin olunması və sütunların məqsədi yaxşı sənədləşdirilmişdir | Notbukda izahlar yaxşı verilməyib | Notbuk işlək və ya yararlı deyil |

@ -4,15 +4,15 @@
> [Tomomi Imura](https://www.twitter.com/girlie_mac) tərəfindən çəkilmiş eskiz
Bu və sonrakı dərsdə siz MÖ aliminin repertuarının digər mövzulardan bir qədər az tanınan maraqlı və dəyərli hissəsi olan zaman seriyalarının proqnozlaşdırılması haqqında öyrənəcəksiniz. Bu proqnozlaşdırma bir növ 'kristal kürə'-ə bənzəyir: məsələn, qiymət dəyişəninin keçmiş performansına əsaslanaraq, onun gələcək potensial dəyərini təxmin edə bilərsiniz.
Bu və sonrakı dərsdə siz ML mühəndisinin repertuarının digər mövzulardan bir qədər az tanınan maraqlı və dəyərli hissəsi olan zaman seriyalarının proqnozlaşdırılması haqqında öyrənəcəksiniz. Bu proqnozlaşdırma bir növ 'kristal kürə'-yə bənzəyir: məsələn, qiymət dəyişəninin keçmiş performansına əsaslanaraq, onun gələcək potensial dəyərini təxmin edə bilərsiniz.
[![Zaman seriyalarının proqnozlaşdırılmasına giriş](https://img.youtube.com/vi/cBojo1hsHiI/0.jpg)](https://youtu.be/cBojo1hsHiI "Zaman seriyalarının proqnozlaşdırılmasına giriş")
> 🎥 Zaman seriyalarının proqnozlaşdırılması haqqında olan video üçün yuxarıdakı şəkilə klikləyin.
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/41/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/41/?loc=az)
Zaman seriyalarının proqnozlaşdırılması qiymət, inventar və təchizat zənciri problemlərinə birbaşa tətbiqi nəzərə alınmaqla, biznes üçün real dəyərə malik faydalı və maraqlı sahədir. Gələcək performansı daha yaxşı proqnozlaşdırmaq üçün daha çox məlumat əldə etmək üçün dərin öyrənmə üsullarından istifadə edilməyə başlansa da, zaman seriyalarının proqnozlaşdırılması klassik ML texnikalarına dayalı bir sahə olaraq qalır.
Zaman seriyalarının proqnozlaşdırılması qiymət, inventar və təchizat zənciri problemlərinə birbaşa tətbiqi nəzərə alınmaqla biznes üçün real dəyərə malik faydalı və maraqlı sahədir. Gələcək performansı daha yaxşı proqnozlaşdırmaq üçün daha çox məlumat əldə etmək üçün dərin öyrənmə üsullarından istifadə edilməyə başlansa da, zaman seriyalarının proqnozlaşdırılması klassik ML texnikalarına əsaslanan bir sahə olaraq qalır.
> Penn State-in faydalı zaman seriyası kurrikulumuna [burada](https://online.stat.psu.edu/stat510/lesson/1) baxa bilərsiniz.
@ -20,13 +20,13 @@ Zaman seriyalarının proqnozlaşdırılması qiymət, inventar və təchizat z
Tutaq ki, siz onların nə qədər tez-tez istifadə edildiyi və zamanla nə qədər müddətə istifadə edildiyi barədə məlumat verən bir seriya ağıllı parkomatlara sahibsiniz.
> Əgər tələb və təklif qaydalarına uyğun olaraq, sayğacın keçmiş performansına əsaslanıb onun gələcək dəyərini proqnozlaşdıra bilsəydiniz, bunanla nə edərdiniz?
> Əgər tələb və təklif qaydalarına uyğun olaraq sayğacın keçmiş performansına əsaslanıb onun gələcək dəyərini proqnozlaşdıra bilsəydiniz, bunanla nə edərdiniz?
Məqsədinizə çatmaq üçün nə vaxt hərəkət edəcəyinizi dəqiq proqnozlaşdırmaq zaman seriyalarının proqnozlaşdırılması ilə həll edilə bilən bir problemdir. Pik saatlarda dayanacaq yeri axtaran insanlardan daha çox ödəniş almaq onları sevindirməz, lakin bu, küçələri təmizləmək üçün gəlir əldə etməyin etibarlı yolu olardı!
Gəlin zaman seriyaları alqoritmlərinin bəzi növlərini araşdıraq və dəftərçəni yaratmaqla bəzi məlumatları təmizləmək və hazırlamağa başlayaq. Təhlil edəcəyiniz data GEFCom2014 proqnozlaşdırma müsabiqəsindən götürülmüşdür. Həmin data, 2012 və 2014-cü illər arasında 3 illik, saatlıq elektrik yükü və temperatur dəyərlərindən ibarətdir. Elektrik yükünün və temperaturun tarixi nümunələrini nəzərə alaraq, elektrik yükünün gələcək dəyərlərini proqnozlaşdıra bilərsiniz.
Gəlin zaman seriyaları alqoritmlərinin bəzi növlərini araşdıraq və notbuk yaratmaqla bəzi məlumatları təmizləmək və hazırlamağa başlayaq. Təhlil edəcəyiniz data GEFCom2014 proqnozlaşdırma müsabiqəsindən götürülmüşdür. Həmin data, 2012 və 2014-cü illər arasında 3 illik, saatlıq elektrik yükü və temperatur dəyərlərindən ibarətdir. Elektrik yükünün və temperaturun tarixi nümunələrini nəzərə alaraq elektrik yükünün gələcək dəyərlərini proqnozlaşdıra bilərsiniz.
Bu nümunədə siz, yalnız keçmiş yükləmə datasından istifadə edərək bir addım irəlini proqnozlaşdırmağı öyrənəcəksiniz. Başlamazdan əvvəl, ekran arxasında nələrin baş verdiyini anlamaqda fayda var.
Bu nümunədə siz yalnız keçmiş yükləmə datasından istifadə edərək bir addım irəlini proqnozlaşdırmağı öyrənəcəksiniz. Başlamazdan əvvəl ekran arxasında nələrin baş verdiyini anlamaqda fayda var.
## Bəzi təriflər
@ -34,11 +34,11 @@ Bu nümunədə siz, yalnız keçmiş yükləmə datasından istifadə edərək b
🎓 **Zaman seriyaları**
Riyaziyyatda "zaman seriyası, vaxt sırasına görə indeksləşdirilmiş(və ya siyahıya alınmış, yaxud da qrafikləşdirilmiş) data nöqtələrinin sırasıdır. Ən çox yayılmış zaman seriyası, zamanın ardıcıl bərabər məsafəli nöqtələrində götürülən ardıcıllıqdır." Zaman seriyasına misal olaraq [Dow Jones Sənaye Ortalamasının](https://wikipedia.org/wiki/Time_series) gündəlik bağlanış dəyərini göstərmək olar. Zaman seriyalarının qrafiklərindən və statistik modelləşdirməsindən istifadəyə tez-tez siqnalların işlənməsi, hava proqnozu, zəlzələnin proqnozlaşdırılması və hadisələrin baş verdiyi müddətdə məlumat nöqtələrinin zamanla tərtib oluna biləcəyi digər sahələrdə rast gəlinir.
Riyaziyyatda "zaman seriyası vaxt sırasına görə indeksləşdirilmiş(və ya siyahıya alınmış, yaxud da qrafikləşdirilmiş) data nöqtələrinin sırasıdır. Ən çox yayılmış zaman seriyası zamanın ardıcıl bərabər məsafəli nöqtələrində götürülən ardıcıllıqdır." Zaman seriyasına misal olaraq [Dow Jones Sənaye Ortalamasının](https://wikipedia.org/wiki/Time_series) gündəlik bağlanış dəyərini göstərmək olar. Zaman seriyalarının qrafiklərindən və statistik modelləşdirməsindən istifadəyə tez-tez siqnalların işlənməsi, hava proqnozu, zəlzələnin proqnozlaşdırılması və hadisələrin baş verdiyi müddətdə məlumat nöqtələrinin zamanla tərtib oluna biləcəyi digər sahələrdə rast gəlinir.
🎓 **Zaman seriyalarının təhlili**
Zaman seriyalarının təhlili, yuxarıda qeyd olunan zaman seriyası məlumatlarının təhlilidir. Zaman seriyası dataları müxtəlif formalarda ola bilər. Onlardan biri, fasilə verən hadisədən əvvəl və sonra bir zaman seriyasındakı qanunauyğunluqları aşkarlayan "kəsintili zaman seriyası"-dır. Zaman seriyası üçün lazım olan analiz növü məlumatların xarakterindən asılıdır. Məlumatların özü isə nömrələr və ya simvollar seriyası formasında ola bilər.
Zaman seriyalarının təhlili yuxarıda qeyd olunan zaman seriyası məlumatlarının təhlilidir. Zaman seriyası dataları müxtəlif formalarda ola bilər. Onlardan biri fasilə verən hadisədən əvvəl və sonra bir zaman seriyasındakı qanunauyğunluqları aşkarlayan "kəsintili (diskret) zaman seriyası"-dır. Zaman seriyası üçün lazım olan analiz növü məlumatların xarakterindən asılıdır. Məlumatların özü isə nömrələr və ya simvollar seriyası formasında ola bilər.
İcrası nəzərdə tutulan təhlildə tezlik-domen və zaman-domen, xətti və qeyri-xətti və s. daxil olmaqla müxtəlif üsullardan istifadə edilir. Bu tip dataların analiz üsulları barədə ətraflı məlumatı [buradan](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) öyrənə bilərsiniz.
@ -46,13 +46,13 @@ Zaman seriyalarının təhlili, yuxarıda qeyd olunan zaman seriyası məlumatla
Zaman seriyalarının proqnozlaşdırılması, keçmişdə toplanmış dataların yaratdığı qanunauyğunluğa əsasən gələcək dəyərləri proqnozlaşdırmaq üçün hansısa bir modeldən istifadə etməkdir. Zaman seriyası datalarını tədqiq etmək üçün reqressiya modellərindən istifadə etmək mümkün olsa da, belə məlumatlar xüsusi model tiplərindən istifadə etməklə ən yaxşı şəkildə təhlil edilir.
Zaman seriyası, datası xətti reqressiya ilə təhlil edilə bilən məlumatlardan fərqli olaraq, ardıcıl müşahidələrin siyahısıdır. Ən çox yayılmışı ARIMA-dır, açılışı "Autoregressive Integrated Moving Average" deməkdir.
Zaman seriyası datası xətti reqressiya ilə təhlil edilə bilən məlumatlardan fərqli olaraq ardıcıl müşahidələrin siyahısıdır. Ən çox yayılmışı ARIMA-dır, açılışı "Autoregressive Integrated Moving Average" deməkdir.
[ARIMA modelləri](https://online.stat.psu.edu/stat510/lesson/1/1.1) "seriyanın indiki dəyərini keçmiş dəyərlər və keçmiş proqnoz xətaları ilə əlaqələndirir." Onlar məlumatların zamanla seriyalandığı zaman domen məlumatlarını təhlil etmək üçün ən uyğun variantdırlar.
[ARIMA modelləri](https://online.stat.psu.edu/stat510/lesson/1/1.1) "seriyanın indiki dəyərini keçmiş dəyərlər və keçmiş proqnoz xətaları ilə əlaqələndirir." Onlar məlumatların zamanla seriyalandığı zaman-domen məlumatlarını təhlil etmək üçün ən uyğun variantdırlar.
> ARIMA modellərinin bir neçə növü var ki, onlar haqqında [burada](https://people.duke.edu/~rnau/411arim.htm) öyrənə bilərsiniz. Növbəti dərsdə onlar barədə öyrənəcəksiniz.
Növbəti dərsdə siz, dəyərini zaman yeniləyən bir dəyişənə fokuslanan [Univariate Time Series](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm) istifadə edərək ARIMA modeli quracaqsınız. Bu tip məlumatlara misal olaraq, Mauna Loa Rəsədxanasında aylıq karbon qazı konsentrasiyasını qeyd edən [bu verilənlər bazası](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm) ola bilər:
Növbəti dərsdə siz dəyərini zamanla yenilənən bir dəyişənə fokuslanan [Univariate Time Series](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm) istifadə edərək ARIMA modeli quracaqsınız. Bu tip məlumatlara misal olaraq Mauna Loa Rəsədxanasında aylıq karbon qazı konsentrasiyasını qeyd edən [bu verilənlər bazası](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm) ola bilər:
| CO2 | YearMonth | Year | Month |
| :----: | :-------: | :---: | :---: |
@ -73,7 +73,7 @@ Növbəti dərsdə siz, dəyərini zaman yeniləyən bir dəyişənə fokuslanan
## Nəzərə alınmalı Zaman seriyası data xarakteristikaları
Zaman seriyası məlumatlarına baxarkən onların daha yaxşı başa düşmək üçün nəzərə almalı və azaltmalı olduğunuz [müəyyən xüsusiyyətlərə](https://online.stat.psu.edu/stat510/lesson/1/1.1) malik olduğunu görə bilərsiniz. Əgər siz zaman seriyası datalarını, analiz etmək istədiyiniz potensial 'sinqal' ötürücüsü olaraq görürsünüzə, bu xüsusiyyətlər “səs-küy” kimi düşünülə bilər. Siz tez-tez müxtəlif statistik üsullardan istifadə edərək həmin xüsusiyyətlərin bəzilərini əvəz etməklə 'səs-küyü' azaltmalı olacaqsınız.
Zaman seriyası məlumatlarına baxarkən onların daha yaxşı başa düşmək üçün nəzərə almalı və azaltmalı olduğunuz [müəyyən xüsusiyyətlərə](https://online.stat.psu.edu/stat510/lesson/1/1.1) malik olduğunu görə bilərsiniz. Əgər siz zaman seriyası datalarını analiz etmək istədiyiniz potensial 'sinqal' ötürücüsü olaraq görürsünüzə, bu xüsusiyyətlər “səs-küy” kimi düşünülə bilər. Siz tez-tez müxtəlif statistik üsullardan istifadə edərək həmin xüsusiyyətlərin bəzilərini əvəz etməklə 'səs-küyü' azaltmalı olacaqsınız.
Zaman seriyaları ilə işləyə bilmək üçün bilməli olduğunuz bəzi anlayışlar bunlardır:
@ -91,7 +91,7 @@ Kənar göstəricilər standart məlumat fərqindən çox uzaqdır.
🎓 **Uzun müddətli dövr**
Mövsümilikdən asılı olmayaraq, məlumatlar bir ildən çox davam edən iqtisadi tənəzzül kimi uzunmüddətli dövrü göstərə bilər.
Mövsümilikdən asılı olmayaraq məlumatlar bir ildən çox davam edən iqtisadi tənəzzül kimi uzunmüddətli dövrü göstərə bilər.
🎓 **Daimi fərq**
@ -101,7 +101,7 @@ Zaman keçdikcə bəzi məlumatlar gecə və gündüz enerji istifadəsi kimi da
Verilənlər əlavə təhlilə ehtiyac duyan qəfil dəyişikliklər göstərə bilər. Məsələn, COVID səbəbiylə müəssisələrin qəfil bağlanması məlumatların dəyişməsinə səbəb oldu.
✅ Burada bir neçə il ərzində, günlük oyundaxili satışları göstərən bir [nümunə zaman seriyası süjeti](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python) verilmişdir. Göstərilən datada yuxarıda sadalanan xüsusiyyətlərdən hansıları sezə bilərsiniz?
✅ Burada bir neçə il ərzində, günlük oyundaxili satışları göstərən bir [nümunə zaman seriyası qrafiki](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python) verilmişdir. Göstərilən datada yuxarıda sadalanan xüsusiyyətlərdən hansılarını sezə bilərsiniz?
![Oyundaxili satış xərcləri](../images/currency.png)
@ -170,11 +170,11 @@ Növbəti dərsdə bəzi proqnozlar yaratmaq üçün ARIMA modeli yaradacaqsın
---
## 🚀Çağırış
## 🚀 Məşğələ
Zaman seriyalarının proqnozlaşdırılmasından faydalanacağını düşünə biləcəyiniz bütün sənaye və araşdırma sahələrinin siyahısını tərtib edin. Bu texnikaların incəsənətdə tətbiqi barədə düşünə bilərsinizmi? Ekonometrikada? Ekologiya? Pərakəndə satış? Sənaye? Maliyyə? Başqa harada?
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/42/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/42/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -2,10 +2,10 @@
## Təlimatlar
Bu xüsusi modelləşdirməni tələb edən data tiplərinə baxaraq Zaman Seriyasının Proqnozlaşdırılması haqqında öyrənməyə başlamısınız. Enerji ilə bağlı bəzi dataları artıq vizuallaşdırmısınız. İndi isə Zaman Seriyasının Proqnozlaşdırılmasından faydalana biləcək bəzi digər datalar baxın. Üç nümunə tapın ([Kaggle](https://kaggle.com) və [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott)-i yoxlayın) və onları vizuallaşdırmaq üçün dəftərçə yaradın. Onların hər hansı xüsusi xüsusiyyətlərini (mövsümilik, qəfil dəyişikliklər və ya digər tendensiyalar) qeyd dəftərinizdə qeyd edin.
Bu xüsusi modelləşdirməni tələb edən data tiplərinə baxaraq Zaman Seriyasının Proqnozlaşdırılması haqqında öyrənməyə başlamısınız. Enerji ilə bağlı bəzi dataları artıq vizuallaşdırmısınız. İndi isə Zaman Seriyasının Proqnozlaşdırılmasından faydalana biləcək bəzi digər datalar baxın. Üç nümunə tapın ([Kaggle](https://kaggle.com) və [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott)-i yoxlayın) və onları vizuallaşdırmaq üçün notbuk yaradın. Onların hər hansı xüsusi xüsusiyyətlərini (mövsümilik, qəfil dəyişikliklər və ya digər tendensiyalar) qeyd dəftərinizdə qeyd edin.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ------------------------------------------------------- | ------------------------------------------------- | -------------------------------- |
| | Üç data setinin qrafiki çəkilmiş və dəftərçədə izah edilmişdir | Üç data setinin qrafiki çəkilmiş və dəftərçədə izah edilmişdir | Dəftərçədə çox az data setin qrafiki çəkilmiş və ya izah edilmiş, yaxud da təqdim olunan datalar kifayət qədər deyil |
| -------- | -------- | ------- | ------------------------ |
| | Üç datasetin qrafiki çəkilmiş və notbukda izah edilmişdir | İki datasetin qrafiki çəkilmiş və notbukda izah edilmişdir | Notbukda çox az datasetin qrafiki çəkilmiş və ya izah edilmiş, yaxud da təqdim olunan datalar kifayət qədər deyil |

@ -1,22 +1,22 @@
# ARIMA ilə zaman seriyalarının proqnozlaşdırılması
Əvvəlki dərsdə siz zaman sıralarının proqnozlaşdırılması haqqında öyrəndiniz. Əlavə olaraq isə, zamanla elektrik yükünün dalğalanmalarını göstərən verilənlər toplusunu yüklədiniz.
Əvvəlki dərsdə siz zaman seriyalarının proqnozlaşdırılması haqqında öyrəndiniz. Əlavə olaraq isə zamanla elektrik yükünün dalğalanmalarını göstərən verilənlər toplusunu yüklədiniz.
[![ARIMA-a giriş](https://img.youtube.com/vi/IUSk-YDau10/0.jpg)](https://youtu.be/IUSk-YDau10 "ARIMA-a giriş")
> 🎥 Video üçün yuxarıdakı şəkilə klikləyin: ARIMA modellərinə qısa giriş. Nümunə R dilində olsa da, anlayışlar universaldır.
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/43/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/43/?loc=az)
## Giriş
Bu dərsdə siz [ARIMA: *A*uto*R*egressive *I*inteqrasiya edilmiş *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average) ilə modellər qurmağın xüsusi üsulunu kəşf edəcəksiniz. ARIMA modelləri [qeyri-stasionarlığı](https://wikipedia.org/wiki/Stationary_process) göstərən datalara uyğunlaşdırılmışdır.
Bu dərsdə siz [ARIMA: *A*uto*R*egressive *I*ntegrated *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average) ilə modellər qurmağın xüsusi üsulunu kəşf edəcəksiniz. ARIMA modelləri [qeyri-stasionarlığı](https://wikipedia.org/wiki/Stationary_process) göstərən datalara uyğunlaşdırılmışdır.
## Ümumi anlayışlar
ARIMA ilə işləyə bilmək üçün bilməli olduğunuz bəzi anlayışlar var:
- 🎓 **Stasionarlıq**. Statistik kontekstdən götürsək, stasionarlıq, zaman dəyişsə də paylanması dəyişməyən datalara aid bir anlayışdır. Beləliklə, qeyri-stasionar data, təhlil edilmək üçün transformasiya edilməli olan tendensiyalara görə dalğalanmaları göstərir. Məsələn, mövsümilik, məlumatlarda dalğalanmalar yarada bilər və “mövsümi fərqləndirmə” prosesi ilə aradan qaldırıla bilər.
- 🎓 **Stasionarlıq**. Statistik kontekstdən götürsək, stasionarlıq zaman dəyişsə də paylanması dəyişməyən datalara aid bir anlayışdır. Beləliklə, qeyri-stasionar data təhlil edilmək üçün transformasiya edilməli olan tendensiyalara görə dalğalanmaları göstərir. Məsələn, mövsümilik məlumatlarda dalğalanmalar yarada bilər və “mövsümi fərqləndirmə” prosesi ilə aradan qaldırıla bilər.
- 🎓 **[Fərqləndirmə](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average#Differencing)**. Fərqləndirmə, yenə də statistik kontekstdən götürsək, qeyri-stasionar məlumatların qeyri-sabit tendensiyasını aradan qaldıraraq stasionar hala gətirmək üçün çevrilməsi prosesinə deyilir. "Fərqləndirmə zaman seriyasının səviyyəsindəki dəyişiklikləri, trend və mövsümiliyi aradan qaldırır və nəticədə zaman seriyasının orta dəyərini sabitləşdirir." [Shixiong və digərlərinin müəllifi olduğu məqalə](https://arxiv.org/abs/1904.07632)
@ -24,19 +24,19 @@ ARIMA ilə işləyə bilmək üçün bilməli olduğunuz bəzi anlayışlar var:
ARIMA-nın vaxt seriyalarını modelləşdirməyə və ona qarşı proqnozlar verməyə necə kömək etdiyini araşdıraq.
- **AR - AvtoReqressiv**. Avtoreqressiv modellər, adından da göründüyü kimi, məlumatlarınızdakı əvvəlki dəyərləri təhlil etmək və onlar haqqında fərziyyələr irəli sürmək üçün zamanda "geriyə" baxır. Həmin əvvəlki dəyərlər “geriləmiş” adlanır. Məsələn, qələmlərin aylıq satışını göstərən məlumatlar. Hər ayın ümumi satışları datasetdə "inkişaf edən dəyişən" hesab olunacaq. Bu model "inkişaf edən maraq dəyişəninin öz geridə qalmış (yəni əvvəlki) dəyərlərinə dönməsi" kimi qurulmuşdur. [wikipedia](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)x
- **AR - AvtoReqressiv**. Avtoreqressiv modellər, adından da göründüyü kimi, məlumatlarınızdakı əvvəlki dəyərləri təhlil etmək və onlar haqqında fərziyyələr irəli sürmək üçün zamanda "geriyə" baxır. Həmin əvvəlki dəyərlər “geriləmiş” adlanır. Məsələn, qələmlərin aylıq satışını göstərən məlumatlar. Hər ayın ümumi satışları datasetdə "inkişaf edən dəyişən" hesab olunacaq. Bu model "inkişaf edən maraq dəyişəninin öz geridə qalmış (yəni əvvəlki) dəyərlərinə dönməsi" kimi qurulmuşdur. [wikipedia](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)
- **I - İnteqrasiya**. Oxşar "ARMA" modellərindən fərqli olaraq, ARIMA-dakı "I" onun *[inteqrasiya edilmiş](https://wikipedia.org/wiki/Order_of_integration)* olmasına işarə edir. Qeyri-stasionarlığı aradan qaldırmaq üçün fərqli addımlar tətbiq edildikdə məlumatlar “inteqrasiya olunur”.
- **MA - Moving Average(Dəyişkən Orta Dəyər)**. Bu modelin [dəyişkən orta dəyər](https://wikipedia.org/wiki/Moving-average_model) aspekti geriləmiş dəyərlərin cari və keçmiş qiymətlərini müşahidə etməklə müəyyən edilən çıxış dəyişəninə aiddir.
Qeyd: ARIMA modeli zaman seriyası məlumatlarının xüsusi formasına mümkün qədər yaxından uyğunlaşdırmaq üçün istifadə olunur.
Qeyd: ARIMA modeli zaman seriyası datalarının xüsusi formasına mümkün qədər yaxından uyğunlaşdırmaq üçün istifadə olunur.
## Tapşırıq - ARIMA modelini qurun
Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) qovluğunu açın və [_notebook.ipynb_] faylını tapın (https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb).
Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) qovluğunu açın və [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb) faylını tapın .
1. ARIMA modellərində sizə lazım olacaq `statsmodels` Python kitabxanasını yükləmək üçün dəftərçəni işə salın.
1. ARIMA modellərində sizə lazım olacaq `statsmodels` Python kitabxanasını yükləmək üçün notbuku işə salın.
1. Lazımi kitabxanaları yükləyin
@ -81,9 +81,9 @@ Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/
İndi, modeli quraq!
### Öyrətmə və test data setlərini yaradın
### Öyrətmə və test datasetlərini yaradın
İndi datalarımız yükləndi, beləliklə siz onları öyrətmə və test dəstlərinə ayıra bilərsiniz. Modelinizi öyrətmə dəstində öyrədəcəksiniz. Həmişə olduğu kimi, modelin öyrədilməsini bitirdikdən sonra siz test setindən istifadə edərək onun düzgünlüyünü qiymətləndirəcəksiniz. Modelin gələcək zaman dilimlərindən məlumat əldə etməməsini təmin etmək üçün test setinin, öyrətmə setindən sonrakı dövrü əhatə etdiyinə əmin olmalısınız.
İndi datalarımız yükləndi, beləliklə siz onları öyrətmə və test setlərinə ayıra bilərsiniz. Modelinizi öyrətmə dəstində öyrədəcəksiniz. Həmişə olduğu kimi modelin öyrədilməsini bitirdikdən sonra siz test setindən istifadə edərək onun düzgünlüyünü qiymətləndirəcəksiniz. Modelin gələcək zaman dilimlərindən məlumat əldə etməməsini təmin etmək üçün test setinin öyrətmə setindən sonrakı dövrü əhatə etdiyinə əmin olmalısınız.
1. Öyrətmə setinə 2014-cü il sentyabrın 1-dən oktyabrın 31-dək iki aylıq müddət ayırın. Data setinə 2014-cü il noyabrın 1-dən dekabrın 31-dək olan iki aylıq dövr daxildir:
@ -107,15 +107,15 @@ Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/
![öyrətmə və test dataları](../images/train-test.png)
Buna görə də, öyrətmə dataları üçün nisbətən kiçik bir zaman pəncərəsindən istifadə etmək bizə kifayət edəcək.
Buna görə də öyrətmə dataları üçün nisbətən kiçik bir zaman pəncərəsindən istifadə etmək bizə kifayət edəcək.
> Qeyd: ARIMA modelinə uyğunlaşdırmaq üçün istifadə etdiyimiz funksiya, uyğunlaşdırma zamanı nümunədaxili yoxlamadan istifadə etdiyi üçün, təsdiqləmə məlumatlarını ortadan qaldıracağıq.
> Qeyd: ARIMA modelinə uyğunlaşdırmaq üçün istifadə etdiyimiz funksiya uyğunlaşdırma zamanı nümunədaxili yoxlamadan istifadə etdiyi üçün təsdiqləmə məlumatlarını ortadan qaldıracağıq.
### Dataları öyrədilmək üçün hazırlayın
İndi siz datalarınızı filterləyərək və miqyasını dəyişdirərək onları öyrədilmək üçün hazırlamalısınız. Yalnız sizə lazım olan vaxt dövrləri və sütunları daxil etmək üçün data dəstinizi filterləyin və məlumatların 0,1 intervalında proqnozlaşdırılmasını təmin etmək üçün miqyaslayın.
İndi siz datalarınızı filterləyərək və miqyasını dəyişdirərək onları öyrədilmək üçün hazırlamalısınız. Yalnız sizə lazım olan vaxt dövrləri və sütunları daxil etmək üçün data dəstinizi filtrləyin və məlumatların 0,1 intervalında proqnozlaşdırılmasını təmin etmək üçün miqyaslayın.
1. Data setini hər birində yalnız yuxarıda qeyd olunan vaxt dövrlərini və yalnız lazım olan "yük" sütununu özündə saxlayacaq şəkildə filterləyin:
1. Dataseti hər birində yalnız yuxarıda qeyd olunan vaxt dövrlərini və yalnız lazım olan "yük" sütununu özündə saxlayacaq şəkildə filtrləyin:
```python
train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
@ -156,7 +156,7 @@ Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/
> Miqyaslanmış data
1. Artıq miqyaslanmış datanı kalibrasiya etdiyimiz üçün, test dalarını miqyaslaya bilərik:
1. Artıq miqyaslanmış datanı kalibrasiya etdiyimiz üçün test dalarını miqyaslaya bilərik:
```python
test['load'] = scaler.transform(test)
@ -165,7 +165,7 @@ Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/
### ARIMA-ın icrası
ARIMA-nı icra etməyin vaxtı gəldi çatdı! İndi siz bir az əvvəl yüklədiyiniz `statsmodels` kitabxanasından istifadə edəcəksiniz.
ARIMA-nı icra etməyin vaxtı gəlib çatdı! İndi siz bir az əvvəl yüklədiyiniz `statsmodels` kitabxanasından istifadə edəcəksiniz.
İzləməli olduğumuz bir neçə addım var
@ -181,7 +181,7 @@ ARIMA-nı icra etməyin vaxtı gəldi çatdı! İndi siz bir az əvvəl yükləd
> Qeyd: Əgər məlumatınızın mövsümi aspekti varsa - indi istifadə etdiyimiz mövsümi ARIMA modeli(SARIMA) bunu edir. Bu halda siz başqa parametrlər dəstindən istifadə etməlisiniz: `p`, `d` və `q` ilə eyni assosiasiyaları təsvir edən, lakin modelin mövsümi komponentlərə uyğun gələn `P`, `D` və `Q` dəsti.
1. Üstün bildiyiniz üfüq dəyərini təyin etməklə başlayın. Gəlin 3 saatı üfüq dəyəri olaraq yoxlayaq:
1. Üstün bildiyiniz üfüq dəyərini təyin etməklə başlayın. Gəlin saat 3-ü üfüq dəyəri olaraq yoxlayaq:
```python
# Specify the number of steps to forecast ahead
@ -209,11 +209,11 @@ ARIMA-nı icra etməyin vaxtı gəldi çatdı! İndi siz bir az əvvəl yükləd
### Modelinizi qiymətləndirin
Modelinizi qiymətləndirmək üçün siz `irəli gəzinti` deyilən yoxlamanı həyata keçirə bilərsiniz. Praktikada, zaman seriyası modelləri, hər təzə məlumat əldə edildikdə, yenidən öyrədilir. Bu, modelə hər zaman addımında ən yaxşı proqnozu verməyə imkan verir.
Modelinizi qiymətləndirmək üçün siz `irəli gəzinti` deyilən yoxlamanı həyata keçirə bilərsiniz. Praktikada zaman seriyası modelləri hər təzə məlumat əldə edildikdə yenidən öyrədilir. Bu, modelə hər zaman addımında ən yaxşı proqnozu verməyə imkan verir.
Həmin texnikadan istifadə edərək zaman seriyasının əvvəlindən başlayaraq, öyrətmə data setində modeli öyrədin. Sonra növbəti addım üçün proqnoz verin. Proqnoz bilinən dəyərlə qiymətləndirilir. Daha sonra öyrətmə seti məlum dəyəri daxil etmək üçün genişləndirilir və proses təkrarlanır.
Həmin texnikadan istifadə edərək zaman seriyasının əvvəlindən başlayaraq öyrətmə datasetində modeli öyrədin. Sonra növbəti addım üçün proqnoz verin. Proqnoz bilinən dəyərlə qiymətləndirilir. Daha sonra öyrətmə seti məlum dəyəri daxil etmək üçün genişləndirilir və proses təkrarlanır.
> Qeyd: Daha səmərəli öyrədilmə üçün siz öyrətmə setinin pəncərə ölçüsünü sabit saxlamalısınız ki, hər dəfə təlim dəstinə yeni müşahidə əlavə etdikdə, müşahidəni setin əvvəlindən siləsiniz.
> Qeyd: Daha səmərəli öyrədilmə üçün siz öyrətmə setinin pəncərə ölçüsünü sabit saxlamalısınız ki, hər dəfə təlim setinə yeni müşahidə əlavə etdikdə müşahidəni setin əvvəlindən siləsiniz.
Bu proses modelin praktikada necə işləyəcəyinə dair daha etibarlı təxmin verir. Bununla belə, bu qədər model yaratmağın hesablama xərcləri də var. Data kiçikdirsə və ya model sadədirsə, bu məqbuldur, lakin daha böyük miqyaslarda bu problemə səbəb ola bilər.
@ -241,7 +241,7 @@ Bu proses modelin praktikada necə işləyəcəyinə dair daha etibarlı təxmin
Məlumatlar üfüq nöqtəsinə uyğun olaraq üfüqi olaraq sürüşdürülür.
1. Test datasının uzunluğunun döngü ölçüsündə, sürüşən pəncərə yanaşmasından istifadə edərək test datalarınızla bağlı proqnozlar verin:
1. Test datasının uzunluğunun döngü ölçüsündə sürüşən pəncərə yanaşmasından istifadə edərək test datalarınızla bağlı proqnozlar verin:
```python
%%time
@ -315,7 +315,7 @@ Bütün proqnozlar üzərində ortalama mütləq faiz xətasını (MAPE) tapmaql
>
> ![MAPE](../images/mape.png)
>
> [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) yuxarıdakı düsturla tapılmış proqnoz dəqiqliyini nisbət formasında göstərmək üçün istifadə olunur. Faktiki<sub>t</sub> ilə proqnozlaşdırılan<sub>t</sub> arasındakı fərq faktiki<sub>t</sub>-ə bölünür. "Bu hesablamada mütləq dəyər hər bir proqnozlaşdırılan vaxt üçün cəmlənir və uyğunlaşdırılmış n nöqtələrinin sayına bölünür." [wikipedia](https://wikipedia.org/wiki/Mean_absolute_percentage_error)
> [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) yuxarıdakı düsturla tapılmış proqnoz dəqiqliyini nisbət formasında göstərmək üçün istifadə olunur. Actual<sub>t</sub>(cari) ilə predicted<sub>t</sub>(proqnozlaşdırılan) arasındakı fərq actual<sub>t</sub>-ə bölünür. "Bu hesablamada mütləq dəyər hər bir proqnozlaşdırılan vaxt üçün cəmlənir və uyğunlaşdırılmış n nöqtələrinin sayına bölünür." [wikipedia](https://wikipedia.org/wiki/Mean_absolute_percentage_error)
1. Tənliyi kodla ifadə edək:
@ -381,13 +381,13 @@ Bütün proqnozlar üzərində ortalama mütləq faiz xətasını (MAPE) tapmaql
## 🚀 Məşğələ
Zaman Seriyası Modelinin düzgünlüyünü yoxlamaq yollarını araşdırın. Bu dərsdə MAPE-ə toxunacağıq, amma istifadə edə biləcəyiniz başqa üsullar varmı? Onları araşdırın və şərh edin. Yardımçı sənədi [burada] tapa bilərsiniz(https://otexts.com/fpp2/accuracy.html)
Zaman Seriyası Modelinin düzgünlüyünü yoxlamaq yollarını araşdırın. Bu dərsdə MAPE-ə toxunduq, amma istifadə edə biləcəyiniz başqa üsullar varmı? Onları araşdırın və şərh edin. Yardımçı sənədi [burada](https://otexts.com/fpp2/accuracy.html) tapa bilərsiniz.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/44/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/44/?loc=az)
## Təkrarlayın və özünüz öyrənin
Bu dərs yalnız ARIMA ilə Zaman Seriyasının Proqnozlaşdırılmasının əsaslarına toxunur. Time Series modellərini qurmağın digər yollarını öyrənmək və bilikləriniz dərinləşdirmək üçün [bu reponu](https://microsoft.github.io/forecasting/) və onun müxtəlif model növlərini araşdırmağa vaxtınızı ayırın.
Bu dərs yalnız ARIMA ilə Zaman Seriyasının Proqnozlaşdırılmasının əsaslarına toxunur. Zaman seriyaları modellərini qurmağın digər yollarını öyrənmək və bilikləriniz dərinləşdirmək üçün [bu reponu](https://microsoft.github.io/forecasting/) və onun müxtəlif model növlərini araşdırmağa vaxtınızı ayırın.
## Tapşırıq

@ -2,10 +2,10 @@
## Təlimatlar
Artıq ARIMA modelini qurduğunuza görə, yeni data ilə modelin yenisini yaradın.([Duke-un datasetlərindən](http://www2.stat.duke.edu/~mw/ts_data_sets.html) birini sınayın). Dəftərçədəki işinizə şərhlər əlavə edin, məlumatları və modelinizi vizuallaşdırın və MAPE-dən istifadə edərək onun düzgünlüyünü yoxlayın.
Artıq ARIMA modelini qurduğunuza görə yeni data ilə modelin yenisini yaradın.([Duke-un datasetlərindən](http://www2.stat.duke.edu/~mw/ts_data_sets.html) birini sınayın). Notbukdakı işinizə şərhlər əlavə edin, məlumatları və modelinizi vizuallaşdırın və MAPE-dən istifadə edərək onun düzgünlüyünü yoxlayın.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ------------------------------------------------------- | ------------------------------------------------- | -------------------------------- |
| | Dəftərçə qurulmuş, sınaqdan keçirilmiş və vizuallaşdırma və dəqiqliyi göstərilməklə izah edilmiş yeni ARIMA modeli ilə təqdim edilib. | Təqdim olunan dəftərçədə şərhlər yoxdur və ya problemlər mövcuddur. | Yarımçıq dəftərçə təqdim edilib. |
| -------- | -------- | ------- | ------------------------ |
| | Notbuk qurulmuş, sınaqdan keçirilmiş, vizuallaşdırma və dəqiqliyi göstərilməklə izah edilmiş yeni ARIMA modeli ilə təqdim edilib. | Təqdim olunan notbukda şərhlər yoxdur və ya problemlər mövcuddur. | Yarımçıq notbuk təqdim edilib. |

@ -1,8 +1,8 @@
# Dəstək vektor reqressoru ilə zaman seriyalarının proqnozlaşdırılması
Əvvəlki dərsdə ARIMA modeli istifadə etməklə necə zaman seriyalarını proqnozlaşdıra biləcəyini öyrəndin. İndi isə Dəstək vektor reqressor modeli ilə davalı datanın gələcəyini təxmin etməyə baxacaqsan.
Əvvəlki dərsdə ARIMA modeli istifadə etməklə necə zaman seriyalarını proqnozlaşdıra biləcəyini öyrəndin. İndi isə Dəstək vektor reqressor modeli ilə davamlı datanın gələcəyini təxmin etməyə baxacaqsan.
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/51/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/51/?loc=az)
## Giriş
@ -14,13 +14,13 @@ SVR-ın zaman seriyaları proqnozlarında vacibliyini başa düşməzdən əvvə
- **Reqressiya:** Verilmiş dəyərlər toplusundan davamlı dəyərlərin proqnozlaşdırılması üçün nəzarətli öyrənmə texnikasıdır. Burda əsas məqsəd maksimum sayda data nöqtələrinin uyğunluq əyrisinə (və ya xəttinə) yaxın olmasıdır. Daha ətraflı məlumat üçün [bura klikləyin](https://en.wikipedia.org/wiki/Regression_analysis).
- **Dəstək Vektor Maşını (SVM):** Bu qruplaşdırma, reqressiya və uyğunsuzluqların təyin olunması üçün istifadə olunan nəzarətli maşın öyrənmə modellərindən biridir. Bu model funksiya fəzasında hiperplandır, hansı ki, qruplaşdırma tətbiqində sərhəd kimi və reqressiyada isə ən uyğun xətt kimi rol oynayır. SVM-də Kernel funksiyası əsasən dataseti çöx ölçülü fəzaya çevirmək üçün istifadə olunur, beləliklə onları bölmək daha asan olur. SVM-lər baərdə daha ətralı məlumat üçün bura [bura klikləyin](https://en.wikipedia.org/wiki/Support-vector_machine).
- **Dəstək Vektor Maşını (SVM):** Bu qruplaşdırma, reqressiya və uyğunsuzluqların təyin olunması üçün istifadə olunan nəzarətli maşın öyrənmə modellərindən biridir. Bu model funksiya fəzasında hiperplandır, hansı ki, qruplaşdırma tətbiqində sərhəd kimi? reqressiyada isə ən uyğun xətt kimi rol oynayır. SVM-də Kernel funksiyası əsasən dataseti çox ölçülü fəzaya çevirmək üçün istifadə olunur, beləliklə onları bölmək daha asan olur. SVM-lər barədə daha ətralı məlumat üçün bura [bura klikləyin](https://en.wikipedia.org/wiki/Support-vector_machine).
- **Dəstək Vektor Reqressoru (SVR):** Maksimum sayda data nöqtəsinin ən uyğun gələn xətti (SVM halında hiperplan) tapmaq üçün istifadə olunan SVM tiplərindən biridir.
### Nə üçün SVR? [^1]
Son dərsdə zaman seriya datalarının proqnozlaşdırılması üçün tətbiq olunan uğurlu statistik xətti üsul ARIMA barədə öyrəndin. Lakin, bir çox hallarda zaman seriya dataları *qeyri-xətti* olurlar və onları xətti modellərlə uyğunlaşdırmaq olmur Bu hallarda SVM-in qeyri-xətti dataların reqressiya tapşırıqlarda bacarıqlarını nəzərə alaraq SVR-ı zaman seriyası proqnozlaşdırılmasında da uğurla istifadə etmək olar.
Son dərsdə zaman seriya datalarının proqnozlaşdırılması üçün tətbiq olunan uğurlu statistik xətti üsul ARIMA barədə öyrəndin. Lakin bir çox hallarda zaman seriya dataları *qeyri-xətti* olurlar və onları xətti modellərlə uyğunlaşdırmaq olmur Bu hallarda SVM-in qeyri-xətti dataların reqressiya tapşırıqlarda bacarıqlarını nəzərə alaraq SVR-i zaman seriyası proqnozlaşdırılmasında da uğurla istifadə etmək olar.
## Tapşırıq - SVR modeli qur
@ -49,7 +49,7 @@ Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/
from common.utils import load_data, mape
```
2. `/data/energy.csv` faylından dataları Pandas datablokuna yığın və nəticəyə baxın: [^2]
2. `/data/energy.csv` faylından dataları Pandas datafreyminə yığın və nəticəyə baxın: [^2]
```python
energy = load_data('../../data')[['load']]
@ -64,15 +64,15 @@ Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/
plt.show()
```
![full data](../images/full-data.png)
![bütün data](../images/full-data.png)
İndi isə SVR modelini quraq.
### Öyrətmə və test datasetlərini yaradın
İndi data yüklənib və sən onu öyrətmə və test qruplarına ayıra bilərsən. Sonra sənin datanı SVR üçün lazım olan zaman attımları ilə ayrılmış datasetə çevirməyin lazım olacaq. Modelini öyrətmə seti ilə öyrədəcəksən. Model öyrənməsi bitdikdən sonra onun dəqiqliyini əvvəlcə öyrənmə və test seti ilə, sonra isə bütün dataset ilə yoxlayıb ümumi performansını ölçəcəksən. Sən əmin olmalısan ki, test setin öyrənmə setinin əhatə etdiyi zaman periodundan gələcəyi də əhatə edir və modelin gələcək zamandan informasiya almır [^2] (bu vəziyyətə *Overfitting* deyilir).
İndi data yüklənib və sən onu öyrətmə və test setlərinə ayıra bilərsən. Sonra sənin datanı SVR üçün lazım olan zaman addımları ilə ayrılmış datasetə çevirməyin lazım olacaq. Modelini öyrətmə seti ilə öyrədəcəksən. Model öyrənməsi bitdikdən sonra onun dəqiqliyini əvvəlcə öyrənmə və test seti ilə, sonra isə bütün dataset ilə yoxlayıb ümumi performansını ölçəcəksən. Sən əmin olmalısan ki, test setin öyrənmə setin əhatə etdiyi zaman periodundan sonrakı gələcəyi də əhatə edir və modelin gələcək zamandan informasiya almır [^2] (bu vəziyyətə *Overfitting* deyilir).
1. 2014-cü il sentabrın 1-dən oktyabrın 31-ə kimi 2 aylıq periodu öyrənmə seti kimi ayır. Test setin isə növbəti iki ayı, noyabrın 1-dən dekabrın 31-ə kimi olan dataları əhatə edəcək: [^2]
1. 2014-cü il sentabrın 1-dən oktyabrın 31-ə kimi 2 aylıq periodu öyrənmə seti kimi ayır. Test seti isə növbəti iki ayı, noyabrın 1-dən dekabrın 31-ə kimi olan dataları əhatə edəcək: [^2]
```python
train_start_dt = '2014-11-01 00:00:00'
@ -90,15 +90,13 @@ Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/
plt.show()
```
![training and testing data](../images/train-test.png)
![öyrətmə and test setləri](../images/train-test.png)
### Öyrətmə üçün data hazırla
İnsi sənin datanı filtrasiya və miqyasını dəyişmə əməliyyatları tətbiq etməklə öyrətmə üçün data hazırlamağın lazımdır. Dataseti filtrasiya edərək yalnız lazım olan zaman periodları və sütunlarını saxla və datanın 0 ilə 1 arasında yerləşdiyinə əmin olacaq şəkildə miqyasını dəyiş.
İndi sənin datanı filtrasiya və miqyasını dəyişmə əməliyyatları tətbiq etməklə öyrətmə üçün hazırlamağın lazımdır. Dataseti filtrasiya edərək yalnız lazım olan zaman periodları və sütunlarını saxla və datanın 0 ilə 1 arasında yerləşdiyinə əmin olacaq şəkildə miqyasını dəyiş.
1. Verilan dataseti əvvəl nəzərdə tutulan zaman periodlarına əsasən filtr et və lazım olan 'load' və tarix sütunlarını saxla: [^2]
1. Verilən dataseti əvvəl nəzərdə tutulan zaman periodlarına əsasən filtr et və lazım olan 'load' və tarix sütunlarını saxla: [^2]
```python
train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]
@ -120,7 +118,7 @@ Bu dərsin [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/
train['load'] = scaler.fit_transform(train)
```
4. İndi isə test datasetini miqyasını dəyiş: [^2]
4. İndi isə test datasetinin miqyasını dəyiş: [^2]
```python
test['load'] = scaler.transform(test)
@ -220,7 +218,7 @@ Sən SVR modeli yaratdın! Bizə onun dəqiqliyini ölçmək lazımdır.
### Modelin dəqiqliyini ölç [^1]
Yoxlama üçün biz birinci olaraq datanı əvvəlki miqyasına geri qaytarmalıyıq. SOnra performansı yoxlamaq üçün biz əsl və proqnozlaşdırılan zaman seriyalarının qrafikini çəkəcəyik və MAPE nəticələrini konsola yazacağıq.
Yoxlama üçün biz birinci olaraq datanı əvvəlki miqyasına geri qaytarmalıyıq. Sonra, performansı yoxlamaq üçün biz əsl və proqnozlaşdırılan zaman seriyalarının qrafikini çəkəcəyik və MAPE nəticələrini konsola yazacağıq.
Proqnozlaşdırılmış və orijinal datanın miqyasını dəyiş:
@ -240,9 +238,9 @@ y_test = scaler.inverse_transform(y_test)
print(len(y_train), len(y_test))
```
#### Modelin performansını öyrətmə və yoxlama datası ilə yoxla [^1]
#### Modelin performansını öyrətmə və test datası ilə yoxla [^1]
Biz datasetdən zaman məlumatlarını qrafikin x xəttində göstərmək üçün götürmüşük. Nəzərə al ki biz birinci ``timesteps-1`` dəyərlərini birinci çıxış dəyərlərini hesablamağa giriş kimi istifadə etmişik, yəni bundan sonrakı zaman dəyərləri əsas çıxış dəyərləri üçün istifadə olunacaq.
Biz datasetdən zaman məlumatlarını qrafikin x xəttində göstərmək üçün götürmüşük. Nəzərə al ki, biz birinci `timesteps-1` dəyərlərini birinci çıxış dəyərlərini hesablamağa giriş kimi istifadə etmişik, yəni bundan sonrakı zaman dəyərləri əsas çıxış dəyərləri üçün istifadə olunacaq.
```python
train_timestamps = energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)].index[timesteps-1:]
@ -357,18 +355,17 @@ MAPE: 2.0572089029888656 %
```
🏆 Çox gözəl qrafiklər modelin yaxşı dəqiqlikdə olduğunu göstərir. Əla!
🏆 Bu gözəl qrafiklər modelin yaxşı dəqiqlikdə olduğunu göstərir. Əla!
---
## 🚀 Məşğələ
- Model yaradarkən və data üzərində yoxlayarkən hiperparameterləri (gamma, C, epsilon) dəyişməyi yoxla və hansı dəyərlər çoxluğunun yoxlama datası ilə daha yaxşı nəticə əldə etdiyini görəsən. Bu hiperparametrlər barədə daha çox öyrənmək üçün [bu sənədə](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel) baxa bilərsən.
- Model üçün fərqli kernel funksiyaları yoxla və onların dataset üzərində performanslarını analiz et. [Bu sənəd]((https://scikit-learn.org/stable/modules/svm.html#kernel-functions)) çox faydalı ola bilər.
- Model yaradarkən və data üzərində yoxlayarkən hiperparameterləri (gamma, C, epsilon) dəyişməyi yoxla və hansı dəyərlər çoxluğunun yoxlama datası ilə daha yaxşı nəticə əldə etdiyini gör. Bu hiperparametrlər barədə daha çox öyrənmək üçün [bu sənədə](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel) baxa bilərsən.
- Model üçün fərqli kernel funksiyalarını yoxla və onların dataset üzərində performanslarını analiz et. [Bu sənəd]((https://scikit-learn.org/stable/modules/svm.html#kernel-functions)) çox faydalı ola bilər.
- `timesteps` üçün fərqli dəyərlər yoxla və modelin proqnozlarına diqqət et.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/52/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/52/?loc=az)
## Təkrarlayın və özünüz öyrənin
@ -378,9 +375,7 @@ Bu dərs zaman seriyalarında proqnozlaşdırma üçün SVR modelinin tətbiqin
[Yeni SVR modeli](assignment.az.md)
## İstinadlar
[^1]: Bu bölmənin mətni, kodu və nəticələri[@AnirbanMukherjeeXD](https://github.com/AnirbanMukherjeeXD) tərəfindən töhfə verilib
[^2]: Bu bölmənin mətni, kodu və nəticələri [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA)-dan götürülüb

@ -4,13 +4,11 @@
Sən yeni data ([Duke tərəfindən təqdim olunmuş datasetlərdən](http://www2.stat.duke.edu/~mw/ts_data_sets.html) birini yoxla) ilə SVR modeli qurmalısan. Öz işini notbukda lazımi qeydlərlə işarələ, datanın və modelinin qrafiklərini çək və onun dəqiqliyini müvafiq qrafik və MAPE dəyəri ilə yoxla. Həmçinin fərqli hiperparametrlər və zaman aralıqları istifadə edərək də modelini yoxla.
Also try tweaking the different hyperparameters and also using different values for the timesteps.
## Rubrika [^1]
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ------------------------------------------------------- | ------------------------------------------------- | -------------------------------- |
| | Notbuk təqdim olunub, SVR modeli qurulub, qrafiki üsulla yoxlanılıb və izah olunub və dəqiqlik qeyd olunub. | Notbuk təqdim olunub lakin bəzi xətaları var. | Natamam notbuk təqdim olunub. |
| -------- | -------- | ------- | ------------------------ |
| | Notbuk təqdim olunub, SVR modeli qurulub, qrafiki üsulla yoxlanılıb, izah və dəqiqlik qeyd olunub. | Notbuk təqdim olunub lakin bəzi xətala var. | Natamam notbuk təqdim olunub. |
[^1]: Bu bölmədəki mətn [ARIMA-dan tapşırığa](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/assignment.md) əsasən yaradılıb.

@ -1,4 +1,4 @@
# Zaman Seriyalarının proqnozlaşdırılmasına giriş
# Zaman seriyalarının proqnozlaşdırılmasına giriş
Zaman seriyalarının proqnozlaşdırılması nədir? Burada keçmiş trendləri təhlil edərək gələcək hadisələrin proqnozlaşdırılması nəzərdə tutulur.
@ -6,7 +6,7 @@ Zaman seriyalarının proqnozlaşdırılması nədir? Burada keçmiş trendləri
Bu iki dərsdə siz, digər sahələr arasında sənaye və biznes tətbiqləri üçün son dərəcə dəyərli olan, maşın öyrənməsinin bir qədər az tanınan sahəsi sayılan zaman sıralarının proqnozlaşdırılması ilə tanış olacaqsınız. Bu modellərin faydalılığını artırmaq üçün neyron şəbəkələrdən istifadə oluna bilsə də, biz onları klassik maşın öyrənməsi kontekstində araşdıracağıq. Çünki modellər keçmişə əsaslanaraq gələcək performansı proqnozlaşdırmağa kömək edir.
Bizim regional diqqətimiz dünya elektrik istifadəsi ilə bağlı olan Keçmiş istifadə yükü əsasında gələcək enerji istifadəsini proqnozlaşdırmaq üçün maraqlı məlumat toplusuna yönəlb. Bu tip proqnozların biznes mühitində nə qədər faydalı ola biləcəyini görə bilərsiniz.
Bizim regional diqqətimiz dünya elektrik istifadəsi ilə bağlı olan keçmiş istifadə yükü əsasında gələcək enerji istifadəsini proqnozlaşdırmaq üçün maraqlı məlumat toplusuna yönəlib. Bu tip proqnozların biznes mühitində nə qədər faydalı ola biləcəyini görə bilərsiniz.
![elektrik şəbəkəsi](../images/electric-grid.jpg)

@ -1,31 +1,31 @@
# Gücləndirilmiş Öyrənmə və Q-Öyrənməsinə Giriş
# Gücləndirici Öyrənmə və Q-Öyrənməsinə Giriş
![Gücləndirilmiş öyrənmənin icmalının eskizi](../../../sketchnotes/ml-reinforcement.png)
![Gücləndirici öyrənmənin icmalının eskizi](../../../sketchnotes/ml-reinforcement.png)
> [Tomomi Imura](https://www.twitter.com/girlie_mac) tərəfindən çəkilmiş eskiz
Gücləndirilmiş öyrənmə üç mühüm anlayışı özündə birləşdirir: agent, vəziyyətlər və hər vəziyyət üçün icra yığını. Müəyyən edilmiş vəziyyətdə hərəkəti icra etməklə agentə mükafat verilir. Super Mario oyununu yadınıza salın. Təsəvvür edin ki siz Mariosunuz və hansısa mərhələdə uçurum kənarında dayanmısınız. Sizin üstünüzdə isə qəpik var. Hansısa bir mərhələdə Mario olmağınız sizin vəziyyətinizdir. Bir addım ataraq sağa hərəkət etmək sizi uçuruma aparacaq və aşağı xal toplayacaqsınız. Amma atlamaq düyməsinə basmağınız xal toplamanıza və sağ qalmanıza səbəb olacaqdı. Dediyimiz müsbət nəticə olduğuna görə sizə müsbət xal verilməlidir.
Gücləndirici öyrənmə üç mühüm anlayışı özündə birləşdirir: agent, vəziyyətlər və hər vəziyyət üçün icra yığını. Müəyyən edilmiş vəziyyətdə hərəkəti icra etməklə agentə mükafat verilir. Super Mario oyununu yadınıza salın. Təsəvvür edin ki, siz Mariosunuz və hansısa mərhələdə uçurum kənarında dayanmısınız. Sizin üstünüzdə isə qəpik var. Hansısa bir mərhələdə Mario olmağınız sizin vəziyyətinizdir. Bir addım ataraq sağa hərəkət etmək sizi uçuruma aparacaq və aşağı xal toplayacaqsınız. Amma atlamaq düyməsinə basmağınız xal toplamanıza və sağ qalmanıza səbəb olacaqdı. Dediyimiz müsbət nəticə olduğuna görə sizə müsbət xal verilməlidir.
Oyunda sağ qalaraq və mümkün olduğu qədər yuxarı xal toplamaqla mükafatı maksimuma çatdırmağı möhkəmləndirilmiş öyrənmədən və simulyator(oyun) istifadə edərək öyrənə bilərsiniz.
Oyunda sağ qalaraq və mümkün olduğu qədər yuxarı xal toplamaqla mükafatı maksimuma çatdırmağı gücləndirici öyrənmədən və simulyator(oyun) istifadə edərək öyrənə bilərsiniz.
[![Gücləndirilmiş Öyrənməyə Giriş](https://img.youtube.com/vi/lDq_en8RNOo/0.jpg)](https://www.youtube.com/watch?v=lDq_en8RNOo)
[![Gücləndirici Öyrənməyə Giriş](https://img.youtube.com/vi/lDq_en8RNOo/0.jpg)](https://www.youtube.com/watch?v=lDq_en8RNOo)
> 🎥 Dmitrinin Gücləndirilmiş Öyrənmə barədə olan müzakirəsini dinləmək üçün yuxarıdakı şəkilə klikləyin
> 🎥 Dmitrinin Gücləndirici Öyrənmə barədə olan müzakirəsini dinləmək üçün yuxarıdakı şəkilə klikləyin
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/45/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/45/?loc=az)
## İlkin Şərtlər və Quraşdırma
## İlkin şərtlər və quraşdırma
Bu gün Python-da bəzi kodları sınaqdan keçirəcəyik. Dərsə aid olan Jupyter Notebook kodunu həm kompüterinizdə, həm də buludda işlədə bilməlisiniz.
Siz [dərs notebook-unu](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb) aça və qurmaq üçün bu dərsi izləyə bilərsiniz.
Siz [dərs notbukunu](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb) aça və mühiti qurmaq üçün bu dərsi izləyə bilərsiniz.
> **Qeyd:** Bu kodu buludda açırsınızsa, [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py) faylını da notebook kodunda istifadə olunduğuna görə yükləməyiniz lazımdır. Onu notebook faylı ilə eyni qovluğa əlavə edin.
> **Qeyd:** Bu kodu buludda açırsınızsa, [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py) faylını da notbuk kodunda istifadə olunduğuna görə yükləməyiniz lazımdır. Onu notbuk faylı ilə eyni qovluğa əlavə edin.
## Giriş
Bu dərsdə biz rus bəstəkarı [Sergei Prokofyevin](https://en.wikipedia.org/wiki/Sergei_Prokofiev) musiqili nağılından ilhamlanaraq, **[Piter və Canavar](https://en.wikipedia.org/wiki/Peter_and_the_Wolf)** dünyasını araşdıracağıq. Peterə ətrafını araşdırmaq, dadlı alma toplamaq və canavarla görüşməmək üçün **Gücləndirilmiş Öyrənmədən** istifadə edəcəyik.
Bu dərsdə biz rus bəstəkarı [Sergei Prokofyevin](https://en.wikipedia.org/wiki/Sergei_Prokofiev) musiqili nağılından ilhamlanaraq **[Piter və Canavar](https://en.wikipedia.org/wiki/Peter_and_the_Wolf)** dünyasını araşdıracağıq. Peterə ətrafını araşdırmaq, dadlı alma toplamaq və canavarla görüşməmək üçün **Gücləndirici Öyrənmədən** istifadə edəcəyik.
**Gücləndirilmiş Öyrənmə** (RL – Reinforcement Learning) çoxlu təcrübələr keçirərək, **mühit** daxilində **agentin** optimal davranışını öyrənməyə imkan verən öyrənmə texnikasıdır. Bu mühitdəki agentin **mükafat funksiyası** ilə müəyyən edilmiş **hədəfi** olmalıdır.
**Gücləndirici Öyrənmə** (RL – Reinforcement Learning) çoxlu təcrübələr keçirərək, **mühit** daxilində **agentin** optimal davranışını öyrənməyə imkan verən öyrənmə texnikasıdır. Bu mühitdəki agentin **mükafat funksiyası** ilə müəyyən edilmiş **hədəfi** olmalıdır.
## Mühit
@ -69,13 +69,13 @@ action_idx = { a : i for i,a in enumerate(actions.keys()) }
Ümumiləşdirsək, bu ssenarinin strategiyası və hədəfi aşağıdakılardır:
- **Agentimizin(Piter) strategiyası**, "**taktika**" ilə müəyyən edilir. Taktika hər hansı bir vəziyyətdə, atılmalı olan addımı qaytaran funksiyadır. Bizim vəziyyətimizdə problemin vəziyyəti oyunçunun hazırkı mövqeyi də daxil olmaqla, lövhə ilə təmsil olunur.
- **Agentimizin(Piter) strategiyası**, "**taktika**" ilə müəyyən edilir. Taktika hər hansı bir vəziyyətdə atılmalı olan addımı qaytaran funksiyadır. Bizim vəziyyətimizdə problemin vəziyyəti oyunçunun hazırkı mövqeyi də daxil olmaqla lövhə ilə təmsil olunur.
- **Gücləndirilmiş öyrənmənin məqsədi** problemi səmərəli şəkildə həll etməyə imkan verəcək yaxşı bir taktika öyrənməkdir. Amma indilik, başlanğıc olaraq **təsadüfi gediş** adlı ən sadə siyasəti nəzərdən keçirək.
- **Gücləndirici öyrənmənin məqsədi** problemi səmərəli şəkildə həll etməyə imkan verəcək yaxşı bir taktika öyrənməkdir. Amma indilik, başlanğıc olaraq **təsadüfi gediş** adlı ən sadə strategiyanı nəzərdən keçirək.
## Təsadüfi gəzinti
Gəlin əvvəlcə təsadüfi gediş strategiyasını həyata keçirərək problemimizi həll edək. Təsadüfi gedişlə, almaya çatana qədər icazə verilən addımlar arasından növbəti addımımızı təsadüfi seçəcəyik (3. kod bloku).
Gəlin əvvəlcə təsadüfi gediş strategiyasını həyata keçirərək problemimizi həll edək. Təsadüfi gedişlə almaya çatana qədər icazə verilən addımlar arasından növbəti addımımızı təsadüfi seçəcəyik (3. kod bloku).
1. Aşağıdakı kodla təsadüfi gedişi həyata keçirin:
@ -191,7 +191,7 @@ Burada γ **endirim faktoru** adlanır və cari mükafata və ya bunun əksinə,
## Öyrənmə Alqoritmi
Yuxarıdakı tənliyi nəzərə alaraq, indi öyrənmə alqoritmimiz üçün psevdokod yaza bilərik:
Yuxarıdakı tənliyi nəzərə alaraq indi öyrənmə alqoritmimiz üçün psevdokod yaza bilərik:
* Q-Cədvəli Q-ü bütün vəziyyət və gedişlər üçün bərabər ədədlərlə yaradın
* Öyrənmə dərəcəsini α ← 1 təyin edin
@ -208,9 +208,9 @@ Yuxarıdakı tənliyi nəzərə alaraq, indi öyrənmə alqoritmimiz üçün pse
## İstifadə ilə Kəşf qarşı-qarşıya
Yuxarıdakı alqoritmdə 2.1-ci addımda gedişi necə dəqiq seçməli olduğumuzu müəyyənləşdirməmişik. Addımı təsadüfi seçsək, ətrafı təsadüfi formada **tədqiq edəcəyimiz** üçün, tez-tez ölmək, eləcə də normalda getmədiyimiz əraziləri araşdırmaq kimi ehtimallarımız var. Alternativ yanaşma isə artıq bildiyimiz Q-Cədvəl dəyərlərini **istifadə etmək** və bununla da, *s* vəziyyətində ən yaxşı hərəkəti(daha yüksək Q-Cədvəl dəyəri ilə) seçmək olardı. Amma, belə etmək, digər vəziyyətləri araşdırmağımıza mane olacaq və çox güman ki, optimal həlli tapa bilməyəcəyik.
Yuxarıdakı alqoritmdə 2.1-ci addımda gedişi necə dəqiq seçməli olduğumuzu müəyyənləşdirməmişik. Addımı təsadüfi seçsək, ətrafı təsadüfi formada **tədqiq edəcəyimiz** üçün tez-tez ölmək, eləcə də normalda getmədiyimiz əraziləri araşdırmaq kimi ehtimallarımız var. Alternativ yanaşma isə artıq bildiyimiz Q-Cədvəl dəyərlərini **istifadə etmək** və bununla da, *s* vəziyyətində ən yaxşı hərəkəti(daha yüksək Q-Cədvəl dəyəri ilə) seçmək olardı. Amma, belə etmək digər vəziyyətləri araşdırmağımıza mane olacaq və çox güman ki optimal həlli tapa bilməyəcəyik.
Beləliklə, ən yaxşı yanaşma kəşfiyyat və istifadə arasında balansı qorumaqdır. Bu, Q-Cədvəlindəki dəyərlərə mütənasib ehtimallarla *s* vəziyyətində hərəkəti seçməklə edilə bilər. Başlanğıcda, Q-Cədvəl dəyərləri eyni olduqda, bu, təsadüfi seçimə uyğun olacaq, lakin ətrafımız haqqında daha çox öyrəndikcə, arabir agentə araşdırılmamış yolu seçməyə icazə verərkən, optimal marşrutu izləmək ehtimalımız daha yüksək olacaq.
Beləliklə, ən yaxşı yanaşma kəşfiyyat və istifadə arasında balansı qorumaqdır. Bu, Q-Cədvəlindəki dəyərlərə mütənasib ehtimallarla *s* vəziyyətində hərəkəti seçməklə edilə bilər. Başlanğıcda Q-Cədvəl dəyərləri eyni olduqda bu, təsadüfi seçimə uyğun olacaq, lakin ətrafımız haqqında daha çox öyrəndikcə arabir agentə araşdırılmamış yolu seçməyə icazə verərkən optimal marşrutu izləmək ehtimalımız daha yüksək olacaq.
## Python üzərindən icrası
@ -227,7 +227,7 @@ Beləliklə, ən yaxşı yanaşma kəşfiyyat və istifadə arasında balansı q
İlkin halda vektorun bütün komponentləri eyni olduqda 0-a bölünmədən yayınmaq üçün orijinal vektora bir neçə `eps` əlavə edirik.
5000 təcrübə və ya **iterasiya** vasitəsilə öyrənmə alqoritmini işə salın: (8. kod bloku)
5000 təcrübə və ya **dövr** vasitəsilə öyrənmə alqoritmini işə salın: (8. kod bloku)
```python
for epoch in range(5000):
@ -280,11 +280,11 @@ walk(m,qpolicy_strict)
> **Tapşırıq 1:** Yolun maksimum uzunluğunu müəyyən sayda addımlarla (məsələn, 100) məhdudlaşdırmaq üçün `walk` funksiyasını dəyişdirin və yuxarıdakı kodun vaxtaşırı bu dəyəri qaytarmasına baxın.
> **Tapşırıq 2:** `walk` funksiyasını elə dəyişdirin ki, o, əvvəllər olduğu yerlərə qayıtmasın. Belə etmək `walk`-un döngüyə girməsinin qarşısını alsa da, agent yenə də qaça bilməyəcəyi yerdə "tələyə" düşə bilər.
> **Tapşırıq 2:** `walk` funksiyasını elə dəyişdirin ki, o, əvvəllər olduğu yerlərə qayıtmasın. Belə etmək `walk`-un dövrə girməsinin qarşısını alsa da, agent yenə də qaça bilməyəcəyi yerdə "tələyə" düşə bilər.
## Naviqasiya
Daha yaxşı naviqasiya taktikası təlim zamanı istifadə etdiyimiz istifadə və kəşfiyyatı birləşdirmiş olan versiya olardı. Bu taktika biz hər bir hərəkəti Q-Cədvəlindəki dəyərlərə mütənasib olaraq müəyyən bir ehtimalla seçəcəyik. Bu strategiya hələ də agentin artıq tədqiq etdiyi mövqeyə qayıtması ilə nəticələnə bilər, lakin, aşağıdakı koddan da göründüyü kimi, bu sizə istədiyiniz məkana olan çox qısa orta yolu verir(unutmayın ki, `print_statistics` simulyasiyanı 100 dəfə həyata keçirir): (10. kod bloku)
Daha yaxşı naviqasiya taktikası təlim zamanı istifadə etdiyimiz istismar və kəşfiyyatın birləşdirmiş olan versiyası olardı. Bu taktikada biz hər bir hərəkəti Q-Cədvəlindəki dəyərlərə mütənasib olaraq müəyyən bir ehtimalla seçəcəyik. Bu strategiya hələ də agentin artıq tədqiq etdiyi mövqeyə qayıtması ilə nəticələnə bilər, lakin, aşağıdakı koddan da göründüyü kimi bu sizə istədiyiniz məkana olan çox qısa orta yolu verir(unutmayın ki, `print_statistics` simulyasiyanı 100 dəfə həyata keçirir): (10. kod bloku)
```python
def qpolicy(m):
@ -306,15 +306,15 @@ Qeyd etdiyimiz kimi, təlim prosesi problem məkanının strukturu haqqında əl
Öyrənilənləri belə ümumiləşdirmək olar:
- **Orta yol uzunluğu artır**. Burada gördüyümüz odur ki, əvvəlcə orta yol uzunluğu artır. Bu, yəqin ki, ətraf mühit haqqında heç nə bilmədiyimiz zaman pis vəziyyətlərdə, suda və ya canavarda tələyə düşmək ehtimalımızla bağlıdır. Daha çox öyrəndikcə və bu biliklərdən istifadə etməyə başladıqda, ətraf mühiti daha uzun müddət araşdıra bilərik. Bununla belə, almaların harada daha çox olduğunu hələ də bilmiş olmuruq.
- **Orta yol uzunluğu artır**. Burada gördüyümüz odur ki, əvvəlcə orta yol uzunluğu artır. Bu, yəqin ki, ətraf mühit haqqında heç nə bilmədiyimiz zaman pis vəziyyətlərdə, suda və ya canavarda tələyə düşmək ehtimalımızla bağlıdır. Daha çox öyrəndikcə və bu biliklərdən istifadə etməyə başladıqda ətraf mühiti daha uzun müddət araşdıra bilərik. Bununla belə, almaların harada daha çox olduğunu hələ də bilmiş olmuruq.
- **Daha çox öyrəndikcə yol uzunluğu azalır**. Kifayət qədər öyrəndikdən sonra agentin hədəfə çatması asanlaşır və yol uzunluğu azalmağa başlayır. Amma, biz hələ də kəşfiyyata açığıq, ona görə də biz tez-tez ən yaxşı yoldan uzaqlaşırıq və yeni variantları araşdıraraq yolu optimaldan daha uzun edirik.
- **Uzunluğun kəskin artması**. Bu qrafikdə də müşahidə etdiyimiz odur ki, müəyyən bir nöqtədə uzunluq kəskin şəkildə artır. Bu, prosesin stoxastik xarakterini göstərir və biz nə vaxtsa Q-Cədvəl əmsallarını yeni dəyərlərlə əvəz etməklə onları "korlaya" bilərik. İdeal olaraq, bu, öyrənmə sürətini azaltmaqla minimuma endirilməlidir(məsələn, təlimin sonuna doğru biz Q-Cədvəl dəyərlərini yalnız kiçik bir dəyərlə tənzimləyirik).
Ümumiyyətlə, yadda saxlamaq lazımdır ki, təlim prosesinin uğuru və keyfiyyəti öyrənmə sürəti, öyrənmə sürətinin azalması və endirim faktoru kimi parametrlərdən əhəmiyyətli dərəcədə asılıdır. Təlim zamanı optimallaşdırdığımız(məsələn, Q-Cədvəl əmsalları) **parametrlərdən** fərqləndirmək üçün onları tez-tez **hiperparametrlər** adlandırırlar. Ən yaxşı hiperparametr dəyərlərinin tapılması prosesi **hiperparametrlərin optimallaşdırılması** adlanır və bu, ayrıca mövzu səviyyəsindədir.
Ümumiyyətlə, yadda saxlamaq lazımdır ki, təlim prosesinin uğuru və keyfiyyəti öyrənmə sürəti, öyrənmə sürətinin azalması və endirim faktoru kimi parametrlərdən əhəmiyyətli dərəcədə asılıdır. Təlim zamanı optimallaşdırdığımız(məsələn, Q-Cədvəl əmsalları) **parametrlərdən** fərqləndirmək üçün onları tez-tez **hiperparametrlər** adlandırırlar. Ən yaxşı hiperparametr dəyərlərinin tapılması prosesi **hiperparametrlərin optimallaşdırılması** adlanır və bu ayrıca mövzu səviyyəsindədir.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/46/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/46/?loc=az)
## Tapşırıq
[Daha Real Dünya](assignment.az.md)

@ -1,27 +1,27 @@
# Daha Real Dünya
Bizim vəziyyətimizdə Piter, demək olar ki, yorulmadan və ac qalmadan hərəkət edə bilirdi. Daha realist bir dünyada isə zaman-zaman oturub dincəlməli, həm də qidalanmalı oluruq. Aşağıdakı qaydaları həyata keçirməklə dünyamızı daha real edək:
Bizim vəziyyətimizdə Piter, demək olar ki, yorulmadan və ac qalmadan hərəkət edə bilirdi. Daha realist bir dünyada isə vaxt aşırı oturub dincəlməli, həm də qidalanmalı oluruq. Aşağıdakı qaydaları həyata keçirməklə dünyamızı daha real edək:
1. Bir yerdən başqa yerə köçməklə Piter **enerjisini** itirir və bir qədər **yorğunluq** qazanır.
2. Piter alma yeməklə daha çox enerji qazana bilər.
3. Piter ağacın altında və ya çəmənlikdə dincəlməklə yorğunluqdan qurtula bilər (yəni ağac və ya ot olan bir xanaya getmək - yaşıl sahə)
4. Piter canavarı tapıb öldürməlidir
5. Qurdu öldürmək üçün Piterin müəyyən enerji və yorğunluq səviyyəsinə malik olması lazımdır, əks halda o, döyüşü uduzur.
5. Canavarı öldürmək üçün Piterin müəyyən enerji və yorğunluq səviyyəsinə malik olması lazımdır, əks halda o, döyüşü uduzur.
## Təlimatlar
Həlliniz üçün başlanğıc nöqtəsi kimi orijinal [notebook.ipynb](../notebook.ipynb) noutbukundan istifadə edin.
Həlliniz üçün başlanğıc nöqtəsi kimi orijinal [notebook.ipynb](../notebook.ipynb) notbukundan istifadə edin.
Yuxarıdakı mükafat funksiyasını oyunun qaydalarına uyğun olaraq dəyişdirin. Oyunda qalib gəlmək üçün lazım olan ən yaxşı strategiyanı öyrənmək üçün isə gücləndirilmiş öyrənmə alqoritmini işlədin və təsadüfi gedişin nəticələrini qazandığınız və itirdiyiniz oyunların sayına görə alqoritminizlə müqayisə edin.
Yuxarıdakı mükafat funksiyasını oyunun qaydalarına uyğun olaraq dəyişdirin. Oyunda qalib gəlmək üçün lazım olan ən yaxşı strategiyanı öyrənmək üçün isə gücləndirici öyrənmə alqoritmini işlədin və təsadüfi gedişin nəticələrini qazandığınız və itirdiyiniz oyunların sayına görə alqoritminizlə müqayisə edin.
> **Qeyd**: Yeni dünyanızda insanın mövqeyindən əlavə, yorğunluq və enerji səviyyələri də olduğuna görə vəziyyət daha mürəkkəbdir. Siz vəziyyəti bir qrup kimi təqdim etməyi seçə bilərsiniz(Board, enerji, yorğunluq) və ya vəziyyət üçün bir sinif yarada bilə(onu `Board`-dan da alt sinif olaraq yaratmağınız mümkündür) və ya [rlboard.py](../rlboard.py) içərisindəki orijinal `Board` sinfini dəyişdirə bilərsiniz.
> **Qeyd**: Yeni dünyanızda insanın mövqeyindən əlavə yorğunluq və enerji səviyyələri də olduğuna görə vəziyyət daha mürəkkəbdir. Siz vəziyyəti bir qrup kimi təqdim etməyi seçə bilərsiniz(Board, enerji, yorğunluq) və ya vəziyyət üçün bir sinif yarada bilə(onu `Board`-dan da alt sinif olaraq yaratmağınız mümkündür) və ya [rlboard.py](../rlboard.py) içərisindəki orijinal `Board` sinfini dəyişdirə bilərsiniz.
Həllinizdə, lütfən, kodu təsadüfi gediş strategiyasına cavab verəcək formada saxlayın və ən sonda alqoritminizin nəticələrini təsadüfi gedişlə müqayisə edin.
> **Qeyd**: Onun işləməsi üçün hiperparametrləri, xüsusən də dövrlərin sayını tənzimləməlisiniz. Oyunun uğuru(canavarla mübarizə) nadir bir hadisə olduğundan, daha uzun məşq vaxtı gözləmək olar.
> **Qeyd**: Onun işləməsi üçün hiperparametrləri, xüsusən də dövrlərin sayını tənzimləməlisiniz. Oyunun uğuru(canavarla mübarizə) nadir bir hadisə olduğundan daha uzun məşq vaxtı gözləmək olar.
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| | Yeni dünya qaydalarının tərifi, Q-Öyrənməsi alqoritmi və bəzi mətn izahatları ilə notebook təqdim olunur. Q-Öyrənməsi təsadüfi gedişlə müqayisədə nəticələri əhəmiyyətli dərəcədə yaxşılaşdıra bilir. | Notebook təqdim olunur, Q-Öyrənməsi həyata keçirilir və təsadüfi gedişlə müqayisədə nəticələri yaxşılaşdırsa, əhəmiyyətli dərəcədə deyil; və ya notebook zəif sənədləşdirilib və kod yaxşı strukturlaşdırılmayıb | Dünyanın qaydalarını yenidən müəyyən etmək üçün bəzi cəhdlər edilib, lakin Q-Öyrənməsi alqoritmi işləmir və ya mükafat funksiyası tam müəyyən edilməyib. |
| -------- | -------- | ------- | ------------------------ |
| | Yeni dünya qaydalarının tərifi, Q-Öyrənməsi alqoritmi və bəzi mətn izahatları ilə notebook təqdim olunub. Q-Öyrənməsi təsadüfi gedişlə müqayisədə nəticələri əhəmiyyətli dərəcədə yaxşılaşdıra bilib. | Notbuk təqdim olunub, Q-Öyrənməsi həyata keçirilib və təsadüfi gedişlə müqayisədə nəticələri yaxşılaşdırsa, əhəmiyyətli dərəcədə deyil; və ya notbuk zəif sənədləşdirilib və kod yaxşı strukturlaşdırılmayıb. | Dünyanın qaydalarını yenidən müəyyən etmək üçün bəzi cəhdlər edilib, lakin Q-Öyrənməsi alqoritmi işləmir və ya mükafat funksiyası tam müəyyən edilməyib. |

@ -1,8 +1,8 @@
# CartPole(Sürgülü Araba) Sürüşü
Əvvəlki dərsdə həll etdiyimiz problem əslində real həyat ssenariləri üçün uyğun olmadığı üçün oyuncaq problem kimi görünə bilər. Amma bu belə deyil, çünki Şahmat və ya Go oynamaq kimi bir çox real dünya problemləri də bu ssenarini bölüşür. Onlar arasındakı oxşarlığın səbəbi bizdə də verilmiş qaydalar və **diskret vəziyyəti** olan lövhəmizin olmasıdır.
Əvvəlki dərsdə həll etdiyimiz problem əslində real həyat ssenariləri üçün uyğun olmadığı üçün oyuncaq problem kimi görünə bilər. Amma bu belə deyil, çünki Şahmat və ya Go oynamaq kimi bir çox real dünya problemləri də bu ssenarini bölüşür. Onlar arasındakı oxşarlığın səbəbi bizdə də verilmiş qaydalar və **diskret vəziyyəti** göstərən lövhəmizin olmasıdır.
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/47/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/47/?loc=az)
## Giriş
@ -20,11 +20,11 @@ Biz tarazlamanın **CartPole** problemi kimi tanınan sadələşdirilmiş versiy
## İlkin şərtlər
Bu dərsdə biz müxtəlif **mühitləri** simulyasiya etmək üçün **OpenAI Gym** adlı kitabxanadan istifadə edəcəyik. Siz bu dərsin kodunu öz kompüterinizdə(məsələn, Visual Studio Code-dan istifadə edərək) işlədə bilərsiniz. Amma nəzərə alın ki, simulyasiya yeni pəncərədə açılacaq. Kodu onlayn işlədərkən, [burada](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7) təsvir olunduğu kimi koda bəzi düzəlişlər etməli ola bilərsiniz.
Bu dərsdə biz müxtəlif **mühitləri** simulyasiya etmək üçün **OpenAI Gym** adlı kitabxanadan istifadə edəcəyik. Siz bu dərsin kodunu öz kompüterinizdə(məsələn, Visual Studio Code-dan istifadə edərək) işlədə bilərsiniz. Amma nəzərə alın ki, simulyasiya yeni pəncərədə açılacaq. Kodu onlayn işlədərkən [burada](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7) təsvir olunduğu kimi koda bəzi düzəlişlər etməli ola bilərsiniz.
## OpenAI Gym
Əvvəlki dərsdə oyunun qaydalarını və vəziyyəti özümüz yaratdığımız `Board` sinifi təyin edirdi. Burada isə biz balans dirəyinin arxasındakı fizikanı simulyasiya edəcək xüsusi **simulyasiya mühitindən** istifadə edəcəyik. Gücləndirilmiş öyrənmə alqoritmlərini öyrətmək üçün ən məşhur simulyasiya mühitlərindən biri [OpenAI](https://openai.com/) tərəfindən idarə olunan [Gym](https://gym.openai.com/)-dir. Bu gym-dən istifadə etməklə biz, cartpole simulyasiyasından Atari oyunlarına qədər fərqli **mühitlər** yarada bilərik.
Əvvəlki dərsdə oyunun qaydalarını və vəziyyəti özümüz yaratdığımız `Board` sinifi təyin edirdi. Burada isə biz balans dirəyinin arxasındakı fizikanı simulyasiya edəcək xüsusi **simulyasiya mühitindən** istifadə edəcəyik. Gücləndirici öyrənmə alqoritmlərini öyrətmək üçün ən məşhur simulyasiya mühitlərindən biri [OpenAI](https://openai.com/) tərəfindən idarə olunan [Gym](https://gym.openai.com/)-dir. Bu gym-dən istifadə etməklə biz cartpole simulyasiyasından Atari oyunlarına qədər fərqli **mühitlər** yarada bilərik.
> **Qeyd**: OpenAI Gym-də mövcud olan digər mühitlərə [burada](https://gym.openai.com/envs/#classic_control) baxa bilərsiniz.
@ -44,7 +44,7 @@ import random
Kartpol balans problemi ilə işləmək üçün müvafiq mühiti işə salmalıyıq. Hər bir mühit aşağıdakılarla əlaqələndirilir:
- **Müşahidə məkanı**, mühitdən aldığımız məlumatların strukturunu müəyyən edir. Kartpol problemi üçün biz qütbün mövqeyini, sürəti və bəzi digər dəyərləri alırıq.
- **Müşahidə məkanı** mühitdən aldığımız məlumatların strukturunu müəyyən edir. Kartpol problemi üçün biz qütbün mövqeyini, sürəti və bəzi digər dəyərləri alırıq.
- Mümkün hərəkətləri müəyyən edən **fəaliyyət sahəsi**. Bizim vəziyyətimizdə fəaliyyət sahəsi diskretdir və iki hərəkətdən ibarətdir - **sol** və **sağ**. (2. kod bloku)
@ -76,7 +76,7 @@ Kartpol balans problemi ilə işləmək üçün müvafiq mühiti işə salmalıy
![nataraz araba](../images/cartpole-nobalance.gif)
1. Simulyasiya zamanı necə hərəkət edəcəyimizə qərar vermək üçün müşahidələr aparmalıyıq. Əslində, `step` funksiyası bizə cari müşahidələri, mükafat funksiyasını və simulyasiyanı davam etdirməyin mənalı olub-olmadığını göstərən indikatoru qaytarır: (4. kod bloku)
1. Simulyasiya zamanı necə hərəkət edəcəyimizə qərar vermək üçün müşahidələr aparmalıyıq. Əslində `step` funksiyası bizə cari müşahidələri, mükafat funksiyasını və simulyasiyanı davam etdirməyin mənalı olub-olmadığını göstərən indiqatoru qaytarır: (4. kod bloku)
```python
env.reset()
@ -117,7 +117,7 @@ Kartpol balans problemi ilə işləmək üçün müvafiq mühiti işə salmalıy
Diqqət etsəniz, hər bir simulyasiya addımında mükafat dəyəri həmişə 1 olduğunu görə bilərsiniz. Bunun səbəbi odur ki, bizim məqsədimiz mümkün qədər uzun müddət sağ qalmaqdır. Başqa cürə ifadə etsək, dirəyi ən uzun müddətə şaquli vəziyyətdə saxlamaqdır.
✅ Əslində, ardıcıl 100 sınaq üzərindən 195-lik orta mükafat əldə edə bilsək, CartPole simulyasiyası həll edilmiş sayılacaq.
✅ Əslində ardıcıl 100 sınaq üzərindən 195-lik orta mükafat əldə edə bilsək, CartPole simulyasiyası həll edilmiş sayılacaq.
## Vəziyyətin diskretləşməsi
@ -125,11 +125,11 @@ Q-Öyrənməsində biz hər bir vəziyyətdə nə edəcəyimizi müəyyən edən
Bunu edə biləcəyimiz bir neçə yol var:
- **Hissələrə bölün**. Müəyyən bir dəyərin intervalını bilsək, bu intervalı bir neçə ** hissəyə** bölmək və sonra həmin dəyəri onun aid olduğu hissənin nömrəsi ilə əvəz edə bilərik. Bunu numpy-ın [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html)(rəqəmsallaşdırmaq) metodundan istifadə etməklə edə bilərik. Vəziyyətin rəqəmsallaşdırma üçün seçdiyimiz hissələrin sayından asılı olacağından, onun ölçüsünü dəqiq biləcəyik.
- **Hissələrə bölün**. Müəyyən bir dəyərin intervalını bilsək, bu intervalı bir neçə ** hissəyə** bölə və sonra həmin dəyəri onun aid olduğu hissənin nömrəsi ilə əvəz edə bilərik. Bunu numpy-ın [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html)(rəqəmsallaşdırmaq) metodundan istifadə etməklə edə bilərik. Vəziyyətin rəqəmsallaşdırma üçün seçdiyimiz hissələrin sayından asılı olacağından, onun ölçüsünü dəqiq biləcəyik.
✅ Xətti interpolyasiyadan istifadə edərək dəyərləri sonlu intervala(məsələn, -20-dən 20-yə) yerləşdirə bilərik və sonra onları yuvarlaqlaşdırmaqla ədədləri tam ədədlərə çevirə bilərik. Belə etmək, xüsusən də giriş dəyərlərinin dəqiq diapazonlarını bilməmək bizə vəziyyətin ölçüsünə bir az daha az nəzarət imkanı verir. Məsələn, bizim vəziyyətimizdə 4 dəyərdən 2-in öz dəyərlərində yuxarı/aşağı sərhədləri olmadığı üçün, bu sonsuz sayda vəziyyətlə nəticələnə bilər.
✅ Xətti interpolyasiyadan istifadə edərək dəyərləri sonlu intervala(məsələn, -20-dən 20-yə) yerləşdirə bilərik və sonra onları yuvarlaqlaşdırmaqla ədədləri tam ədədlərə çevirə bilərik. Belə etmək, xüsusən də giriş dəyərlərinin dəqiq diapazonlarını bilməmək bizə vəziyyətin ölçüsünə bir az daha az nəzarət imkanı verir. Məsələn, bizim vəziyyətimizdə 4 dəyərdən 2-in öz dəyərlərində yuxarı/aşağı sərhədləri olmadığı üçün bu, sonsuz sayda vəziyyətlə nəticələnə bilər.
Nümunəmizdə ikinci yanaşma ilə gedəcəyik. Beləliklə müşahidə edəcəksiniz ki, qeyri-müəyyən yuxarı/aşağı sərhədlərə baxmayaraq, bu dəyər nadir hallarda müəyyən sonlu intervallardan kənarda dəyərlər qəbul edir. Buna görə də ekstremal dəyərlərə malik vəziyyətlər çox nadir hallarda olacaq.
Nümunəmizdə ikinci yanaşma ilə gedəcəyik. Beləliklə müşahidə edəcəksiniz ki, qeyri-müəyyən yuxarı/aşağı sərhədlərə baxmayaraq bu dəyər nadir hallarda müəyyən sonlu intervallardan kənarda dəyərlər qəbul edir. Buna görə də ekstremal dəyərlərə malik vəziyyətlər çox nadir hallarda olacaq.
1. Modelimizdən müşahidələri toplayacaq və 4 tam dəyərdən ibarət qrup çıxaracaq funksiya budur: (6. kod bloku)
@ -174,9 +174,9 @@ Nümunəmizdə ikinci yanaşma ilə gedəcəyik. Beləliklə müşahidə edəcə
## Q-Cədvəlinin strukturu
Əvvəlki dərsimizdə vəziyyət 0-dan 8-ə qədər sadə ədədlər cütü olduğu üçün, Q-Cədvəlini 8x8x2 formalı numpy tensoru ilə təmsil etmək rahat idi. Vəziyyət vektorumuzun ölçüsü məlum olduğu üçün hissələrin diskretləşdirilməsini tətbiq etsək, bu zaman eyni yanaşmadan istifadə edə və vəziyyəti 20x20x10x10x2 formalı massiv ilə təqdim edə bilərik(buradakı 2 fəaliyyət sahəsinin ölçüsüdür və ilk ölçülər müşahidə məkanındakı hər bir parametr üçün seçdiyimiz hissələrin sayına uyğundur).
Əvvəlki dərsimizdə vəziyyət 0-dan 8-ə qədər sadə ədədlər cütü olduğu üçün Q-Cədvəlini 8x8x2 formalı numpy tensoru ilə təmsil etmək rahat idi. Vəziyyət vektorumuzun ölçüsü məlum olduğu üçün hissələrin diskretləşdirilməsini tətbiq etsək, bu zaman eyni yanaşmadan istifadə edə və vəziyyəti 20x20x10x10x2 formalı massiv ilə təqdim edə bilərik(buradakı 2 fəaliyyət sahəsinin ölçüsüdür və ilk ölçülər müşahidə məkanındakı hər bir parametr üçün seçdiyimiz hissələrin sayına uyğundur).
Lakin bəzən müşahidə məkanının dəqiq ölçüləri məlum olmur. `discretize` funksiyasında heç vaxt vəziyyətin bəzi orijinal dəyərlərin bağlı olmamasından dolayı müəyyən sərhədlər daxilində qalacağından əmin olmaya bilərik. Buna görə də, bir qədər fərqli yanaşmadan istifadə edəcəyik və Q-Cədvəlini lüğətlə təmsil edəcəyik.
Lakin bəzən müşahidə məkanının dəqiq ölçüləri məlum olmur. `discretize` funksiyasında heç vaxt vəziyyətin bəzi orijinal dəyərlərin bağlı olmamasından dolayı müəyyən sərhədlər daxilində qalacağından əmin olmaya bilərik. Buna görə də bir qədər fərqli yanaşmadan istifadə edəcəyik və Q-Cədvəlini lüğətlə təmsil edəcəyik.
1. Lüğət açarı kimi *(vəziyyət, fəaliyyət)* cütündən istifadə edin. Dəyər isə Q-Cədvəlinin giriş dəyərinə uyğun olacaq. (9. kod bloku)
@ -203,13 +203,13 @@ Artıq Piterə tarazlığı öyrətməyə hazırıq!
epsilon = 0.90
```
Burada `alfa` hər addımda Q-Cədvəlinin cari dəyərlərini nə dərəcədə tənzimləməli olduğumuzu müəyyən edən **öyrənmə dərəcəsidir**. Əvvəlki dərsdə biz 1 ilə başladıq, sonra isə təlim zamanı `alpha`-ı aşağı qiymətlərə endirdik. Bu nümunədə biz onu sadəlik üçün sabit saxlayacağıq və daha sonra siz ``alpha`` dəyərlərini tənzimləməklə təcrübələr apara biləcəksiniz.
Burada `alfa` hər addımda Q-Cədvəlinin cari dəyərlərini nə dərəcədə tənzimləməli olduğumuzu müəyyən edən **öyrənmə dərəcəsidir**. Əvvəlki dərsdə biz 1 ilə başladıq, sonra isə təlim zamanı `alpha`-nı aşağı qiymətlərə endirdik. Bu nümunədə biz onu sadəlik üçün sabit saxlayacağıq və daha sonra siz `alpha` dəyərlərini tənzimləməklə təcrübələr apara biləcəksiniz.
`gamma` **endirim faktorudur** və gələcək mükafatı cari mükafatdan nə dərəcədə daha prioritetləşdirməli olduğumuzu göstərir.
`epsilon` **kəşfiyyat/istifadə faktorudur**. Bizim istifadədən daha çox kəşfiyyata və ya əksinə üstünlük verməli olduğumuzu müəyyən edir. Alqoritmimizdə halların `epsilon` faizində Q-Cədvəl qiymətlərinə uyğun növbəti hərəkəti seçəcəyik, qalan hallarda isə təsadüfi hərəkəti yerinə yetirəcəyik. Bu, axtarış məkanında əvvəllər heç görmədiyimiz sahələri araşdırmağımıza təkan verəcək.
✅ Balanslaşdırma baxımından - təsadüfi hərəkətin(kəşfiyyatın) seçilməsi yanlış istiqamətdə təsadüfi bir zərbə rolunu oynayacaq və dirək həmin "səhvlərdən" tarazlığı necə bərpa edəcəyini öyrənməli olacaq.
✅ Balanslaşdırma baxımından - təsadüfi hərəkətin(kəşfiyyatın) seçilməsi yanlış istiqamətdə təsadüfi bir zərbə rolunu oynayacaq və birbaşa həmin "səhvlərdən" tarazlığı necə bərpa edəcəyini öyrənməli olacaq.
### Alqoritmi təkmilləşdirin
@ -217,7 +217,7 @@ Biz həmçinin əvvəlki dərsdən olan alqoritmimizi iki formada təkmilləşdi
- **Bir sıra simulyasiyalar üzrə orta məcmu mükafatını hesablayın**. Hər 5000 iterasiyada nə qədər irəlilədiyimizi ekrana çap edəcəyik və bu müddət ərzində ümumi mükafatımızın orta qiymətini çıxaracağıq. Bu o deməkdir ki, 195-dən çox bal toplasaq, tələb olunandan daha yüksək keyfiyyətlə problemi həll edilmiş hesab edə bilərik.
- **Maksimum orta məcmu nəticəni hesablayın**, `Qmax` və biz həmin nəticəyə uyğun olan Q-Cədvəlini yadda saxlayacağıq. Təlimi icra edən zaman görəcəksiniz ki, bəzən orta məcmunun qiyməti aşağı düşməyə başlayır və biz Q-Cədvəlinin təlim zamanı müşahidə edilən ən yaxşı modelə uyğun olan dəyərlərini saxlamaq istəyirik.
- **Maksimum orta məcmu nəticəni hesablayın**. Bi` `Qmax` və həmin nəticəyə uyğun olan Q-Cədvəlini yadda saxlayacağıq. Təlimi icra edən zaman görəcəksiniz ki, bəzən orta məcmunun qiyməti aşağı düşməyə başlayır və biz Q-Cədvəlinin təlim zamanı müşahidə edilən ən yaxşı modelə uyğun olan dəyərlərini saxlamaq istəyirik.
1. Sonrakı planlar üçün `rewards` vektorunda hər simulyasiyada bütün məcmu mükafatları toplayın. (11. kod bloku)
@ -264,7 +264,7 @@ Bu nəticələrdən aşağıdakı fərqləri görə bilərsən:
- **Məqsədimizə yaxın**. Simulyasiyanın 100+ ardıcıl işləməsi ilə 195 məcmu mükafatı əldə etmək məqsədinə çatmaq üçün çox yaxınıq və ya həqiqətən buna nail ola bilərik! Kiçik nömrələr alsaq da, hələ də bilmirik, çünki ortalama 5000-dən çox icra həyata keçiririk və rəsmi meyarlarda yalnız 100 icra tələb olunur.
- **Mükafat atmağa başlayır**. Bəzən mükafat düşməyə başlayır, yəni vəziyyəti daha da pis hala gətirənlərlə birlikdə Q-Cədvəlindəki öyrənilən dəyərləri "məhv edə" bilər.
- **Mükafat artmağa başlayır**. Bəzən mükafat düşməyə başlayır, yəni vəziyyəti daha da pis hala gətirənlərlə birlikdə Q-Cədvəlindəki öyrənilən dəyərləri "məhv edə" bilər.
Təlimin inkişaf qrafikini qursaq, bu müşahidə daha aydın görünür.
@ -299,11 +299,11 @@ plt.plot(running_average(rewards,100))
> **Tapşırıq 1**: Hiperparametr dəyərləri ilə oynayın və daha yüksək məcmu mükafat əldə edə biləcəyinizə baxın. 195-dən yuxarı qiymət ala bilirsinizmi?
> **Tapşırıq 2**: Problemi tam həll etmək üçün, 100 ardıcıl icrada orta mükafat dəyərini 195 olaraq almalısınız. Təlim zamanı qiymətləri ölçün və problemi tam şəkildə həll etdiyinizə əmin olun!
> **Tapşırıq 2**: Problemi tam həll etmək üçün 100 ardıcıl icrada orta mükafat dəyərini 195 olaraq almalısınız. Təlim zamanı qiymətləri ölçün və problemi tam şəkildə həll etdiyinizə əmin olun!
## İcra zamanı nəticəni görək
Öyrədilmiş modelin necə davrandığını görmək maraqlı olardı. Simulyasiyanı işə salaq və Q-Cədvəldəki ehtimal paylamasına görə təlim, nümunə götürmə zamanı etdiyimiz fəaliyyət seçmə strategiyasını izləyək: (Kod bloku 13)
Öyrədilmiş modelin necə davrandığını görmək maraqlı olardı. Simulyasiyanı işə salaq və Q-Cədvəldəki ehtimal paylamasına görə təlim, nümunə götürmə zamanı isə etdiyimiz fəaliyyət seçmə strategiyasını izləyək: (Kod bloku 13)
```python
obs = env.reset()
@ -317,7 +317,7 @@ while not done:
env.close()
```
Bu kimi bir şey görməlisən:
Buna bənzər bir şey görməlisən:
![tarazlanmış cartpole](../images/cartpole-balance.gif)
@ -325,17 +325,19 @@ Bu kimi bir şey görməlisən:
## 🚀 Məşğələ
> **Tapşırıq 3**: Burada biz ən yaxşısı olmaya biləcək Q-Cədvəlinin son versiyasını istifadə edirdik. Xatırlayırsınızsa, ən yaxşı Q-Cədvəlini `Qbest` dəyişənində saxlamışıq! `Qbest`-i `Q`-ə kopyalayaraq ən optimal Q-Cədvəllə eyni nümunəni sınaqdan keçirin və fərqi izləyin.
> **Tapşırıq 3**: Burada biz ən yaxşısı ola bilməyəcək Q-Cədvəlinin son versiyasını istifadə edirdik. Xatırlayırsınızsa, ən yaxşı Q-Cədvəlini `Qbest` dəyişənində saxlamışıq! `Qbest`-i `Q`-ə kopyalayaraq ən optimal Q-Cədvəllə eyni nümunəni sınaqdan keçirib fərqi izləyək.
> **Tapşırıq 4**: Burada hər addımda ən yaxşı hərəkəti seçmirdik. Bunun əksinə müvafiq ehtimal paylanması ilə nümunə götürürdük. Ən yüksək Q-Cədvəl dəyəri olan ən yaxşı hərəkəti həmişə seçmək daha düzgün olmazdımı? Bu, Q-Cədvəlinin dəyərinə uyğun hərəkət nömrəsini tapmaq üçün `np.argmax` funksiyasından istifadə etməklə edilə bilər. Həmin strategiyanı icra edin və tarazlanmanın yaxşılaşdığını izləyin.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/uiz/48/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/uiz/48/?loc=az)
## Tapşırıq
[Dağ maşınını öyrədin](assignment.az.md)
## Nəticə
Artıq oyunun istədiyi vəziyyətini müəyyənləşdirən və axtarış sahəsini ağıllı şəkildə araşdıran bir mükafat funksiyasını təmin etməklə, yaxşı nəticələr əldə edəcək agentlər yetişdirməyi öyrəndik. Q-Öyrənməsi alqoritmini diskret hərəkətlərlə, diskret və davamlı mühit hallarında uğurla tətbiq etmiş olduq.
Artıq oyunun istənilən vəziyyətini müəyyənləşdirən və axtarış sahəsini ağıllı şəkildə araşdıran bir mükafat funksiyasını təmin etməklə yaxşı nəticələr əldə edəcək agentlər yetişdirməyi öyrəndik. Q-Öyrənməsi alqoritmini diskret hərəkətlərlə diskret və davamlı mühit hallarında uğurla tətbiq etmiş olduq.
Müşahidə sahəsi Atari oyun ekranındakı görüntü kimi fəaliyyət vəziyyətinin də davamlı olduğu daha mürəkkəb vəziyyətləri öyrənmək vacibdir. Bu problemlərdə tez-tez yaxşı nəticələr əldə etmək üçün neyron şəbəkələri kimi daha güclü maşın öyrənmə texnikasından istifadə etməliyik. Bu cür irəli mövzular qarşıdakı daha mürəkkəb AI kursumuzun mövzusudur.
It's important to also study situations where action state is also continuous, and when observation space is much more complex, such as the image from the Atari game screen.
Atari oyun ekranından görüntü kimi davamlı hərəkdə olan və daha mürəkkəb müşahidə sahələrini də öyrənmək vacibdir. Bu problemlərdə tez-tez yaxşı nəticələr əldə etmək üçün neyron şəbəkələri kimi daha güclü maşın öyrənmə texnikasından istifadə etməliyik. Bu cür mürəkkəb mövzular qarşıdakı daha mürəkkəb AI kursumuzun mövzusudur.

@ -1,6 +1,6 @@
# Dağ maşınını öyrədin
[Openai Gym](http://gym.openai.com), elə hazırlanıb ki, bütün mühitlər eyni API ilə bizi təmin edir - məsələn, `reset`, `step` və `render` kimi eyni metodlar və **fəaliyyət sahəsi** və **müşahidə sahəsinin** eyni abstrakt formaları. Beləliklə, minimal kod dəyişiklikləri ilə eyni gücləndirmə öyrənməsi alqoritmlərini fərqli mühitlərə uyğunlaşdırmaq mümkündür.
[Openai Gym](http://gym.openai.com),elə hazırlanıb ki, bütün mühitlər eyni API ilə bizi təmin edir - məsələn, `reset`, `step` və `render` kimi eyni metodlar, **fəaliyyət sahəsi** və **müşahidə sahəsinin** eyni abstrakt formaları. Beləliklə minimal kod dəyişiklikləri ilə eyni gücləndirmə öyrənməsi alqoritmlərini fərqli mühitlərə uyğunlaşdırmaq mümkündür.
## Dağ maşını mühiti
@ -8,7 +8,7 @@
<img src="../images/mountaincar.png" width="300"/>
Məqsəd, hər addımda aşağıdakı hərəkətlərdən birini icra edərək vadidən çıxmaq və bayrağı tutmaqdır:
Məqsəd hər addımda aşağıdakı hərəkətlərdən birini icra edərək vadidən çıxmaq və bayrağı tutmaqdır:
| Dəyər | Mənası |
| ----- | ------------------------- |
@ -16,7 +16,7 @@ Məqsəd, hər addımda aşağıdakı hərəkətlərdən birini icra edərək va
| 1 | Sürətlənməyin |
| 2 | Sağa doğru sürəti artırın |
Bu problemin əsas hiyləsi, avtomobilin mühərrikinin bir təkanda təpəni aşmaq üçün kifayət qədər güclü olmamasıdır. Buna görə də müvəffəq olmağın yeganə yolu, təcil yaratmaq üçün geri və irəli sürməkdir.
Bu problemin əsas hiyləsi avtomobilin mühərrikinin bir təkanda təpəni aşmaq üçün kifayət qədər güclü olmamasıdır. Buna görə də müvəffəq olmağın yeganə yolu təcil yaratmaq üçün geri və irəli sürməkdir.
Müşahidə məkanı yalnız iki dəyərdən ibarətdir:
@ -30,7 +30,7 @@ Dağ avtomobili üçün mükafat sistemi olduqca çətindir:
* Agentə dağın üstündəki bayrağa(mövqeyi = 0.5) çatdığı təqdirdə 0 mükafat verilir.
* Agentin mövqeyi 0,5-dən az olduqda -1 ilə mükafatlandırılır.
Gedişat, avtomobil mövqeyi 0,5-dən çox olduqda və ya icra uzunluğu 200-dən çox olarsa, sona çatır.
Gedişat avtomobil mövqeyi 0,5-dən çox olduqda və ya icra uzunluğu 200-dən çox olarsa, sona çatır.
## Təlimat
@ -41,5 +41,5 @@ Dağ avtomobil problemini həll etmək üçün gücləndirmə öyrənməsi alqor
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | --------- | -------- | ----------------- |
| | Q-Learning alqoritmi minimal kod dəyişiklikləri ilə CartPole nümunəsi uğurla uyğunlaşdırılır və 200-dən az addımla bayrağın tutulması problemi həll edilir. | Q-Öyrənməsi alqoritmi internetdən götürülüb, amma yaxşı sənədləşdirilib; və ya mövcud alqoritm qəbul edilmişdir, amma istənilən nəticələr əldə edilməmişdir. | Tələbə heç bir alqoritmi uğurla uyğunlaşdıra bilməyib, amma həlli istiqamətində əhəmiyyətli addımlar atıb(vəziyyətin diskretləşməsini tətbiq edib, Q-Cədvəl data strukturunu qurub və s.) |
| -------- | -------- | ------- | ------------------------ |
| | Q-Learning alqoritmi minimal kod dəyişiklikləri ilə CartPole nümunəsi uğurla uyğunlaşdırılıb və 200-dən az addımla bayrağın tutulması problemi həll edilib. | Q-Öyrənməsi alqoritmi internetdən götürülüb, amma yaxşı sənədləşdirilib; və ya mövcud alqoritm qəbul edilmişdir, amma istənilən nəticələr əldə edilməmişdir. | Tələbə heç bir alqoritmi uğurla uyğunlaşdıra bilməyib, amma həlli istiqamətində əhəmiyyətli addımlar atıb(vəziyyətin diskretləşməsini tətbiq edib, Q-Cədvəl data strukturunu qurub və s.) |

@ -1,6 +1,6 @@
# Gücləndirilmiş öyrənməyə giriş
# Gücləndirici öyrənməyə giriş
Gücləndirilmiş öyrənmə, RL(Reinforcment Learning), nəzarətli və nəzarətsiz öyrənmənin yanında əsas maşın öyrənmə paradiqmalarından biri kimi qeyd olunur. RL qərarlar haqqındadır: düzgün qərarları vermək və ya ən azı onlardan öyrənmək.
Gücləndirici öyrənmə, RL(Reinforcement Learning), nəzarətli və nəzarətsiz öyrənmənin yanında əsas maşın öyrənmə paradiqmalarından biri kimi qeyd olunur. RL qərarlar haqqındadır: düzgün qərarları vermək və ya ən azı onlardan öyrənmək.
Təsəvvür edin ki, birja kimi simulyasiya edilmiş bir mühitiniz var. Müəyyən bir tənzimləmə tətbiq etsəniz nə baş verər? Bunun müsbət və ya mənfi təsirləri varmı? Mənfi bir şey baş verərsə, bu _mənfi gücləndirməni_ götürməli, ondan dərs almalı və kursu dəyişməlisiniz. Əgər bu müsbət nəticədirsə, siz həmin _müsbət gücləndirməyə_ əsaslanmalısınız.
@ -10,7 +10,7 @@ Təsəvvür edin ki, birja kimi simulyasiya edilmiş bir mühitiniz var. Müəyy
## Regional mövzu: Piter və Qurd (Rusiya)
[Piter və Qurd](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) — rus bəstəkarı [Sergei Prokofyev](https://en.wikipedia.org/wiki/Sergei_Prokofiev) tərəfindən yazılmış musiqili nağıldır. O canavarı qovmaq üçün cəsarətlə evindən çıxaraq meşənin təmizlənməsinə gedən gənc pioner Piter haqqındadır. Bu bölmədə biz Piterə kömək edəcək maşın öyrənmə alqoritmlərini öyrədəcəyik:
[Piter və Qurd](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) — rus bəstəkarı [Sergei Prokofyev](https://en.wikipedia.org/wiki/Sergei_Prokofiev) tərəfindən yazılmış musiqili nağıldır. O, canavarı qovmaq üçün cəsarətlə evindən çıxaraq meşənin təmizlənməsinə gedən gənc pioner Piter haqqındadır. Bu bölmədə biz Piterə kömək edəcək maşın öyrənmə alqoritmlərini öyrədəcəyik:
- Ətrafı **araşdırın** və optimal naviqasiya xəritəsi qurun
- Daha sürətli hərəkət etmək üçün skeytborddan necə istifadə etməyi və onun üzərində tarazlığı qorumağı **öyrənin**.
@ -19,35 +19,35 @@ Təsəvvür edin ki, birja kimi simulyasiya edilmiş bir mühitiniz var. Müəyy
> 🎥 Prokofyevin Piter və Qurd musiqisini dinləmək üçün yuxarıdakı şəkilə klikləyin
## Gücləndirilmiş öyrənmə
## Gücləndirici öyrənmə
Əvvəlki bölmələrdə siz maşın öyrənmə problemlərinin iki nümunəsini görmüsünüz:
- **Nəzarət edilən** öyrənmədə həll etmək istədiyimiz problemə nümunə həllər təklif edən verilənlər bazamız var idi. [Təsnifat](../../4-Classification/translations/README.az.md) və [reqressiya](../../2-Regression/translations/README.az.md) nəzarət edilən öyrənmə tapşırıqlarıdır.
- **Nəzarət edilən** öyrənmədə həll etmək istədiyimiz problemə nümunə həllər təklif edən verilənlər bazamız var idi. [Qruplaşdırma](../../4-Classification/translations/README.az.md) və [reqressiya](../../2-Regression/translations/README.az.md) nəzarət edilən öyrənmə tapşırıqlarıdır.
- **Nəzarətsiz** öyrənmədə isə bizim etiketli təlim datalarımız yoxdur. Nəzarətsiz öyrənmənin əsas nümunəsi [Klasterləşdirmə](../../5-Clustering/translations/README.az.md)-dir.
Bu bölmədə biz sizi etiketli təlim məlumatı tələb etməyən yeni tip öyrənmə problemi ilə tanış edəcəyik. Belə problemlərin bir neçə növü var:
- **[Yarı nəzarətli öyrənmədə](https://wikipedia.org/wiki/Semi-supervised_learning)** modeli əvvəlcədən öyrətmək üçün istifadə edilə bilən çoxlu etiketlənməmiş datamız var.
- **[Gücləndirilmiş öyrənmədə](https://wikipedia.org/wiki/Reinforcement_learning)** isə, agent simulyasiya edilmiş mühitdə eksperimentlər həyata keçirərək özünü necə aparmağı öyrənir.
- **[Gücləndirici öyrənmədə](https://wikipedia.org/wiki/Reinforcement_learning)** isə agent simulyasiya edilmiş mühitdə eksperimentlər həyata keçirərək özünü necə aparmağı öyrənir.
### Nümunə - kompüter oyunu
Tutaq ki, siz kompüterə şahmat və ya [Super Mario](https://wikipedia.org/wiki/Super_Mario) kimi oyun oynamağı öyrətmək istəyirsiniz. Kompüterin oyun oynaması üçün ona oyun vəziyyətlərinin hər birində hansı hərəkəti edəcəyini proqnozlaşdırmaq lazımdır. Bu təsnifat problemi kimi görünsə də, belə deyil - çünki bizdə vəziyyətlər və müvafiq hərəkətlər olan verilənlər bazası yoxdur. Mövcud şahmat matçları və ya Super Mario oynayan oyunçuların qeydə alınması kimi bəzi məlumatlarımız olsa da, çox güman ki, bu məlumatlar kifayət qədər çox sayda mümkün vəziyyəti əhatə etməyəcək.
Tutaq ki, siz kompüterə şahmat və ya [Super Mario](https://wikipedia.org/wiki/Super_Mario) kimi oyun oynamağı öyrətmək istəyirsiniz. Kompüterin oyun oynaması üçün ona oyun vəziyyətlərinin hər birində hansı hərəkəti edəcəyini proqnozlaşdırmaq lazımdır. Bu qruplaşdırma problemi kimi görünsə də, belə deyil - çünki bizdə vəziyyətlər və müvafiq hərəkətlər olan verilənlər bazası yoxdur. Mövcud şahmat matçları və ya Super Mario oynayan oyunçuların qeydə alınması kimi bəzi məlumatlarımız olsa da, çox güman ki, bu məlumatlar kifayət qədər çox sayda mümkün vəziyyəti əhatə etməyəcək.
Mövcud oyun datalarını axtarmaq əvəzinə, **Gücləndirilmiş Öyrənmə** (RL) *kompüteri dəfələrlə oynatmaq* və nəticəni müşahidə etmək ideyasına əsaslanır. Beləliklə, Gücləndirilmiş Öyrənmə tətbiq etmək üçün bizə iki şey lazımdır:
Mövcud oyun datalarını axtarmaq əvəzinə, **Gücləndirici Öyrənmə** (RL) *kompüteri dəfələrlə oynatmaq* və nəticəni müşahidə etmək ideyasına əsaslanır. Beləliklə, Gücləndirici Öyrənmə tətbiq etmək üçün bizə iki şey lazımdır:
- **Bir mühit** və **bir simulyator** bizə dəfələrlə oyun oynamağa imkan verir. Bu simulyator bütün oyun qaydalarını, eləcə də mümkün vəziyyətləri və hərəkətləri müəyyən edəcək.
- **Mükafat funksiyası**, bu, bizə hər bir hərəkət və ya oyun zamanı nə qədər yaxşı etdiyimizi bildirir.
- **Mükafat funksiyası**, bu bizə hər bir hərəkət və ya oyun zamanı nə qədər yaxşı etdiyimizi bildirir.
Maşın öyrənmənin digər növləri ilə RL arasındakı əsas fərq ondan ibarətdir ki, RL-də biz adətən oyunu bitirənə qədər qalib və ya uduzduğumuzu bilmirik. Buna görə də, hansısa bir hərəkətin yaxşı olub olmadığını deyə bilmərik. Çünki yalnız oyunun sonunda mükafat alırıq və bizim məqsədimiz qeyri-müəyyən şəraitdə modeli öyrətməyə imkan verəcək alqoritmləri qurmaqdır. Biz **Q-öyrənməsi** adlı bir RL alqoritmini öyrənəcəyik.
Maşın öyrənmənin digər növləri ilə RL arasındakı əsas fərq ondan ibarətdir ki, RL-də biz adətən oyunu bitirənə qədər qalib və ya məğlub olduğumuzu bilmirik. Buna görə də hansısa bir hərəkətin yaxşı olub olmadığını deyə bilmərik. Çünki yalnız oyunun sonunda mükafat alırıq və bizim məqsədimiz qeyri-müəyyən şəraitdə modeli öyrətməyə imkan verəcək alqoritmləri qurmaqdır. Biz **Q-öyrənməsi** adlı bir RL alqoritmini öyrənəcəyik.
## Dərslər
1. [Gücləndirilmiş öyrənmə və Q-Öyrənməsinə Giriş](../1-QLearning/translations/README.az.md)
1. [Gücləndirici öyrənmə və Q-Öyrənməsinə Giriş](../1-QLearning/translations/README.az.md)
2. [Gym simulyasiya mühitindən istifadə](../2-Gym/translations/README.az.md)
## Tövhə verənlər
"Gücləndirilmiş öyrənməyə giriş" [Dmitri Soşnikov](http://soshnikov.com) tərəfindən ♥️ ilə yazılmışdır.
"Gücləndirici öyrənməyə giriş" [Dmitri Soşnikov](http://soshnikov.com) tərəfindən ♥️ ilə yazılmışdır.

@ -3,15 +3,15 @@
![Maşın öyrənməsinin real həyatda tətbiqinin ümumiləşdirilmiş eskizi](../../../sketchnotes/ml-realworld.png)
> [Tomomi Imura](https://www.twitter.com/girlie_mac) tərəfindən eskiz
Bu kurikulumda, sən öyrətmə datasının bir neçə hazırlama üsulunu və maşın öyrənməsi modelini qurmağı öyrənmisən. Sən bir neçə klassik reqressiya, klasterləşdirmə, təsnifatlandırma, təbii dil emalı və zaman seriyası modelləri qurmusan. Təbriklər! İndi sənə maraqlı gələ bilər ki, bu modellərin hamısı real həyatda necə tətbiq olunurlar?
Bu kurikulumda, sən öyrətmə datasının bir neçə hazırlama üsulunu və maşın öyrənməsi modelini qurmağı öyrənmisən. Sən bir neçə klassik reqressiya, klasterləşdirmə, qruplaşdırma, təbii dil emalı və zaman seriyası modelləri qurmusan. Təbriklər! İndi sənə maraqlı gələ bilər ki, bu modellərin hamısı real həyatda necə tətbiq olunurlar?
Sənayedə daha çox maraq AI, dərin öyrənmə ətrafında çox maraq toplansa da, hələ də klassik maşın öyrənmə modelləri üçün çoxlu dəyərli tətbiqlər var. Sən bu tətbiqlərin hətta bəzilərini bugün istifadə etmisən! Bu dərsdə sən 8 fərqli sənayədə və ixtisaslaşmış sahədə bu modelləri istifadə etməklə tətbiqləri istifadəçilərə necə daha məhsuldar, etibarlı, ağıllı və dəyərli edildiyini kəşf edəcəksən.
Sənayedə daha çox maraq AI, dərin öyrənmə ətrafında toplansa da, hələ də klassik maşın öyrənmə modelləri üçün çoxlu dəyərli tətbiqlər var. Sən bu tətbiqlərin hətta bəzilərini bugün istifadə etmisən! Bu dərsdə sən 8 fərqli sənayədə və ixtisaslaşmış sahədə bu modelləri istifadə etməklə tətbiqləri istifadəçilərə necə daha məhsuldar, etibarlı, ağıllı və dəyərli edildiyini kəşf edəcəksən.
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/49/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/49/?loc=az)
## 💰 Maliyyə
Maliyyə sektory maşın öyrənməsi üçün çox fürsətlər verir. Bu sahədəki çox problemlər özləri modelləşdirilib və ML vasitəsilə həll olunmağa meyillidir.
Maliyyə sektoru maşın öyrənməsi üçün çox fürsətlər verir. Bu sahədəki çox problemlər özləri modelləşdirilib ML vasitəsilə həll olunmağa meyillidir.
### Bank kartlarında fırıldaqçılığıq təyini
@ -24,14 +24,14 @@ K-ortalama klasterləşməsi bank kartı fırıldaqçılığını təyin edilmə
Sərvətin idarə edilməsində fərd və ya şirkət müştərilərinin adından sərmayələrin icrasında cavabdehdirlər. Onların işi şərvəti qorumaq və uzun müddətdə inkişaf etdirməkdir, buna görə də onlara sərmayəni düzgün seçərək məhsuldar nəticə göstərmək çox vacibdir.
Müəyyən bir sərmayənin necə işlədiyini ölçməyin yollarından biri statistik reqressiyadır. [Xətti reqressiya](../../../2-Regression/1-Tools/translations/README.az.md) fondun başqa etalonlarla müqayisədə necə işlədiyini başa düşmək üçün dəyərli bir alətdir. Biz həmçinin reqressiyanın nəticəsinin statistik olaraq nə qədər təsirli olduğunu və ya müştərinin sərmayəsinə nə qədər təsir edə biləcəyini öyrənə bilərik. Sən analizini əlavə olaraq risk faktorlarının nəzərə alan müxtəlif reqressiya üsulları ilə genişləndirə bilərsən. Misal üçün bu müəyyən fonda necə təsir edə biləcəyini və onu necə ölçə biləcəyini aşağıdakı məqalədən öyrənə bilərsən.
Müəyyən bir sərmayənin necə işlədiyini ölçməyin yollarından biri statistik reqressiyadır. [Xətti reqressiya](../../../2-Regression/1-Tools/translations/README.az.md) fondun başqa etalonlarla müqayisədə necə işlədiyini başa düşmək üçün dəyərli bir alətdir. Biz həmçinin reqressiyanın nəticəsinin statistik olaraq nə qədər təsirli olduğunu və ya müştərinin sərmayəsinə nə qədər təsir edə biləcəyini öyrənə bilərik. Analizini əlavə olaraq risk faktorlarının nəzərə alan müxtəlif reqressiya üsulları ilə genişləndirə bilərsən. Misal üçün bunun müəyyən fonda necə təsir edə biləcəyini və onu necə ölçə biləcəyini aşağıdakı məqalədən öyrənə bilərsən.
[İstinad](http://www.brightwoodventures.com/evaluating-fund-performance-using-regression/)
## 🎓 Təhsil
Təhsil sektoru da ML tətbiq oluna biləcək çox maraqlı sahədir. Burada imtahan və ya esselərdə fırıldağın, hansısa tərəfin şüurlu və ya şüursuz tutulmasını təyin olunması kimi maraqlı problemlər var.
### Tələbələrin davranışınının proqnozlaşdırılması
### Tələbələrin davranışının proqnozlaşdırılması
[Coursera](https://coursera.com) online açıq kurs təminatçısıdır və onların çoxlu mühəndislik qərarlarının müzakirə olunduğu möhtəşəm bloqları var. Bir araşdırmada onlar aşağı NPS (Başqasına Tövsiyyə Dərəcəsi) ilə kursun baxılma və ya yarımçıq qoyulma halları arasında əlaqəni öyrənmək üçün reqressiya xətti çəkərək öyrənmək istəyiblər.
[İstinad](https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a)
@ -47,7 +47,7 @@ Pərakəndə satış sektoru yaxşı müştəri təcrübəsi yaratmaqdan inventa
### Müştəri təcrübəsini fərdiləşdirmək
Ev əşyaları və mebellər satışı edən Wayfair şirkəsi müştərilərinin zövqlərinə və ehtiyaclarına uyğun doğru məhsulu tapmaqda kömək edir. Bu məqalədə şirkətin mühəndisləri MI və NPL istifadə etməklə "müştərilərə doğru nəticələrin çıxardılması" necə etdiklərini paylaşıblar. Onlar məlumatın filtrlənməsi, təsnifatlandırılması, məhsul və fikrin müştəri rəylərindən təyin olunmasını istifadə edərək Sorğuların məqsədi təyin edən mühərrik (Query Intent Engine) hazırlayıblar. Bu NLP-nin onlayn pərakəndə sahəsində istifadə olunan klassik tətbiqidir.
Ev əşyaları və mebellər satışı edən Wayfair şirkəsi müştərilərinin zövqlərinə və ehtiyaclarına uyğun doğru məhsulu tapmaqda kömək edir. Bu məqalədə şirkətin mühəndisləri ML və NPL istifadə etməklə "müştərilərə doğru nəticələrin çıxardılması" necə etdiklərini paylaşıblar. Onlar məlumatın filtrlənməsi, qruplaşdırılması, məhsul və fikrin müştəri rəylərindən təyin olunmasını istifadə edərək sorğuların məqsədini təyin edən mühərrik (Query Intent Engine) hazırlayıblar. Bu NLP-nin onlayn pərakəndə sahəsində istifadə olunan klassik tətbiqidir.
[İstinad](https://www.aboutwayfair.com/tech-innovation/how-we-use-machine-learning-and-natural-language-processing-to-empower-search)
### İnventarın idarə edilməsi
@ -61,17 +61,17 @@ Səhiyyə sektorunda araşdırmaları optimallaşdırılması, xəstələrin yen
### Tibbi təcrübələrin idarə edilməsi
Dərman hazırlayanlar üçün tibbi təcrübələrdəki zəhərlənmə halları ən narahat olduqları məqamdır. Nə qədər zəhərlənmə qəbul oluna bilər? Bu araşdırmada tibbi təcrübələrin nəticələrinin proqnozlaşdırılması üçün yeni üsulların yaradılmasında müxtəlif üsullar analiz olunub. Onlar xüsusi olaraq təsadüfi parametrlər istifadə edərək [təsnifatlandırıcının](../../../4-Classification/translations/README.az.md) köməyi ilə dərman qruplarını ayırd edə biliblər.
[İstinac](https://www.sciencedirect.com/science/article/pii/S2451945616302914)
Dərman hazırlayanlar üçün tibbi təcrübələrdəki zəhərlənmə halları ən narahat olduqları məqamdır. Nə qədər zəhərlənmə qəbul oluna bilər? Bu araşdırmada tibbi təcrübələrin nəticələrinin proqnozlaşdırılması üçün yeni üsulların yaradılmasında müxtəlif üsullar analiz olunub. Onlar xüsusi olaraq təsadüfi parametrlər istifadə edərək [qruplaşdırıcının](../../../4-Classification/translations/README.az.md) köməyi ilə dərman qruplarını ayırd edə biliblər.
[İstinad](https://www.sciencedirect.com/science/article/pii/S2451945616302914)
### Xəstəxanada yenidən qəbulunun idarə edilməsi
Xəstəxana xidmədi çox bahalıdır, xüsusən də xəstələrin yenidən yerləşdirilməsi lazım olduqda. Bu araşdırmada ML [klasterləşdirmə](../../5-Clustering/README.md) alqoritmləri istifadə etməklə yenidən yerləşdirilməsi lazım olacaq xəstələrin təxmin edən şirkət haqqında danışılır. Bu klasterlər "yenidən yerləşdirilməsi lazım olan qruplarda oxşar xüsusiyyətləri" analiz etməkdə kömək edir.
Xəstəxana xidmədi çox bahalıdır, xüsusən də xəstələrin yenidən yerləşdirilməsi lazım olduqda. Bu araşdırmada ML [klasterləşdirmə](../../../5-Clustering/translations/README.az.md) alqoritmləri istifadə etməklə yenidən yerləşdirilməsi lazım olacaq xəstələri təxmin edən şirkət haqqında danışılır. Bu klasterlər "yenidən yerləşdirilməsi lazım olan qruplarda oxşar xüsusiyyətləri" analiz etməkdə kömək edir.
[İstinad](https://healthmanagement.org/c/healthmanagement/issuearticle/hospital-readmissions-and-machine-learning)
### Xəstəliklərin idarə olunması
Ən son pandemiya bizə maşın öyrənməsinin köməyi ilə xəstəliyin yayılmasının qarşısı alınması üsullarını aydınlatdı. Bu məqalədə ARIMA-nın, logistika əyrilərinin, xətti reqressiyanın və SARIMA-nın istifadəsini görəcəksən. "Bu araşdırma virusun yayılma sürətini hesablamağa, ölüm və sağalma ehtimallarını proqnozlaşdrmağa çalışıb və bizim gələcəyə daha yaxşı hazırlıqlı olmağa və sağ qalmağa kömək edəcək."
Ən son pandemiya bizə maşın öyrənməsinin köməyi ilə xəstəliyin yayılmasının qarşısı alınması üsullarını aydınlatdı. Bu məqalədə ARIMA-nın, logistika əyrilərinin, xətti reqressiyanın və SARIMA-nın istifadəsini görəcəksən. "Bu araşdırma virusun yayılma sürətini hesablamağa, ölüm və sağalma ehtimallarını proqnozlaşdrmağa çalışıb bizim gələcəyə daha yaxşı hazırlıqlı olmağa və sağ qalmağa kömək edəcək."
[İstinad](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7979218/)
## 🌲 Ekologiya və yaşıl texnologiya
@ -80,7 +80,7 @@ Təbiət və ekologiya heyvanlar və təbiət arasında əlaqədə olan bir çox
### Meşələrin idarə edilməsi
Əvvəlki dərslərdə [Gücləndirilmiş öyrənmə (RL)](../../../8-Reinforcement/translations/README.az.md) haqqında öyrənmisən. Bu üsul təbiətdəki hərəkərləri proqnozlaşdırmaqda çox faydalıdır. Xüsusi ilə meşə yanğınları və ziyanverici həşaratlar kimi ekoloji problemləri izləməkdə istifadə oluna bilinir. Kanadada bir qrup tədqiqatçı Gücləndirilmiş öyrənmə üsulu tətbiq edərək peyk şəkillərindən meşə yanğınlarının dinamika modelini qurublar. Onlar innovativ "məkanda yayılma prosesini(SSP)" istifadə etməklə meşə yanğınını "müstəvi üzərində istənilən mövqedə olan agentə" bənzədiblər. "Yanğının olduğu məkandan verilən zamandan sonra edə biləcəyi hərəkətlər yalnız şimala, cənuba, şərqə və qərbə yayılmaq və ya heç yayılmamaqdır.
Əvvəlki dərslərdə [Gücləndirici öyrənmə (RL)](../../../8-Reinforcement/translations/README.az.md) haqqında öyrənmisən. Bu üsul təbiətdəki hərəkətləri proqnozlaşdırmaqda çox faydalıdır. Xüsusi ilə meşə yanğınları və ziyanverici həşaratlar kimi ekoloji problemləri izləməkdə istifadə oluna bilinir. Kanadada bir qrup tədqiqatçı Gücləndirici öyrənmə üsulu tətbiq edərək peyk şəkillərindən meşə yanğınlarının dinamika modelini qurublar. Onlar innovativ "məkanda yayılma prosesini(SSP)" istifadə etməklə meşə yanğınını "müstəvi üzərində istənilən mövqedə olan agentə" bənzədiblər. "Yanğının olduğu məkandan verilən zamandan sonra edə biləcəyi hərəkətlər yalnız şimala, cənuba, şərqə və qərbə yayılmaq və ya heç yayılmamaqdır.
Bu yanaşma sadə RL tətbiqini yanğının ani yayılmasının dinamikasına daha uyğun olan məşhur Markov Qərarvermə Prosesinə (MDP) çevirir." Aşağıdakı linkdən klassik alqoritmlərin bu qrupa aid problemlərdə necə istifadə olunması barədə oxuya bilərsiniz.
[İstinad](https://www.frontiersin.org/articles/10.3389/fict.2018.00006/full)
@ -89,12 +89,12 @@ Bu yanaşma sadə RL tətbiqini yanğının ani yayılmasının dinamikasına da
Dərin öyrənmə heyvanların hərəkətinin vizual olaraq izlənməsində inqilab yaratsa da (qütb ayısını izləmək üçün proqramı [burada](https://docs.microsoft.com/learn/modules/build-ml-model-with-azure-stream-analytics/?WT.mc_id=academic-77952-leestott) hazırlaya bilərsən), klassik ML-in bu tapşırıqda hələ də yeri var.
Ferma heyvanlarının hərəkətlərini izləyən sensorlar və IoT (Əşyaların interneti) cihazları vizual emal üçün istifadə olunur, lakin datanın əvvəldən emal olunması üçün sadə ML texnikalarını istifadə etmək daha faydalıdır. Misal üçün bu məqalədə qoyunların duruşları müxtəlif təsnifatlandırı alqoritmlərlə müşahidə və analiz olunur. 335-ci səhifədə ROC əyrisini tanıyacaqsan.
Ferma heyvanlarının hərəkətlərini izləyən sensorlar və IoT (Əşyaların interneti) cihazları vizual emal üçün istifadə olunur, lakin datanın əvvəldən emal olunması üçün sadə ML texnikalarını istifadə etmək daha faydalıdır. Misal üçün bu məqalədə qoyunların duruşları müxtəlif qruplaşdırıcı alqoritmlərlə müşahidə və analiz olunur. 335-ci səhifədə ROC əyrisini tanıyacaqsan.
[İstinat](https://druckhaus-hofmann.de/gallery/31-wj-feb-2020.pdf)
### ⚡️ Enerjinin idarə edilməsi
[Zaman seriyasının proqnoqlaşdırılması](../../../7-TimeSeries/translations/README.az.md) dərsimizdə tələb və təklifi başa düşərək kəndə gəlir gətirəsək ağıllı parklama sayğacı konseptini qurmuşduq. Bu məqalədə ağıllı sayğaclar istifadə edərək klasterləşmə, reqressiya və zaman seriyasının proqnozlaşdırılmasının birgə tətbiqi ilə gələcəkdə İrlandiyada enerji istehlakını proqnozlaşdırılmasına necə kömək etdiyindən danışılır.
[Zaman seriyasının proqnoqlaşdırılması](../../../7-TimeSeries/translations/README.az.md) dərsimizdə tələb və təklifi başa düşərək kəndə gəlir gətirəcək ağıllı parklama sayğacı konseptini qurmuşduq. Bu məqalədə ağıllı sayğaclar istifadə edərək klasterləşmə, reqressiya və zaman seriyasının proqnozlaşdırılmasının birgə tətbiqi ilə gələcəkdə İrlandiyada enerji istehlakını proqnozlaşdırılmasına necə kömək etdiyindən danışılır.
[İstinad](https://www-cdn.knime.com/sites/default/files/inline-images/knime_bigdata_energy_timeseries_whitepaper.pdf)
## 💼 Sığorta
@ -103,39 +103,39 @@ Sığorta sektoru ML istifadə etməklə sərfəli maliyyə və risk modellərin
### Dəyişkənliyin idarə edilməsi
Həyat sığortası təklif edən şirkət Metlife öz maliyyə modellərində dəyişkənlik risklərinin qarşısını almaq üçün istifadə etdiyi üsullardan bəhs etməyə dəyər. Bu məqalədə ikili və çoxsaylı təsnifatlandırı vizuallardan istifadə olunduğunu görəcəksən. Sən həmçinin proqnozlaşdırma qrafiklərini də kəşf edəcəksən.
Həyat sığortası təklif edən şirkət Metlife öz maliyyə modellərində dəyişkənlik risklərinin qarşısını almaq üçün istifadə etdiyi üsullardan bəhs etməyə dəyər. Bu məqalədə ikili və çoxsaylı qruplaşdırıcı vizuallardan istifadə olunduğunu görəcəksən. Sən həmçinin proqnozlaşdırma qrafiklərini də kəşf edəcəksən.
[İstinad](https://investments.metlife.com/content/dam/metlifecom/us/investments/insights/research-topics/macro-strategy/pdf/MetLifeInvestmentManagement_MachineLearnedRanking_070920.pdf)
## 🎨 İncəsənət, Mədəniyyət, və Ədəbiyyat
İncəsənət sahəsində, misal olaraq jurnalistikada çoxlu saytda maraqlı problemlər var. Saxta xəbərlərin insanların fikirlərinə təsir etməsi, hətta demokratiyanın pozulmasına yol açması çox böyük bir problemdir. Muzeylər də həmçinin ML istifadə etməklə artefaktlar arasında əlaqələr tapmaqdan resurs planlamasına kimi çox şeydə faydalana bilirlər.
İncəsənət sahəsində, misal olaraq jurnalistikada çoxlu sayda maraqlı problemlər var. Saxta xəbərlərin insanların fikirlərinə təsir etməsi, hətta demokratiyanın pozulmasına yol açması çox böyük bir problemdir. Muzeylər də həmçinin ML istifadə etməklə artefaktlar arasında əlaqələr tapmaqdan resurs planlamasına kimi çox şeydə faydalana bilirlər.
### Saxta xəbərlərin aşkarlanması
İndiki mediyada saxta xəbərlərin aşkarlanması siçan və pişik oynununa çevrilib. Bu məqalədə tədqiqatçılar yoxlamalarına əsasən bir neçə fərqli ML texnikalarını birləşdirərək ən yaxşı modeli yaratdıqlarını düşünürlər: "Bu sistem təbii dil emalı istifadə edərək datadan faktları çıxarır və həmin faktlar Naive Bayes, Dəstək Vektor Maşını (SVM), Təsadüfi Meşə (RF), Stokastik Qradient Enişi (SGD) və Logistika Reqressiyası (LR) kimi maşın öyrənməsi alqoritmlərində öyrətmə datası kimi istifadə olunur".
İndiki mediyada saxta xəbərlərin aşkarlanması siçan və pişik oynununa çevrilib. Bu məqalədə tədqiqatçılar yoxlamalarına əsasən bir neçə fərqli ML texnikalarını birləşdirərək ən yaxşı modeli yaratdıqlarını düşünürlər: "Bu sistem təbii dil emalı istifadə edərək datadan faktları çıxarır və həmin faktlar Naive Bayes, Dəstək Vektor Maşını (SVM), Random Forest (RF), Stokastik Qradient Enişi (SGD) və Logistik Reqressiyası (LR) kimi maşın öyrənməsi alqoritmlərində öyrətmə datası kimi istifadə olunur".
[İstinad](https://www.irjet.net/archives/V7/i6/IRJET-V7I6688.pdf)
Bu məqalə müxtəlif ML sahələrini birləşdirməklə saxta xəbərlərin yayılmasının və həqiqi ziyan verməsini dayandırmaqda kömək edən maraqlı nəticələrin əldə olunduğunu göstərir, misal üçün COVID müalicəsi ilə bağlı xəbərlərin yayılmasında təkan insanlar arasında izdihama və zorakılığa səbəb ola bilər.
Bu məqalə müxtəlif ML sahələrini birləşdirməklə saxta xəbərlərin yayılmasını və həqiqi ziyan verməsini dayandırmaqda kömək edən maraqlı nəticələrin əldə olunduğunu göstərir, misal üçün COVID müalicəsi ilə bağlı xəbərlərin yayılmasında təkan insanlar arasında izdihama və zorakılığa səbəb ola bilər.
### Muzeylərdə ML
Muzeylər AI inqilabı ilə tarixi zirvəyə qalxıb, belə ki kolleksiyaların rəqəmsallaşdırılması, kataloqlaşdırılması və artefaktların arasında əlaqələrin tapılması texnologiyanın köməyi ilə çox asanlaşıb. [In Codice Ratio](https://www.sciencedirect.com/science/article/abs/pii/S0306457321001035#:~:text=1.,studies%20over%20large%20historical%20sources) kimi layihələr Vatikan Arxivləri kimi əlçatmaz kolleksiyaların sirrlərini açmaqda kömək ediblər. Muzeylər ML modelləri ilə həmçinin biznes tərəfdən də faydalanırlar.
Muzeylər AI inqilabı ilə tarixi zirvəyə qalxıb, belə ki kolleksiyaların rəqəmsallaşdırılması, kataloqlaşdırılması və artefaktların arasında əlaqələrin tapılması texnologiyanın köməyi ilə çox asanlaşıb. [In Codice Ratio](https://www.sciencedirect.com/science/article/abs/pii/S0306457321001035#:~:text=1.,studies%20over%20large%20historical%20sources) kimi layihələr Vatikan Arxivləri kimi əlçatmaz kolleksiyaların sirrlərini açmaqda kömək ediblər. Muzeylər ML modelləridən həmçinin biznes tərəfdən də faydalanırlar.
Misal üçün Çikaqo İncəsənət İnstitutu modellər qurmaqla onun proqnozları əsasında tamaşaçıların olan marağına və iştirakın əsaslanan sərgilər hazırlayırlar. Burada əsas məqsəd muzeyi ziyarət edən qonaqlara hər dəfə fərdiləşdirilmiş və optimallaşdırılmış təcrübə yaşatmaqdır. "İncəsənət İnstitutunun böyük vitse prezidenti Andryu Siminkin sözlərinə görə 2017-ci ildə model dəqiqlikdə 1 faiz xəta ilə iştirak və satışları proqnozlaşdırmışdır".
Misal üçün Çikaqo İncəsənət İnstitutu modellər qurmaqla onun proqnozları əsasında tamaşaçıların marağına və iştirakına əsaslanan sərgilər hazırlayırlar. Burada əsas məqsəd muzeyi ziyarət edən qonaqlara hər dəfə fərdiləşdirilmiş və optimallaşdırılmış təcrübə yaşatmaqdır. "İncəsənət İnstitutunun böyük vitse prezidenti Andryu Siminkin sözlərinə görə 2017-ci ildə model dəqiqlikdə 1 faiz xəta ilə iştirak və satışları proqnozlaşdırmışdır".
[İstinad](https://www.chicagobusiness.com/article/20180518/ISSUE01/180519840/art-institute-of-chicago-uses-data-to-make-exhibit-choices)
## 🏷 Marketinq
### Müştəri seqmentasiyası
Marketingin ən effektiv strategiyası müştəriləri fərqli qruplar halında hədəfləməkdir. Bu məqalədə klasterləşmə alqoritmi tətbiq olunmaqla fərqləndirilən marketinqə necə dəstək olunması barədə danışılır. Fərqləndirilən marketinq şirlətlərə brendlərinin daha yaxşı tanıtmağa, daha çox müştəriyə çıxmağa və daha çox pul qazanmağa kömək edir.
Marketingin ən effektiv strategiyası müştəriləri fərqli qruplar halında hədəfləməkdir. Bu məqalədə klasterləşmə alqoritmi tətbiq olunmaqla fərqləndirilən marketinqə necə dəstək olunması barədə danışılır. Fərqləndirilən marketinq şirlətlərə brendlərini daha yaxşı tanıtmağa, daha çox müştəriyə çıxmağa və daha çox pul qazanmağa kömək edir.
[İstinad](https://ai.inqline.com/machine-learning-for-marketing-customer-segmentation/)
## 🚀 Məşğələ
Bu kurikulumda öyrəndiyin texnikaların istifadə oluna biləcəyi başqa bir sahəni tap və ML-in necə istifadə olunmasını araşdır.
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/50/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/50/?loc=az)
## Təkrarlayın və özünüz öyrənin

@ -2,12 +2,12 @@
## Təlimatlar
Bu dərsdə klassik ML istifadə etməklər bir çox real həyat problemlərini necə həll olunduğunu öyrəndin. Dərin öyrənmənin, AI alətlərinin və texnikalarının istifadəsi, neyron şəbəkələrin köməyi ilə yaradılan alətlər də bu sahələrdə çox faydalı olub, lakin bu kurikulumndakı klassik ML texnikalarının tətbiqi hələ də böyük dəyərə sahibdir.
Bu dərsdə klassik ML istifadə etməklə bir çox real həyat problemlərini necə həll olunduğunu öyrəndin. Dərin öyrənmənin, AI alətlərinin və texnikalarının istifadəsi, neyron şəbəkələrin köməyi ilə yaradılan alətlər də bu sahələrdə çox faydalı olub, lakin bu kurikulumndakı klassik ML texnikalarının tətbiqi hələ də böyük dəyərə sahibdir.
Bu tapşırıqda özünü hakatonda istirakçı kimi təsəvvür et. Bu kurikulumnda öyrəndiyin və istədiyin klassik ML istifadə etməklə adı çəkilmiş sahələrdə hansısa problemi həll etməyə çalış. Öz ideyanı necə tətbiq edəcəyinlə bağlı bir təqdimat hazırla. Öz konseptin üçün nümunə data yığıb ML modeli qursan, əlavə bonus xallar da toplaya bilərsən!
## Rubrika
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | ------------------------------------------------------- | ------------------------------------------------- | -------------------------------- |
| -------- | -------- | ------- | ------------------------ |
| | PowerPoint təqdimatı hazırdır - modelin qurulmasına görə bonus xal tətbiq olunur | İnnovativ olmayan, sadə təqdimat hazırlandı | İş yarımçıqdır |

@ -1,18 +1,18 @@
# Postskipt: Maşın öyrənməsində Məsul AI idarə paneli komponentləri ilə model analizi
## [Mühazirə öncəsi quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/5/)
## [Mühazirədən əvvəl test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/5/?loc=az)
## Giriş
Maşın öyrənməsi günlük həyatımıza təsir edir. AI bizə fərd kimi, həmçinin cəmiyyətimizə, səhiyyəyə, maliyyəyəy, təhsilə və işimizə təsir edən əsas sistemlərə öz yolunu tapır. Misal olaraq sistemlər və modellər sağlamlığa dair diaqnozlar və ya fırıldaqçılığın tapılması kimi gündəlik qərarvermə tapşırıqlarında iştirak edirlər. Nəticə etibarı ilə AI-də olan inkişaf və paralel sürətli adoptasiyaya cavab olaraq cəmiyyətimizin gözləntiləri və genişlənən tənzimləmələr də artır. Biz daim AI sistemlərinin bəzi sahələrdə gözləntiləri ödəmədiyini görürük, yeni çağırışlar yaradır və hökümətlər AI həllərini tənzimləməyə başlayırlar. Buna görə də modellərin analizindən hər kəsə ədalətli, etibarlı, inkluziv, şəffaf və cavabdeh olacağı nəticələr çıxarması vacibdir.
Maşın öyrənməsi günlük həyatımıza təsir edir. AI bizə fərd kimi, həmçinin cəmiyyətimizə, səhiyyəyə, maliyyəyə, təhsilə və işimizə təsir edən əsas sistemlərə öz yolunu tapır. Misal olaraq, sistemlər və modellər sağlamlığa dair diaqnozlarda və ya fırıldaqçılığın tapılması kimi gündəlik qərarvermə tapşırıqlarında iştirak edirlər. Nəticə etibarı ilə AI-də olan inkişaf və paralel sürətli adoptasiyaya cavab olaraq cəmiyyətimizin gözləntiləri və genişlənən tənzimləmələr də artır. Biz daim AI sistemlərinin bəzi sahələrdə gözləntiləri ödəmədiyini görürük, yeni çağırışlar yaradır və hökümətlər AI həllərini tənzimləməyə başlayırlar. Buna görə də modellərin analizindən hər kəsə ədalətli, etibarlı, inkluziv, şəffaf və cavabdeh olacağı nəticələr çıxarması vacibdir.
Bu kurikulumda biz məsul AI problemləri olan modelləri praktik hansı alətlərlə yoxlaya biləcəyimizi öyrənəcəyik. Ənənəvi maşın öyrənməsi analizi texnikaları toplanmış dəqiqlik və ya orta xəta itkisi kimi kəmiyyət hesablamalarına əsaslanırlar. Təsəvvür et ki, model qurmaq üçün istifadə etdiyin datada bəzi demoqrafik məlumatlar əksikdir, misal üçün irqi, cinsi, siyasi görüşü, dini inanc kimi demoqrafiyaları normalara uyğun paylanmayıb. Modelin nəticəsinin yalnız bəzi demoqrafiyaya uyğun olsa necə olacaq? Bunun nəticəsində modeldən azlıq təşkil edən həssas qruplar üçün ədalətlilik, inklusivlik və ya etibarlılıq problemləri ortaya çıxacaq. Başqa məqam isə budur ki, maşın öyrənməsi modelləri qara qutu kimi hesab olunur, bu onların proqnozlarının nəyə əsaslanıb verdiyini izah etməyi daha da çətinləşdirir. Bunların hamısı data mühəndislərinin və AI developerlərinin modeli analiz etmək, ədalətliliyini və ya etibarlılığını yoxlamaq üçün lazımi alətlərinin olmamasına görə rastlaşdıqları problemlərdir.
Bu kurikulumda biz məsul AI problemləri olan modelləri praktik hansı alətlərlə yoxlaya biləcəyimizi öyrənəcəyik. Ənənəvi maşın öyrənməsi analizi texnikaları toplanmış dəqiqlik və ya orta xəta itkisi kimi kəmiyyət hesablamalarına əsaslanırlar. Təsəvvür et ki, model qurmaq üçün istifadə etdiyin datada bəzi demoqrafik məlumatlar əksikdir, misal üçün irqi, cinsi, siyasi görüş, dini inanc kimi demoqrafiyaları normalara uyğun paylanmayıb. Modelin nəticəsinin yalnız bəzi demoqrafiyaya uyğun olsa necə olacaq? Bunun nəticəsində modeldə azlıq təşkil edən həssas qruplar üçün ədalətlilik, inklusivlik və ya etibarlılıq problemləri ortaya çıxacaq. Başqa məqam isə budur ki, maşın öyrənməsi modelləri qara qutu kimi hesab olunur, bu onların proqnozlarının nəyə əsaslanıb verdiyini izah etməyi daha da çətinləşdirir. Bunların hamısı data mühəndislərinin və AI developerlərinin modeli analiz etmək, ədalətliliyini və ya etibarlılığını yoxlamaq üçün lazımi alətlərinin olmamasına görə rastlaşdıqları problemlərdir.
Bu dərsdə modelləri aşağıdakı üsullarla analiz etməyi öyrənəcəksən:
- **Xəta analizi**: data paylanmasının hansı hissəsində modelin daha çox xətası olduğunu aşkar edəcək.
- **Modelə baxış**: modelin performans dəyərlərində bərabərsizliklərini aşkarlamaq üçün datanın müxtəlif seqmentlərində müqayisəli analizlər aparacaq.
- **Data anlizi**: modelini korlayan, bir demoqrafiyanı digərindən daha üstün tuta biləcək hallarda datanın hansı hissəsində iştirakın həddindən artıq və ya əksik olduğunu araşdıracaq.
- **Data analizi**: modeli korlayan, bir demoqrafiyanı digərindən daha üstün tuta biləcək hallarda datanın hansı hissəsində iştirakın həddindən artıq və ya əksik olduğunu araşdıracaq.
- **Parametr önəmi**: hansı parametlərin modelin qlobal və ya lokal səviyyədə proqnazlarına təsir edəcəyini anlayacaq.
## İlkin tələblər
@ -23,12 +23,12 @@ Bu dərsdə modelləri aşağıdakı üsullarla analiz etməyi öyrənəcəksən
## Xəta analizi
Dəqiqliyi ölçmək üçün istifadə olunan ənənəvi model performans metrikaların əksəriyyəti düzgün və səhv təxminlərin nisbətinin hesablamasına əsaslanır. Misal üçün modelin 89% dəqiqliyə malik olması və eyni zamanda xəta itkisi 0.001-dirsə, bu yaxşı performans sayılır. Xətalar çox vaxt dataset boyunca bərabər paylanmış olmur. Sən modeldə 89% dəqiqlik qiyməti ala bilərsən və eyni zamanda datanın fərqli hissələrində modelin 42% xətalı olduğunu da görə bilərsən. Bəzi data qruplarında olan xəta naxışlarının nəticəsində ədalətlilik və ya etibarlılıq problemləri yarana bilər. Buna görə modelin harada daha yaxşı və pis işlədiyini anlamaq vacibdir. Çox sayda qeyri dəqiq məlumatlar olan data hissələri modelində vacib data demoqrafiyaya çevrilə bilər.
Dəqiqliyi ölçmək üçün istifadə olunan ənənəvi model performans metrikaların əksəriyyəti düzgün və səhv təxminlərin nisbətinin hesablamasına əsaslanır. Misal üçün modelin 89% dəqiqliyə malik olması və eyni zamanda xəta itkisi 0.001-dirsə, bu yaxşı performans sayılır. Xətalar çox vaxt dataset boyunca bərabər paylanmış olmur. Sən modeldə 89% dəqiqlik qiyməti ala bilərsən və eyni zamanda datanın fərqli hissələrində modelin 42% xətalı olduğunu da görə bilərsən. Bəzi data qruplarında olan xəta naxışlarının nəticəsində ədalətlilik və ya etibarlılıq problemləri yarana bilər. Buna görə modelin harada daha yaxşı və pis işlədiyini anlamaq vacibdir. Çox sayda qeyri-dəqiq məlumatlar olan data hissələri modelində vacib data demoqrafiyaya çevrilə bilər.
![Model xətalarını analiz et və raşdır](../images/ea-error-distribution.png)
![Model xətalarını analiz et və araşdır](../images/ea-error-distribution.png)
RAI idarə panelində Xəta analizi komponenti model xətalarının müxtəlif hissələr üzərində necə paylanıldığını ağac sxemi şəklində vizuallaşdırır. Bu hansı parametrin və datasetin hansı hissəsində yuxarı dərəcədə xətaların olduğunu aşkarlamağa köməkçi olur. Modelin qeyri-dəqiqliklərinin haradan gəldiyini görməklə problemin kökünü araşdırmağa başlaya bilərsiniz. Həmçinin data qrupları üzərində də analizlər apara bilərsən. Bu daha qrupları araşdırma prosesində modelin performansının bir qrupda yaxşı, lakin digərində xətalı olduğunu bilməyə kömək edə bilər.
RAI idarə panelində Xəta analizi komponenti model xətalarının müxtəlif hissələr üzərində necə paylanıldığını ağac sxemi şəklində vizuallaşdırır. Bu hansı parametrin və datasetin hansı hissəsində yuxarı dərəcədə xətaların olduğunu aşkarlamağa köməkçi olur. Modelin qeyri-dəqiqliklərinin haradan gəldiyini görməklə problemin kökünü araşdırmağa başlaya bilərsiniz. Həmçinin data qrupları üzərində də analizlər apara bilərsən. Bu data qrupları araşdırma prosesində modelin performansının bir qrupda yaxşı, lakin digərində xətalı olduğunu bilməyə kömək edə bilər.
![Xəta analizi](../images/ea-error-cohort.png)
@ -41,11 +41,11 @@ Ağac sxemindəki vizual göstəricilər xətanın yerini sürətli təyin etmə
Xəta analizini bu hallarda istifadə edin:
* Model xətalarının datasetlər üzərində və fərqli giriş dəyələrləri, parametr ölçülərində dərin anlayış əldə etmək istəyəndə.
* Toplanmış performans metrikasını hissələrə bölməklə xətalı data qruplarınını kəşf etmək və növbəti miqrasiya addımlarında xəbərdar olmaq.
* Toplanmış performans metrikasını hissələrə bölməklə xətalı data qruplarınını kəşf etmək və növbəti miqrasiya addımlarından xəbərdar olmaq istəyəndə.
## Modelə baxış
Maşın öyrənmə modelinin performansını dəyərləndirmək üçün onun davranışlarını vahid sistem kimi anlamaq lazımdır. Bunu birdən çox metrikanı analiz etməkdə əldə etmək olar, misal üçün xəta dərəcəsi, dəqiqlik, yenidən çağrılma və ya MAE (Orta mütləq xəta) istifadə olunmaqla performans metrikaları arasındakı fərqlilikləri tapmaq olar. Bir performans metrikası əla görünə bilər, lakin qeyri-dəqiqliklər digər metrikada üzə çıxa bilər. Əlavə olaraq bütün datasetin və ya hissələrin üzərində metrikaların fərqliliklərini müqayisə etməklə modelin harada yaxşı və ya pis nəticələr göstərdiyini üzə çıxarmağa kömək edəcək. Bu xüsusi olaraq modelin performansının həssas və ya qeyri-həssas xüsusiyyətlər arasında (misal üçün irq, cins və ya yaş fərqləri) ədalətliliyin pozulma hallarını aşkarlamaq üçün vacibdir. Misal üçün modelin müəyyən data qrupunda həssas xüsusiyyətlərdə daha çox xəta verməsi modelin ədalətsizliyə səbəb olacağını bildirir.
Maşın öyrənmə modelinin performansını dəyərləndirmək üçün onun davranışlarını vahid sistem kimi anlamaq lazımdır. Bunu birdən çox metrikanı analiz etməklə əldə etmək olar, misal üçün xəta dərəcəsi, dəqiqlik, yenidən çağrılma və ya MAE (Orta mütləq xəta) istifadə olunmaqla performans metrikaları arasındakı fərqlilikləri tapmaq olar. Bir performans metrikası əla görünə bilər, lakin qeyri-dəqiqliklər digər metrikada üzə çıxa bilər. Əlavə olaraq bütün datasetin və ya hissələrin üzərində metrikaların fərqliliklərini müqayisə etməklə modelin harada yaxşı və ya pis nəticələr göstərdiyini üzə çıxarmağa kömək edəcək. Bu xüsusi olaraq modelin performansının həssas və ya qeyri-həssas xüsusiyyətlər arasında (misal üçün irq, cins və ya yaş fərqləri) ədalətliliyin pozulma hallarını aşkarlamaq üçün vacibdir. Misal üçün modelin müəyyən data qrupunda həssas xüsusiyyətlərdə daha çox xəta verməsi modelin ədalətsizliyə səbəb olacağını bildirir.
RAI idarə panelinin Modelə baxış komponenti sadəcə data qruplarının performans metrikalarını analiz etməyə kömək etmir, həmçinin istifadəçilərə modelin nəticələrini digər data qrupları arasında da müqayisə etməyə imkan yaradır.
@ -65,23 +65,23 @@ Modelə baxış komponenti 2 növ metrikaların fərqlərini dəstəkləyir:
* Yenidən çağrılmada fərq
* Orta mütləq xətalarda fərq (MAE)
**Seçilmiş dərəcələrdə fərq**: Bu metrika gözlənilən proqnoz dərəcələrinin alt-qruplar arasında fərqlərini hesablayır. Buna nümunə olaraq kreditlərə təsdiq dərəcələrində fərqləri göstərmək olar. Seçilmiş dərəcə ikili təsnifatlandırma tətbiqində 1 kimi qiymətləndirilən data nöqtələrinin tutduğu hissə, reqressiyada isə proqnozlaşdıran dəyərlərinin paylanılması nəzərdə tutulur.
**Seçilmiş dərəcələrdə fərq**: Bu metrika gözlənilən proqnoz dərəcələrinin alt-qruplar arasında fərqlərini hesablayır. Buna nümunə olaraq kreditlərə təsdiq dərəcələrində fərqləri göstərmək olar. Seçilmiş dərəcə ikili qruplaşdırma tətbiqində 1 kimi qiymətləndirilən data nöqtələrinin tutduğu hissə, reqressiyada isə proqnozlaşdıran dəyərlərinin paylanılması nəzərdə tutulur.
## Data analizi
> "Dataya lazımi qədər işgəncə etsən, o hər şeyi çaşdıracaq" - Ronald Koas
Bu fikir ekstremal səslənsə də, datanın istənilən fikri dəskləyə biləcək dərəcədə manipulasiya edilə bilməsi doğrudur. Belə manipulasiyalar bəzən qeyri-ixtiyari olur. İnsan olaraq bizim də bəzi tərəf tutduğumuz məqamlar var və dataya tərəfkeşliyi gətirdiyimizi şüurlu olaraq bilməyimiz çox zaman çətin olur. AI-də və maşın öyrənməsində ədalətliliyi sığortalanması hələ də qəliz problem kimi qalır.
Bu fikir ekstremal səslənsə də, datanın istənilən fikri dəstəkləyə biləcək dərəcədə manipulasiya edilə bilməsi doğrudur. Belə manipulasiyalar bəzən qeyri-ixtiyari olur. İnsan olaraq bizim də bəzi tərəf tutduğumuz məqamlar var və dataya tərəfkeşliyi gətirdiyimizi şüurlu olaraq bilməyimiz çox zaman çətin olur. AI-də və maşın öyrənməsində ədalətliliyin sığortalanması hələ də qəliz problem kimi qalır.
Data ənənəvi model performans metrikaları üçün böyük bir kor nöqtədir. Sən yüksək dəqiqlik qiyməti əldə edə bilərsən, lakin bu sənin datasetinin tərəf tutduğu ehtimalını həmişə əks etdirməyəcək. Misal üçün şirkətdə idarəedici pozisiyada işçilərin 27%-i qadın, 73%-u kişi olan dataseti ilə öyrədilən iş reklamı AI modeli tətbiqdə yuxarı vəzifəli işlər üçün adədən kişiləri hədəfləyəcək. Datakı belə disbalans modelin proqnozlarını bir cinsə tərəf çox yönəldə bilər. Bu AI modelində harada cinsi ayrı-seçkilik problemi olduğunu üzə çıxarır.
RAI idarə panelində Data analizi komponenti datasetin hansı hissəsində həddindən artıq çox və ya az iştirakın olduğunu təyin etməyə kömək edir. Biz istifadəçilərə datanın balans pozuntularından və ya müəyyən data qrupunun az təmsil edilməsinə görə yaranan xəta və ədalətlilik problelərinin kökündəki səbəbi analiz etməyə kömək edir. Bu istifadəçilərə proqnozlaşdırılan və həqiqi nəticələr, xəta qrupları və xüsusi parametrlərə əsasən vizualizasiya imkanları verir. Bəzən az təmsil təmsil olunan data qrupunun kəşfi modelin yaxşı öyrənmədiyini və nəticədə yüksək qeyri-dəqiqliyin olduğunu üzə çıxarır. Data ayrı-seçkiliyi olan modelə sahib olmaq sadəcə ədalətlilik problemi deyil, bu həmçinin modelin inkluziv və etibarlı olmadığını da göstərir.
RAI idarə panelində Data analizi komponenti datasetin hansı hissəsində həddindən artıq çox və ya az iştirakın olduğunu təyin etməyə kömək edir. Biz istifadəçilərə datanın balans pozuntularından və ya müəyyən data qrupunun az təmsil edilməsinə görə yaranan xəta və ədalətlilik problemlərinin kökündəki səbəbi analiz etməyə kömək edir. Bu, istifadəçilərə proqnozlaşdırılan və həqiqi nəticələr, xəta qrupları və xüsusi parametrlərə əsasən vizualizasiya imkanları verir. Bəzən az təmsil olunan data qrupunun kəşfi modelin yaxşı öyrənmədiyini və nəticədə yüksək qeyri-dəqiqliyin olduğunu üzə çıxarır. Data ayrı-seçkiliyi olan modelə sahib olmaq sadəcə ədalətlilik problemi deyil, həmçinin modelin inkluziv və etibarlı olmadığını da göstərir.
![RAI idarə panelində Data analizi komponenti](../images/dataanalysis-cover.png)
Aşağıdakı hallarda data analizini istifadə et:
* Datasetin statistikasını müxtəlif filterlər tətbiq edərək fərqli ölçüdə hissələrə bölərək kəşf et (həmçinin data qrupu kimi kimi də tanınır).
* Datasetin statistikasını müxtəlif filtrlər tətbiq edərək fərqli ölçüdə hissələrə bölərək kəşf et (həmçinin data qrupu kimi də tanınır).
* Datasetin müxtəlif qruplarda və parametr qruplarında paylanılmasını başa düş.
* Ədalətlilik, xəta analizi və səbəbiyyət (başqa idarə paneli komponentindən əldə olunur) ilə bağlı tapıntılarının datasetin paylanılması ilə əlaqəli olduğunu təyin et.
* Təmsiletmə, etiket, parametr problemlərindən, etiket ayrı-seçkiliyindən və oxşar faktorlardan əmələ gələn xətaları azaltmaq üçün hansı sahədə daha çox data yığmalı olduğuna qərar ver.
@ -94,7 +94,7 @@ Maşın öyrənmə modelləri qara qutulara bənzəyirlər. Hansı açar data pa
* İnsan-AI əməkdaşlığı: Modelin qərarlarını necə anlaya və güvənə bilərəm?
* Qaydalara uyğunluq: Modelim qanunlarını tələblərini ödəyirmi?
RAI idarə panelinin Parametr vacibliyi komponenti modelin proqnozlarını necə etdiyini analiz etməyə və dərindən anlamağa kömək edir. Bu alət həmçinin maşın öyrənməsi peşəkarlarına və qərar verənlərə modelin davranışlarının qanunlara uyğunluğunu göstərmək üçün hansı parametrlərin təsir etdiyini izah və isbat etməyə kömək edir. Əlavə olaraq istifadəçilər hansı parametlərin modelin proqnozlarına təsir etdiyini həm qlobal, həm də local izahlarla araşdıra bilərlər. Qlobal izahlar modelin ümumi proqnozlarına təsir edən baş parametrləri siyahı kimi verir. Local izahlar isə modelin fərdi hallarda proqnozlarına səbəb olan parametləri göstərir. Local izahları araşdırmaq imkanı xüsusi hallarda modelin dəqiq və ya qeyri-dəqiq proqnozlarının səbəbini analiz etmək, daha yaxşı başa düşmək və şərh etmək üçün də faydalıdır.
RAI idarə panelinin Parametr vacibliyi komponenti modelin proqnozlarını necə etdiyini analiz etməyə və dərindən anlamağa kömək edir. Bu alət həmçinin maşın öyrənməsi peşəkarlarına və qərar verənlərə modelin davranışlarının qanunlara uyğunluğunu göstərmək üçün hansı parametrlərin təsir etdiyini izah və isbat etməyə kömək edir. Əlavə olaraq, istifadəçilər hansı parametlərin modelin proqnozlarına təsir etdiyini həm qlobal, həm də local izahlarla araşdıra bilərlər. Qlobal izahlar modelin ümumi proqnozlarına təsir edən baş parametrləri siyahı kimi verir. Local izahlar isə modelin fərdi hallarda proqnozlarına səbəb olan parametləri göstərir. Local izahları araşdırmaq imkanı xüsusi hallarda modelin dəqiq və ya qeyri-dəqiq proqnozlarının səbəbini analiz etmək, daha yaxşı başa düşmək və şərh etmək üçün də faydalıdır.
![RAI idarə panelinin Parametr vacibliyi komponenti](../images/9-feature-importance.png)
@ -108,24 +108,24 @@ Modelin müxtəlif data qrupları üzərində performans yoxlamasının analiz p
Şərh edilməni bu hallarda istifadə et:
* Hansı parametrlərin proqnozlar üçün daha vacib olduğunu başa düşərək AI sistemin proqnozlarının nə qədər güvənli olduğuna əmin ol.
* Modelini analiz etmək üçün ilk olaraq onu başa düşməyə çalış və modelin saxlam parameteləri istifadə etdiyini və cüzi yalnız korrelasiya verdiyini təyin et.
* Modelini analiz etmək üçün ilk olaraq onu başa düşməyə çalış və modelin sağlam parameteləri istifadə etdiyini və cüzi yanlış korrelasiya verdiyini təyin et.
* Modelin həssas və ya onunla çox korrelasiya olan parametrlər üzərində ayrı-seçkilik etdiyini anlamaqla mümkün qeyri-ədalətliliyin mənbəsini üzə çıxar.
* Modelin lokal izahlarını yaradaraq və nəticələri vizuallaşdıraraq istifadəçinin güvənini qazan.
* Modelləri təsdiqləyərək və qərarlarının insanlar üzərində təsirini izləyərək AI sistemlər üzərində tənzimləyici audit işlərini icra et.
## Nəticə
RAI idarə panelinin bütün komponentlərin hamısı sənə cəmiyyət üzəün az zərərli və daha güvənli maşın öyrətməsi modeli yaratmağa kömək edəcək praktik alətlərdir. Bu diskriminasiya və ya müəyyən qrupları fürsətlərdən kənarlaşdırmaq, fiziki və psixoloji zərər kimi insan haqqlarına qarşı olan təhdidlərin qarşısını almağa kömək edəcək. Bu həmçinin sənin modelinə olan güvəni qərarlarını lokal izahlar yaratmaqla və nəticələri vizuallaşdırmaqla kömək edəcək. Mümkün ola biləcək ziyanları belə təsnifləşdirilə bilər:
RAI idarə panelinin bütün komponentlərin hamısı sənə cəmiyyət üçün az zərərli və daha güvənli maşın öyrətməsi modeli yaratmağa kömək edəcək praktik alətlərdir. Bu, diskriminasiya və ya müəyyən qrupları fürsətlərdən kənarlaşdırmaq, fiziki və psixoloji zərər kimi insan haqqlarına qarşı olan təhdidlərin qarşısını almağa kömək edəcək. Bu həmçinin sənin modelinə olan güvəni qərarlarını lokal izahlar yaratmaqla və nəticələri vizuallaşdırmaqla kömək edəcək. Mümkün ola biləcək ziyanları belə təsnifləşdirilə bilər:
- **Yerləşdirmə**, müəyyən cinsin və ya irqin digəri üzərində daha çox seçilməsi.
- **Xidmət keyfiyyəti**. Əgər bir ssenariyə uyğun data ilə öyrətmə etsən, bu reallıqda daha qəliz vəziyyətlərdə zəif xidmət göstərməyə gətirib çıxaracaq.
- **Stereotiplər**. Bəzi qrupları əvvəldən təyin olunmuş parametrlərlə əlaqələndirmək.
- **Böhtan**. Ədalətsiz şəkildə nəyisə və ya kimisə etiketləmək və mühakimə etmək.
- **Çox- və ya az- təmsil**. İdeya budur ki, bəzi qrupların bəzi peşələrdə, xidmətlərdə və ya funksiyalarda görünməməsi onların əleyhinə qərarlara dəstək verir.
- **Çox- və ya az- təmsil**. İdeya budur ki, bəzi qrupların bəzi peşələrdə, xidmətlərdə və ya funksiyalarda görülməməsi onların əleyhinə qərarlara dəstək verir.
### Azure RAI idarə paneli
[Azure RAI idarə paneli](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) data və AI mühəndislərinin modelin davranışlarını daha yaxşı başa düşməyə, kəşf etməyə və AI modellərinin arzuolunmaz xətalarının qarşısını almaq üçün aparıcı akademik institutları və Microsoft kimi təşkilatlar tərəfindən hazırlanmış açıq mənbə alətləri üzərində qurulub.
[Azure RAI idarə paneli](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) data və AI mühəndislərinin modelin davranışlarını daha yaxşı başa düşməyə, kəşf etməyə və AI modellərinin arzuolunmaz xətalarının qarşısını almaq üçün aparıcı akademik institutlar və Microsoft kimi təşkilatlar tərəfindən hazırlanmış açıq mənbə alətləri üzərində qurulub.
- RAI idarə panelində müxtəlif komponentləri necə istifadə edə biləcəyini [bu sənədlərdən](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) öyrən.
@ -134,7 +134,7 @@ RAI idarə panelinin bütün komponentlərin hamısı sənə cəmiyyət üzəün
---
## 🚀 Məşğələ
Statistik və data ayr-seçkiliyinin qarşısını almaq üçün biz ilk növbətə bunları etməliyik:
Statistik və data ayrı-seçkiliyinin qarşısını almaq üçün biz ilk növbətə bunları etməliyik:
- sistemlərdə işləyən insanlar arasında müxtəlif təcrübələrə və perspektivlərə malik olmaq
- bizim cəmiyyətimizin fərqliliklərini əks etdirən datasetlərə sərmayə qoymaq
@ -142,7 +142,7 @@ Statistik və data ayr-seçkiliyinin qarşısını almaq üçün biz ilk növbə
Model yaradılmasında ədalətsizliyin aşkar olduğu və istidadə olunduğu real həyat ssenariləri barədə düşün. Biz başqa nələri nəzərə almalıyıq?
## [Mühazirə sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/6/)
## [Mühazirə sonrası test](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/6/?loc=az)
## Təkrarlayın və özünüz öyrənin
@ -154,7 +154,7 @@ Aşağıdakı məşğələlərə baxaraq mözvuları daha dərindən mənimsə:
[![Məsul AI idarə paneli: RAI-ni praktikada istifadə etmək üçün vahid pəncərə](https://img.youtube.com/vi/f1oaDNl3djg/0.jpg)](https://www.youtube.com/watch?v=f1oaDNl3djg "Məsul AI idarə paneli: RAI-ni praktikada istifadə etmək üçün vahid pəncərə")
> 🎥 Video üçün yuxarıdakı şəkilə toxunun: Məsul AI idarə paneli: RAI-ni praktikada istifadə etmək üçün vahid pəncərə, Besmira Nuşi və Mehrnuş Sameki tərəfindən.
> 🎥 Video üçün yuxarıdakı şəkilə klikləyin: Məsul AI idarə paneli: RAI-ni praktikada istifadə etmək üçün vahid pəncərə, Besmira Nuşi və Mehrnuş Sameki tərəfindən.
Aşağıdakı materiallara istinad edərək məsul AI və daha güvənli modelləri necə qura biləcəyin barədə öyrən:

@ -2,10 +2,10 @@
## Təlimatlar
Bu dərsdə sən RAI idarə paneli barədə öyrənmisən, harada ki data mühəndislərinə xəta analizi, data araşdırması, ədalətlilik yoxlaması, model şərh edilməsi, əks əlaqəli və ya şərtlərlə yoxlamalar və AI sistemləri üzərində gündəlik analizləri etməyə kömək edən "açıq mənbəli" alətlər üzərində qurulmuş komponentlər mövcuddur. Bu tapşırıqda RAI idarə panelini nümunə [notbuklar](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) üzərində kəşf etmək və öyrəndiklərini yazılı və ya təqdimat şəklində təqdim etməyin tələb olunur.
Bu dərsdə sən RAI idarə paneli barədə öyrənmisən, harada ki, data mühəndislərinə xəta analizi, data araşdırması, ədalətliliyin yoxlanması, modelin şərh edilməsi, əks əlaqəli və ya şərtlərlə yoxlamalar və AI sistemləri üzərində gündəlik analizləri etməyə kömək edən "açıq mənbəli" alətlər üzərində qurulmuş komponentlər mövcuddur. Bu tapşırıqda RAI idarə panelini nümunə [notbuklar](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) üzərində kəşf etmək və öyrəndiklərini yazılı və ya təqdimat şəklində təqdim etməyin tələb olunur.
## Rubric
| Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| -------- | --------- | -------- | ----------------- |
| -------- | -------- | ------- | ------------------------ |
| | Yazı və ya təqdimat RAI idarə panelinin komponentlərini əhatə edir, notbuk icra oluna bilir və bu işlərdən nəticə çıxarılıb | Nəticəsiz bir yazı təqdim olunub | Heç bir yazı təqdim olunmayıb |

@ -1,6 +1,6 @@
# Postskript: Klassik maşın öyrənməsinin real həyatda tətbiqləri
Kurikulumun bu bölməsində klassik ML-in real həyatda bəzi tətbiqləri ilə tanış olacaqsan. Biz internetdə çox sayda elmi və məqalə və yazıları analiz etmişik və neyron şəbəkələrini, dərin öyrənməni, süni intelleki bacardığımız qədər filtr edərək yalnız əhatə etdiyimiz strategiyaların istifadə olunduğu tətbiqləri seçmişik. ML-in biznes sistemlərində, ekologiya tətbiqlərində, maliyyə, sənət və mədəniyyətdə necə tətbiq olunduqlarını öyrən.
Kurikulumun bu bölməsində klassik ML-in real həyatda bəzi tətbiqləri ilə tanış olacaqsan. Biz internetdə çox sayda elmi məqalə və yazıları analiz etmişik və neyron şəbəkələrini, dərin öyrənməni, süni intelleki bacardığımız qədər filtr edərək yalnız əhatə etdiyimiz strategiyaların istifadə olunduğu tətbiqləri seçmişik. ML-in biznes sistemlərində, ekologiya tətbiqlərində, maliyyə, sənət və mədəniyyətdə necə tətbiq olunduqlarını öyrən.
![şahmat](../images/chess.jpg)
@ -9,10 +9,10 @@ Kurikulumun bu bölməsində klassik ML-in real həyatda bəzi tətbiqləri ilə
## Dərslər
1. [ML-in real həyat tətbiqləri](../1-Applications/translations/README.az.md)
2. [Məsuliyyətli Sİ idarə panelinin komponentlərini istifadə edərək Maşın Öyrənməsi modelinin analizi](../2-Debugging-ML-Models/translations/README.az.md)
2. [Məsuliyyətli AI idarə panelinin komponentlərini istifadə edərək Maşın Öyrənməsi modelinin analizi](../2-Debugging-ML-Models/translations/README.az.md)
## Təşəkkürlər
"Real həyat tətbiqləri" [Jen Looper](https://twitter.com/jenlooper) və [Ornella Altunyan](https://twitter.com/ornelladotcom) daxil olmaqla digər komanda üzvləri tərəfindən yazılıb.
"Məsuliyyətli Sİ idarə panelinin komponentlərini istifadə edərək Maşın Öyrənməsi modelinin analizi" [Ruth Yakubu](https://twitter.com/ruthieyakubu) tərəfindən yazılıb.
"Məsuliyyətli AI idarə panelinin komponentlərini istifadə edərək Maşın Öyrənməsi modelinin analizi" [Ruth Yakubu](https://twitter.com/ruthieyakubu) tərəfindən yazılıb.

@ -6,7 +6,7 @@
"quizzes": [
{
"id": 1,
"title": "Maşın öyrənməsinə giriş: Mühazirədən əvvəl quiz",
"title": "Maşın öyrənməsinə giriş: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Ətrafımızda olan maşın öyrənməsinin tətbiqləri",
@ -59,7 +59,7 @@
},
{
"id": 2,
"title": "Maşın öyrənməsinə giriş: Mühazirə sonrası quiz",
"title": "Maşın öyrənməsinə giriş: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Maşın öyrənmə alqoritmləri bunların simulyasiyası üçün nəzərdə tutulub",
@ -116,7 +116,7 @@
},
{
"id": 3,
"title": "Maşın öyrənməsinin tarixi: Müharizə öncəsi quiz",
"title": "Maşın öyrənməsinin tarixi: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "'Süni intellekt' termini təxminən nə vaxt yaranıb?",
@ -173,7 +173,7 @@
},
{
"id": 4,
"title": "Maşın öyrənməsinin tarixi: Müharizə sonrası quiz",
"title": "Maşın öyrənməsinin tarixi: Mühazirə sonrası test",
"quiz": [
{
"questionText": "'Səliqəsiz' AI sisteminin nümunəsi nədir?",
@ -230,7 +230,7 @@
},
{
"id": 5,
"title": "Ədalət və maşın öyrənməsi: Müharizə öncəsi quiz",
"title": "Ədalət və maşın öyrənməsi: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Maşın öyrənməsində ədalətsizlik baş verə bilər",
@ -287,7 +287,7 @@
},
{
"id": 6,
"title": "Ədalət və maşın öyrənməsi: Müharizə sonrası quiz",
"title": "Ədalət və maşın öyrənməsi: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Bir modeldəki ədalətsizliyə səbəb ola bilər",
@ -344,7 +344,7 @@
},
{
"id": 7,
"title": "Alətlər və texnikalar: Müharizə öncəsi quiz",
"title": "Alətlər və texnikalar: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Model qurarkən bunları etməlisən:",
@ -401,7 +401,7 @@
},
{
"id": 8,
"title": "Alətlər və texnikalar: Müharizə sonrası quiz",
"title": "Alətlər və texnikalar: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Datanı təhlil edərkən bunları etməlisən:",
@ -411,7 +411,7 @@
"isCorrect": "false"
},
{
"answerText": "qərəzin potensial səbəbini aşkar edə bilərsiniz",
"answerText": "tərəfkeşliyin potensial səbəbini aşkar edə bilərsiniz",
"isCorrect": "false"
},
{
@ -458,7 +458,7 @@
},
{
"id": 9,
"title": "Reqressiyaya giriş: Müharizə öncəsi quiz",
"title": "Reqressiyaya giriş: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Bu dəyişənlərdən hansı ədədi dəyişəndir?",
@ -515,7 +515,7 @@
},
{
"id": 10,
"title": "Reqressiyaya giriş: Müharizə sonrası quiz",
"title": "Reqressiyaya giriş: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Əgər Maşın Öyrənmə modelinizin öyrətmə dəqiqliyi 95 % və test dəqiqliyi 30 % təşkil edirsə, o zaman hansı növ vəziyyət adlanır?",
@ -572,7 +572,7 @@
},
{
"id": 11,
"title": "Reqressiya üçün verilənləri hazırlayın və vizuallaşdırın: Müharizə öncəsi quiz",
"title": "Reqressiya üçün verilənləri hazırlayın və vizuallaşdırın: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Bu Python modullarından hansı məlumatların vizuallaşdırılması üçün istifadə olunur?",
@ -629,7 +629,7 @@
},
{
"id": 12,
"title": "Reqressiya üçün verilənləri hazırlayın və vizuallaşdırın: Müharizə sonrası quiz",
"title": "Reqressiya üçün verilənləri hazırlayın və vizuallaşdırın: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Datasetinizdə çatışmayan dəyərlərin olub-olmadığını yoxlamaq istəyirsinizsə, bu dərsə əsasən hansı kod parçası düzgündür? Tutaq ki, verilənlər bazası Pandas DataFrame obyekti olaraq 'dataset' adlı dəyişəndə ​​saxlanılır.",
@ -686,7 +686,7 @@
},
{
"id": 13,
"title": "Xətti və Polinom Reqressiya: Müharizə öncəsi quiz",
"title": "Xətti və Polinom Reqressiya: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Matplotlib nədir?",
@ -743,7 +743,7 @@
},
{
"id": 14,
"title": "Xətti və Polinom Reqressiya: Müharizə sonrası quiz",
"title": "Xətti və Polinom Reqressiya: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Əgər məlumatlarınız qeyri-xəttidirsə, ___ növ reqressiyanı sınayın",
@ -800,7 +800,7 @@
},
{
"id": 15,
"title": "Logistik reqressiya: Müharizə öncəsi quiz",
"title": "Logistik reqressiya: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Bunu proqnozlaşdırmaq üçün Logistik Reqressiyadan istifadə edin",
@ -857,7 +857,7 @@
},
{
"id": 16,
"title": "Logistik reqressiya: Müharizə sonrası quiz",
"title": "Logistik reqressiya: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Seaborn nəyin növüdür?",
@ -914,7 +914,7 @@
},
{
"id": 17,
"title": "Veb Tətbiqi yaratmaq: Müharizə öncəsi quiz",
"title": "Veb Tətbiqi yaratmaq: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "ONNX nə deməkdir?",
@ -971,7 +971,7 @@
},
{
"id": 18,
"title": "Veb Tətbiqi yaratmaq: Müharizə sonrası quiz",
"title": "Veb Tətbiqi yaratmaq: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Python-dan istifadə edərək öncədən öyrədilmiş modeli internetdə yerləşdirmək üçün hansı vasitələrdən istifadə edə bilərik?",
@ -1028,7 +1028,7 @@
},
{
"id": 19,
"title": "Qruplaşdırma 1: Müharizə öncəsi quiz",
"title": "Qruplaşdırma 1: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Qruplaşdırma aşağıdakı ilə bir çox ortaq cəhətləri olan nəzarətli öyrənmə formasıdır",
@ -1085,17 +1085,17 @@
},
{
"id": 20,
"title": "Qruplaşdırma 1: Müharizə sonrası quiz",
"title": "Qruplaşdırma 1: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Çox sinifli sual nədir?",
"answerOptions": [
{
"answerText": "məlumat nöqtələrini bir neçə sinifə təsnif etmək tapşırığı",
"answerText": "məlumat nöqtələrini bir neçə qrupa təsnif etmək tapşırığı",
"isCorrect": "false"
},
{
"answerText": "məlumat nöqtələrini siniflərdən birinə təsnif etmək tapşırığı",
"answerText": "məlumat nöqtələrini qruplardan birinə təsnif etmək tapşırığı",
"isCorrect": "true"
},
{
@ -1138,7 +1138,7 @@
},
{
"id": 21,
"title": "Qruplaşdırma 2: Müharizə öncəsi quiz",
"title": "Qruplaşdırma 2: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Balanslaşdırılmış, təmiz data ən yaxşı qruplaşdırma nəticələrini verir",
@ -1191,7 +1191,7 @@
},
{
"id": 22,
"title": "Qruplaşdırma 2: Müharizə sonrası quiz",
"title": "Qruplaşdırma 2: Mühazirə sonrası test",
"quiz": [
{
"questionText": "'Həlledici' nədir?",
@ -1248,7 +1248,7 @@
},
{
"id": 23,
"title": "Qruplaşdırma 3: Müharizə öncəsi quiz",
"title": "Qruplaşdırma 3: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Sınamaq üçün yaxşı bir ilkin qruplaşdırıcı:",
@ -1305,7 +1305,7 @@
},
{
"id": 24,
"title": "Qruplaşdırma 3: Müharizə sonrası quiz",
"title": "Qruplaşdırma 3: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Dəstək-Vektor qruplaşdırıcıları bunlar üçün istifadə edilə bilər",
@ -1362,7 +1362,7 @@
},
{
"id": 25,
"title": "Qruplaşdırma 4: Müharizə öncəsi quiz",
"title": "Qruplaşdırma 4: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Tövsiyyə sistemləri bunlar üçün istifadə oluna bilər",
@ -1415,7 +1415,7 @@
},
{
"id": 26,
"title": "Qruplaşdırma 4: Müharizə sonrası quiz",
"title": "Qruplaşdırma 4: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Netron tətbiqi bu işdə kömək edir:",
@ -1472,7 +1472,7 @@
},
{
"id": 27,
"title": "Klasterləşdirməyə giriş: Müharizə öncəsi quiz",
"title": "Klasterləşdirməyə giriş: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Klasterləşdirməyə real həyatımızdan nümunə ola bilər",
@ -1520,7 +1520,7 @@
"isCorrect": "true"
},
{
"answerText": "möhkəmləndirilərək öyrənmə",
"answerText": "gücləndirici öyrənmə",
"isCorrect": "false"
}
]
@ -1529,7 +1529,7 @@
},
{
"id": 28,
"title": "Klasterləşdirməyə giriş: Müharizə sonrası quiz",
"title": "Klasterləşdirməyə giriş: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Evklid həndəsəsi buna əsasən düzülmüşdür",
@ -1586,7 +1586,7 @@
},
{
"id": 29,
"title": "K-Ortalama Klasterləşməsi: Müharizə öncəsi quiz",
"title": "K-Ortalama Klasterləşməsi: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "K-Ortalama buradan gəlib:",
@ -1643,7 +1643,7 @@
},
{
"id": 30,
"title": "K-Ortalama Klasterləşməsi: Müharizə sonrası quiz",
"title": "K-Ortalama Klasterləşməsi: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Voronoi diaqramı bunu göstərir:",
@ -1696,7 +1696,7 @@
},
{
"id": 31,
"title": "NLP-ə giriş: Müharizə öncəsi quiz",
"title": "NLP-ə giriş: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "NLP bu dərsdə nəyi bildirir?",
@ -1753,7 +1753,7 @@
},
{
"id": 32,
"title": "Təbii dil emalına giriş: Müharizə sonrası quiz",
"title": "Təbii dil emalına giriş: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Cozef Veyzenbaum bu botu icad etdi",
@ -1810,7 +1810,7 @@
},
{
"id": 33,
"title": "NLP tapşırıqları: Müharizə öncəsi quiz",
"title": "NLP tapşırıqları: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Tokenizasiya",
@ -1867,7 +1867,7 @@
},
{
"id": 34,
"title": "NLP tapşırıqları: Müharizə sonrası quiz",
"title": "NLP tapşırıqları: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Daha çox təkrarlanan sözlərdən lüğət yaratmaq üçün bundan istifadə olunur:",
@ -1924,7 +1924,7 @@
},
{
"id": 35,
"title": "NLP və tərcümə: Müharizə öncəsi quiz",
"title": "NLP və tərcümə: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Sadə tərcümə",
@ -1981,7 +1981,7 @@
},
{
"id": 36,
"title": "NLP və tərcümə: Müharizə sonrası quiz",
"title": "NLP və tərcümə: Mühazirə sonrası test",
"quiz": [
{
"questionText": "TextBlob tərcümə kitabxanasının altında bu texnologiya durur:",
@ -2038,7 +2038,7 @@
},
{
"id": 37,
"title": "NLP 4: Müharizə öncəsi quiz",
"title": "NLP 4: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "İnsan tərəfindən yazılmış və ya danışılan mətndən hansı məlumatları əldə edə bilərik?",
@ -2095,7 +2095,7 @@
},
{
"id": 38,
"title": "NLP 4: Müharizə sonrası quiz",
"title": "NLP 4: Mühazirə sonrası test",
"quiz": [
{
"questionText": "NLP-nin mahiyyəti nədir?",
@ -2148,7 +2148,7 @@
},
{
"id": 39,
"title": "NLP 5: Müharizə öncəsi quiz",
"title": "NLP 5: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Nə üçün məlumatları təhlil etməzdən əvvəl təmizləmək vacibdir?",
@ -2201,7 +2201,7 @@
},
{
"id": 40,
"title": "NLP 5: Müharizə sonrası quiz",
"title": "NLP 5: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Datasetin məqsədi nədir?",
@ -2254,7 +2254,7 @@
},
{
"id": 41,
"title": "Zaman seriyalarına giriş: Müharizə öncəsi quiz",
"title": "Zaman seriyalarına giriş: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Zaman seriyasının proqnozlaşdırılması burada faydalıdır",
@ -2311,7 +2311,7 @@
},
{
"id": 42,
"title": "Zaman seriyalarına giriş: Müharizə sonrası quiz",
"title": "Zaman seriyalarına giriş: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Zaman seriyası xəttləri bunu bildirir",
@ -2368,7 +2368,7 @@
},
{
"id": 43,
"title": "Zaman Seriyası ARIMA: Müharizə öncəsi quiz",
"title": "Zaman Seriyası ARIMA: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "ARIMA açılışı",
@ -2425,7 +2425,7 @@
},
{
"id": 44,
"title": "Zaman Seriyası ARIMA: Müharizə sonrası quiz",
"title": "Zaman Seriyası ARIMA: Mühazirə sonrası test",
"quiz": [
{
"questionText": "ARIMA modeli zaman seriyası məlumatlarının xüsusi formasına uyğunlaşdırmaq üçün istifadə olunur",
@ -2482,10 +2482,10 @@
},
{
"id": 45,
"title": "Möhkəmləndirilmiş öyrənmə 1: Müharizə öncəsi quiz",
"title": "Gücləndirici öyrənmə 1: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Möhkəmləndirici öyrənmə nədir?",
"questionText": "Gücləndirici öyrənmə nədir?",
"answerOptions": [
{
"answerText": "kiməsə nəyisə başa düşənə qədər təkrar-təkrar öyrətmək",
@ -2535,7 +2535,7 @@
},
{
"id": 46,
"title": "Möhkəmləndirilmiş öyrənmə 1: Müharizə sonrası quiz",
"title": "Gücləndirici öyrənmə 1: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Q-Learning nədir?",
@ -2588,7 +2588,7 @@
},
{
"id": 47,
"title": "Möhkəmləndirilmiş öyrənmə 2: Müharizə öncəsi quiz",
"title": "Gücləndirici öyrənmə 2: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Şahmat and Go davamlı vəziyyətləri olan oyunlardır.",
@ -2641,7 +2641,7 @@
},
{
"id": 48,
"title": "Möhkəmləndirilmiş öyrənmə 2: Müharizə sonrası quiz",
"title": "Gücləndirici öyrənmə 2: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Bir mühitdə bütün mümkün hərəkətləri harada müəyyənləşdiririk?",
@ -2698,7 +2698,7 @@
},
{
"id": 49,
"title": "Real həyat tətbiqləri: Müharizə öncəsi quiz",
"title": "Real həyat tətbiqləri: Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "Maliyyə sənayesində ML tətbiqi nümunəsi nədir?",
@ -2755,7 +2755,7 @@
},
{
"id": 50,
"title": "Real həyat tətbiqləri: Müharizə sonrası quiz",
"title": "Real həyat tətbiqləri: Mühazirə sonrası test",
"quiz": [
{
"questionText": "Kredit kartı saxtakarlığını aşkar etmək üçün hansı ML texnikasından istifadə edilə bilər?",
@ -2778,7 +2778,7 @@
"questionText": "Meşə idarəetməsində hansı ML texnikası nümunədir?",
"answerOptions": [
{
"answerText": "Möhkəmləndirici öyrənmə",
"answerText": "Gücləndirici öyrənmə",
"isCorrect": "true"
},
{
@ -2812,7 +2812,7 @@
},
{
"id": 51,
"title": "SVR zaman seriyası : Müharizə öncəsi quiz",
"title": "SVR zaman seriyası : Mühazirədən əvvəl test",
"quiz": [
{
"questionText": "SVM bunu bildirir",
@ -2869,7 +2869,7 @@
},
{
"id": 52,
"title": "SVR zaman seriyası: Müharizə sonrası quiz",
"title": "SVR zaman seriyası: Mühazirə sonrası test",
"quiz": [
{
"questionText": "SVR bu üsullardan hansı ilə öyrənir?",

@ -14,7 +14,7 @@
Microsoft-un Bulud Advokatları, böyük məmnuniyyət hissi ilə sizə Maşın Öyrənməsi haqqında hər şeyi əhatə edən 12 həftəlik, 26 dərsdən ibarət dərs proqramını təqdim edir. Bu proqramda siz Scikit-learn kitabxanasından istifadə edərək və [Yeni başlayanlar üçün AI dərs proqramında](https://aka.ms/ai4beginners) əhatə olunmuş dərin öyrənmədən yan keçərək, **klassik maşın öyrənməsi** haqqında öyrənəcəksiniz. Bu dərsləri ['Başlayanlar üçün Data Elmi' dərs proqramımız](https://aka.ms/ds4beginners) ilə birgə aparamığınızı tövsiyyə edirik!
Bu klassik texnikaları dünyanın bir çox yerindən olan datalara tətbiq etdiyimiz üçün bizimlə dünya üzrə səyahət edin. Hər bir dərsə dərsdən əvvəl və sonra olan quizlər, dərsi başa çatdırmaq üçün yazılı təlimatlar, həll yolu, tapşırıq və s. daxildir. Yeni bacarıqların oturuşması üçün sübut olunmuş praktik dərs proqramımız isə sizə tətbiq edərək öyrənməyə imkan yaradır.
Bu klassik texnikaları dünyanın bir çox yerindən olan datalara tətbiq etdiyimiz üçün bizimlə dünya üzrə səyahət edin. Hər bir dərsə dərsdən əvvəl və sonra olan quizlər, dərsi başa çatdırmaq üçün yazılı təlimatlar, həll yolu, tapşırıq və s. daxildir. Yeni bacarıqların oturuşması üçün özünü doğrultmuş praktik dərs proqramımız isə sizə tətbiq edərək öyrənməyə imkan yaradır.
**✍️ Müəlliflərimizə qucaq dolusu təşəkkürlər** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu və Amy Boyd
@ -28,19 +28,19 @@ Bu klassik texnikaları dünyanın bir çox yerindən olan datalara tətbiq etdi
> [Bu kurs üçün lazım olan bütün əlavə resursları Microsoft Learn kolleksiyamızdan tapa bilərsiniz](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
**[Tələbələr](https://aka.ms/student-page)**, bu kurrikulumdan istifadə etmək üçün reponu öz GitHub hesabınıza kopyalayın və tapşırıqları özünüz və ya qrup şəklində tamamlayın:
**[Tələbələr](https://aka.ms/student-page)**, bu kurrikulumdan istifadə etmək üçün reponu öz GitHub hesabınıza kopyalayın və tapşırıqları özünüz tək və ya qrup şəklində tamamlayın:
- Mühazirə öncəsi quiz ilə başlayın.
- Mühazirədən əvvəl test ilə başlayın.
- Mühazirəni oxuyun və hər bir bilik yoxlamasında olan fəaliyyətləri tamamlayın.
- Həll kodunu işlətməkdənsə, dərsləri dərk edərək proyektləri qurmağa çalışın; lakin bu kodlar hər bir layihə yönümlü dərsin `/solution` qovluğunda mövcuddur.
- Həll kodunu işlətməkdənsə, dərsləri dərk edərək layihələri qurmağa çalışın; lakin bu kodlar hər bir layihə yönümlü dərsin `/solution` qovluğunda mövcuddur.
- Mühazirədən sonrakı quizdə iştirak edin.
- Problemi həll edin.
- Tapşırığı tamamlayın.
- Dərsi tamamladıqdan sonra [Müzakirə Platformasına](https://github.com/microsoft/ML-For-Beginners/discussions) daxil olun və müvafiq PAT rubrikasını dolduraraq "yüksək səslə öyrənin". 'PAT' öyrənmənizi davam etdirmək üçün doldurduğunuz "Progress Assessment Tool"(Tərəqqi Qiymətləndirmə Aləti)-dir. Birlikdə öyrənməyiniz üçün, digər PAT-lara da reaksiya verə bilərsiniz.
- Dərsi tamamladıqdan sonra [Müzakirə Platformasına](https://github.com/microsoft/ML-For-Beginners/discussions) daxil olun və müvafiq PAT rubrikasını dolduraraq "yüksək səslə öyrənin". 'PAT' öyrənmənizi davam etdirmək üçün doldurduğunuz "Progress Assessment Tool"(Tərəqqi Qiymətləndirmə Aləti)-dir. Birlikdə öyrənməyiniz üçün digər PAT-lara da reaksiya verə bilərsiniz.
> Əlavə oxu üçün isə bu [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulları və öyrənmə yollarını izləməyinizi tövsiyyə edirik.
**Müəllimlər**, sizlər üçün bu kurrikulumdan necə istifadə etmək barədə [bəzi təkliflər hazırlamışıq.](../for-teachers.md).
**Müəllimlər**, sizlər üçün bu kurrikulumdan necə istifadə etmək barədə [bəzi təkliflər hazırlamışıq](../for-teachers.md).
---
@ -64,9 +64,9 @@ Bəzi dərslər qısa formada videoyazı şəklində də mövcuddur. Onları də
## Pedaqogika
Bu dərs proqramını qurarkən iki pedaqoji prinsip seçmişik: praktiki **layihə əsaslı** olmasını və **tez-tez keçirilən quizlərin** olmasını təmin etmək. Bundan əlavə, bu kurrikulumda bütünlük təşkil edə bilməsi üçün ortaq bir **mövzuya** malikdir.
Bu dərs proqramını qurarkən iki pedaqoji prinsip seçmişik: praktiki **layihə əsaslı** olmasını və **tez-tez keçirilən quizlərin** olmasını təmin etmək. Bundan əlavə, bu kurrikulum bütünlük təşkil edə bilməsi üçün ortaq bir **mövzuya** malikdir.
Məzmunun layihələrə uyğun olmasını təmin etməklə, proses tələbələr üçün daha cəlbedici olacaq və anlayışların yadda qalıcılığı artacaqdır. Bundan əlavə, dərsdən əvvəl az ballı quizlər tələbənin mövzunu öyrənmək istəyini müəyyənləşdirir, dərsdən sonra ikinci quiz isə onun daha da yadda qalmasını təmin etmiş olur. Bu kurikulum çevik və əyləncəli olmaq üçün nəzərdə tutulmuşdur və tam və ya qismən tamamlana bilər. Layihələr kiçikdən başlayır və 12 həftəlik dövrün sonuna yaxınlaşdıqca mürəkkəbləşir. Bu kurrikuluma həmçinin əlavə kredit kimi və ya müzakirə üçün əsas kimi istifadə edilə bilən ML-in real tətbiqləri üzərinə son söz də daxildir.
Məzmunun layihələrə uyğun olmasını təmin etməklə proses tələbələr üçün daha cəlbedici olacaq və anlayışların yadda qalıcılığı artacaqdır. Bundan əlavə, dərsdən əvvəl az ballı quizlər tələbənin mövzunu öyrənmək istəyini müəyyənləşdirir, dərsdən sonra ikinci quiz isə onun daha da yadda qalmasını təmin etmiş olur. Bu kurikulum çevik və əyləncəli olmaq üçün nəzərdə tutulmuşdur, tam və ya qismən tamamlana bilər. Layihələr sadədən başlayır və 12 həftəlik dövrün sonuna yaxınlaşdıqca mürəkkəbləşir. Bu kurrikuluma həmçinin əlavə kredit kimi və ya müzakirə üçün əsas kimi istifadə edilə bilən ML-in real tətbiqləri üzərinə son söz də daxildir.
> [Davranış Kodeksi](../CODE_OF_CONDUCT.md), [Töhfə vermək](../CONTRIBUTING.md) və [Tərcümə](../TRANSLATIONS.md) təlimatlarımızı tapın. Konstruktiv rəylərinizə açığıq!
@ -75,18 +75,18 @@ Məzmunun layihələrə uyğun olmasını təmin etməklə, proses tələbələr
- dərslə bağlı eskiz
- əlavə video material
- video təlimatlar (yalnız bəzi dərslər)
- mühazirə öncəsi quiz
- Mühazirədən əvvəl test
- yazılı dərs
- layihə əsaslı dərslər üçün, layihənin necə qurulmasına dair addımlı təlimatlar
- biliyin yoxlanması
- məşğələ
- əlavə oxu
- tapşırıq
- mühazirə sonrası quiz
- Mühazirə sonrası test
> **Dillər haqqında qeyd**: Bu dərslər əsasən Python dilində yazılsalar da, bir çoxları R dilində də mövcuddurlar. R dilində olan dərsləri etmək üçün `/solution` qovluğuna keçməyiniz və R dərslərini axtarmağınız lazımdır. Onlara **R Markdown** faylını təmsil edən .rmd genişləndirilməsi daxildir. Bu tip fayllara, `Markdown sənədində` `kod parçaları`(R və ya digər dillərin) və `YAML başlığının`(çıxışın, məsələn PDF-in formatını müəyyən edir) birləşməsi baxa bilərik. Kodunuzu, onun nəticəsini və fikirlərinizi Markdown formatında yazmağa və bütün bunları bir arada etməyə imkan verdiyinə görə, o, data elmi üçün nümunəvi sənədləşdirmə aləti hesab olunur. Bundan əlavə, R Markdown sənədləri PDF, HTML və ya Word kimi çıxış formatlarına render oluna bilərlər.
> **Quizlər haqqında qeyd**: Hər biri 3 sualdan ibarət olmaqla, ümumilikdə 52 quizdən ibarət olan suallar toplusu, [bu proqramda](https://gray-sand-07a10f403.1.azurestaticapps.net/) toplanmışdır. Onlara keçid dərslərin daxilindən olsa da, quiz proqramını `quiz-app` qovluğundakı təlimatları izləyərək öz cihazında da işlədə bilərsiniz.
> **Quizlər haqqında qeyd**: Hər biri 3 sualdan ibarət olmaqla, ümumilikdə 52 quizdən ibarət olan suallar toplusu, [bu proqramda](https://gray-sand-07a10f403.1.azurestaticapps.net/?loc=az) toplanmışdır. Onlara keçid dərslərin daxilindən olsa da, quiz proqramını `quiz-app` qovluğundakı təlimatları izləyərək öz cihazında da işlədə bilərsiniz.
| Dərsin Nömrəsi | Mövzu | Bölmə | Öyrənilmə Məqsədi | Dərsə Keçid | Müəllif |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
@ -99,22 +99,22 @@ Məzmunun layihələrə uyğun olmasını təmin etməklə, proses tələbələr
| 07 | Şimali Amerikada balqabaq qiymətləri 🎃 | [Reqressiya](../2-Regression/translations/README.az.md) | Xətti və polinom reqressiya modellərini qurun | <ul><li>[Python](../2-Regression/3-Linear/translations/README.az.md)</li><li>[R](../2-Regression/3-Linear/solution/R/lesson_3.html)</li></ul> | <ul><li>Jen and Dmitry</li><li>Eric Wanjau</li></ul> |
| 08 | Şimali Amerikada balqabaq qiymətləri 🎃 | [Reqressiya](../2-Regression/translations/README.az.md) | Logistik reqressiya modeli qurun | <ul><li>[Python](../2-Regression/4-Logistic/translations/README.az.md) </li><li>[R](../2-Regression/4-Logistic/solution/R/lesson_4.html)</li></ul> | <ul><li>Jen</li><li>Eric Wanjau</li></ul> |
| 09 | Veb Tətbiq 🔌 | [Veb Tətbiq](../3-Web-App/translations/README.az.md) | Öyrədilmiş modelinizdən istifadə etməsi üçün veb tətbiq yaradın | [Python](../3-Web-App/1-Web-App/translations/README.az.md) | Jen |
| 10 | Sinifləndirməyə giriş | [Sinifləndirmə](../4-Classification/translations/README.az.md) | Datanızı təmizləyin, hazır formaya gətirin və vizuallaşdırın; sinifləndirməyə giriş | <ul><li> [Python](4-Classification/1-Introduction/translations/README.az.md) </li><li>[R](../4-Classification/1-Introduction/solution/R/lesson_10.html) | <ul><li>Jen and Cassie</li><li>Eric Wanjau</li></ul> |
| 11 | Dadlı Asiya və Hindistan mətbəxi 🍜 | [Sinifləndirmə](../4-Classification/translations/README.az.md) | Sinifləndiricilərə giriş | <ul><li> [Python](../4-Classification/2-Classifiers-1/translations/README.az.md)</li><li>[R](../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | <ul><li>Jen and Cassie</li><li>Eric Wanjau</li></ul> |
| 12 | Dadlı Asiya və Hindistan mətbəxi 🍜 | [Sinifləndirmə](../4-Classification/translations/README.az.md) | Daha çox sinifləndiricilər | <ul><li> [Python](../4-Classification/3-Classifiers-2/translations/README.az.md)</li><li>[R](../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | <ul><li>Jen and Cassie</li><li>Eric Wanjau</li></ul> |
| 13 | Dadlı Asiya və Hindistan mətbəxi 🍜 | [Sinifləndirmə](../4-Classification/translations/README.az.md) | Modelinizdən istifadə edərək tövsiyələr verən veb tətbiq yaradın | [Python](4-Classification/4-Applied/translations/README.az.md) | Jen |
| 10 | Qruplaşdırmaya giriş | [Qruplaşdırma](../4-Classification/translations/README.az.md) | Datanızı təmizləyin, hazır formaya gətirin və vizuallaşdırın; qruplaşdırmaya giriş | <ul><li> [Python](4-Classification/1-Introduction/translations/README.az.md) </li><li>[R](../4-Classification/1-Introduction/solution/R/lesson_10.html) | <ul><li>Jen and Cassie</li><li>Eric Wanjau</li></ul> |
| 11 | Dadlı Asiya və Hindistan mətbəxi 🍜 | [Qruplaşdırma](../4-Classification/translations/README.az.md) | Qruplaşdırıcılara giriş | <ul><li> [Python](../4-Classification/2-Classifiers-1/translations/README.az.md)</li><li>[R](../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | <ul><li>Jen and Cassie</li><li>Eric Wanjau</li></ul> |
| 12 | Dadlı Asiya və Hindistan mətbəxi 🍜 | [Qruplaşdırma](../4-Classification/translations/README.az.md) | Daha çox qruplaşdırıcılar | <ul><li> [Python](../4-Classification/3-Classifiers-2/translations/README.az.md)</li><li>[R](../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | <ul><li>Jen and Cassie</li><li>Eric Wanjau</li></ul> |
| 13 | Dadlı Asiya və Hindistan mətbəxi 🍜 | [Qruplaşdırma](../4-Classification/translations/README.az.md) | Modelinizdən istifadə edərək tövsiyələr verən veb tətbiq yaradın | [Python](4-Classification/4-Applied/translations/README.az.md) | Jen |
| 14 | Klasterləşdirməyə giriş | [Klasterləşdirmə](../5-Clustering/translations/README.az.md) | Datanızı təmizləyin, hazır formaya gətirin və vizuallaşdırın; klasterləşdirməyə giriş | <ul><li> [Python](../5-Clustering/1-Visualize/translations/README.az.md)</li><li>[R](../5-Clustering/1-Visualize/solution/R/lesson_14.html) | <ul><li>Jen</li><li>Eric Wanjau</li></ul> |
| 15 | Nigeriya musiqi zövqlərini kəşf edin 🎧 | [Klasterləşdirmə](../5-Clustering/translations/README.az.md) | K-Ortalama klasterləşmə metodunu öyrənin | <ul><li> [Python](../5-Clustering/2-K-Means/translations/README.az.md)</li><li>[R](../5-Clustering/2-K-Means/solution/R/lesson_15.html) | <ul><li>Jen</li><li>Eric Wanjau</li></ul> |
| 16 | Təbii dil emalına giriş ☕️ | [Təbii dil emalı](../6-NLP/translations/README.az.md) | Sadə bot yaratmaqla NLP-in əsasları haqqında öyrənin | [Python](../6-NLP/1-Introduction-to-NLP/translations/README.az.md) | Stephen |
| 17 | Yayğın NLP tapşırıqları ☕️ | [Təbii dil emalı](../6-NLP/translations/README.az.md) | Dil strukturları ilə işləyən zaman tələb olunan ümumi tapşırıqlar ilə NLP biliyinizi dərinləşdirin | [Python](../6-NLP/2-Tasks/translations/README.az.md) | Stephen |
| 18 | Tərcümə və duyğu analizi ♥️ | [Təbii dil emalı](../6-NLP/translations/README.az.md) | Ceyn Ostin ilə tərcümə və duyğuların analizi | [Python](../6-NLP/3-Translation-Sentiment/translations/README.az.md) | Stephen |
| 18 | Tərcümə və hiss analizi ♥️ | [Təbii dil emalı](../6-NLP/translations/README.az.md) | Ceyn Ostin ilə tərcümə və hisslərin analizi | [Python](../6-NLP/3-Translation-Sentiment/translations/README.az.md) | Stephen |
| 19 | Avropanın romantik otelləri ♥️ | [Təbii dil emalı](../6-NLP/translations/README.az.md) | Otel rəyləri ilə təəssürat analizi 1 | [Python](../6-NLP/4-Hotel-Reviews-1/translations/README.az.md) | Stephen |
| 20 | Avropanın romantik otelləri ♥️ | [Təbii dil emalı](../6-NLP/translations/README.az.md) | Otel rəyləri ilə təəssürat analizi 2 | [Python](../6-NLP/5-Hotel-Reviews-2/translations/README.az.md) | Stephen |
| 21 | Zaman seriyası proqnozlaşdırmasına giriş | [Zaman seriyaları](../7-TimeSeries/translations/README.az.md) | Zaman seriyası proqnozlaşdırmasına giriş | [Python](../7-TimeSeries/1-Introduction/translations/README.az.md) | Francesca |
| 22 | ⚡️ Dünya üzrə enerji istifadəsi ⚡️ - ARIMA ilə zaman seriyalarının proqnozlaşdırılması | [Zaman seriyaları](../7-TimeSeries/translations/README.az.md) | ARIMA ilə zaman seriyalarının proqnozu | [Python](../7-TimeSeries/2-ARIMA/translations/README.az.md) | Francesca |
| 23 | ⚡️ Dünya üzrə enerji istifadəsi ⚡️ - SVR ilə zaman seriyalarının proqnozlaşdırılması | [Zaman seriyaları](../7-TimeSeries/translations/README.az.md) | Dəstək Vektor Reqressoru ilə zaman seriyalarının proqnozu | [Python](../7-TimeSeries/3-SVR/translations/README.az.md) | Anirban |
| 24 | Gücləndirilmiş öyrənməyə giriş | [Gücləndirilmiş öyrənmə](../8-Reinforcement/translations/README.az.md) | Q-Öyrənməsi ilə gücləndirilmiş öyrənməyə giriş | [Python](../8-Reinforcement/1-QLearning/translations/README.az.md) | Dmitry |
| 25 | Piterə canavardan qaçmağa kömək edin! 🐺 | [Gücləndirilmiş öyrənmə](../8-Reinforcement/translations/README.az.md) | Gücləndirilmiş Öyrənmə Gym-i | [Python](../8-Reinforcement/2-Gym/translations/README.az.md) | Dmitry |
| 24 | Gücləndirici öyrənməyə giriş | [Gücləndirici öyrənmə](../8-Reinforcement/translations/README.az.md) | Q-Öyrənməsi ilə gücləndirici öyrənməyə giriş | [Python](../8-Reinforcement/1-QLearning/translations/README.az.md) | Dmitry |
| 25 | Piterə canavardan qaçmağa kömək edin! 🐺 | [Gücləndirici öyrənmə](../8-Reinforcement/translations/README.az.md) | Gücləndirici Öyrənmə Gym-i | [Python](../8-Reinforcement/2-Gym/translations/README.az.md) | Dmitry |
| Son söz | Real-Dünya ML ssenariləri və tətbiqləri | [Real-Dünyada ML](../9-Real-World/translations/README.az.md) | Klassik ML-nin maraqlı və aşkar real dünya tətbiqləri | [Dərs](../9-Real-World/1-Applications/translations/README.az.md) | Team |
| Son söz | RAI tablosundan istifadə edərək ML-də Model Sazlanması | [Real-Dünyada ML](../9-Real-World/translations/README.az.md) | RAI tablosundan istifadə edərək ML-də Model Sazlanması | [Dərs](../9-Real-World/2-Debugging-ML-Models/translations/README.az.md) | Ruth Yakubu |
@ -122,7 +122,7 @@ Məzmunun layihələrə uyğun olmasını təmin etməklə, proses tələbələr
## Oflayn giriş
[Docsify](https://docsify.js.org/#/) istifadə edərək bu sənədləri oflayn rejimdə də işlədə bilərsiniz. Bunun üçün, reponu kopyalayın, cihazınızda [Docsify-ı quraşdırın](https://docsify.js.org/#/quickstart) və sonra bu reponun kök qovluğunda olarkən terminalda `docsify service` yazın. Veb sayt lokal hostunuzda 3000 portunda qaldırılmış olacaq: `localhost:3000`.
[Docsify](https://docsify.js.org/#/) istifadə edərək bu sənədləri oflayn rejimdə də işlədə bilərsiniz. Bunun üçün, reponu kopyalayın, cihazınızda [Docsify-ı quraşdırın](https://docsify.js.org/#/quickstart) və sonra bu reponun ana qovluqda olarkən terminalda `docsify service` yazın. Veb sayt lokal hostunuzda 3000 portunda qaldırılmış olacaq: `localhost:3000`.
## PDFlər
@ -134,7 +134,7 @@ Tərcümələrə töhfə vermək istərdinizmi? Lütfən, [tərcümə təlimatla
## Digər Dərs Proqramları
Komandamız başqa kurslar da hazırlayır! Yoxla:
Komandamız başqa kurslar da hazırlayır! Bunları yoxla:
- [Yeni başlayanlar üçün AI](https://aka.ms/ai4beginners)
- [Yeni Başlayanlar üçün Data Elmi](https://aka.ms/datascience-beginners)
@ -142,6 +142,6 @@ Komandamız başqa kurslar da hazırlayır! Yoxla:
- [**YENİ** Yeni Başlayanlar üçün Kibertəhlükəsizlik](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
- [Yeni Başlayanlar üçün Veb Proqramlaşdırma](https://aka.ms/webdev-beginners)
- [Yeni başlayanlar üçün IoT](https://aka.ms/iot-beginners)
- [Yeni Başlayanlar üçün Maşın Öyrənməsi](https://aka.ms/ml4beginners)
- [Yeni başlayanlar üçün maşın öyrənməsi](https://aka.ms/ml4beginners)
- [Yeni başlayanlar üçün XR Proqramlaşdırma](https://aka.ms/xr-dev-for-beginners)
- [AI ilə Proqramlaşdırma üçün GitHub Kopilotdan istifadə](https://aka.ms/GitHubCopilotAI)
Loading…
Cancel
Save