Зеҳн
Омӯзиши мошинӣ

Китоб барои касоне навишта шудааст, ки бо омӯзиши мошинӣ тамоман шинос нестанд.

Агенти Зеҳнӣ · 21 октябри 2026 · 16 саҳифа

ИлмТехнология
Аз аввал хондан

Боби 4. Омода кардани додаҳо

Дар ин боб меомӯзем

  • Чаро додаҳоро ба қисмҳои омӯзишӣ ва санҷишӣ тақсим мекунанд ва бо кадом таносуб.
  • Кай пеш аз тақсимкунӣ тартиби сатрҳоро тасодуфӣ мекунанд ва кай ин кор хатост.
  • Сифати моделро бо кадом меъёрҳо чен мекунанд: MAE, RMSE, accuracy ва дигарҳо.
  • Санҷиши салибии k-қисмӣ чӣ гуна кор мекунад ва чаро гиперпараметрҳоро бо он интихоб мекунанд, на бо додаҳои санҷишӣ.
  • Нашти иттилоот чист ва чаро омодасозии додаҳо бояд танҳо аз додаҳои омӯзишӣ омӯхта шавад.
  • Барои омӯзонидани модел чӣ қадар дода лозим аст.

Қадами навбатӣ тақсим кардани маҷмӯи додаҳо ба ду қисм — барои омӯзиш ва санҷиш — мебошад. Тақсимкуниро барвақт, пеш аз қадамҳои тозакуние, ки аз додаҳо қимат ҳисоб мекунанд (медиана, мода, миқёс), анҷом диҳед. Сабабашро дар қисми «Нашти иттилоот» мебинем. Ин равишро санҷиш бо тақсимкунии додаҳо — split validation низ меноманд.

Таносуби ин ду қисм одатан 70/30 ё 80/20 аст. Агар тағйирёбандаҳо дар сутунҳо ва намунаҳо дар сатрҳо ҷойгир бошанд, тавре дар расми 4.1 нишон дода шудааст, пас додаҳои омӯзишӣ бояд аз 70 то 80 дарсади сатрҳои маҷмӯи додаҳоро ташкил диҳанд. Аз 20 то 30 дарсади боқимонда барои санҷиш нигоҳ дошта мешавад.

Тақсими додаҳо ба қисмҳои омӯзишӣ ва санҷишӣ

Расми 4.1. Тақсим кардани додаҳо ба қисмҳои омӯзишӣ ва санҷишӣ бо таносуби 70/30.

Гарчанде тақсимоти 70/30 ё 80/20 маъмул аст, барои интихоби таносуби додаҳои омӯзишӣ ва санҷишӣ қоидаи қатъӣ вуҷуд надорад.

Бо назардошти афзоиши ҳаҷми маҷмӯаҳои муосири додаҳо, ки метавонанд як миллион ё бештар сатр дошта бошанд, таносубе ба монанди 90/10 метавонад мувофиқтар бошад. Бо ин роҳ барои омӯзонидани модел додаҳои бештар мегиред ва ҳамзамон барои санҷиши он низ додаҳои кофӣ боқӣ мемонанд.

Агар сатрҳо аз ҳамдигар мустақил бошанд, масалан, ҳар сатр як хонаи алоҳида аст, пеш аз тақсим кардани додаҳо тартиби онҳоро тасодуфӣ кунед. Маҷмӯи аслии додаҳо метавонад аз рӯйи алифбо, минтақа ё категория тартиб дода шуда бошад.

Агар чунин додаҳоро омехта накунед, эҳтимол қисми муҳими гуногунии онҳо ба маҷмӯи омӯзишӣ дохил нашавад. Масалан, агар хонаҳо аз рӯйи ноҳия мураттаб бошанд, 30 дарсади охир метавонад танҳо ноҳияҳоеро дар бар гирад, ки модел ҳеҷ гоҳ надидааст.

Хушбахтона, Scikit-learn барои омехта кардан ва тасодуфӣ сохтани тартиби додаҳо имкони омода дорад. Тавре дар боби 14 нишон дода мешавад, ин корро бо як сатри код иҷро кардан мумкин аст.

