IlmHamroh
Data Science va sun'iy intellekt/Malumotni tozalash3/12-dars18 daqiqa
Mundarija (22)

6.3-dars: Outlier (chetki qiymatlar)

6-QISM — MA'LUMOTNI TOZALASH · 3-dars


1. Kirish va motivatsiya

Outlier (chetki qiymat) — boshqalardan keskin farq qiluvchi qiymat: 1000 odam maoshi 300-800 dollar, bitta 50000 (direktor yoki xato?). Outlier ikki xil: xato (kiritish xatosi — yosh 250, narx -100; tozalash kerak) yoki haqiqiy (direktor maoshi, VIP mijoz — muhim ma'lumot). Outlier tahlilni buzadi: o'rtacha tortiladi (bitta 50000 o'rtachani ko'taradi), model chalg'iydi (regressiya outlierga egiladi), grafik siqiladi. Bu darsda outlierni topish (IQR usuli, z-score — 4.3, 4.4), tushunish (xato yoki haqiqiy), va hal qilish (o'chirish, cheklash/capping, saqlash). Nega muhim? (1) Buzadi — o'rtacha, model, grafik; (2) Ikki xil — xato (o'chir) yoki haqiqiy (saqla); (3) Qaror — kontekstga (ko'r-ko'rona o'chirma). Bu dars outlierni o'rgatadi — topish, tushunish, hal qilish.

Outlier (chetki qiymat) — keskin farqli qiymat: topish (IQR usuli — Q1-1.5·IQR, Q3+1.5·IQR; z-score — |z|>3; 4.3, 4.4), tushunish (xato — kiritish; haqiqiy — direktor), hal (o'chirish — xato; cheklash/capping — chegaraga; saqlash — haqiqiy), buzadi (o'rtacha, model, grafik — 4.2 median chidamli). Foydalanish: g'ayrioddiy qiymatni aniqlash, tahlilni himoyalash. Bu 4.3 (IQR/tarqoqlik), 4.4 (kvartil), 5.6 (box plot), 6.11 (tozalash quvuri) bilan bog'liq. Outlier — topish, tushunish, hal. Chetki. Xato/haqiqiy.

Real vaziyat. Data Scientist xodim maoshini tahlil qilmoqchi (1000 xodim). Iflos ma'lumot: aksariyat 300-800, lekin bitta 50000 (direktor) va bitta -500 (kiritish xatosi — manfiy maosh). df["maosh"].mean() = 850 (bitta 50000 tortdi — noto'g'ri; median 550 — haqiqiy). IQR usuli (Q1=400, Q3=700, IQR=300; chegara: 400-450=-50, 700+450=1150) — 50000 va -500 outlier. Tushun: -500 (xato — manfiy maosh bo'lmaydi; o'chir/tuzat), 50000 (haqiqiy — direktor; saqla yoki alohida tahlil). Data Scientist topdi (IQR), tushundi (xato vs haqiqiy), hal qildi (xato o'chir, haqiqiy saqla). Outlier — topish, tushunish, hal.

Bu darsda outlierni o'rganamiz.

