IlmHamroh
Data Science va sun'iy intellekt/EDA6/10-dars18 daqiqa
Mundarija (22)

8.6-dars: Anomaliya topish

8-QISM — EDA (RAZVEDKA TAHLILI) · 6-dars


1. Kirish va motivatsiya

EDA'ning muhim qismi — g'ayrioddiy narsalarni topish: outlier (chetki qiymat), g'alati kombinatsiya, naqshdan chetlanish. Bu anomaliya — kutilgandan farq qiluvchi qiymat yoki naqsh. Anomaliya ikki xil ma'no beradi: (1) xato (kiritish xatosi, buzilgan sensor — tozalash kerak), (2) muhim kashfiyot (firibgarlik, kasallik, favqulodda hodisa — aynan qidirilgan). 6.3-darsda outlier'ni tozalash nuqtai nazaridan ko'rdik; endi EDA nuqtai nazaridan: anomaliyani topish, tushunish (xato yoki kashfiyot?), va undan o'rganish. "Anomaliya — muammo emas, savol". Bu darsda outlier, g'alati kombinatsiya, naqshdan chetlanishni topish. Nega muhim? (1) G'ayrioddiy — outlier, g'alati (topish); (2) Ikki ma'no — xato yoki kashfiyot; (3) Savol — nega g'alati (o'rganish). Bu dars anomaliya topishni o'rgatadi — g'ayrioddiyni topish.

Anomaliya topish — g'ayrioddiyni topish: outlier (IQR/z-score — 6.3; box 5.6; chetki qiymat), g'alati kombinatsiya (imkonsiz birga — yosh=8 direktor; 6.10), naqshdan chetlanish (kutilgandan farq — g'alati nuqta scatter), ikki ma'no (xato — tozalash; kashfiyot — firibgarlik/muhim), savol ("nega g'alati?" — o'rganish; 8.2). Foydalanish: g'ayrioddiy topish, xato yoki kashfiyot. Bu 6.3 (outlier), 6.10 (noto'g'ri qiymat), 5.6 (box), 8.4 (bivariate) bilan bog'liq. Anomaliya topish — g'ayrioddiy (xato/kashfiyot). Anomaliya. G'ayrioddiy.

Real vaziyat. Data Scientist tranzaksiya ma'lumotini EDA qilmoqchi — anomaliyalar: (1) outlier — box plot bir necha juda katta tranzaksiya (50000$; median 100$ — chetki; xato yoki firibgarlik?), (2) g'alati kombinatsiya — "yosh=8" bilan "mashina xarid" (imkonsiz — bola mashina olmaydi; xato yoki firibgarlik id?), (3) naqshdan chetlanish — soat 3:00 da 100 ta tranzaksiya (kutilmagan — g'alati; firibgarlik?). Data Scientist anomaliyani topdi (outlier, g'alati), savol berdi ("xato yoki firibgarlik?"), o'rgandi (aksariyat — firibgarlik kashfiyot!; anomaliya aynan qiziq). Anomaliya topish — g'ayrioddiy (savol).

Bu darsda anomaliya topishni o'rganamiz.

Bu darsda:

  • Outlier topish (IQR/z-score/box)
  • G'alati kombinatsiya (imkonsiz birga)
  • Naqshdan chetlanish
  • Xato yoki kashfiyot
  • Anomaliya — savol
  • Anomaliya amaliyoti
  • Anomaliya tuzoqlari
  • Amaliy: anomaliya topish

ℹ Misollar real pandas/numpy/scipy bilan (Python 3.14).


2. Nazariya — chuqur tushuntirish

2.1. Outlier topish (IQR/z-score/box)

Chetki qiymat:

python
import pandas as pd

# IQR usuli 6.3-bob — outlier
q1, q3 = df["narx"].quantile([0.25, 0.75])
iqr = q3 - q1
outlier = df[(df["narx"] < q1 - 1.5*iqr) | (df["narx"] > q3 + 1.5*iqr)]

# box plot (vizual — 5.6)
df["narx"].plot.box()

Outlier topish (IQR/z-score/box) — chetki: IQR usuli (6.3 — Q1-1.5·IQR, Q3+1.5·IQR; chetki qiymat; median asosida — chidamli), z-score (|z|>3 — normal; 4.6), box plot (vizual — 5.6; mo'ylov tashqari nuqta). Sabab: chetki qiymat (aksariyatdan uzoq; xato yoki muhim); IQR (chidamli — 6.3), box (vizual — bir qarashda). IQR (chegara), z-score (normal), box (vizual). Outlier topish — IQR/z-score/box (chetki). Outlier. IQR.

2.2. G'alati kombinatsiya (imkonsiz birga)

Ustunlar orasidagi anomaliya:

python
import pandas as pd

# g'alati kombinatsiya (imkonsiz birga — 6.10)
gala = df[(df["yosh"] < 16) & (df["mashina_bor"] == "ha")]  # 16 yoshgacha mashina?

# sana zid
zid = df[df["boshlanish"] > df["tugash"]]

G'alati kombinatsiya (imkonsiz birga) — ustunlar orasida: bir ustun to'g'ri, lekin kombinatsiya g'alati (imkonsiz birga — 6.10): yosh=8 va mashina xarid (bola mashina olmaydi), homilador=ha va jins=erkak (imkonsiz), boshlanish > tugash sana; mantiqiy shart (& — ikki shart). Sabab: univariate (har ustun alohida) yashiradi (yosh 8 — normal; mashina — normal; birga — g'alati); bivariate/kombinatsiya (ustunlar orasi — anomaliya; 6.10 noto'g'ri qiymat); "birga imkonsiz". Bir ustun to'g'ri (alohida), kombinatsiya g'alati (birga), mantiqiy (&). G'alati kombinatsiya — imkonsiz birga 6.10-bob. Kombinatsiya. Birga.

2.3. Naqshdan chetlanish

Naqshdan chetlanish — kutilgandan farq: aksariyat naqsh (kutilgan — soat 9-18 tranzaksiya; narx maydonga mos), lekin ba'zi chetlanadi (g'alati — soat 3:00 tranzaksiya; maydon kichik lekin narx yuqori — scatter chetki nuqta; vaqt qatori — kutilmagan sakrash); kontekstda (guruh/vaqt/naqsh bo'yicha g'alati). Sabab: naqsh (kutilgan — normal; chetlanish — anomaliya); univariate outlier emas (naqshdan — kontekstda; masalan narx normal, lekin maydonga mos emas — bivariate anomaliya); scatter/vaqt (chetki nuqta). Naqsh (kutilgan), chetlanish (g'alati — kontekstda), scatter/vaqt (chetki). Naqshdan chetlanish — kutilgandan farq (kontekst). Naqsh. Chetlanish.

2.4. Xato yoki kashfiyot

Xato yoki kashfiyot — ikki ma'no: anomaliya ikki xil (6.3 outlier kabi): xato (kiritish xatosi, buziq sensor, imkonsiz — yosh 250; tozalash 6-qism), kashfiyot (firibgarlik, kasallik, favqulodda hodisa, VIP — muhim; aynan qidirilgan; anomaliya aniqlash 20-qism). Sabab: anomaliyani ko'r-ko'rona o'chirma (kashfiyot — muhim; firibgarlik — anomaliya aynan qiziq; 6.3); tushun (imkonsiz — xato; kamyob/g'alati — kashfiyot?; domen). Xato (imkonsiz — tozalash), kashfiyot (muhim — firibgarlik), tushun (domen). Xato yoki kashfiyot — ikki ma'no (o'rgan). Xato. Kashfiyot.

2.5. Anomaliya — savol

Anomaliya — savol — "nega g'alati?": anomaliya — muammo emas, savol 6.3-bob: topilgach — savol ("nega bu g'alati? — xato? kashfiyot? sabab?"); o'rgan (o'chirma — tekshir; domen, manba, kontekst); anomaliya yangi bilim (kutilmagan — qiziq; kashfiyot). Sabab: EDA — razvedka (8.1; anomaliya — kashfiyot yo'nalishi; savol tug'diradi); "anomaliya — muammo emas, savol" (o'rgan — tashla emas); ilmiy kashfiyot ko'pincha anomaliya. Savol ("nega?"), o'rgan (tekshir — domen), kashfiyot (yangi bilim). Anomaliya — savol (o'rgan; muammo emas). Anomaliya. Savol.

2.6. Anomaliya amaliyoti

Anomaliya amaliyoti: outlier (IQR/z-score/box — 6.3; har son ustun); kombinatsiya (imkonsiz birga — & mantiqiy; 6.10); naqsh (scatter chetki, vaqt sakrash — kontekstda); savol ("nega g'alati?" — xato/kashfiyot?); tushun (imkonsiz — xato; g'alati — kashfiyot?; domen); o'rgan (o'chirma — tekshir; firibgarlik/muhim?); belgila (anomaliya ustun — alohida). Tuzoqlar: ko'r-ko'rona o'chirish (kashfiyot yo'q), faqat univariate (kombinatsiya yashirin), domen yo'q (xato/kashfiyot farqlamay), tasodifiy (ko'p — ba'zi tasodifiy), naqsh e'tiborsiz (kontekst). Amaliyot — outlier, kombinatsiya, savol, o'rgan. Anomaliya. Savol.

2.7. Anomaliya tuzoqlari

Anomaliya asosiy tuzoqlari: ko'r-ko'rona o'chirish (anomaliya avtomatik o'chir — lekin kashfiyot (firibgarlik, kasallik, VIP — muhim!) yo'qoladi; tushun — xato vs kashfiyot; 6.3); faqat univariate (har ustun alohida — kombinatsiya (yosh=8 + mashina — imkonsiz birga) yashirin; bivariate/kombinatsiya tekshir — 6.10); domen yo'q (xato (imkonsiz — yosh 250) vs kashfiyot (kamyob — VIP 50000) — domen bilimi; domensiz — noto'g'ri hal); naqsh e'tiborsiz (univariate outlier — lekin naqshdan chetlanish (kontekstda — narx normal, maydonga mos emas; scatter/guruh; bivariate anomaliya) o'tkazib); tasodifiy (ko'p tekshir — ba'zi tasodifan g'alati; ko'p ma'lumot/p-qiymat; 4.12); statistik faqat (anomaliya — faqat statistik (IQR/z-score); lekin domen/kontekst (soat 3:00 — statistik outlier emas, lekin g'alati; biznes mantiq)); outlier = xato faraz (outlier — xato deb (avtomatik); kashfiyot bo'lishi mumkin; tushun); kam namuna (kichik namuna — "anomaliya" tasodifiy; katta namuna); kontekstsiz (anomaliya — kontekstda (guruh/vaqt/domen); kontekstsiz — noto'g'ri). Sabab: anomaliya kashfiyot/kombinatsiya/domen nozik (ko'r-ko'rona, univariate, domensiz — kashfiyot yo'q yoki noto'g'ri). Yechim: tushun (xato/kashfiyot), kombinatsiya, domen, naqsh, savol. Tuzoqlar — ko'r-ko'rona, univariate, domen, naqsh.

2.8. Anomaliya topish — g'ayrioddiyni topish va o'rganish

Anomaliya topish asosiy g'oyasi — g'ayrioddiyni topish va o'rganish: EDA'ning muhim qismi — g'ayrioddiy (kutilgandan farq — anomaliya); outlier (IQR/z-score/box — 6.3; chetki qiymat), g'alati kombinatsiya (imkonsiz birga — yosh=8 mashina; 6.10; univariate yashiradi), naqshdan chetlanish (kutilgandan farq — scatter chetki, vaqt sakrash; kontekstda). Ikki ma'no (xato — kiritish/imkonsiz; tozalash 6-qism; kashfiyot — firibgarlik/kasallik/VIP; muhim — anomaliya aniqlash 20-qism), anomaliya — savol ("nega g'alati?" — xato/kashfiyot?; o'chirma — o'rgan; 8.1 razvedka). Foydalanish: g'ayrioddiy topish (outlier, g'alati, chetlanish), xato yoki kashfiyot (tushun — o'rgan). "Anomaliya — muammo emas, savol" (ilmiy kashfiyot ko'pincha anomaliya). Tuzoqlar: ko'r-ko'rona o'chirish (kashfiyot yo'q), faqat univariate (kombinatsiya yashirin — 6.10), domen yo'q (xato/kashfiyot), naqsh e'tiborsiz (kontekst), tasodifiy (ko'p), statistik faqat (domen/kontekst). Bu 6.3 (outlier), 6.10 (noto'g'ri qiymat), 5.6 (box), 8.4 (bivariate), 20-qism (anomaliya aniqlash) bilan. Anomaliya topish — g'ayrioddiyni topish va o'rganish (outlier/kombinatsiya/naqsh; xato/kashfiyot). Anomaliya. G'ayrioddiy. Savol.


3. Tez ma'lumotnoma

python
import pandas as pd
import numpy as np
from scipy import stats

# OUTLIER (IQR — 6.3):
q1, q3 = df["narx"].quantile([0.25, 0.75]); iqr = q3 - q1
outlier = df[(df["narx"] < q1 - 1.5*iqr) | (df["narx"] > q3 + 1.5*iqr)]
# z-score (normal): df[np.abs(stats.zscore(df["narx"])) > 3]
df["narx"].plot.box()          # vizual (5.6)

# G'ALATI KOMBINATSIYA (imkonsiz birga — 6.10):
df[(df["yosh"] < 16) & (df["mashina_bor"] == "ha")]
df[df["boshlanish"] > df["tugash"]]

# NAQSHDAN CHETLANISH:
# scatter chetki nuqta · vaqt sakrash · kontekstda g'alati

# IKKI MA'NO:
#   xato (imkonsiz — yosh 250) → tozalash (6-qism)
#   kashfiyot (firibgarlik/VIP — muhim) → o'rgan (20-qism)

# ANOMALIYA — SAVOL: "nega g'alati?" (xato? kashfiyot?) — o'chirma, o'rgan
QOIDA: tushun (xato/kashfiyot) · kombinatsiya · domen · naqsh · savol

Anomaliya topish xulosasi

Anomaliya topish — g'ayrioddiyni topish va o'rganish
Outlier — IQR/z-score/box (chetki qiymat; 6.3)
G'alati kombinatsiya — imkonsiz birga (yosh=8 mashina; 6.10)
Ikki ma'no — xato (tozalash) / kashfiyot (firibgarlik — muhim)
Anomaliya — savol ("nega g'alati?"; o'chirma, o'rgan)

4. Batafsil misollar

Misollar real pandas/numpy/scipy bilan (Python 3.14).

Misol 1 — Outlier topish (IQR)

python
"""Outlier topish (real pandas/numpy)."""

import numpy as np
import pandas as pd


def main() -> None:
    np.random.seed(0)
    # aksariyat normal, bir nechta juda katta (firibgarlik?)
    narx = np.concatenate([np.random.normal(100, 20, 195), [5000, 4800, 5200, 4900, 5100]])
    s = pd.Series(narx)

    print("=== 1. IQR chegara ===")
    q1, q3 = s.quantile([0.25, 0.75])
    iqr = q3 - q1
    yuqori = q3 + 1.5 * iqr
    print(f"  yuqori chegara: {round(yuqori)}")

    print("\n=== 2. Outlier ===")
    outlier = s[s > yuqori]
    print(f"  outlier soni: {len(outlier)}")
    print(f"  outlier qiymatlar: {[round(v) for v in outlier[:5]]}")

    print("\n=== 3. Median vs outlier ===")
    print(f"  median: {s.median().round(0)} (100 atrofida)")
    print(f"  outlier: 5000 (50x median!)")

    print("\n=== 4. Savol ===")
    print("  nega 5000? (xato yoki firibgarlik?)")
    print("  ⭐ Outlier — IQR (chetki)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. IQR chegara ===
  yuqori chegara: 164

=== 2. Outlier ===
  outlier soni: 5
  outlier qiymatlar: [5000, 4800, 5200, 4900, 5100]

=== 3. Median vs outlier ===
  median: 101.0 (100 atrofida)
  outlier: 5000 (50x median!)

=== 4. Savol ===
  nega 5000? (xato yoki firibgarlik?)
  ⭐ Outlier — IQR (chetki)

Nima ko'rsatdi: 2.1-bo'lim.

Misol 2 — G'alati kombinatsiya

python
"""G'alati kombinatsiya (real pandas)."""

import pandas as pd


def main() -> None:
    df = pd.DataFrame({
        "yosh": [8, 30, 45, 12, 25],
        "mashina_bor": ["ha", "ha", "yo'q", "ha", "ha"],
        "daromad": [500, 800, 600, 1000, 700],
    })

    print("=== 1. Har ustun to'g'ri (univariate) ===")
    print(f"  yosh 8 — normal son")
    print(f"  mashina 'ha' — normal")

    print("\n=== 2. Kombinatsiya (imkonsiz) ===")
    gala = df[(df["yosh"] < 16) & (df["mashina_bor"] == "ha")]
    print(f"  16 yoshgacha mashina: {len(gala)} qator")
    print(f"  yoshlar: {gala['yosh'].tolist()}")

    print("\n=== 3. Yosh=12, daromad=1000 ===")
    print("  12 yoshli 1000 daromad? (g'alati)")

    print("\n=== 4. Savol ===")
    print("  xato (yosh) yoki firibgar (id)? (o'rgan)")
    print("  ⭐ Kombinatsiya — imkonsiz birga 6.10-bob")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Har ustun to'g'ri (univariate) ===
  yosh 8 — normal son
  mashina 'ha' — normal

=== 2. Kombinatsiya (imkonsiz) ===
  16 yoshgacha mashina: 2 qator
  yoshlar: [8, 12]

=== 3. Yosh=12, daromad=1000 ===
  12 yoshli 1000 daromad? (g'alati)

=== 4. Savol ===
  xato (yosh) yoki firibgar (id)? (o'rgan)
  ⭐ Kombinatsiya — imkonsiz birga (6.10)

Nima ko'rsatdi: 2.2-bo'lim.

Misol 3 — Naqshdan chetlanish

python
"""Naqshdan chetlanish (real pandas/numpy)."""

import numpy as np
import pandas as pd


def main() -> None:
    np.random.seed(0)
    # naqsh: maydon ~ narx (bog'liq), lekin bir nuqta chetlanadi
    maydon = np.array([50, 60, 70, 80, 90, 100])
    narx = maydon * 1.5 + np.random.normal(0, 5, 6)
    narx[3] = 500   # chetlanish (maydon 80, narx 500 — g'alati)
    df = pd.DataFrame({"maydon": maydon, "narx": narx.round(0)})

    print("=== 1. Naqsh (maydon ~ narx) ===")
    print("  aksariyat: maydon katta → narx yuqori")

    print("\n=== 2. Chetlanish (maydon 80, narx 500) ===")
    kutilgan = df["maydon"] * 1.5
    df["farq"] = (df["narx"] - kutilgan).abs()
    chetki = df[df["farq"] > 100]
    print(f"  chetlangan: maydon {chetki['maydon'].values}, narx {chetki['narx'].values}")

    print("\n=== 3. Kontekstda g'alati ===")
    print("  narx 500 o'zi outlier emas, lekin maydonga mos emas")

    print("\n=== 4. Bivariate anomaliya ===")
    print("  univariate emas — naqshdan chetlanish (kontekst)")
    print("  ⭐ Naqshdan chetlanish (kontekst)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Naqsh (maydon ~ narx) ===
  aksariyat: maydon katta → narx yuqori

=== 2. Chetlanish (maydon 80, narx 500) ===
  chetlangan: maydon [80], narx [500.]

=== 3. Kontekstda g'alati ===
  narx 500 o'zi outlier emas, lekin maydonga mos emas

=== 4. Bivariate anomaliya ===
  univariate emas — naqshdan chetlanish (kontekst)
  ⭐ Naqshdan chetlanish (kontekst)

Nima ko'rsatdi: 2.3-bo'lim.

Misol 4 — Xato vs kashfiyot

python
"""Xato vs kashfiyot (real pandas)."""

import pandas as pd


def main() -> None:
    df = pd.DataFrame({
        "tur": ["yosh", "tranzaksiya", "yosh", "tranzaksiya"],
        "qiymat": [250, 50000, 45, 48000],
    })

    print("=== 1. Yosh 250 (xato) ===")
    print("  imkonsiz (inson 250 yosh yo'q) → xato (tozalash)")

    print("\n=== 2. Tranzaksiya 50000 (kashfiyot?) ===")
    print("  kamyob, lekin mumkin (VIP yoki firibgarlik) → o'rgan")

    print("\n=== 3. Farq ===")
    print("  yosh 250: imkonsiz (xato — o'chir/tuzat)")
    print("  tranzaksiya 50000: kamyob (kashfiyot — tekshir)")

    print("\n=== 4. Domen bilimi ===")
    print("  imkonsiz (xato) vs kamyob (kashfiyot) — domen")
    print("  ⭐ Xato vs kashfiyot (tushun)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Yosh 250 (xato) ===
  imkonsiz (inson 250 yosh yo'q) → xato (tozalash)

=== 2. Tranzaksiya 50000 (kashfiyot?) ===
  kamyob, lekin mumkin (VIP yoki firibgarlik) → o'rgan

=== 3. Farq ===
  yosh 250: imkonsiz (xato — o'chir/tuzat)
  tranzaksiya 50000: kamyob (kashfiyot — tekshir)

=== 4. Domen bilimi ===
  imkonsiz (xato) vs kamyob (kashfiyot) — domen
  ⭐ Xato vs kashfiyot (tushun)

Nima ko'rsatdi: 2.4-bo'lim.


5. To'g'ri va noto'g'ri tushunishlar

Noto'g'ri fikr To'g'risi
"anomaliya = xato" Xato yoki kashfiyot
"anomaliyani o'chir" O'rgan (kashfiyot)
"univariate yetarli" Kombinatsiya (6.10)
"outlier = xato" Kashfiyot bo'lishi mumkin
"faqat statistik" Domen/kontekst
"anomaliya muammo" Savol (o'rgan)
"har g'alati haqiqiy" Tasodifiy (tekshir)
"domen kerakmas" Xato/kashfiyot (domen)

6. Keng tarqalgan xatolar va yechimlari

1. Ko'r-ko'rona o'chirish

python
df = df[df["narx"] < yuqori]   # firibgarlik (kashfiyot) yo'q     # ⚠️
# tushun (xato vs kashfiyot); o'rgan                              # ✅

2. Faqat univariate

python
df["yosh"].plot.box()   # kombinatsiya yashirin                   # ⚠️
df[(df["yosh"]<16) & (df["mashina"]=="ha")]   # kombinatsiya      # ✅

3. Domen yo'q

python
# yosh 250 va tranzaksiya 50000 — bir xil deb                     # ⚠️
# yosh 250 (xato); 50000 (kashfiyot?) — domen                    # ✅

4. Naqsh e'tiborsiz

python
# faqat univariate outlier (naqshdan chetlanish o'tkazib)         # ⚠️
# scatter/guruh (kontekstda g'alati)                              # ✅

5. Statistik faqat

python
# faqat IQR/z-score (soat 3:00 statistik emas, lekin g'alati)     # ⚠️
# domen/kontekst (biznes mantiq)                                  # ✅

6. Anomaliya = muammo

python
# anomaliya → o'chir (muammo deb)                                 # ⚠️
# anomaliya → savol (nega? o'rgan)                                # ✅

7. Tasodifiy

python
# har g'alati → haqiqiy (ko'p — ba'zi tasodifiy)                  # ⚠️
# tekshir (katta namuna, p-qiymat — 4.12)                         # ✅

7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 6.3-dars (o'tilgan): Outlier (tozalash)
  • 6.10-dars (o'tilgan): Noto'g'ri qiymat (kombinatsiya)
  • 5.6-dars (o'tilgan): Box plot
  • 8.4-dars (o'tilgan): Bivariate (naqsh)
  • 20-qism (reja): Anomaliya aniqlash (ML)

8. Eng yaxshi amaliyotlar

  1. Outlier — IQR/z-score/box.

  2. Kombinatsiya — imkonsiz birga 6.10-bob.

  3. Naqsh — scatter/kontekst.

  4. Tushun — xato yoki kashfiyot.

  5. Domen — imkonsiz vs kamyob.

  6. O'rgan — o'chirma (kashfiyot).

  7. Savol — "nega g'alati?".

  8. Kontekst — domen/vaqt/guruh.


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
1.  # anomaliya nima?
2.  # outlier topish?
3.  # g'alati kombinatsiya?
4.  # naqshdan chetlanish?
5.  # xato ma'nosi?
6.  # kashfiyot ma'nosi?
7.  # anomaliya — savolmi?
8.  # ko'r-ko'rona o'chirish?
9.  # univariate yetarlimi?
10. # domen nega?
11. # statistik faqat?
12. # nega anomaliya?
Javoblar
  1. G'ayrioddiy (kutilgandan farq)
  2. IQR/z-score/box (chetki)
  3. Imkonsiz birga (6.10)
  4. Kutilgandan farq (kontekst)
  5. Kiritish/imkonsiz (tozalash)
  6. Firibgarlik/VIP (muhim)
  7. Ha (o'rgan — muammo emas)
  8. Kashfiyot yo'q (yomon)
  9. Yo'q (kombinatsiya)
  10. Xato/kashfiyot farqlash
  11. Domen/kontekst ham
  12. Xato yoki kashfiyot (o'rgan)

Vazifa 2: Xatolarni tuzating

python
1.  df = df[df["narx"] < yuqori]

2.  df["yosh"].plot.box()   # kombinatsiya

3.  # yosh 250 va 50000 bir xil

4.  # faqat univariate

5.  # anomaliya → o'chir
Javoblar
python
1.  tushun (xato/kashfiyot); o'rgan

2.  & (kombinatsiya — 6.10)

3.  domen (xato vs kashfiyot)

4.  scatter (naqsh — kontekst)

5.  savol (nega? o'rgan)

Vazifa 3: Topish

Modellang:

  1. Outlier (IQR)
  2. Kombinatsiya
  3. Naqsh
  4. Kontekst

Vazifa 4: Ma'no

Modellang:

  1. Xato
  2. Kashfiyot
  3. Domen
  4. Tushun

Vazifa 5: Savol

Modellang:

  1. "Nega g'alati?"
  2. O'rgan
  3. O'chirma
  4. Kashfiyot

Vazifa 6: Integratsiya

Modellang:

  1. Outlier (6.3)
  2. Kombinatsiya (6.10)
  3. Bivariate (8.4)
  4. Anomaliya aniqlash (20)

Vazifa 7: O'ylash

Anomaliya ikki xil ma'no beradi: xato (o'chirish kerak) yoki kashfiyot (firibgarlik, kasallik — aynan qidirilgan). Ko'pincha anomaliya aynan eng qiziqarli narsa — ilmiy kashfiyotlar, firibgarlik aniqlash, kasallik diagnostikasi anomaliyadan boshlanadi. Nima uchun "anomaliyani ko'r-ko'rona o'chirish" xavfli, va nima uchun anomaliya "signal, shovqin emas" bo'lishi mumkin?

Javob

Qisqa javob: Anomaliya ikki ma'no (xato — o'chir; kashfiyot — muhim); ko'pincha anomaliya aynan qiziq (kashfiyot, firibgarlik, kasallik); "anomaliyani ko'r-ko'rona o'chirish" xavfli; anomaliya "signal, shovqin emas" bo'lishi mumkin, chunki: (1) anomaliya signal — g'ayrioddiy ma'lumot (nega g'alati? — sabab bor; xato yoki hodisa); ko'p sohada anomaliya aynan maqsad (firibgarlik — g'ayrioddiy tranzaksiya; kasallik — g'ayrioddiy tahlil; buzilish — g'ayrioddiy sensor; 20-qism anomaliya aniqlash); (2) kashfiyot — ilmiy kashfiyot ko'pincha anomaliya (kutilmagan natija — yangi bilim; penicillin — anomaliya); (3) ko'r-ko'rona o'chirish — anomaliya o'chir → kashfiyot yo'q (firibgarlik o'chirib tashlash = jinoyatni yashirish; kasallik — diagnostika yo'q); (4) signal vs shovqin — anomaliya signal (ma'noli — kashfiyot) yoki shovqin (tasodifiy/xato); farqla (o'chirma — tekshir). "Nega ko'r-ko'rona xavfli": (a) kashfiyot yo'q (firibgarlik, kasallik, VIP — muhim; o'chir — yo'qot); (b) maqsad (anomaliya aynan qidirilgan — firibgarlik aniqlash; o'chir — maqsad yo'q); (c) signal (anomaliya — signal; o'chir — signalni yo'qotish); (d) kutilmagan (kashfiyot — kutilmagan; anomaliya — kutilmagan; o'chir — kashfiyot yo'q). "Nega signal, shovqin emas": (1) ma'no (anomaliya — nega? sabab; ma'noli — signal); (2) naqsh (anomaliya — naqsh (firibgarlik naqshi; g'ayrioddiy tranzaksiya guruh)); (3) kashfiyot (anomaliya — yangi bilim; signal); (4) domen (anomaliya — domen (soha — muhimmi?); signal). "Data Scientist qanday": (1) top (anomaliya — IQR/kombinatsiya/naqsh); (2) savol ("signal yoki shovqin? xato yoki kashfiyot?"); (3) tekshir (domen, manba, kontekst — signalmi?); (4) o'rgan (o'chirma — kashfiyot; firibgarlik/kasallik); (5) belgila (anomaliya — alohida; 20-qism). "Nega muhim": anomaliya signal (kashfiyot — muhim); ko'r-ko'rona xavfli (kashfiyot yo'q); signal vs shovqin (farqla — o'rgan). Saboqlar: anomaliya signal (kashfiyot — firibgarlik/kasallik); ko'r-ko'rona xavfli (kashfiyot yo'q — o'chirma); signal vs shovqin (farqla — tekshir); o'rgan (savol). To'g'ri: anomaliya signal (nega? — kashfiyot); ko'r-ko'rona o'chirma (kashfiyot yo'q); o'rgan (savol — tekshir); domen. Muvozanat: tozalash (xato — o'chir) + o'rganish (kashfiyot/signal — saqla, top; muhim). Bu Data Science EDA/anomaliya asosiy (anomaliya — signal; ko'r-ko'rona xavfli; kashfiyot; savol). Anomaliya topish — signal (kashfiyot — o'rgan; ko'r-ko'rona o'chirma).

1. Nega ko'r-ko'rona xavfli

  • Kashfiyot yo'q (firibgarlik, kasallik, VIP)
  • Maqsad (anomaliya aynan qidirilgan)
  • Signal yo'qotish (o'chir — signal yo'q)
  • Kutilmagan (kashfiyot — o'chir yo'qot)

2. Nega signal (shovqin emas)

  • Ma'no (nega g'alati? — sabab; ma'noli)
  • Naqsh (firibgarlik naqshi — signal)
  • Kashfiyot (yangi bilim)
  • Domen (soha — muhimmi? signal)

3. Signal vs shovqin

Signal (kashfiyot) Shovqin (xato/tasodif)
Ma'noli (nega?) Tasodifiy
Firibgarlik/kasallik Kiritish xatosi
O'rgan Tozalash

4. Data Scientist qanday

  1. Top (IQR/kombinatsiya/naqsh)
  2. Savol (signal yoki shovqin? xato/kashfiyot?)
  3. Tekshir (domen, manba, kontekst)
  4. O'rgan (o'chirma — kashfiyot; belgila)

5. Xulosa

  1. Anomaliya signal (kashfiyot — firibgarlik/kasallik/VIP)
  2. Ko'r-ko'rona o'chirish xavfli (kashfiyot yo'q — maqsad yo'q)
  3. Signal vs shovqin (farqla — o'rgan, tekshir)
  4. O'rgan (savol — nega? domen; muammo emas)

Nimani mustahkamlaydi: 2.4, 2.7-bo'limlar.


Xulosa

Bu darsda anomaliya topishni o'rgandik.

Eng muhim uch fikr:

  1. Outlier va kombinatsiya. Outlier topish — IQR usuli (Q1-1.5·IQR, Q3+1.5·IQR — chidamli; 6.3), z-score (|z|>3 — normal), box (vizual — 5.6). G'alati kombinatsiya — imkonsiz birga (yosh<16 & mashina="ha" — & mantiqiy; 6.10; univariate yashiradi — har ustun to'g'ri, birga g'alati). Naqshdan chetlanish — kutilgandan farq (scatter chetki, vaqt sakrash; kontekstda — bivariate anomaliya).

  2. Ikki ma'no va savol. Xato yoki kashfiyot — anomaliya ikki xil: xato (imkonsiz — yosh 250; tozalash 6-qism), kashfiyot (firibgarlik/kasallik/VIP — muhim; aynan qidirilgan; 20-qism); domen (imkonsiz vs kamyob). Anomaliya — savol ("nega g'alati?" — xato/kashfiyot?; o'chirma — o'rgan; razvedka 8.1).

  3. G'ayrioddiyni o'rganish. Anomaliya — muammo emas, savol; anomaliya signal (ma'noli — kashfiyot), shovqin emas; ko'r-ko'rona o'chirish xavfli (kashfiyot yo'q — firibgarlik/kasallik aynan qiziq; ilmiy kashfiyot ko'pincha anomaliya). Tuzoqlar: ko'r-ko'rona o'chirish (kashfiyot yo'q), faqat univariate (kombinatsiya yashirin — 6.10), domen yo'q (xato/kashfiyot), naqsh e'tiborsiz (kontekst — scatter), tasodifiy (ko'p — p-qiymat), statistik faqat (domen/kontekst — biznes mantiq).

Keyingi darsda guruhlar va segmentlarni o'rganamiz: ma'lumotni mazmunli guruhlarga bo'lish — segmentatsiya (mijoz turlari), guruh bo'yicha tahlil (groupby chuqurroq — 3.8), va guruhlar orasidagi farq (Simpson — 8.4).

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
8.6-dars: Anomaliya topish — IlmHamroh