Аммо омехта кардан на ҳамеша дуруст аст. Ду ҳолати маъмул:

  • Додаҳои замонӣ. Агар модел ояндаро пешгӯӣ кунад, масалан, фурӯши моҳи оянда ё нархи хона дар соли оянда, сатрҳоро омехта накунед. Додаҳоро аз рӯйи вақт тақсим кунед: модел бо гузашта меомӯзад ва бо давраи баъдӣ санҷида мешавад. Агар омехта кунед, ба маҷмӯи омӯзишӣ сатрҳое аз «оянда» медароянд, ки ҳангоми пешгӯии воқеӣ дастрас нестанд, ва натиҷаи санҷиш аз воқеият беҳтар менамояд. Дар Scikit-learn барои ин train_test_split(..., shuffle=False) (агар сатрҳо аз рӯйи вақт мураттаб бошанд) ва барои санҷиши салибӣ TimeSeriesSplit ҳаст.
  • Якчанд сатр барои як объект. Агар як бемор, як мизоҷ ё як хона дар якчанд сатр омада бошад, ҳамаи сатрҳои он бояд дар як қисм бошанд. Дар акси ҳол модел ҳамон объектро ҳам дар омӯзиш ва ҳам дар санҷиш мебинад ва санҷиш дигар додаҳои навро намесанҷад. Барои ин GroupShuffleSplit ва GroupKFold истифода мешаванд.

Пас аз тақсим кардани додаҳо, метавонед тарҳрезии модел ва омӯзонидани онро бо додаҳои омӯзишӣ оғоз кунед. Тақрибан 30 дарсади боқимондаи додаҳо ҷудо нигоҳ дошта мешаванд, то баъдтар дақиқии моделро бо онҳо бисанҷед.

Моделро бо ҳамон додаҳое, ки барои омӯзиши он истифода кардед, санҷидан дуруст нест.

Дар омӯзиши назоратшаванда модел тавассути додани маҷмӯи омӯзишӣ ба мошин ва таҳлили робитаи байни хусусиятҳои воридотӣ — X — ва натиҷаи ниҳоӣ — y — сохта мешавад.

Қадами навбатӣ чен кардани сифати кори модел аст. Барои ин меъёрҳои гуногун мавҷуданд ва интихоби меъёри мувофиқ ба вазифаи модел вобаста мебошад.

Барои вазифаҳои тасниф, масалан, низоми ошкорсозии спам, аз меъёрҳои зерин истифода мешавад:

  • масоҳати зери каҷи ROC — ROC-AUC;
  • матритсаи иштибоҳҳо — confusion matrix;
  • пуррагӣ — recall;
  • дақиқии умумӣ — accuracy.

Барои арзёбии моделҳое, ки натиҷаи ададӣ медиҳанд, масалан, нархи пешгӯишудаи хона, одатан хатои миёнаи мутлақ — MAE ва решаи хатои миёнаи квадратӣ — RMSE истифода мешаванд.

Дар ин китоб мо аз MAE истифода мебарем. Ин меъёр миёнаи қиматҳои мутлақи хатоҳои пешгӯиро дар миқёси ададӣ ё пайваста чен мекунад. Яъне, нишон медиҳад, ки қиматҳои пешгӯишуда ба ҳисоби миёна аз қиматҳои воқеӣ чӣ қадар дур мебошанд.

Бо истифода аз Scikit-learn, қиматҳои X аз додаҳои омӯзишӣ ба модел дода мешаванд ва барои ҳар сатр пешгӯӣ ҳосил мегардад. Сипас пешгӯиҳои модел бо натиҷаҳои дуруст — y — муқоиса шуда, хатои модел ҳисоб карда мешавад.

Вақте хатои модел ҳам дар маҷмӯи омӯзишӣ ва ҳам дар маҷмӯи санҷишӣ кам аст, ин нишон медиҳад, ки модел тамоюлҳо ва қолабҳои аслии додаҳоро омӯхтааст.

