Supervised learning: əsas alqoritmlər
Supervised learning: əsas alqoritmlər
Supervised learning machine learning-in ən geniş yayılmış və kommersiya baxımından ən faydalı formasıdır. Input-larınız var, düzgün output-larınız var və onların arasında funksiya tapmaq istəyirsiniz. Output kateqoriya olduqda bu classification, ədəd olduqda isə regression adlanır.
Bu fəsil deploy edilmiş model-lərin böyük əksəriyyətini təşkil edən alqoritmləri əhatə edir. Hər biri üçün məqsəd eynidir: hansı formada funksiya öyrənə bildiyini, harada sındığını və nə vaxt ona müraciət etməli olduğunuzu anlamaq.
Linear və logistic regression
Linear regression feature-lərin çəkili cəmini fit edir: y = w₁x₁ + w₂x₂ + … + b. Logistic regression eyni çəkili cəmi götürüb sigmoid-dən keçirir və binary classification üçün ehtimal verir.
- Öyrənir: düz xətlər (hyperplane-lər). Feature-lər arasındakı interaction-ları əl ilə əlavə etmək lazımdır.
- Güclü tərəfləri: sürətli, sabit, interpretable. Weight-lər elə izahın özüdür. Çox az data ilə işləyir. Baseline kimi üstələmək çətindir.
- Zəif tərəfləri: feature engineering olmadan qeyri-xətti strukturu tuta bilmir.
- Nə vaxt müraciət etməli: interpretable model lazımdırsa, nümunələriniz azdırsa və ya daha mürəkkəb bir şeyə keçməzdən əvvəl baseline lazımdırsa.
Feature-lərin sayı artdıqca regularization (weight-lərə L1 / L2 penalty) vacib olur. L1 weight-ləri dəqiq sıfıra endirir və eyni zamanda feature selection rolunu oynayır.
Decision tree-lər
Tree feature-lər barədə ardıcıl hə/yox sualları verir (age > 40?, country == DE?) və hər leaf-də çoxluq təşkil edən label-ı proqnozlaşdırır.
- Öyrənir: feature space-də oxlara paralel düzbucaqlılar.
- Güclü tərəfləri: scaling tələb etmir, qarışıq tipli data ilə işləyir, interaction-ları təbii şəkildə tutur, kiçik olduqda insan tərəfindən oxuna bilir.
- Zəif tərəfləri: tək tree ciddi şəkildə overfit edir və qeyri-sabitdir: datadakı kiçik dəyişiklik tamamilə fərqli tree verə bilər.
- Nə vaxt müraciət etməli: bir səhifəyə çap edib tənzimləyici orqana göstərə biləcəyiniz model lazım olduqda.
Tree ensemble-ları: random forest və gradient boosting
Tək tree-lərin qeyri-sabitliyi çoxlu tree birləşdiriləndə üstünlüyə çevrilir.
Random forest datanın və feature-lərin təsadüfi subset-ləri üzərində yüzlərlə tree train edir, sonra nəticələri ortalayır. Variance düşür; model robust olur və onu pis konfiqurasiya etmək demək olar ki, mümkün deyil.
Gradient boosted tree-lər (XGBoost, LightGBM, CatBoost) tree-ləri ardıcıl train edir: hər yeni tree o ana qədərki ensemble-ın səhvlərini düzəldir. Tabular data üzərində, bu sətirlər yazılan vaxt, onlar ən güclü ümumi təyinatlı metoddur və structured data yarışlarının əksəriyyətini qazanır.
- Güclü tərəfləri: tabular datada state-of-the-art, missing value-larla işləyir, feature importance verir.
- Zəif tərəfləri: boosting-də əhəmiyyətli bir neçə hyperparameter var (learning rate, depth, tree-lərin sayı) və nəzarətsiz qalsa, overfit edir. Tək tree-dən daha az interpretable-dır; izah üçün SHAP value-larından istifadə edin.
- Nə vaxt müraciət etməli: data tabular-dırsa və ağlabatan səylə ən yaxşı accuracy istəyirsinizsə. Biznes məsələlərinin əksəriyyəti məhz belədir.
k-nearest neighbours
Input-a ən yaxın k training nümunəsini tapıb səsvermə ilə proqnoz verin. Training addımı yoxdur.
- Güclü tərəfləri: son dərəcə sadədir, funksiyanın forması barədə heç bir fərziyyə tələb etmir.
- Zəif tərəfləri: böyük data üzərində inference yavaşdır, feature scaling-ə və əhəmiyyətsiz feature-lərə həssasdır, yüksək dimension-larda keyfiyyəti düşür.
- Nə vaxt müraciət etməli: tez bir sanity check lazım olduqda və ya "oxşar nümunə" anlayışı elə məhz istədiyiniz şey olduqda (recommendation, deduplication).
Support vector machine-lər
Sinifləri ən geniş margin ilə ayıran hyperplane-i tapın; kernel trick ilə bunu qeyri-xəttiliyi tutmaq üçün gizli yüksəkölçülü space-də edin.
- Güclü tərəfləri: çoxlu feature-i olan kiçik və orta ölçülü dataset-lərdə güclüdür, nəzəri cəhətdən yaxşı öyrənilib.
- Zəif tərəfləri: təxminən 100 min nümunədən yuxarı pis scale edir, kernel və regularization seçimləri əziyyətlidir.
- Nə vaxt müraciət etməli: az nümunə ilə text classification-da və ya boosted tree yüksəkölçülü sparse data üzərində zəif nəticə verdikdə.
Neural network-lər
Aralarında qeyri-xətti activation-lar olan çəkili cəmlər layer-lərindən ibarətdir. Kifayət qədər layer və data olduqda demək olar ki, istənilən funksiyanı approximate edə bilirlər; buna görə də şəkil, səs, mətn və xam, yüksəkölçülü input-u olan hər şeydə hakim mövqedədirlər.
- Güclü tərəfləri: xam datadan öz feature-lərini özləri öyrənir. Perception məsələlərində və sequence-lərdə rəqibsizdir.
- Zəif tərəfləri: dataya ac, compute-a ac, çoxlu tənzimləmə düyməsi var, debug etmək çətindir. Kiçik tabular datada adətən gradient boosting-dən pis nəticə verir.
- Nə vaxt müraciət etməli: input şəkil, səs, sənəd və ya sequence olduqda, yaxud milyonlarla nümunəniz və GPU-nuz olduqda.
Qərar cədvəli
| Data necə görünür | Bununla başlayın | Sonra bunu sınayın |
|---|---|---|
| Cədvəl, < 10 min sətir | Logistic/linear regression | Gradient boosting |
| Cədvəl, > 10 min sətir | Gradient boosting | Tune edilmiş boosting, stacking |
| Mətn, az nümunə | TF-IDF üzərində logistic regression | Fine-tune edilmiş transformer |
| Şəkil / səs | Pretrained CNN və ya transformer, fine-tune edilmiş | Daha böyük pretrained model |
| Hər proqnozu izah etmək lazımdır | Logistic regression və ya dayaz tree | Boosting + SHAP |
Əsl dərs
Alqoritm nadir hallarda darboğaz olur. Yaxşı qurulmuş feature set ilə logistic regression xam sütunlar üzərində neural network-ü müntəzəm olaraq üstələyir. Əvvəlcə datanı və evaluation-ı düzgün qurun (Fəsil 3 və 4), alqoritm seçiminə vaxtı ondan sonra ayırın.
Tapşırıqlar
- Eyni tabular dataset üzərində logistic regression və gradient boosting train edin. Daha yaxşı model sizi maraqlandıran metric-i əslində nə qədər yaxşılaşdırır?
- Eyni datanın iki təsadüfi 90%-lik sample-ı üzərində tək decision tree-ni iki dəfə train edin. Tree-ləri müqayisə edin.
- Növbəti məsələniz üçün notebook açmazdan əvvəl onun qərar cədvəlinin hansı sətrinə düşdüyünü yazın.