TRANS: reviewed az translation chapter 2

pull/777/head^2
Karim Karimov 2 years ago
parent ac2c7b8892
commit a2920dd5b9
No known key found for this signature in database

@ -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) ![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 > [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) ### [Bu dərs R proqramlaşdırma dili ilə də mövcuddur!](../solution/R/lesson_1-R.ipynb)
## Giriş ## 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: Bu dərsdə siz:
- Kompüterinizi lokal maşın öyrənməsi tapşırıqlarını icra etmək üçün sazlamağı - Kompüterinizi lokal maşın öyrənməsi tapşırıqlarını icrası üçün konfiqurasiya etməyi
- Jupyter notebooks-la işləməyi - Jupyter notbuklarla işləməyi
- Quraşdırılması daxil, SciKit-learn-dən istifadə etməyi - SciKit-learn quraşdırmağı və istifadə etməyi
- Tətbiqi tapşırıqlarla xətti reqressiyanı kəşf etməyi - Tətbiqi tapşırıqlarla xətti reqressiyanı kəşf etməyi
öyrənəcəksiniz. öyrənəcəksiniz.
## Quraşdırılma və Konfiqurasiyalar ## 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. > 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. > 🎥 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. Bu qovluqda siz _notebook.ipynb_ adlı faylı görəcəksiniz.
1. _notebook.ipynb_ faylını Visual Studio Code-da açın. 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. 3. Kod blokunda **print('hello notebook')** yazın.
4. Kodu başlatmaq üçün ox simgəsini seçin. 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 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ı ## 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. [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. > 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 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 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. 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. 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ş - age: illər ilə yaş
- bmi: bədənin çəki indeksi - bmi: bədənin çəki indeksi
- bp: ortalama qan təzyiqi - bp: eortalama qan təzyiqi
- s1 tc: T-hüceyrələri(ağ qan hüceyrələrinin növü) - 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. İ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. > 🎓 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: 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]) 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 ```text
(442, 10) (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] -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 ```python
X = X[:, 2] X = X[:, 2]
X = X.reshape((-1,1)) 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 ```python
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) 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(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 ```python
y_pred = model.predict(X_test) 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! İ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ı quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/10/?loc=az)
## Təkrarlayın və özünüz öyrənin ## 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. 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 ## 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ə ## 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 | | 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) ![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 [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) > ### [Bu dərs R proqramlaşdırma dili ilə də mövcuddur!](../solution/R/lesson_2.html)
## Giriş ## 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: Bu dərsdə siz:
- Datanızı model qurulması necə hazırlamağı - 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. öyrənəcəksiniz.
## Datanızla bağlı sualı düzgün formada soruşmaq ## 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. 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. > 🎥 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ı' ## 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ı ### 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 ### 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 ### 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. 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. _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 ```python
pumpkins.isnull().sum() 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. 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. 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: 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. ✅ İ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 ```python
new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price}) 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 ### 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. > 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: 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. 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ı ## 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ı") [![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. 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. > [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. 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 import matplotlib.pyplot as plt
``` ```
2. Yenilənmə üçün dəftərçəni yenidən başladın. 2. Yenilənmə üçün notbuku 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: 3. Notbukun aşağı hissəsinə datanı qutu formasında təsvir etməsi üçün yeni xana əlavə edin:
```python ```python
price = new_pumpkins.Price 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. 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: 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) ![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? 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ı quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/12/?loc=az)
## Təkrarlayın və özünüz öyrənin ## Təkrarlayın və özünüz öyrənin

@ -1,9 +1,9 @@
# Vizuallaşdırmanın araşdırılması # 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ə ## Qiymətləndirmə
| Kriteriya | Örnək | Adekvat | İnkişaf Etdirilməlidir | | Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| ---------- | ------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------- | | -------- | -------- | ------- | ------------------------ |
| | 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 | | | 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) ![Xətti və Polinom reqressiya infoqrafiki](../images/linear-polynomial.png)
> [Dasani Madipalli](https://twitter.com/dasani_decoded) tərəfindən çəkilmiş infoqrafik > [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ə öncəsi quiz](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) > ### [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. 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 ### İ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 ### Hazırlıq
Bu dataları sual vermək üçün yüklədiyinizi xatırlatmaq istəyirik. 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? - 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? - 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. 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 ### Xətti reqressiya xətti
@ -46,10 +46,10 @@ Bu tip bir xətt çəkmək **Ən Kiçik Kvadratlar Reqressiyasının** tipik bir
Bütün məlumat nöqtələrimizdən ən az məcmu məsafəyə malik olan xətti modelləşdirmək istədiyimiz üçün bunu edirik. Biz onun istiqaməti deyil, böyüklüyü ilə maraqlandığımıza görə şərtləri də əlavə etməzdən əvvəl kvadratlaşdırırıq. Bütün məlumat nöqtələrimizdən ən az məcmu məsafəyə malik olan xətti modelləşdirmək istədiyimiz üçün bunu edirik. Biz onun istiqaməti deyil, böyüklüyü ilə maraqlandığımıza görə şərtləri də əlavə etməzdən əvvəl kvadratlaşdırırıq.
> **🧮 Mənə riyaziyyatı göstərin** > **🧮 Mənə riyaziyyatı göstərin**
> >
> _Ən uyğun xətt_ adlanan bu xətt, [tənliklə](https://en.wikipedia.org/wiki/Simple_linear_regression) ifadə oluna bilər: > _Ən uyğun xətt_ adlanan bu xətt, [tənliklə](https://en.wikipedia.org/wiki/Simple_linear_regression) ifadə oluna bilər:
> >
> ``` > ```
> Y = a + bX > Y = a + bX
> ``` > ```
@ -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) >![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. > 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. > 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 ## 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. 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: 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 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 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 ```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days) day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
@ -106,7 +106,7 @@ Keçən dərsdən çox güman ki, balqabağın aylar üzrə ortalama qiymətinin
Bu şəkil bizə biraz korrelyasiyaya ehtiyac olduğuna işarə edir. Biz `Month` və `Price`, və yaxud `DayOfYear` və `Price` arasındakı əlaqəni təxmin etmək üçün reqressiya modellərimizi öyrədə bilərik. İkinci əlaqəni göstərən paylanma qrafiki: Bu şəkil bizə biraz korrelyasiyaya ehtiyac olduğuna işarə edir. Biz `Month` və `Price`, və yaxud `DayOfYear` və `Price` arasındakı əlaqəni təxmin etmək üçün reqressiya modellərimizi öyrədə bilərik. İkinci əlaqəni göstərən paylanma qrafiki:
<img alt="Price və Day of Year arasındakı əlaqəni göstərən paylanma qrafiki" src="../images/scatter-dayofyear.png" width="50%" /> <img alt="Price və Day of Year arasındakı əlaqəni göstərən paylanma qrafiki" src="../images/scatter-dayofyear.png" width="50%" />
Gəlin `corr` funksiyasından istifadə etməklə korrelyasiyanın mövcud olub olmadığına baxaq: Gəlin `corr` funksiyasından istifadə etməklə korrelyasiyanın mövcud olub olmadığına baxaq:
@ -131,7 +131,7 @@ Gəlin bir müddət yalnız 'yeməli növ' balqabaq sortuna fokuslanaq and tarix
```python ```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE'] pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price') pie_pumpkins.plot.scatter('DayOfYear','Price')
``` ```
<img alt="Price və Day of Year arasındakı əlaqəni göstərən paylanma qrafiki" src="../images/pie-pumpkins-scatter.png" width="50%" /> <img alt="Price və Day of Year arasındakı əlaqəni göstərən paylanma qrafiki" src="../images/pie-pumpkins-scatter.png" width="50%" />
@ -145,7 +145,7 @@ pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info() 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 ## Sadə xətti reqressiya
@ -161,16 +161,16 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split 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 ```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1) X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price'] 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 ```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) 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) 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 ```python
pred = lin_reg.predict(X_test) 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. 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 ```python
from sklearn.preprocessing import PolynomialFeatures 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. `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%"/> <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 ## 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") [![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: 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: 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'] 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 ```python
X = pd.get_dummies(new_pumpkins['Variety']) \ X = pd.get_dummies(new_pumpkins['Variety']) \
@ -299,11 +299,11 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price'] 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 ## 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 ```python
# set up training data # 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. 🏆 Ə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ı quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/14/?loc=az)
## Təkrarlayın və özünüz öyrənin ## Təkrarlayın və özünüz öyrənin

