Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Topish (IQR usuli)
- 2.2. Xato yoki haqiqiy
- 2.3. z-score usuli
- 2.4. Hal qilish (o'chir/cheklash/saqlash)
- 2.5. Outlier va buzilish
- 2.6. Outlier amaliyoti
- 2.7. Outlier tuzoqlari
- 2.8. Outlier — topish, tushunish, hal qilish
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Topish (IQR usuli)
- Misol 2 — Outlier va o'rtacha (buzilish)
- Misol 3 — Hal qilish (o'chir/clip)
- Misol 4 — z-score usuli
- 5. To'g'ri va noto'g'ri tushunishlar
- 6. Keng tarqalgan xatolar va yechimlari
- 7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8. Eng yaxshi amaliyotlar
- 9. Amaliy topshiriq
- Xulosa
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:
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
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 · logOutlier 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)
"""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:
=== 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)
"""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:
=== 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)
"""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:
=== 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
"""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:
=== 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
df = df[df["maosh"] < yuqori] # direktor (haqiqiy) yo'q # ⚠️
# tushun: xato (o'chir) vs haqiqiy (saqla) # ✅2. z-score normal emas
z = stats.zscore(daromad) # o'ngga cho'zilgan (noto'g'ri) # ⚠️
# IQR usuli (chidamli) # ✅3. O'rtacha/std bilan topish
chegara = df["x"].mean() + 3 * df["x"].std() # outlier sezgir # ⚠️
# IQR (median asosida — chidamli) # ✅4. Domen yo'q
# yosh 250 va maosh 50000 — bir xil deb (o'chir) # ⚠️
# yosh 250 (imkonsiz — o'chir); 50000 (direktor — saqla) # ✅5. O'rtacha bilan hisob
df["x"].mean() # outlier egadi # ⚠️
df["x"].median() # chidamli (yoki outlier hal) # ✅6. Transformatsiya unutish
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
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
Topish — IQR (chidamli).
Tushun — xato yoki haqiqiy (domen).
z-score — faqat normal.
Median — o'rtacha emas (chidamli).
Hal — o'chir (xato) / clip (model) / saqla (haqiqiy).
Transformatsiya — log (o'ngga cho'zilgan).
Belgila — outlier ustun (alohida).
Outlier — signal (firibgarlik — o'rgan).
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
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
- Chetki qiymat (keskin farq)
- Kvartil (Q1-1.5IQR, Q3+1.5IQR)
- 1.5 * IQR (past/yuqori)
- Imkonsiz (yosh 250 — o'chir)
- Kamyob (direktor — saqla)
- Normal taqsimot (|z|>3)
- Chidamli (median asosida)
- Cheklash (capping — saqlaydi)
- Tortadi (median chidamli)
- Xato/haqiqiy farqlash
- Ha (firibgarlik — muhim)
- Buzadi (o'rtacha, model)
Vazifa 2: Xatolarni tuzating
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() # outlierJavoblar
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:
- IQR
- Chegara (1.5)
- z-score
- Box plot
Vazifa 4: Tushunish
Modellang:
- Xato (imkonsiz)
- Haqiqiy (kamyob)
- Domen
- Farqlash
Vazifa 5: Hal qilish
Modellang:
- O'chir (xato)
- Clip (model)
- Saqla (haqiqiy)
- Log (transformatsiya)
Vazifa 6: Integratsiya
Modellang:
- IQR (4.3)
- Box plot (5.6)
- Transformatsiya (6.5)
- 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
- Top (IQR/box — qayerda)
- So'ra (nega — xato/haqiqiy)
- Tekshir (domen, manba)
- Hal (o'chir/saqla/o'rgan; shaffof)
5. Xulosa
- Outlier — savol (nega chetki; xato/haqiqiy/hodisa)
- Ko'r-ko'rona o'chirish — qimmatli ma'lumot yo'q
- Signal (firibgarlik, anomaliya — muhim; o'rgan)
- 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:
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).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).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).
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!