Агар MAE ё RMSE дар додаҳои санҷишӣ нисбат ба додаҳои омӯзишӣ хеле баландтар бошад, ин одатан нишонаи аз ҳад мутобиқшавӣ — overfitting мебошад. Ин мавзуъ дар боби 9 баррасӣ мешавад.

Аммо як қоидаи муҳимро дар ёд доред: додаҳои санҷишӣ барои арзёбии ниҳоӣ мебошанд, на барои интихоб. Агар гиперпараметрҳо, хусусиятҳо ё алгоритмро аз рӯйи хатои санҷишӣ интихоб кунед, додаҳои санҷишӣ ба қисми раванди омӯзиш табдил меёбанд. Модел ба онҳо ҳам мутобиқ мешавад ва хатои санҷишӣ аз хатои воқеӣ дар додаҳои нав хурдтар менамояд.

Барои ҳамин ҳамаи муқоисаҳо — кадом гиперпараметр беҳтар аст, оё хусусияти нав ёрӣ медиҳад, кадом алгоритм интихоб шавад — бо санҷиши салибӣ дар додаҳои омӯзишӣ (ниг. ба поён) ё бо қисми сеюме, ки аз додаҳои омӯзишӣ ҷудо карда мешавад — маҷмӯи тасдиқӣ — validation set — анҷом дода мешаванд. Модели ниҳоиро танҳо як бор, дар охир, бо додаҳои санҷишӣ месанҷанд. Агар баъди он боз чизеро тағйир диҳед ва аз нав санҷед, хатои санҷишӣ дигар баҳои беғараз нест.

Вақте модели интихобшуда додаҳои санҷиширо ба таври қаноатбахш пешгӯӣ мекунад, онро метавон дар муҳити воқеӣ истифода бурд.

Ҳар алгоритм гиперпараметрҳо дорад. Онҳо танзимоти раванди омӯзиши алгоритм мебошанд, на параметрҳое, ки худи модел ҳангоми омӯзиш аз додаҳо меомӯзад.

Ба забони сода, гиперпараметрҳо ба он таъсир мерасонанд, ки модел қолабҳоро бо чӣ суръат меомӯзад ва кадом қолабҳоро муайяну таҳлил мекунад.

Гиперпараметрҳои алгоритмҳо ва беҳтарсозии онҳо дар бобҳои 9 ва 15 баррасӣ мешаванд.

Санҷиши салибӣ — Cross-validation

Гарчанде санҷиш бо тақсимкунии додаҳо метавонад барои таҳияи модел аз додаҳои мавҷуда самаранок бошад, саволе ба миён меояд: оё модел ҳангоми кор бо додаҳои нав низ дақиқии худро нигоҳ медорад?

Агар маҷмӯи додаҳои мавҷуда барои сохтани модели дақиқ хеле хурд бошад ё тақсимоти омӯзишӣ ва санҷишӣ мувофиқ интихоб нашуда бошад, баъдтар пешгӯиҳои модел дар додаҳои воқеӣ метавонанд заиф бошанд.

Хушбахтона, барои ҳалли ин мушкил равиши дигар вуҷуд дорад. Ба ҷойи он ки додаҳоро танҳо ба ду қисм — омӯзишӣ ва санҷишӣ — ҷудо кунед, метавонед аз санҷиши салибӣ истифода баред.

Санҷиши салибӣ тавассути тақсим кардани додаҳо ба якҷоягиҳои гуногун ва санҷидани ҳар кадоми онҳо имкон медиҳад, ки аз додаҳои мавҷуда барои омӯзиш бештар истифода шавад.

Санҷиши салибӣ ду равиши асосӣ дорад.

Равиши аввал санҷиши салибии фарогир — exhaustive cross-validation мебошад. Дар он ҳамаи тақсимоти имконпазири маҷмӯи аслӣ ба қисмҳои омӯзишӣ ва санҷишӣ пайдо ва санҷида мешаванд.

Равиши дуюм, ки бештар истифода мешавад, санҷиши салибии ғайрифарогир аст. Яке аз шаклҳои маъмули он санҷиши k-қисмӣ — k-fold validation мебошад.