@ -2,10 +2,10 @@
## Təlimatlar ## 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ə ## Qiymətləndirmə
| Kriteriya | Örnək | Adekvat | İnkişaf Etdirilməlidir | | Meyarlar | Nümunəvi | Adekvat | İnkişaf Etdirilməli Olan |
| ---------- | ------------------------------------------------------- | ----------------------------------------------- | ------------------------------------- | | -------- | -------- | ------- | ------------------------ |
| | ə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 | | | ə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 # 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ə öncəsi quiz](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) > ### [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 ## 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 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") [![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 ### İ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 > [Dasani Madipalli](https://twitter.com/dasani_decoded) tərəfindən çəkilmiş infoqrafik
### Digər klassifikasiya ### 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ı". - **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) ![Multinomial və ordinal reqressiya](../images/multinomial-vs-ordinal.png)
### Dəyişənlər korrelyasiya etməli deyil ### 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 ### Çoxlu təmiz dataya ehtiyacınız var
@ -78,7 +78,7 @@ Xətti reqressiya daha çox data istifadə etdikcə daha dəqiq nəticələr ver
1. Aşağıdakı kodu əlavə edin: 1. Aşağıdakı kodu əlavə edin:
```python ```python
columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color'] columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']
pumpkins = full_pumpkins.loc[:, columns_to_select] pumpkins = full_pumpkins.loc[:, columns_to_select]
@ -93,13 +93,13 @@ Xətti reqressiya daha çox data istifadə etdikcə daha dəqiq nəticələr ver
### Vizuallaşdırma - kateqorik qrafik ### 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 ```python
import seaborn as sns import seaborn as sns
palette = { palette = {
'ORANGE': 'orange', 'ORANGE': 'orange',
'WHITE': 'wheat', 'WHITE': 'wheat',
@ -107,7 +107,7 @@ Artıq bir neçə dəfə [başlanğıc dəftərçəsini](./notebook.ipynb) yükl
sns.catplot( sns.catplot(
data=pumpkins, y="Variety", hue="Color", kind="count", data=pumpkins, y="Variety", hue="Color", kind="count",
palette=palette, palette=palette,
) )
``` ```
@ -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: Ö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 ```python
from sklearn.preprocessing import OrdinalEncoder 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_features = ['Item Size']
ordinal_encoder = OrdinalEncoder(categories=item_size_categories) 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 ```python
from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import OneHotEncoder
@ -144,16 +144,16 @@ Daha sonra bir neçə şifrələyicini 1 addımda birləşdirmək və müvafiq s
```python ```python
from sklearn.compose import ColumnTransformer from sklearn.compose import ColumnTransformer
ct = ColumnTransformer(transformers=[ ct = ColumnTransformer(transformers=[
('ord', ordinal_encoder, ordinal_features), ('ord', ordinal_encoder, ordinal_features),
('cat', categorical_encoder, categorical_features) ('cat', categorical_encoder, categorical_features)
]) ])
ct.set_output(transform='pandas') ct.set_output(transform='pandas')
encoded_features = ct.fit_transform(pumpkins) 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 ```python
from sklearn.preprocessing import LabelEncoder 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 ### 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. 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 ```python
@ -215,9 +215,9 @@ Dəyişənləri yanaşı formada Seaborn qrafikləri ilə vizuallaşdıra bilər
**Diqqət edin**: Seaborn bu qədər çox məlumat nöqtəsini sürü qrafiki ilə göstərməyi bacara bilmədiyi üçün yuxarıdakı kod bir xəbərdarlıq göstərə bilər. Problemin potensial həlli, 'size' parametrindən istifadə edərək işarələyicinin ölçüsünü azaltmaqdır. Amma nəzərə alın ki, bu qrafikin oxunaqlılığını aşağı salacaq. **Diqqət edin**: Seaborn bu qədər çox məlumat nöqtəsini sürü qrafiki ilə göstərməyi bacara bilmədiyi üçün yuxarıdakı kod bir xəbərdarlıq göstərə bilər. Problemin potensial həlli, 'size' parametrindən istifadə edərək işarələyicinin ölçüsünü azaltmaqdır. Amma nəzərə alın ki, bu qrafikin oxunaqlılığını aşağı salacaq.
> **🧮 Mənə riyaziyyatı göstərin** > **🧮 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) > ![logistic function](../images/sigmoid.png)
> >
@ -235,18 +235,18 @@ Həmin ikili klassifikasiyanı tapmaq üçün bir model qurmaq Scikit-learn-də
```python ```python
from sklearn.model_selection import train_test_split from sklearn.model_selection import train_test_split
X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])] X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])]
y = encoded_pumpkins['Color'] y = encoded_pumpkins['Color']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
``` ```
2. Artıq `fit()`-i öyrənmə dataları ilə çağıraraq modelinizi öyrədə və nəticəni ekrana çap edə bilərsiniz: 2. Artıq `fit()`-i öyrənmə dataları ilə çağıraraq modelinizi öyrədə və nəticəni ekrana çap edə bilərsiniz:
```python ```python
from sklearn.metrics import f1_score, classification_report from sklearn.metrics import f1_score, classification_report
from sklearn.linear_model import LogisticRegression from sklearn.linear_model import LogisticRegression
model = LogisticRegression() model = LogisticRegression()
@ -262,14 +262,14 @@ Həmin ikili klassifikasiyanı tapmaq üçün bir model qurmaq Scikit-learn-də
```output ```output
precision recall f1-score support precision recall f1-score support
0 0.94 0.98 0.96 166 0 0.94 0.98 0.96 166
1 0.85 0.67 0.75 33 1 0.85 0.67 0.75 33
accuracy 0.92 199 accuracy 0.92 199
macro avg 0.89 0.82 0.85 199 macro avg 0.89 0.82 0.85 199
weighted avg 0.92 0.92 0.92 199 weighted avg 0.92 0.92 0.92 199
Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0
@ -292,26 +292,26 @@ Yuxarıdakıları ekrana çap edərək bir xal tablosu [reportu](https://scikit-
confusion_matrix(y_test, predictions) confusion_matrix(y_test, predictions)
``` ```
Take a look at your model's confusion matrix: Modelinizin xəta matrisinə baxın:
```output ```output
array([[162, 4], array([[162, 4],
[ 11, 22]]) [ 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 | 1 |
| :---: | :---: | :---: | | :---: | :---: | :---: |
| 0 | TN | FP | | 0 | TN | FP |
| 1 | FN | TP | | 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ğı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 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 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 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. 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 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: 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 🎓 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ı 🎓 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ı. 🎓 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? ✅ 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() 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) ![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! 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ı quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/16/?loc=az)
## Təkrarlayın və özünüz öyrənin ## 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 ## 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 ## 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ə ## Qiymətləndirmə
| Meyarlar | Örnək | Adekvat | İnkişaf Etdirilməli olan | | Meyarlar | Nümunəvi | 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 | | | ə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. 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. > 🎥 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 ### Dərslər
1. [Ticarət alətləri](../1-Tools/translations/README.az.md) 1. [Ticarət alətləri](../1-Tools/translations/README.az.md)
2. [Datanın idarə olunması](2-Data/README.md) 2. [Datanın idarə olunması](../2-Data/transalations/README.az.md)
3. [Xətti and polinomial reqressiya](3-Linear/README.md) 3. [Xətti and polinomial reqressiya](../3-Linear/translations/README.az.md)
4. [Məntiqi reqressiya](4-Logistic/README.md) 4. [Logistik reqressiya](../4-Logistic/translations/README.az.md)
### Təşəkkürlər ### 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) ♥️ 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.
Loading…
Cancel
Save