Bu darsda:

  • Topish (IQR usuli)
  • Xato yoki haqiqiy
  • z-score usuli
  • Hal qilish (o'chir/cheklash/saqlash)
  • Outlier va buzilish
  • Outlier amaliyoti
  • Outlier tuzoqlari
  • Amaliy: outlier hal qilish

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


2. Nazariya — chuqur tushuntirish

2.1. Topish (IQR usuli)

Kvartil asosida:

python
import pandas as pd

# IQR usuli (4.3, 4.4) — kvartil oralig'i
q1 = df["x"].quantile(0.25)
q3 = df["x"].quantile(0.75)
iqr = q3 - q1

# chegaralar (1.5 * IQR)
past = q1 - 1.5 * iqr
yuqori = q3 + 1.5 * iqr

# outlier — chegaradan tashqari
outlier = df[(df["x"] < past) | (df["x"] > yuqori)]

Topish (IQR usuli) — kvartil asosida: IQR usuli (4.3, 4.4) — Q1 (25%), Q3 (75%), IQR = Q3 - Q1 (o'rta 50%); chegara: past = Q1 - 1.5·IQR, yuqori = Q3 + 1.5·IQR; outlier — chegaradan tashqari. Sabab: outlier chetki (aksariyatdan uzoq); IQR — kvartil asosida (median/kvartil — outlierga chidamli 4.2; o'rtacha/std emas — o'zi buziladi); 1.5·IQR (standart — box plot 5.6; "mo'ylov" chegarasi). Q1/Q3 (kvartil), IQR (o'rta 50%), 1.5·IQR (chegara). Topish — IQR usuli (kvartil; chidamli). IQR. Chegara.

2.2. Xato yoki haqiqiy

Xato yoki haqiqiy — outlier ikki xil: xato (kiritish/o'lchov xatosi — yosh 250, narx -100, maosh -500; imkonsiz yoki mantiqsiz; tozalash kerak — o'chir/tuzat), haqiqiy (kamyob, lekin haqiqiy — direktor maoshi, VIP xarid, favqulodda hodisa; muhim ma'lumot; saqla yoki alohida tahlil). Sabab: outlier'ni ko'r-ko'rona o'chirma (haqiqiy — muhim; VIP mijoz, firibgarlik — outlier aynan qiziqarli); tushunish (imkonsizmi (xato) yoki kamyobmi (haqiqiy)?); domen bilimi (yosh 250 — imkonsiz; maosh 50000 — mumkin). Xato (imkonsiz/mantiqsiz — o'chir/tuzat), haqiqiy (kamyob — saqla; muhim). Xato yoki haqiqiy — tushun (imkonsiz vs kamyob). Xato. Haqiqiy.

2.3. z-score usuli

z-score usuli — standart og'ish asosida: z-score (4.6 — normal) = (qiymat - o'rtacha) / std; |z| > 3 (o'rtachadan 3 std uzoq — outlier; normal taqsimotda 99.7% ichida — 3 std tashqari kamyob). Sabab: z-score — normal taqsimot uchun (4.6; simmetrik, qo'ng'iroq); |z|>3 (juda uzoq — outlier); lekin o'rtacha/std outlierga sezgir (o'zi buziladi — bitta outlier std'ni oshiradi; IQR chidamliroq). z-score (normal — |z|>3), IQR (har taqsimot — chidamli; afzal). z-score (normal — |z|>3), IQR (umumiy — chidamli). z-score usuli — |z|>3 (normal; o'rtacha/std sezgir). z-score. Normal.

2.4. Hal qilish (o'chir/cheklash/saqlash)

Hal qilish (o'chir/cheklash/saqlash) — kontekstga: o'chirish (df[df["x"] < yuqori] — xato outlier; imkonsiz qiymat), cheklash (capping/winsorize — chegaraga qisish; df["x"].clip(past, yuqori) — outlier chegaraga; ma'lumot saqlanadi, ta'sir kamayadi), tuzatish (kiritish xatosi — to'g'ri qiymat; 250 → 25?), saqlash (haqiqiy — o'zgartirma; alohida belgila/tahlil), transformatsiya (log — 6.5; katta qiymatlarni siqadi). Sabab: kontekst hal qiladi (xato — o'chir/tuzat; haqiqiy — saqla/chekla; model — cheklash ko'p); ko'r-ko'rona o'chirma (ma'lumot yo'q). O'chir (xato), clip (cheklash — model), saqla (haqiqiy), log (transformatsiya). Hal qilish — o'chir/clip/saqla (kontekstga). Hal. clip.

2.5. Outlier va buzilish

Outlier va buzilish — nimani buzadi: o'rtacha (outlier tortadi — bitta 50000 o'rtachani ko'taradi; median chidamli — 4.2), std (outlier oshiradi — tarqoqlik soxta katta), model (regressiya outlierga egiladi — chiziq tortiladi; 4.9 aloqa), korrelyatsiya (outlier — soxta yoki yashirin aloqa; 4.9), grafik (outlier — o'q siqiladi — qolgan ma'lumot bir joyda; 5.4). Sabab: ko'p statistika/model o'rtacha/std ga tayanadi (outlier — sezgir; buziladi); chidamli (median, IQR — 4.2, 4.3; outlierga kam ta'sir). O'rtacha/std (sezgir — buziladi), median/IQR (chidamli), model/grafik (egiladi/siqiladi). Outlier va buzilish — o'rtacha/model/grafik (chidamli — median/IQR). Buzilish. Chidamli.

2.6. Outlier amaliyoti

Outlier amaliyoti: topish (IQR — q1/q3/iqr, chegara 1.5·IQR; yoki z-score |z|>3; box plot 5.6 — vizual); tushunish (xato — imkonsiz/mantiqsiz; haqiqiy — kamyob; domen bilimi); hal (xato — o'chir/tuzat; haqiqiy — saqla/chekla; model — clip capping); transformatsiya (log — katta qiymat; 6.5); belgilash (outlier ustun — df["outlier"] = ...; alohida tahlil); tekshir (o'rtacha/median oldin-keyin — ta'sir). Tuzoqlar: ko'r-ko'rona o'chirish (haqiqiy — muhim yo'q), z-score normal emas (chidamsiz — IQR), 1.5 qat'iy (kontekst — 3 ba'zan), domen yo'q (xato/haqiqiy farqlamay), o'rtacha ishlatish (median — chidamli). Amaliyot — topish, tushunish, hal, tekshir. Chetki. Hal.

2.7. Outlier tuzoqlari

Outlier asosiy tuzoqlari: ko'r-ko'rona o'chirish (outlier'ni avtomatik o'chir — lekin haqiqiy (direktor, VIP, firibgarlik — muhim!) yo'qoladi; tushun — xato vs haqiqiy); z-score normal emas (z-score — normal taqsimot faraz 4.6-bob; o'ngga cho'zilgan (5.5 — daromad, narx) — z-score noto'g'ri; IQR chidamliroq); o'rtacha/std ishlatish (outlier topishda o'rtacha/std — o'zi outlierga sezgir (bitta outlier std'ni oshiradi — boshqalar outlier ko'rinmaydi; niqoblash); median/IQR chidamli); 1.5 qat'iy (1.5·IQR — standart, lekin kontekst (3·IQR — faqat ekstremal; 1.5 — ko'proq); qat'iy emas — domenga); domen yo'q (xato vs haqiqiy — domen bilimi (yosh 250 imkonsiz; maosh 50000 mumkin); domensiz — noto'g'ri hal); o'rtacha bilan hisob (outlier bor — mean egilgan 4.2-bob; median yoki outlier'ni hal qilib, keyin); transformatsiya unut (o'ngga cho'zilgan — log 6.5-bob outlier ta'sirini kamayatiradi (o'chirmasdan); ko'pincha yaxshi); outlier — signal (firibgarlik, buzilish, favqulodda — outlier aynan qiziqarli (o'chirma — o'rgan); anomaliya aniqlash — 20-qism). Sabab: outlier kontekst/usul nozik (ko'r-ko'rona, z-score, o'rtacha, domen — noto'g'ri hal yoki muhim yo'q). Yechim: tushun (xato/haqiqiy), IQR (chidamli), median, domen, log. Tuzoqlar — ko'r-ko'rona, z-score, o'rtacha, domen.

2.8. Outlier — topish, tushunish, hal qilish

Outlier asosiy g'oyasi — topish, tushunish, hal qilish: chetki qiymat (boshqalardan keskin farq — 1000 maosh 300-800, bitta 50000) buzadi (o'rtacha tortiladi, model egiladi, grafik siqiladi) va ikki xil (xato — kiritish, imkonsiz; haqiqiy — direktor, muhim). Topish (IQR usuli — Q1/Q3, 1.5·IQR chegara; z-score |z|>3 normal; box plot 5.6 vizual), tushunish (xato — imkonsiz/mantiqsiz, o'chir/tuzat; haqiqiy — kamyob, saqla; domen bilimi), hal (o'chirish xato; cheklash/clip capping — model; saqlash haqiqiy; log transformatsiya — 6.5). Foydalanish: g'ayrioddiy qiymat aniqlash (xato yoki muhim), tahlilni himoyalash (o'rtacha/model — chidamli median/IQR 4.2/4.3). Tuzoqlar: ko'r-ko'rona o'chirish (haqiqiy yo'q), z-score normal emas (IQR), o'rtacha/std (median), domen yo'q, outlier signal (firibgarlik — o'rgan). Bu 4.3 (IQR), 4.4 (kvartil), 4.6 (z-score/normal), 5.6 (box plot), 6.5 (transformatsiya), 6.11 (quvur), 20-qism (anomaliya) bilan. Outlier — topish (IQR), tushunish (xato/haqiqiy), hal (o'chir/clip/saqla). Chetki. Xato/haqiqiy. Hal.


3. Tez ma'lumotnoma

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

# TOPISH — IQR usuli (chidamli; afzal):
q1, q3 = df["x"].quantile(0.25), df["x"].quantile(0.75)
iqr = q3 - q1
past, yuqori = q1 - 1.5 * iqr, q3 + 1.5 * iqr
outlier = df[(df["x"] < past) | (df["x"] > yuqori)]

# TOPISH — z-score (normal taqsimot; |z|>3):
z = np.abs(stats.zscore(df["x"]))
outlier_z = df[z > 3]

# HAL QILISH:
df_toza = df[(df["x"] >= past) & (df["x"] <= yuqori)]   # o'chir (xato)
df["x"] = df["x"].clip(past, yuqori)                     # cheklash (capping)
df["x_log"] = np.log1p(df["x"])                          # transformatsiya (6.5)
# haqiqiy — saqla (o'zgartirma; alohida tahlil)

# BELGILASH:
df["outlier"] = (df["x"] < past) | (df["x"] > yuqori)

# XATO vs HAQIQIY: imkonsiz (yosh 250 — o'chir) vs kamyob (direktor — saqla)
QOIDA: IQR (chidamli) · tushun (xato/haqiqiy) · median · domen · log

Outlier xulosasi

Outlier — chetki qiymat (tahlilni buzadi: o'rtacha, model, grafik)
Topish — IQR (1.5·IQR; chidamli) / z-score (|z|>3; normal)
Xato vs haqiqiy — imkonsiz (o'chir) vs kamyob (saqla; domen)
Hal — o'chir (xato) / clip capping (model) / saqla (haqiqiy) / log
Buzilish — o'rtacha/std sezgir (median/IQR chidamli — 4.2/4.3)

4. Batafsil misollar

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

Misol 1 — Topish (IQR usuli)

python
"""Outlier topish: IQR (real pandas)."""

import pandas as pd


def main() -> None:
    maosh = pd.Series([400, 450, 500, 550, 600, 650, 700, 50000, 480, 520])

    print("=== 1. Kvartillar 4.4-bob ===")
    q1 = maosh.quantile(0.25)
    q3 = maosh.quantile(0.75)
    iqr = q3 - q1
    print(f"  Q1={q1}, Q3={q3}, IQR={iqr}")

    print("\n=== 2. Chegaralar (1.5*IQR) ===")
    past = q1 - 1.5 * iqr
    yuqori = q3 + 1.5 * iqr
    print(f"  past={past}, yuqori={yuqori}")

    print("\n=== 3. Outlier ===")
    outlier = maosh[(maosh < past) | (maosh > yuqori)]
    print(f"  outlier: {outlier.tolist()}")

    print("\n=== 4. Nega IQR (median asosida) ===")
    print("  kvartil — outlierga chidamli 4.3-bob")
    print("  ⭐ Topish — IQR usuli (chidamli)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Kvartillar 4.4-bob ===
  Q1=485.0, Q3=637.5, IQR=152.5

=== 2. Chegaralar (1.5*IQR) ===
  past=256.25, yuqori=866.25

=== 3. Outlier ===
  outlier: [50000]

=== 4. Nega IQR (median asosida) ===
  kvartil — outlierga chidamli 4.3-bob
  ⭐ Topish — IQR usuli (chidamli)

Nima ko'rsatdi: 2.1-bo'lim.

Misol 2 — Outlier va o'rtacha (buzilish)

python
"""Outlier o'rtachani buzadi (real pandas)."""

import pandas as pd


def main() -> None:
    maosh = pd.Series([400, 450, 500, 550, 600, 650, 700, 50000])

    print("=== 1. O'rtacha (outlier bilan) ===")
    print(f"  mean: {maosh.mean().round(0)} (50000 tortdi)")

    print("\n=== 2. Median (chidamli) ===")
    print(f"  median: {maosh.median()} (haqiqiy markaz)")

    print("\n=== 3. Std (outlier oshiradi) ===")
    print(f"  std: {maosh.std().round(0)} (soxta katta)")

    print("\n=== 4. Outlier'siz ===")
    tozalab = maosh[maosh < 10000]
    print(f"  mean (outlier'siz): {tozalab.mean().round(0)}")
    print(f"  median deyarli o'zgarmadi: {tozalab.median()}")
    print("  ⭐ Outlier o'rtachani buzadi (median chidamli)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. O'rtacha (outlier bilan) ===
  mean: 6731.0 (50000 tortdi)

=== 2. Median (chidamli) ===
  median: 575.0 (haqiqiy markaz)

=== 3. Std (outlier oshiradi) ===
  std: 17484.0 (soxta katta)

=== 4. Outlier'siz ===
  mean (outlier'siz): 550.0
  median deyarli o'zgarmadi: 550.0
  ⭐ Outlier o'rtachani buzadi (median chidamli)

Nima ko'rsatdi: 2.5-bo'lim.

Misol 3 — Hal qilish (o'chir/clip)

python
"""Outlier hal qilish (real pandas)."""

import pandas as pd


def main() -> None:
    maosh = pd.Series([400, 450, 500, 550, 600, 50000, -500, 520])

    q1, q3 = maosh.quantile(0.25), maosh.quantile(0.75)
    iqr = q3 - q1
    past, yuqori = q1 - 1.5 * iqr, q3 + 1.5 * iqr

    print("=== 1. O'chirish (xato outlier) ===")
    ochirilgan = maosh[(maosh >= past) & (maosh <= yuqori)]
    print(f"  qoldi: {ochirilgan.tolist()}")

    print("\n=== 2. Cheklash (clip — capping) ===")
    cheklab = maosh.clip(past, yuqori)
    print(f"  cheklangan: {cheklab.round(0).tolist()}")
    print("  outlier chegaraga qisildi (saqlanadi)")

    print("\n=== 3. Xato vs haqiqiy ===")
    print("  -500: xato (manfiy maosh — o'chir)")
    print("  50000: haqiqiy? (direktor — saqla yoki chekla)")

    print("\n=== 4. O'rtacha taqqoslash ===")
    print(f"  clip mean: {cheklab.mean().round(0)}")
    print("  ⭐ Hal — o'chir (xato) / clip (model)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. O'chirish (xato outlier) ===
  qoldi: [400, 450, 500, 550, 600, 520]

=== 2. Cheklash (clip — capping) ===
  cheklangan: [400, 450, 500, 550, 600, 750, 250, 520]
  outlier chegaraga qisildi (saqlanadi)

=== 3. Xato vs haqiqiy ===
  -500: xato (manfiy maosh — o'chir)
  50000: haqiqiy? (direktor — saqla yoki chekla)

=== 4. O'rtacha taqqoslash ===
  clip mean: 502.0
  ⭐ Hal — o'chir (xato) / clip (model)

Nima ko'rsatdi: 2.4-bo'lim.

Misol 4 — z-score usuli

python
"""z-score usuli (real numpy/scipy)."""

import numpy as np
from scipy import stats


def main() -> None:
    np.random.seed(0)
    normal = np.random.normal(500, 50, 100)
    data = np.append(normal, [50000, -1000])   # 2 outlier

    print("=== 1. z-score 4.6-bob ===")
    z = np.abs(stats.zscore(data))
    print(f"  eng katta |z|: {z.max().round(1)}")

    print("\n=== 2. Outlier (|z| > 3) ===")
    outlier = data[z > 3]
    print(f"  outlier soni: {len(outlier)}")
    print(f"  outlier: {[round(v) for v in outlier]}")

    print("\n=== 3. z-score faraz (normal) ===")
    print("  z-score normal taqsimot uchun 4.6-bob")
    print("  o'ngga cho'zilgan → IQR afzal")

    print("\n=== 4. IQR bilan taqqoslash ===")
    q1, q3 = np.percentile(data, [25, 75])
    iqr = q3 - q1
    iqr_out = data[(data < q1 - 1.5 * iqr) | (data > q3 + 1.5 * iqr)]
    print(f"  IQR outlier soni: {len(iqr_out)}")
    print("  ⭐ z-score (normal) / IQR (chidamli)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. z-score 4.6-bob ===
  eng katta |z|: 10.0

=== 2. Outlier (|z| > 3) ===
  outlier soni: 1
  outlier: [50000]

=== 3. z-score faraz (normal) ===
  z-score normal taqsimot uchun 4.6-bob
  o'ngga cho'zilgan → IQR afzal

=== 4. IQR bilan taqqoslash ===
  IQR outlier soni: 2
  ⭐ z-score (normal) / IQR (chidamli)

Nima ko'rsatdi: 2.3-bo'lim.


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

Noto'g'ri fikr To'g'risi
"outlier = xato" Xato yoki haqiqiy (tushun)
"outlier'ni o'chir" Ko'r-ko'rona emas (domen)
"z-score doim" Normal (IQR — chidamli)
"o'rtacha bilan top" Median/IQR (chidamli)
"1.5 qat'iy" Kontekst (3·IQR ba'zan)
"outlier zararli" Signal (firibgarlik — muhim)
"clip = o'chir" Cheklash (saqlaydi)
"domen kerakmas" Xato/haqiqiy (domen)

6. Keng tarqalgan xatolar va yechimlari

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

python
df = df[df["maosh"] < yuqori]   # direktor (haqiqiy) yo'q         # ⚠️
# tushun: xato (o'chir) vs haqiqiy (saqla)                        # ✅

2. z-score normal emas

python
z = stats.zscore(daromad)   # o'ngga cho'zilgan (noto'g'ri)       # ⚠️
# IQR usuli (chidamli)                                            # ✅

3. O'rtacha/std bilan topish

python
chegara = df["x"].mean() + 3 * df["x"].std()   # outlier sezgir   # ⚠️
# IQR (median asosida — chidamli)                                 # ✅

4. Domen yo'q

python
# yosh 250 va maosh 50000 — bir xil deb (o'chir)                  # ⚠️
# yosh 250 (imkonsiz — o'chir); 50000 (direktor — saqla)         # ✅

5. O'rtacha bilan hisob

python
df["x"].mean()   # outlier egadi                                  # ⚠️
df["x"].median()   # chidamli (yoki outlier hal)                 # ✅

6. Transformatsiya unutish

python
df = df[df["narx"] < yuqori]   # o'ngga cho'zilgan (ko'p o'chir)  # ⚠️
df["narx_log"] = np.log1p(df["narx"])   # log 6.5-bob              # ✅

7. Outlier — signal

python
df = df[df["tranzaksiya"] < yuqori]   # firibgarlik yo'q          # ⚠️
# outlier o'rgan (anomaliya — 20-qism)                            # ✅

7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 4.3-dars (o'tilgan): IQR (tarqoqlik)
  • 4.4-dars (o'tilgan): Kvartil
  • 4.6-dars (o'tilgan): z-score (normal)
  • 5.6-dars (o'tilgan): Box plot (vizual)
  • 6.5-dars: Normalizatsiya (transformatsiya)
  • 20-qism (reja): Anomaliya aniqlash

8. Eng yaxshi amaliyotlar

  1. Topish — IQR (chidamli).

  2. Tushun — xato yoki haqiqiy (domen).

  3. z-score — faqat normal.

  4. Median — o'rtacha emas (chidamli).

  5. Hal — o'chir (xato) / clip (model) / saqla (haqiqiy).

  6. Transformatsiya — log (o'ngga cho'zilgan).

  7. Belgila — outlier ustun (alohida).

  8. Outlier — signal (firibgarlik — o'rgan).


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
1.  # outlier nima?
2.  # IQR usuli?
3.  # chegara qanday?
4.  # xato outlier?
5.  # haqiqiy outlier?
6.  # z-score qachon?
7.  # nega IQR afzal?
8.  # clip nima?
9.  # outlier o'rtachani?
10. # domen nega?
11. # outlier signalmi?
12. # nega hal qilish?
Javoblar
  1. Chetki qiymat (keskin farq)
  2. Kvartil (Q1-1.5IQR, Q3+1.5IQR)
  3. 1.5 * IQR (past/yuqori)
  4. Imkonsiz (yosh 250 — o'chir)
  5. Kamyob (direktor — saqla)
  6. Normal taqsimot (|z|>3)
  7. Chidamli (median asosida)
  8. Cheklash (capping — saqlaydi)
  9. Tortadi (median chidamli)
  10. Xato/haqiqiy farqlash
  11. Ha (firibgarlik — muhim)
  12. Buzadi (o'rtacha, model)

Vazifa 2: Xatolarni tuzating

python
1.  df = df[df["maosh"] < yuqori]   # direktor

2.  z = stats.zscore(daromad)   # cho'zilgan

3.  df["x"].mean() + 3*df["x"].std()

4.  # yosh 250 va maosh 50000 bir xil

5.  df["x"].mean()   # outlier
Javoblar
python
1.  tushun (xato vs haqiqiy)

2.  IQR usuli (chidamli)

3.  IQR (median asosida)

4.  yosh 250 o'chir; 50000 saqla

5.  df["x"].median() (chidamli)

Vazifa 3: Topish

Modellang:

  1. IQR
  2. Chegara (1.5)
  3. z-score
  4. Box plot

Vazifa 4: Tushunish

Modellang:

  1. Xato (imkonsiz)
  2. Haqiqiy (kamyob)
  3. Domen
  4. Farqlash

Vazifa 5: Hal qilish

Modellang:

  1. O'chir (xato)
  2. Clip (model)
  3. Saqla (haqiqiy)
  4. Log (transformatsiya)

Vazifa 6: Integratsiya

Modellang:

  1. IQR (4.3)
  2. Box plot (5.6)
  3. Transformatsiya (6.5)
  4. Anomaliya (20)

Vazifa 7: O'ylash

Outlier ikki xil: xato (kiritish xatosi — o'chir) yoki haqiqiy (direktor maoshi, firibgarlik — muhim ma'lumot). Ko'r-ko'rona o'chirish haqiqiy va qimmatli ma'lumotni yo'qotadi — ba'zan outlier aynan eng qiziqarli narsa (firibgarlik, kasallik, buzilish). Nima uchun "outlier — muammo emas, balki savol" nuqtai nazari muhim, va Data Scientist outlier bilan qanday ishlaydi?

Javob

Qisqa javob: Outlier ikki xil (xato — o'chir; haqiqiy — muhim); ko'r-ko'rona o'chirish qimmatli ma'lumotni yo'qotadi (outlier aynan qiziqarli — firibgarlik, kasallik); "outlier — muammo emas, savol" nuqtai nazari muhim, Data Scientist ehtiyotkorlik bilan ishlaydi, chunki: (1) outlier — signal — chetki qiymat ma'lumot (nega chetki? — xato yoki haqiqiy hodisa); ko'p sohada outlier aynan maqsad (firibgarlik — g'ayrioddiy tranzaksiya; kasallik — g'ayrioddiy tahlil; buzilish — g'ayrioddiy sensor; anomaliya aniqlash — 20-qism); (2) savol, muammo emas — outlier'ni ko'rib savol ber ("nega bu chetki? — xato? haqiqiy? nima sabab?"); "muammo" (o'chir — yo'qot) vs "savol" (tekshir — o'rgan); (3) ko'r-ko'rona xavfli — avtomatik o'chirish → haqiqiy yo'q (direktor, VIP — muhim; firibgarlik — o'chirib tashlash = jinoyatni yashirish); (4) kontekst/domen — xato (imkonsiz — yosh 250) vs haqiqiy (kamyob — maosh 50000); domen bilimi (soha — nima mumkin). "Nega savol nuqtai nazari": (a) kashfiyot — outlier yangi bilim (kutilmagan — qiziq; nega? — o'rgan); ilmiy kashfiyotlar ko'pincha outlier (kutilmagan natija); (b) anomaliya — outlier aynan qidirilayotgan (firibgarlik, buzilish, kasallik — g'ayrioddiy = muhim; o'chirma — top); (c) xato signali — outlier jarayon xatosini ko'rsatadi (sensor buziq, kiritish xato — tuzat; jarayon); (d) ma'lumot boyligi — outlier kam, lekin ma'noli (o'chir — ma'lumot kambag'al). "Data Scientist qanday": (1) top (IQR/z-score/box — 5.6; qayerda outlier); (2) so'ra ("nega chetki? — xato/haqiqiy/hodisa"); (3) tekshir (domen — imkonsizmi; manba — kiritish xatosimi; kontekst); (4) hal (xato — o'chir/tuzat; haqiqiy — saqla/chekla/alohida; signal — o'rgan); (5) shaffof (outlier hal — hujjatla; nega o'chirildi/saqlandi); (6) sezgirlik (outlier bilan/siz — natija o'zgaradimi). "Nega muhim": outlier qimmatli (signal, kashfiyot, anomaliya — o'chirma); ko'r-ko'rona yo'qotadi (haqiqiy, firibgarlik); savol (o'rgan — muammo emas). Saboqlar: outlier signal (savol — muammo emas); ko'r-ko'rona xavfli (haqiqiy/firibgarlik yo'q); top → so'ra → tekshir → hal; domen (xato/haqiqiy). To'g'ri: outlier — savol (nega chetki; xato/haqiqiy/hodisa); ehtiyot (ko'r-ko'rona emas); domen; signal (o'rgan — anomaliya). Muvozanat: tozalash (xato — o'chir) + o'rganish (haqiqiy/signal — saqla, top; muhim). Bu Data Science tozalash/anomaliya asosiy (outlier — savol; xato/haqiqiy; signal — o'rgan; domen). Outlier — muammo emas, savol (top, tushun, hal; signal — muhim).

1. Nega outlier — savol

  • Signal (nega chetki — ma'lumot)
  • Anomaliya (firibgarlik, kasallik — muhim)
  • Kashfiyot (kutilmagan — o'rgan)
  • Xato signali (jarayon — tuzat)

2. Nega ko'r-ko'rona xavfli

  • Haqiqiy yo'q (direktor, VIP)
  • Firibgarlik yo'q (o'chir — yashirish)
  • Ma'lumot kambag'al (kam, ma'noli)
  • Domensiz (xato/haqiqiy farqlamay)

3. Muammo vs savol

Muammo (o'chir) Savol (o'rgan)
Yo'qot Tekshir (nega?)
Ko'r-ko'rona Domen (xato/haqiqiy)
Anomaliya yo'q Signal (top)

4. Data Scientist qanday

  1. Top (IQR/box — qayerda)
  2. So'ra (nega — xato/haqiqiy)
  3. Tekshir (domen, manba)
  4. Hal (o'chir/saqla/o'rgan; shaffof)

5. Xulosa

  1. Outlier — savol (nega chetki; xato/haqiqiy/hodisa)
  2. Ko'r-ko'rona o'chirish — qimmatli ma'lumot yo'q
  3. Signal (firibgarlik, anomaliya — muhim; o'rgan)
  4. Domen (xato — o'chir; haqiqiy — saqla; shaffof)

Nimani mustahkamlaydi: 2.2, 2.7-bo'limlar.


Xulosa

Bu darsda outlierni o'rgandik.

Eng muhim uch fikr:

  1. Topish va tushunish. Topish — IQR usuli (4.3, 4.4): Q1, Q3, IQR=Q3-Q1; chegara Q1-1.5·IQR va Q3+1.5·IQR; outlier — chegaradan tashqari (kvartil — outlierga chidamli; box plot 5.6 vizual). z-score (|z|>3 — normal taqsimot; o'rtacha/std sezgir — IQR afzal). Xato yoki haqiqiy: xato (imkonsiz/mantiqsiz — yosh 250; o'chir/tuzat), haqiqiy (kamyob — direktor; saqla; domen bilimi).

  2. Hal va buzilish. Hal — kontekstga: o'chirish (xato), cheklash/capping (clip(past, yuqori) — chegaraga qisadi; ma'lumot saqlanadi; model), saqlash (haqiqiy — alohida), log transformatsiya (6.5 — o'ngga cho'zilgan). Buzilish: outlier o'rtachani tortadi, std'ni oshiradi, model egiladi, grafik siqiladi (median/IQR — chidamli; 4.2/4.3).

  3. Topish, tushunish, hal. Outlier — muammo emas, savol (nega chetki — xato/haqiqiy/hodisa); ko'r-ko'rona o'chirma (haqiqiy, firibgarlik — muhim; outlier aynan qiziqarli — anomaliya 20-qism). Jarayon: top → tushun (domen) → hal → tekshir (o'rtacha/median ta'sir). Tuzoqlar: ko'r-ko'rona o'chirish (haqiqiy yo'q), z-score normal emas (IQR), o'rtacha/std bilan topish (median), domen yo'q, o'rtacha bilan hisob (median), transformatsiya unut (log), outlier — signal (o'rgan).

Keyingi darsda tur o'zgartirish (type conversion)ni o'rganamiz: ustun noto'g'ri turda (son matn sifatida "123", sana matn "2024-01-01") — to'g'ri turga (astype, pd.to_numeric, pd.to_datetime); hisob/tahlil uchun shart (matn songa qo'shib bo'lmaydi).

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
6.3-dars: Outlier (chetki qiymatlar) — IlmHamroh