Дар ин усул додаҳо ба k қисми баробарандоза тақсим мешаванд. Дар ҳар давр як қисм барои санҷиш нигоҳ дошта шуда, қисмҳои боқимонда барои омӯзиши модел истифода мешаванд.

Барои иҷрои санҷиши k-қисмӣ, намунаҳо ба таври тасодуфӣ ба k гурӯҳи баробарандоза тақсим карда мешаванд. Як гурӯҳ барои санҷиш ҷудо мешавад ва сифати модели бо k − 1 гурӯҳи дигар омӯзонидашударо арзёбӣ мекунад.

Санҷиши 5-қисмӣ

Расми 4.2. Санҷиши k-қисмӣ (k = 5): дар ҳар давр як қисми дигар барои санҷиш истифода мешавад.

Ин раванд k маротиба такрор мешавад. Дар ҳар давр як қисми дигар барои санҷиш нигоҳ дошта мешавад ва модел бо қисмҳои боқимонда омӯзонида мешавад.

Раванд то замоне идома меёбад, ки ҳар қисм ҳам дар омӯзиш ва ҳам дар санҷиш истифода шуда бошад. Сипас натиҷаҳои даврҳо ҷамъбаст карда мешаванд.

Бо истифодаи ҳамаи додаҳои дастрас ҳам барои омӯзиш ва ҳам барои санҷиш дар даврҳои гуногун ва миёнагирии натиҷаҳо, санҷиши k-қисмӣ вобастагии арзёбиро аз як тақсимоти собити омӯзишӣ ва санҷишӣ кам мекунад.

Аммо ин усул сусттар аст, зеро модел k маротиба аз нав омӯзонида мешавад.

Санҷиши салибиро одатан танҳо дар додаҳои омӯзишӣ мегузаронанд ва бо он гиперпараметрҳо ва хусусиятҳоро интихоб мекунанд. Додаҳои санҷишӣ дар ин вақт ҷудо мемонанд ва танҳо барои арзёбии ниҳоии модели интихобшуда истифода мешаванд. Дар боби 15 ҳамин тавр мекунем.

Нашти иттилоот — Data leakage

Дар боби 3 якчанд қадами тозакуниро дидем, ки аз додаҳо қимат ҳисоб мекунанд: медиана ё мода барои пур кардани ҷойҳои холӣ, ҳадди ақалу ҳадди аксар барои нормализатсия, миёна ва инҳирофи стандартӣ барои стандартизатсия.

Агар ин қиматҳоро аз тамоми маҷмӯа, пеш аз тақсимкунӣ, ҳисоб кунед, додаҳои санҷишӣ ба онҳо таъсир мерасонанд. Масалан, медианаи нархи хонаҳо аллакай нархҳои маҷмӯи санҷиширо дар бар мегирад. Модел ба ин тариқ каме аз додаҳои санҷишӣ «хабардор» мешавад ва хатои санҷишӣ аз воқеият беҳтар менамояд. Ин ҳолатро нашти иттилоот — data leakage меноманд.

Тартиби дуруст чунин аст:

  1. Додаҳоро ба қисмҳои омӯзишӣ ва санҷишӣ тақсим кунед.
  2. Медиана, мода, миёна ва дигар қиматҳоро танҳо аз додаҳои омӯзишӣ ҳисоб кунед.
  3. Ҳамон қиматҳоро ба додаҳои омӯзишӣ ва санҷишӣ татбиқ кунед. Барои додаҳои санҷишӣ қиматҳоро аз нав ҳисоб накунед.

Дар санҷиши салибӣ ҳамин қоида дар ҳар давр амал мекунад: қиматҳо танҳо аз қисмҳои омӯзишии ҳамон давр ҳисоб мешаванд, на аз ҳамаи додаҳои омӯзишӣ.

Ин корро дастӣ иҷро кардан душвор аст, аммо дар Scikit-learn Pipeline онро худкор мекунад. Pipeline қадамҳои омодасозӣ ва моделро ба як объект пайваст мекунад ва ҳар бор, ки fit даъват мешавад, қиматҳоро танҳо аз додаҳое меомӯзад, ки ба ҳамон fit дода шудаанд:

