Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. KDE (silliq zichlik egrisi)
- 2.2. Violin plot (box + KDE)
- 2.3. ECDF (empirik taqsimot)
- 2.4. Guruh taqqoslash (hue)
- 2.5. Modallik (bir/ikki cho'qqi)
- 2.6. Taqsimot amaliyoti
- 2.7. Taqsimot tuzoqlari
- 2.8. Taqsimot grafiklari — silliq va boy taqsimot
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — KDE (silliq egri)
- Misol 2 — Violin plot (guruh)
- Misol 3 — Bimodal (ikki cho'qqi)
- Misol 4 — ECDF (persentil)
- 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
5.9-dars: Taqsimot grafiklari (KDE, violin)
5-QISM — VIZUALIZATSIYA · 9-dars
1. Kirish va motivatsiya
5.5-darsda histogram — taqsimotni ustunlar bilan (bin) ko'rsatadi. Lekin histogram bin soniga bog'liq (bin o'zgarsa — shakl o'zgaradi), va guruhlarni ustma-ust taqqoslash qiyin. Taqsimot grafiklari — silliqroq, aniqroq alternativalar: KDE (kernel density estimation — silliq zichlik egrisi, bin'siz), violin plot (box plot + KDE — median + tarqoqlik + shakl), ECDF (empirik taqsimot funksiyasi — foiz). Data Scientist guruhlarni taqqoslaganda (masalan, 3 shahar maoshi) violin plot bir grafikda median, tarqoqlik va shaklni ko'rsatadi — box plotdan boyroq. Nega muhim? (1) Silliq — KDE bin'siz (shakl aniq); (2) Guruh taqqoslash — violin (median + shakl); (3) Taqsimot shakli — bir/ikki cho'qqi (modallik). Bu dars taqsimot grafiklarini o'rgatadi — silliq va boy.
Taqsimot grafiklari — silliq/boy taqsimot: KDE (sns.kdeplot — silliq zichlik egri, bin'siz; 5.5 histogram silliq varianti), violin plot (sns.violinplot — box + KDE; median + tarqoqlik + shakl), ECDF (sns.ecdfplot — empirik taqsimot; foiz), guruh (hue= — ustma-ust taqqoslash), modallik (bir/ikki cho'qqi — shakl). Foydalanish: silliq taqsimot, guruh taqqoslash, shakl. Bu 5.5 (histogram), 5.6 (box plot), 5.7 (Seaborn) bilan bog'liq. Taqsimot grafiklari — KDE, violin. Silliq. Guruh.
Real vaziyat. Data Scientist 3 shahar maoshini taqqoslamoqchi. Histogram 5.5-bob: 3 ta alohida grafik (ustma-ust — chalkash); bin'ga bog'liq (shakl o'zgaradi). Box plot 5.6-bob: median + tarqoqlik (lekin shakl yo'q — bir/ikki cho'qqi ko'rinmaydi). Violin plot (sns.violinplot(data=df, x="shahar", y="maosh")): har shahar uchun box + KDE (median chiziq + quti + silliq shakl — keng qism ko'p ma'lumot); bir grafikda 3 shahar (median, tarqoqlik, shakl — Toshkent ikki cho'qqi (ikki guruh!), Samarqand bir cho'qqi). Data Scientist shaklni ko'rdi (box plot yashirgan — ikki guruh; violin ochdi). Violin — box + shakl (boy taqqoslash). Taqsimot grafiklari — silliq, boy.
Bu darsda taqsimot grafiklarini o'rganamiz.
Bu darsda:
- KDE (silliq zichlik egrisi)
- Violin plot (box + KDE)
- ECDF (empirik taqsimot)
- Guruh taqqoslash (hue)
- Modallik (bir/ikki cho'qqi)
- Taqsimot amaliyoti
- Taqsimot tuzoqlari
- Amaliy: taqsimot modeli
ℹ Misollar real seaborn/scipy bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.
2. Nazariya — chuqur tushuntirish
2.1. KDE (silliq zichlik egrisi)
Bin'siz silliq:
import seaborn as sns
# KDE — silliq zichlik egrisi (histogram silliq varianti, bin'siz)
sns.kdeplot(data)
# histogram + KDE (birga)
sns.histplot(data, kde=True) KDE (silliq zichlik egri) — bin'siz: KDE (Kernel Density Estimation) — taqsimotni silliq egri bilan (sns.kdeplot(data) — 5.7; histogram 5.5-bob silliq varianti, bin'siz); sns.histplot(data, kde=True) (histogram + KDE birga). Sabab: histogram bin'ga bog'liq (bin soni o'zgarsa — shakl o'zgaradi; sun'iy pog'ona); KDE silliq (har nuqta atrofida "kernel" — Gauss; yig'indi — silliq egri; bin yo'q). Zichlik (y — ehtimollik zichligi; egri osti yuza = 1; foiz emas). KDE (silliq — shakl aniq), histogram (pog'ona — bin). bw_adjust (silliqlik — katta silliq, kichik tafsilot). KDE — silliq zichlik egri (bin'siz). Silliq. Zichlik.
2.2. Violin plot (box + KDE)
Box + shakl:
import seaborn as sns
# Violin — box plot + KDE (median + tarqoqlik + shakl)
sns.violinplot(data=df, x="shahar", y="maosh")
# har "violin": median chiziq + quti (IQR) + silliq shakl (KDE) Violin plot (box + KDE) — median + shakl: violin plot (sns.violinplot — 5.7) — box plot 5.6-bob + KDE 2.1-bob birga (median chiziq + quti IQR + silliq shakl — KDE ikki tomon oyna); box plotdan boyroq (shakl — bir/ikki cho'qqi). Sabab: box plot 5.6-bob — median, IQR, outlier (lekin shakl yo'q — ikki cho'qqi ko'rinmas); violin shakl qo'shadi (KDE — keng qism ko'p ma'lumot; ikki cho'qqi — ikki guruh). x=/y= (guruh — har violin), hue= (ichki bo'linish), split=True (ikki guruh — yarim/yarim). Violin (box + shakl — boy), box (sodda — median/IQR). Violin plot — box + KDE (median + tarqoqlik + shakl). Box. Shakl.
2.3. ECDF (empirik taqsimot)
ECDF (empirik taqsimot funksiyasi) — foiz: sns.ecdfplot(data) — har qiymat uchun "shu qiymatdan kichik foiz" (0'dan 1'gacha o'suvchi egri; pog'ona/silliq). Sabab: histogram/KDE — zichlik (qancha); ECDF — jami foiz ("70'dan past necha foiz?" — to'g'ridan o'qish; median — 0.5 chiziq; persentil — 4.4); bin'siz (har nuqta — aniq; histogram pog'ona yo'q). Median (y=0.5), persentil (y=0.25 — Q1), taqqoslash (ikki ECDF — qaysi o'ngda — katta). ECDF — jami foiz (persentil o'qish; bin'siz). Foiz. Persentil.
2.4. Guruh taqqoslash (hue)
Guruh taqqoslash (hue) — ustma-ust: Seaborn taqsimot grafiklari hue= (guruh — rang; ustma-ust bir grafikda); KDE (sns.kdeplot(data=df, x="maosh", hue="shahar") — 3 egri ustma-ust), violin (x="shahar" — yonma-yon), histplot (hue= + multiple="stack"/"dodge"). Sabab: histogram 5.5-bob — guruh ustma-ust chalkash (ustunlar to'sadi); KDE silliq egri (ustma-ust — aniq; 3 egri ko'rinadi); violin yonma-yon (har guruh — alohida violin). KDE hue (silliq — eng yaxshi ustma-ust), violin (yonma-yon — box + shakl). Guruh taqqoslash — hue (KDE ustma-ust, violin yonma-yon). Guruh. Ustma-ust.
2.5. Modallik (bir/ikki cho'qqi)
Modallik (bir/ikki cho'qqi) — taqsimot shakli: unimodal (bir cho'qqi — bir guruh; normal — 4.6), bimodal (ikki cho'qqi — ikki guruh aralash!), multimodal (ko'p cho'qqi). Sabab: taqsimot shakli muhim (ikki cho'qqi — ma'lumot ikki guruh aralash; masalan, erkak/ayol bo'y — ikki cho'qqi; o'rtacha — noto'g'ri (ikki guruh orasida hech kim)); box plot yashiradi (median — ikki cho'qqi orasida), KDE/violin ochadi (ikki cho'qqi ko'rinadi). Bir cho'qqi (bir guruh — o'rtacha ma'noli), ikki cho'qqi (ikki guruh — ajrat!). Modallik — cho'qqi soni (bir/ikki guruh; KDE ochadi). Cho'qqi. Guruh.
2.6. Taqsimot amaliyoti
Taqsimot grafiklari amaliyoti: bir o'zgaruvchi (sns.histplot(kde=True) — histogram + KDE; yoki kdeplot — silliq); guruh (sns.kdeplot(hue=) — ustma-ust silliq; violinplot(x=, y=) — yonma-yon box + shakl); foiz (sns.ecdfplot — persentil o'qish); modallik (KDE/violin — bir/ikki cho'qqi; ikki guruh ajrat). Tuzoqlar: KDE kichik namuna (aldash — silliqlik soxta), KDE chegara (0'dan past — manfiy narx; clip=), violin kichik namuna (shakl ishonchsiz), bimodal o'rtacha (ikki guruh — o'rtacha ma'nosiz). Amaliyot — KDE, violin, ECDF, modallik. Silliq. Guruh.
2.7. Taqsimot tuzoqlari
Taqsimot grafiklari asosiy tuzoqlari: KDE kichik namuna (KDE — silliq, lekin kichik namuna (n<30) — silliqlik soxta (aslida kam ma'lumot; egri aldaydi); katta namuna yoki histogram); KDE chegara (KDE egri chegaradan chiqadi (masalan, narx — 0'dan past; yosh — manfiy); clip=(0, None) yoki cut=0 — chegara; aks holda noto'g'ri (manfiy zichlik)); bw (silliqlik) (bw_adjust — katta (juda silliq — tafsilot yo'qoladi), kichik (juda tafsilot — shovqin); standart odatda yaxshi); violin kichik namuna (violin — KDE'ga tayanadi; kichik namuna — shakl ishonchsiz; box plot afzal); bimodal o'rtacha (ikki cho'qqi — ikki guruh aralash; o'rtacha/median ma'nosiz (ikki guruh orasida); ajrat — KDE/violin ko'rsatadi); ECDF talqin (ECDF — jami foiz (zichlik emas); o'qish boshqacha — y=foiz, x=qiymat); histogram vs KDE (histogram — haqiqiy hisob (bin); KDE — model (silliqlash — faraz); KDE chiroyli, lekin histogram xom; ikkalasi); rang ustma-ust (KDE hue — ko'p guruh (5+) — egrilar chalkash; kam guruh). Sabab: KDE/violin model (silliqlash — faraz; namuna/chegara/silliqlik nozik). Yechim: katta namuna, chegara clip, bimodal ajrat, histogram bilan tekshir. Tuzoqlar — kichik namuna, chegara, bimodal, model.
2.8. Taqsimot grafiklari — silliq va boy taqsimot
Taqsimot grafiklari asosiy g'oyasi — silliq va boy taqsimot: histogram (5.5 — bin, pog'ona, guruh chalkash) o'rniga silliqroq/boyroq (KDE — silliq; violin — box + shakl). KDE (kdeplot — silliq zichlik egri, bin'siz; histogram silliq varianti), violin plot (violinplot — box 5.6-bob + KDE; median + IQR + shakl), ECDF (ecdfplot — jami foiz; persentil o'qish), guruh (hue= — ustma-ust KDE, yonma-yon violin; histogramdan yaxshi taqqoslash), modallik (bir/ikki cho'qqi — bir/ikki guruh; KDE/violin ochadi, box yashiradi). Foydalanish: silliq taqsimot (KDE — shakl aniq, bin'siz), guruh taqqoslash (violin — median + shakl bir grafikda), taqsimot shakli (modallik — ikki guruh ajrat). Tuzoqlar: KDE kichik namuna (silliqlik soxta), chegara (clip), violin kichik (ishonchsiz), bimodal o'rtacha (ma'nosiz — ajrat), KDE model (histogram haqiqiy). Bu 5.5 (histogram), 5.6 (box plot) ustida va 5.7 (Seaborn), 4.4 (persentil), 4.6 (normal) bilan. Taqsimot grafiklari — silliq (KDE) va boy (violin) taqsimot. Silliq. Boy. Shakl.
3. Tez ma'lumotnoma
import seaborn as sns
# KDE (silliq zichlik egrisi — bin'siz):
sns.kdeplot(data) # silliq egri
sns.histplot(data, kde=True) # histogram + KDE
# VIOLIN (box + KDE — median + tarqoqlik + shakl):
sns.violinplot(data=df, x="shahar", y="maosh") # yonma-yon
# median chiziq + quti (IQR) + silliq shakl (KDE)
# ECDF (jami foiz — persentil o'qish):
sns.ecdfplot(data) # y=foiz (0..1), x=qiymat; median=0.5
# GURUH taqqoslash (hue):
sns.kdeplot(data=df, x="maosh", hue="shahar") # ustma-ust silliq
sns.violinplot(data=df, x="shahar", y="maosh") # yonma-yon
# MODALLIK (shakl):
# bir cho'qqi — bir guruh (o'rtacha ma'noli)
# ikki cho'qqi — IKKI GURUH aralash (o'rtacha ma'nosiz — ajrat!)
QOIDA: KDE katta namuna · chegara clip · violin kichik ishonchsiz · bimodal ajratTaqsimot grafiklari xulosasi
KDE — silliq zichlik egrisi (bin'siz; histogram silliq varianti)
Violin — box + KDE (median + IQR + shakl; box'dan boy)
ECDF — jami foiz (persentil o'qish)
Guruh — hue (KDE ustma-ust, violin yonma-yon)
Modallik — bir/ikki cho'qqi (KDE ochadi, box yashiradi)4. Batafsil misollar
Misollar real seaborn/scipy bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.
Misol 1 — KDE (silliq egri)
"""KDE silliq zichlik egrisi (real seaborn/numpy)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
def main() -> None:
np.random.seed(0)
ball = np.random.normal(70, 10, 1000)
print("=== 1. KDE (silliq egri) ===")
fig, ax = plt.subplots()
sns.kdeplot(ball, ax=ax)
print(f" egri chizig'i: {len(ax.lines)}")
print("\n=== 2. Zichlik (egri ostidagi yuza=1) ===")
x = ax.lines[0].get_xdata()
y = ax.lines[0].get_ydata()
yuza = np.trapezoid(y, x)
print(f" egri ostidagi yuza: {yuza.round(2)} (~1.0)")
print("\n=== 3. Cho'qqi (mode atrofida) ===")
choqqi_x = x[np.argmax(y)]
print(f" cho'qqi x: {choqqi_x.round(0)} (~70 — o'rtacha)")
print("\n=== 4. histogram + KDE ===")
fig2, ax2 = plt.subplots()
sns.histplot(ball, kde=True, ax=ax2)
print(f" KDE chizig'i bor: {len(ax2.lines) > 0}")
plt.close("all")
print(" ⭐ KDE — silliq zichlik egrisi (bin'siz)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. KDE (silliq egri) ===
egri chizig'i: 1
=== 2. Zichlik (egri ostidagi yuza=1) ===
egri ostidagi yuza: 1.0 (~1.0)
=== 3. Cho'qqi (mode atrofida) ===
cho'qqi x: 69.0 (~70 — o'rtacha)
=== 4. histogram + KDE ===
KDE chizig'i bor: True
⭐ KDE — silliq zichlik egrisi (bin'siz)Nima ko'rsatdi: 2.1-bo'lim.
Misol 2 — Violin plot (guruh)
"""Violin plot: box + KDE (real seaborn/pandas)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
def main() -> None:
np.random.seed(0)
df = pd.DataFrame({
"shahar": ["T"] * 100 + ["S"] * 100 + ["B"] * 100,
"maosh": np.concatenate([
np.random.normal(500, 80, 100),
np.random.normal(400, 60, 100),
np.random.normal(600, 100, 100),
]),
})
print("=== 1. Violin plot (yonma-yon) ===")
fig, ax = plt.subplots()
sns.violinplot(data=df, x="shahar", y="maosh", ax=ax)
print(f" violinlar (guruh): {len(ax.collections) >= 3}")
print("\n=== 2. Guruh medianlari ===")
medianlar = df.groupby("shahar")["maosh"].median().round(0)
print(f" {medianlar.to_dict()}")
print("\n=== 3. Box + shakl ===")
print(" violin — median + IQR + silliq shakl (KDE)")
print("\n=== 4. Box'dan boy ===")
print(" box: median/IQR; violin: + shakl (cho'qqi)")
plt.close("all")
print(" ⭐ Violin — box + KDE (median + shakl)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Violin plot (yonma-yon) ===
violinlar (guruh): True
=== 2. Guruh medianlari ===
{'B': 592.0, 'S': 401.0, 'T': 508.0}
=== 3. Box + shakl ===
violin — median + IQR + silliq shakl (KDE)
=== 4. Box'dan boy ===
box: median/IQR; violin: + shakl (cho'qqi)
⭐ Violin — box + KDE (median + shakl)Nima ko'rsatdi: 2.2-bo'lim.
Misol 3 — Bimodal (ikki cho'qqi)
"""Bimodal taqsimot: ikki cho'qqi (real numpy/scipy)."""
import numpy as np
from scipy import stats
def main() -> None:
np.random.seed(0)
# ikki guruh aralash: erkak (175) + ayol (162) bo'y
erkak = np.random.normal(175, 6, 500)
ayol = np.random.normal(162, 6, 500)
boy = np.concatenate([erkak, ayol])
print("=== 1. Aralash taqsimot ===")
print(f" jami: {len(boy)} kishi (2 guruh)")
print("\n=== 2. O'rtacha (aldamchi) ===")
print(f" o'rtacha bo'y: {boy.mean().round(1)} (~168 — hech kim!)")
print("\n=== 3. Ikki cho'qqi (KDE topadi) ===")
kde = stats.gaussian_kde(boy)
x = np.linspace(150, 190, 200)
y = kde(x)
# lokal maksimumlar (cho'qqilar)
choqqilar = [round(x[i]) for i in range(1, len(y) - 1)
if y[i] > y[i - 1] and y[i] > y[i + 1]]
print(f" cho'qqilar: {choqqilar} (2 guruh — 162, 175)")
print("\n=== 4. Xulosa ===")
print(" bimodal — ikki guruh (o'rtacha ma'nosiz, ajrat!)")
print(" ⭐ Bimodal — KDE ikki cho'qqi (box yashiradi)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Aralash taqsimot ===
jami: 1000 kishi (2 guruh)
=== 2. O'rtacha (aldamchi) ===
o'rtacha bo'y: 168.2 (~168 — hech kim!)
=== 3. Ikki cho'qqi (KDE topadi) ===
cho'qqilar: [163, 171] (2 guruh — 162, 175)
=== 4. Xulosa ===
bimodal — ikki guruh (o'rtacha ma'nosiz, ajrat!)
⭐ Bimodal — KDE ikki cho'qqi (box yashiradi)Nima ko'rsatdi: 2.5-bo'lim.
Misol 4 — ECDF (persentil)
"""ECDF: jami foiz (real seaborn/numpy)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
def main() -> None:
np.random.seed(0)
ball = np.random.normal(70, 10, 1000)
print("=== 1. ECDF ===")
fig, ax = plt.subplots()
sns.ecdfplot(ball, ax=ax)
print(f" egri chizig'i: {len(ax.lines)}")
print("\n=== 2. Median (y=0.5) ===")
median = np.median(ball)
print(f" median (50%): {median.round(0)} (~70)")
print("\n=== 3. Persentil o'qish ===")
p25 = np.percentile(ball, 25)
p75 = np.percentile(ball, 75)
print(f" 25% (y=0.25): {p25.round(0)}")
print(f" 75% (y=0.75): {p75.round(0)}")
print("\n=== 4. Tushuntirish ===")
print(" ECDF: y=jami foiz, x=qiymat (persentil to'g'ridan)")
plt.close("all")
print(" ⭐ ECDF — jami foiz (persentil o'qish)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. ECDF ===
egri chizig'i: 1
=== 2. Median (y=0.5) ===
median (50%): 69.0 (~70)
=== 3. Persentil o'qish ===
25% (y=0.25): 63.0
75% (y=0.75): 76.0
=== 4. Tushuntirish ===
ECDF: y=jami foiz, x=qiymat (persentil to'g'ridan)
⭐ ECDF — jami foiz (persentil o'qish)Nima ko'rsatdi: 2.3-bo'lim.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "KDE = histogram" | Silliq (bin'siz), histogram model emas |
| "KDE doim aniq" | Kichik namuna aldash |
| "violin = box" | Box + shakl (boy) |
| "bir cho'qqi doim" | Ikki cho'qqi — ikki guruh |
| "bimodal o'rtacha OK" | Ma'nosiz (ajrat) |
| "ECDF = histogram" | Jami foiz (persentil) |
| "KDE chegara yo'q" | Chegaradan chiqadi (clip) |
| "KDE haqiqiy hisob" | Model (silliqlash — faraz) |
6. Keng tarqalgan xatolar va yechimlari
1. KDE kichik namuna
sns.kdeplot(kichik_10) # silliqlik soxta # ⚠️
sns.histplot(kichik_10) # xom (aniqroq) # ✅2. KDE chegara
sns.kdeplot(narx) # 0'dan past chiqadi (manfiy narx) # ⚠️
sns.kdeplot(narx, clip=(0, None)) # chegara # ✅3. Violin kichik namuna
sns.violinplot(data=kichik) # shakl ishonchsiz # ⚠️
sns.boxplot(data=kichik) # box (soddaroq — ishonchli) # ✅4. Bimodal o'rtacha
boy.mean() # 168 (hech kim — 2 guruh orasida) # ⚠️
# KDE — 2 cho'qqi (ajrat: erkak/ayol) # ✅5. Guruh histogram (chalkash)
sns.histplot(data=df, x="x", hue="g") # ustunlar to'sadi # ⚠️
sns.kdeplot(data=df, x="x", hue="g") # silliq (aniq) # ✅6. KDE model (haqiqiy deb)
# KDE silliq → "haqiqiy taqsimot" (model) # ⚠️
# histogram bilan tekshir (KDE — silliqlash faraz) # ✅7. bw noto'g'ri
sns.kdeplot(data, bw_adjust=5) # juda silliq (tafsilot yo'q) # ⚠️
sns.kdeplot(data) # standart (odatda yaxshi) # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 5.5-dars (o'tilgan): Histogram (taqsimot)
- 5.6-dars (o'tilgan): Box plot (median/IQR)
- 5.7-dars (o'tilgan): Seaborn
- 4.6-dars (o'tilgan): Normal taqsimot
- 9-qism (reja): EDA (taqsimot tekshirish)
8. Eng yaxshi amaliyotlar
KDE — silliq taqsimot (katta namuna).
Violin — guruh (median + shakl).
ECDF — persentil o'qish.
Guruh — KDE ustma-ust (hue).
Modallik — bir/ikki cho'qqi (guruh).
Bimodal — ajrat (o'rtacha ma'nosiz).
KDE chegara —
clip(narx/yosh).KDE — model (histogram bilan tekshir).
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # KDE nima?
2. # KDE bin'simi?
3. # violin nima?
4. # violin vs box?
5. # ECDF nima?
6. # hue nima?
7. # bir cho'qqi?
8. # ikki cho'qqi?
9. # bimodal o'rtacha?
10. # KDE kichik namuna?
11. # KDE chegara?
12. # nega taqsimot grafiklari?Javoblar
- Silliq zichlik egrisi
- Bin'siz (silliq)
- Box + KDE (median + shakl)
- Box + shakl (boy)
- Jami foiz (persentil)
- Guruh (ustma-ust/yonma-yon)
- Bir guruh (o'rtacha ma'noli)
- Ikki guruh (aralash)
- Ma'nosiz (ajrat)
- Silliqlik soxta (histogram)
- Chegaradan chiqadi (clip)
- Silliq va boy taqsimot
Vazifa 2: Xatolarni tuzating
1. sns.kdeplot(kichik_10)
2. sns.kdeplot(narx) # 0'dan past
3. sns.violinplot(data=kichik)
4. boy.mean() # bimodal
5. sns.histplot(data=df, x="x", hue="g") # chalkashJavoblar
1. sns.histplot(kichik_10) (xom)
2. clip=(0, None)
3. sns.boxplot(data=kichik)
4. KDE — 2 cho'qqi (ajrat)
5. sns.kdeplot(...) (silliq)Vazifa 3: KDE
Modellang:
- Silliq egri
- Bin'siz
- Zichlik
- Cho'qqi
Vazifa 4: Violin
Modellang:
- Box + KDE
- Median
- Shakl
- Guruh
Vazifa 5: Modallik
Modellang:
- Bir cho'qqi
- Ikki cho'qqi
- Ikki guruh
- Ajrat
Vazifa 6: Integratsiya
Modellang:
- Histogram (5.5)
- Box plot (5.6)
- Seaborn
- EDA
Vazifa 7: O'ylash
Violin plot box plot va KDE'ni birlashtiradi — median, tarqoqlik va shaklni bir grafikda ko'rsatadi. Ayniqsa bimodal (ikki cho'qqi) taqsimotni ochib beradi — buni box plot va o'rtacha yashiradi. Nima uchun "o'rtacha bir son taqsimotni yashiradi" muammosi Data Science'da xavfli, va nima uchun taqsimotni ko'rish (bir son emas) tanqidiy muhim?
Javob
Qisqa javob: Violin box + KDE (median + tarqoqlik + shakl — bir grafikda; bimodal ochadi); "o'rtacha bir son taqsimotni yashiradi" xavfli, taqsimotni ko'rish tanqidiy muhim, chunki: (1) bir son yo'qotadi — o'rtacha (yoki median) — bir son (taqsimot shakli yo'qoladi — tarqoqlik, cho'qqi, outlier, egrilik); "168 sm o'rtacha bo'y" (bimodal — erkak 175 + ayol 162; hech kim 168 emas!; ikki guruh orasida); (2) bimodal xavfi — ikki cho'qqi (ikki guruh aralash) — o'rtacha ma'nosiz (guruhlar orasida); box plot yashiradi (median — cho'qqilar orasida), KDE/violin ochadi (ikki cho'qqi); (3) Anscombe/Datasaurus — turli taqsimot bir xil statistika (o'rtacha, std — bir; shakl butunlay boshqa; 5.4 Anscombe; faqat son — aldash); (4) qaror — o'rtacha asosida qaror (mahsulot "o'rtacha mijoz uchun" — bimodal — ikki segment; hech biriga to'g'ri kelmaydi). "Nega xavfli": (a) soxta umumlashtirish — bir son hammani ifodalaydi deb faraz (taqsimot keng/bimodal — bir son yolg'on); (b) guruh yashirin — bimodal (ikki guruh — jins, hudud) — o'rtacha bitta (guruhni yashiradi; ajratish kerak); (c) outlier — o'rtacha outlierdan ta'sirlanadi (median yaxshiroq — 4.2; lekin median ham shaklni yashiradi); (d) qaror xatosi — o'rtachaga asoslangan qaror (bimodalda — noto'g'ri segment). "Nega taqsimot ko'rish": (1) shakl (bir/ikki cho'qqi, egrilik, tarqoqlik — bir son yo'q); (2) guruh (bimodal — ajrat; segmentatsiya); (3) outlier (chetki — box/scatter; o'rtacha yashiradi); (4) faraz tekshirish (normal — 4.6; model faraz — taqsimot ko'r); (5) Datasaurus (bir statistika — turli shakl; ko'r — ishon). "Yechim": (1) taqsimot grafiki (histogram 5.5, KDE, violin — shakl); (2) bir son + tarqoqlik (o'rtacha + std/IQR — kam; lekin shakl emas); (3) guruh ajrat (bimodal — segment; har guruh alohida); (4) ko'r, keyin hisobla (grafik birinchi — EDA 9-qism). Saboqlar: bir son taqsimotni yashiradi (shakl, guruh, outlier); bimodal xavfli (ikki guruh — o'rtacha ma'nosiz); Datasaurus (bir statistika — turli shakl); taqsimot ko'r (grafik — shakl, guruh, faraz). To'g'ri: taqsimot ko'r (histogram/KDE/violin — shakl, cho'qqi, outlier); bir son yetmaydi (o'rtacha — yashiradi); bimodal ajrat (ikki guruh); EDA (grafik birinchi). Muvozanat: bir son (qisqa — hisobot) + taqsimot (shakl — haqiqat; grafik). Bu Data Science tanqidiy fikr asosiy (bir son aldaydi — taqsimot ko'r; bimodal ajrat; Datasaurus — ko'r ishon; EDA). Violin/KDE — taqsimot ko'rish (bir son yashirganni ochadi).
1. Nega bir son xavfli
- Shakl yo'qoladi (tarqoqlik, cho'qqi, outlier)
- Bimodal (ikki guruh — o'rtacha ma'nosiz)
- Datasaurus (bir statistika — turli shakl)
- Qaror xatosi (o'rtacha asosida — noto'g'ri segment)
2. Nega taqsimot ko'rish
- Shakl (bir/ikki cho'qqi, egrilik)
- Guruh (bimodal — ajrat)
- Outlier (chetki — o'rtacha yashiradi)
- Faraz (normal — model; taqsimot ko'r)
3. Bir son vs taqsimot
| Bir son (o'rtacha) | Taqsimot (grafik) |
|---|---|
| Qisqa (hisobot) | Shakl (haqiqat) |
| Yashiradi (guruh) | Ochadi (bimodal) |
| Aldash (Datasaurus) | Ko'r (ishon) |
4. Saboqlar
- Bir son yashiradi (shakl, guruh, outlier)
- Bimodal xavfli (ikki guruh — ajrat)
- Datasaurus (bir statistika — turli shakl)
- Taqsimot ko'r (grafik birinchi — EDA)
5. Xulosa
- O'rtacha (bir son) taqsimotni yashiradi (shakl, guruh)
- Bimodal xavfli (ikki guruh — o'rtacha ma'nosiz)
- Violin/KDE ochadi (ikki cho'qqi — box yashiradi)
- Taqsimot ko'r (grafik — shakl, guruh, faraz; EDA)
Nimani mustahkamlaydi: 2.2, 2.5-bo'limlar.
Xulosa
Bu darsda taqsimot grafiklarini o'rgandik.
Eng muhim uch fikr:
KDE va violin. KDE (
sns.kdeplot— silliq zichlik egri, bin'siz; histogram 5.5-bob silliq varianti;histplot(kde=True)— birga; egri osti yuza=1). Violin plot (sns.violinplot— box 5.6-bob + KDE; median chiziq + quti IQR + silliq shakl; box plotdan boyroq — shakl ko'rsatadi;x=/y=/hue=guruh — yonma-yon).ECDF va guruh. ECDF (
sns.ecdfplot— jami foiz; y=foiz 0..1, x=qiymat; median y=0.5, persentil o'qish — 4.4; bin'siz). Guruh taqqoslash (hue=— KDE ustma-ust silliq (histogramdan aniq), violin yonma-yon; guruh bir grafikda).Modallik va shakl. Modallik — cho'qqi soni: bir cho'qqi (bir guruh — o'rtacha ma'noli), ikki cho'qqi (bimodal — ikki guruh aralash; o'rtacha ma'nosiz — ajrat; box yashiradi, KDE/violin ochadi). Taqsimot grafiklari — silliq (KDE) va boy (violin) taqsimot (shakl, guruh — bir son yashirganni ochadi). Tuzoqlar: KDE kichik namuna (silliqlik soxta — histogram), chegara (
clip— narx/yosh), violin kichik (ishonchsiz — box), bimodal o'rtacha (ma'nosiz — ajrat), KDE model (histogram — haqiqiy).
Keyingi darsda ko'p grafik (subplots)ni o'rganamiz: bir figurada bir necha grafik — yonma-yon taqqoslash (plt.subplots(2, 2) — 4 panel; 5.1 figure/axes).
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!