Data scientist olmaq üçün haradan başlayaq 1: background məsələsi
Bu postu, son üç gündə mənimlə əlaqə saxlayan xeyli insanın ən çox verdikləri suala cavab olaraq yazıram.
Sualın cavabı budur ki, hər hansı iki insanı götürsəniz onların sahəni öyrənməsi yolu eyni olmayacaq. Gəlin məsələni bir qədər "background"-umuz və ətraf faktorlar baxımından dəyərləndirək.
Postu iki yerə bölürəm.
- Müxtəlif background-lu insanlar necə başlasınlar?
- Detallı mənbələr
Detallı mənbələri bir sonrakı postda paylaşmağa çalışacam.
Müxtəlif background-lar və öyrənmə yanaşması
Data science qərbdə yaranmış və sonradan da Çin və Hindistan kimi ölkələrdə geniş yayılmış bir sahədir. Bütün sahələrdə olduğu kimi burada da bizdə ədəbiyyat qıtlığı var (daha dəqiq, ədəbiyyat yoxdur!). Buna görə də, tez nəticə əldə edə bilmək üçün siz yaxşı səviyyədə ingilis dilində oxumaq qabiliyyətinə malik olmalısınız. Səhv başa düşməyin, sizə TOEFL, IELTS lazımdır demirəm, ingilis dilində "çırtdamalısız" da demirəm :) . Sadəcə, ingilis dilində texniki, xüsusən də riyazi-statistik və proqramlaşdırma sahələrini oxuyub başa düşə bilməlisiniz. Əgər burada problem varsa əvvəlcə buradan başlayın.
Dil probleminiz yoxdursa növbəti sizin texniki background-a baxmaq lazımdır. Bu baxımdan insanları bir neçə yerə ayırmaq olar:
- Riyaziyyat, Statistika, Ekonometrika, Quantitative Finance və s oxşar sahələrdə təhsil almış, amma sırf databazalar və proqramlaşdırma ilə məşğul olmamış insanlar;
- İqtisadiyyat, Maliyyə, biznes və oxşar digər sahələrdə təhsil almış, baza riyaziyyat və statistikadan məlumatlı insanlar;
- Sırf IT sahəsində təhsil almış yaxşı proqramlaşdırma bilikləri olan şəxslər;
- DBA-lər;
- Tam olaraq humanitar sahədən gələn, indiyə qədər heç bir texniki məsələlərlə maraqlanmayanlar.
1-ci qrupa daxil olanlar üçün təcili olaraq proqramlaşdırma öyrənməyə başlamaq lazımdır. Çoxlu proqramlaşdırma dilləri var, amma data science üçün daha çox python və ya R uyğundur. Hər ikisini istifadə edə bilərsiniz, və əslində bu daha yaxşı olar, amma şəxsən mənim fikrimi soruşsanız, başlamaq üçün python məsləhətdir. Bir də, Hazırda R-da AI (süni intellekt) modelləri üçün rahat "framework" yoxdur. R-la bağlı məşhur http://www.r-bloggers.com saytı özü belə python-un üstün olduğunu etiraf edir (aşağıda, faydalı linklərdə məqaləyə keçid qoymuşam). Qrafikdə həmin blog-a əsasən 2014-2016-cı illərdə stackexchange-də python və R proqramları ilə bağlı tag-lərin sayı göstərilib. Python-un nece sürətlə populyarlaşdığı qrafikdən görünür. Düzü tənbəllikdən sonrakı illərin də məlumatlarını əldə edib özüm qrafik qurmadım, ümid edirəm üzrlü sayarsınız :)
Mənbə: www.r-bloggers.com
Python öyrənərkən alqoritm dizaynına (buna başqa sözlə proqram məntiqi də demək olar) xüsusi fikir və obyekt yönümlü proqramlaşdırma (OOP) prinsiplərini yaxşı mənimsəyin.
Python-la bərabər SQL də öyrənmək lazımdır. Databazalarla ən azından başlanğıc səviyyədə işləyə bilmirsinizsə bu sizə problem yarada bilər.
Proqramlaşdırma və SQL-in baza prinsiplərini başa düşdükdən sonra sizə riyazi və statistik biliklərinizi Machine Learning (ML) və Artificial İntelligence (AI) sahəsi üzrə genişləndirmək lazımdır. Amma bunu təkcə nəzəriyyədə deyil, eyni zamanda proqramlaşdırma biliklərinizi istifadə etməklə praktikada da istifadə eləməlisiniz ki, yaxşı yadınızda qalsın. Dediyim kimi, detallı mənbələr gələn postda, amma ML və AI eyni məqsədə çatmağın müxtəlif yollarını təqdim edir, onların hər birini tətbiq edə-edə, müqayisəli öyrənsəniz hər birini üstün və zəif cəhətlərini bilərsiniz. Nümunə üçün python-un ML kitabxanası olan sklearn-ün içərisində olan yanaşmaların infoqrafikasını təqdim edirəm, metodların çox olduğunu görəcəksiniz:
Mənbə: www.scikit-learn.org
Rahatlıqla ML alqoritmlərini train edə bilirsinizsə hansısa işə düzələ və/və ya öz layihələrinizi işləyə bilərsiniz. Lazım olduqda arada hmtl/css-lə də tanış olsanız daha yaxşı olar.
Ümumiyyətlə yadda saxlayın ki, bu proses hardasa 1 il çəkə bilər.
2-ci qrup şəxslər hər sheyi rahat başa düşmək üçün ilk öncə riyazi optimallaşdırma və statistik analizi təkmilləşdirməlidirlər. Ondan sonra 1-ci qrup üçün dediklərimiz onlar üçün də keçərlidir. Elə eyni zamanda python-un bazasını öyrənsəniz daha sürətlə nəticəyə çata bilərsiniz. Normal orta səviyyəyə gəlmək üçün 1-ci qrupdan bir qədər daha çox vaxt lazım olacaq, amma yenə də əlçatmaz bir şey yoxdur, xüsusən də 18-25 yaş intervalındasınızsa sizə lap asan olacaq (digər yaş qruplarına qarşı heç bir şəxsi qərəzliyim yoxdur, mən özüm də bu qrupda deyiləm :) ).
3-cü qrup şəxslər üçün python və SQL öyrənmək (əgər bilmirlərsə) çox asan olacaq. Amma ən böyük probleminiz statistika və intuitiv məsələr olacaq (güman edirəm ki, riyazi biliklər yaxşı səviyyədədir). Sizə birinci növbədə Economics kitabı oxumaq lazımdır. Mankiw, Principles of Economics ilkin mərhələdə bəs edər. Sizə mütləq şəkildə iqtisadi və biznes proseslərin hansı yöndə cərəyan etməsi barədə məlumatlı olmaq lazımdır. Əlavə olaraq, maliyyə sahəsinə dair kitablar oxusanız, baza səviyyədə maliyyə hesabatlığından məlumatlı olsanız müəssisələrin neçə çalışdığını rahat başa düşərsiniz. İqtisadi effektivlik bütün texnoloji tətbiqlərin əsasında dumalıdır. Biznes 0 və 1-lərdən ibarət deyil :)
Yuxarıdakılardan sonra python-un ML və Aİ tərəfinə keçmək olar. Ümumiyyətlə isə Econometrics kitablarından birinə də göz gəzdirməyinizdə fayda var. Dəyişənlər, onların funksional forması, nə ifadə etməsi barədə məlumatlı olmaq yaxşı olar.
Amma belə bir məsləhət də verə bilərəm: əgər sadaladıqlarımı istəmirsinizsə siz Data Engineer də ola bilərsiniz, sizə daha rahat olar. SQL (yəqin ki, Oracle) və NoSQL biliklərinizi genişləndirin, Java-nı mükəmməlləşdirin, Hadoop və Spark-ı yaxşı öyrənin, başlamaq üçün yetərli olacaq.
4-cü qrup, yəni DBA-lər üçün ən optimal yol data engineering-dir. Amma data scientist olmaq istəyirsinizsə sizin üçün 2-ci və 3-cü qruplara verilən tövsiyyələr keçərlidir. Nəzərə alsaq ki, bu sahənin mütəxəssisləri təhsillərini praktika və sertifikatlardan alırlar, heç biri məndən inciməsin, içərisində dostlarım da var, bu şəxslərin çoxunun iqtisadi, maliyyə, biznes proses, eyni zamanda riyazi və statistik bilikləri yaxşı olmur. Bizim reallıqda çox zaman SQL xaric hansısa proqramlaşdırma da bilmirlər. Buna görə də həm 2, həm də 3-cü qrupun öyrəndiklərini öyrənmək məsləhərdir.
Belə bir qeyd də edim: bəzən deyirlər ki, mən yaxşı İT mütəxəssisi olandan sonra intuisiyanı bilməyim vacib deyil, bütün variantları daxil edib yoxlaya bilərəm, ən yaxşısını taparam. Belə deyək: əgər 50 dəyişəni test eləmək istəyirsinizsə (bu indiki alqoritmlər baxımından azdır, adətən minlərlə dəyişənlərdən istifadə olunur) mümkün bütün kombinasiyaların sayı 378,195,990,166,135 rəqəminə bərabərdir - 378 trilyon! Hələ saniyədə 10 model hesablaya bilən sisteminiz varsa buna 1.2 milyon il lazimdir :). Mənim kifayət qədər yaxşı parametrli kompüterim saniyədə cəmi 1-2 model hesablaya bilir. Deyək ki, normal bahalı server olsa bunu 20-30-a çatdırmaq olaq. Distributed sistemlər istifadə eləsəniz lap 1000-ə qalxsın (bunun xərci özü böyük sualdır), yenə də 120 000 il lazı ola bilər :) . Bu baxımdan əvvəlcə biznes məntiqini başa düşmək və ağıllı seçimlər aparmaq lazımdır.
Qaldı 5-ci qrup. Əgər sadəcə yoxlamaq üçün bu sahəyə keçmək istəyirlərsə, təəssüflə bildirirəm ki, yoxlama müddət illər ala bilər. Üstəlik öz riyazi bilik və bacarıqlarınızı da real dəyərləndirmək lazımdır. Əgər orta məktəbdə riyaziyyata heç həvəsiniz olmayıbsa və ya riyaziyyatı oxumaq alınmayıbsa təəssüflə bildirirəm ki, sizə olduqca çətin olacaq. Yenə də, qeyri-mümkündür demirəm, amma ona ayıracağınız zaman illər olacaq. Hazırsınızsa buyurun!
2-ci hissəni təxminən 1 həftə sonra post edəcəm, amma yəqin ona qədər digər postlar da olar.
Hamınıza uğurlar!
Faydalı linklər:
https://www.r-bloggers.com/how-to-smartly-choose-your-data-science-toolkit-r-vs-python/
1 Comments
Adil
02 Aug 2023 07:36no replies yet
Reply