from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score

model = make_pipeline(
    SimpleImputer(strategy='median'),   # медиана барои қиматҳои гумшуда
    StandardScaler(),                   # стандартизатсия
    LinearRegression()
)

# Санҷиши салибӣ: дар ҳар давр медиана, миёна ва σ
# танҳо аз қисмҳои омӯзишии ҳамон давр ҳисоб мешаванд
scores = cross_val_score(model, X_train, y_train, cv=5)

# Омӯзиши ниҳоӣ: қиматҳо танҳо аз X_train ҳисоб мешаванд
# ва ҳамон қиматҳо ба X_test татбиқ мегарданд
model.fit(X_train, y_train)
print(model.score(X_test, y_test))

Қадамҳое, ки аз додаҳо чизе намеомӯзанд, масалан, нест кардани сутунҳои нолозим ё сатрҳои такрорӣ, метавонанд пеш аз тақсимкунӣ иҷро шаванд.

Ба ман чӣ қадар дода лозим аст?

Яке аз саволҳои маъмули навомӯзони омӯзиши мошинӣ чунин аст: барои омӯзонидани модел ба ман чӣ қадар дода лозим аст?

Умуман, омӯзиши мошинӣ вақте беҳтар кор мекунад, ки маҷмӯи омӯзишӣ доираи васеи якҷоягиҳои хусусиятҳоро дар бар гирад.

«Доираи васеи якҷоягиҳои хусусиятҳо» чӣ маъно дорад?

Тасаввур кунед, ки маҷмӯи додаҳо дар бораи мутахассисони илми додаҳо доред ва он хусусиятҳои зеринро дар бар мегирад:

  • таҳсилоти донишгоҳӣ — X;
  • панҷ сол ё бештар таҷрибаи касбӣ — X;
  • фарзанд доштан — X;
  • маош — y.

Барои арзёбии робитаи се хусусияти аввал — X — бо маоши мутахассис — y — ба маҷмӯи додаҳое ниёз дорем, ки барои ҳар якҷоягии хусусиятҳо қимати y дошта бошад.

Масалан, бояд маоши мутахассисонеро донем, ки таҳсилоти донишгоҳӣ ва на камтар аз панҷ сол таҷрибаи касбӣ доранд, аммо фарзанд надоранд. Ҳамчунин, бояд маоши мутахассисонеро донем, ки ҳамин таҳсилоту таҷрибаро доранд ва соҳиби фарзанд ҳастанд.

Ҳар қадар якҷоягиҳои бештар дар маҷмӯи додаҳо мавҷуд бошанд, модел ҳамон қадар беҳтар мефаҳмад, ки ҳар хусусият ба y, яъне маоши мутахассис, чӣ гуна таъсир мерасонад.

Ин кор ёрӣ медиҳад, ки ҳангоми истифодаи модел дар додаҳои санҷишӣ ё воқеӣ, рӯ ба рӯ шудан бо якҷоягиҳои қаблан надида кори онро халалдор накунад.

Ҳамчун ҳадди ақали тахминӣ чунин қоида маъмул аст: барои модели одии омӯзиши мошинӣ шумораи намунаҳо бояд ақаллан даҳ маротиба аз шумораи хусусиятҳо зиёд бошад.

Масалан, барои маҷмӯи хурди дорои панҷ хусусият, беҳтар аст, ки додаҳои омӯзишӣ ҳадди ақал 50 сатр дошта бошанд. Аммо маҷмӯаҳои дорои хусусиятҳои зиёд ба намунаҳои бештар ниёз доранд, зеро бо афзоиши шумораи тағйирёбандаҳо шумораи якҷоягиҳои имконпазир босуръат меафзояд.

Умуман, ҳар қадар додаҳои мувофиқи бештар барои омӯзиш дастрас бошанд, ҳамон қадар якҷоягиҳои бештарро метавон ба модели пешгӯӣ дохил кард. Ин метавонад ба пешгӯиҳои дақиқтар мусоидат намояд.

Дар баъзе ҳолатҳо ҷамъоварии додаҳое, ки ҳамаи якҷоягиҳои имконпазирро фаро мегиранд, ғайриимкон ё аз ҷиҳати иқтисодӣ номувофиқ аст. Дар чунин вазъият бояд бо додаҳои дастрас кор кард.

Аз тарафи дигар, пас аз расидан ба ҳаҷми кофии додаҳои омӯзишие, ки масъаларо ба таври васеъ намояндагӣ мекунанд, фоидаи илова кардани додаҳои нав тадриҷан кам мешавад.

Масъалаи муҳими охирин мувофиқ кардани алгоритм ба додаҳо мебошад.

Роҳнамои тахминӣ чунин аст: барои маҷмӯаҳои камтар аз 10 000 намуна, алгоритмҳои кластербандӣ ва кам кардани ченакнокӣ метавонанд хеле самаранок бошанд. Таҳлили регрессия ва алгоритмҳои тасниф барои маҷмӯаҳои камтар аз 100 000 намуна мувофиқ дониста мешаванд.

Шабакаҳои нейронӣ барои кори самаранок одатан ба намунаҳои бештар ниёз доранд ва ҳангоми кор бо ҳаҷми хеле бузурги додаҳо метавонанд аз ҷиҳати хароҷот ва вақт самараноктар бошанд.

Барои маълумоти бештар, Scikit-learn роҳнамои интихоби алгоритмро барои маҷмӯаҳои гуногуни додаҳо пешниҳод мекунад:

Роҳнамои интихоби алгоритмҳои омӯзиши мошинӣ

Бобҳои оянда алгоритмҳои мушаххасеро баррасӣ мекунанд, ки дар омӯзиши мошинӣ маъмуланд.

Дар баъзе ҷойҳо аз рӯйи зарурат формулаҳо оварда шудаанд, аммо кӯшиш шудааст, ки онҳо то ҳадди имкон сода бошанд. Бисёре аз усулҳои омӯзиши мошинии дар ин китоб баррасишуда аллакай дар забони барномасозии интихобкардаи шумо татбиқи омода доранд ва барои истифодаи онҳо ҳал кардани муодилаҳо шарт нест.

Чиро бояд дар ёд дошт

  • Додаҳоро ба қисмҳои омӯзишӣ ва санҷишӣ (одатан 70/30 ё 80/20) тақсим кунед. Агар сатрҳо мустақил бошанд, пеш аз ин тартибашонро тасодуфӣ созед.
  • Додаҳои замониро омехта накунед: бо гузашта омӯзонед, бо давраи баъдӣ санҷед. Сатрҳои як объектро (як мизоҷ, як бемор) дар як қисм нигоҳ доред.
  • Моделро ҳеҷ гоҳ бо ҳамон додаҳое, ки бо онҳо омӯзонидаед, насанҷед.
  • Гиперпараметрҳо, хусусиятҳо ва алгоритмро бо санҷиши салибӣ ё маҷмӯи тасдиқӣ интихоб кунед. Додаҳои санҷиширо танҳо як бор, барои арзёбии ниҳоӣ, истифода баред.
  • Медиана, мода ва қиматҳои миқёсро танҳо аз додаҳои омӯзишӣ ҳисоб кунед; Pipeline инро дар ҳар даври санҷиши салибӣ худкор иҷро мекунад.
  • Барои пешгӯии ададӣ MAE ва RMSE, барои тасниф accuracy, recall, матритсаи иштибоҳҳо ва ROC-AUC истифода мешаванд.
  • Агар хато дар додаҳои санҷишӣ аз хато дар додаҳои омӯзишӣ хеле зиёд бошад, модел аз ҳад мутобиқ шудааст.
  • Санҷиши k-қисмӣ ҳамаи додаҳои омӯзиширо ҳам барои омӯзиш ва ҳам барои арзёбӣ истифода мебарад, аммо сусттар аст.
пешина
аз 16
навбатӣ