Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Son ustun (taqsimot, markaz, tarqoqlik)
- 2.2. Kategoriya ustun (value_counts, bar)
- 2.3. Taqsimot shakli (normal/cho'zilgan)
- 2.4. Outlier va muammo
- 2.5. Muvozanat (kategoriya)
- 2.6. Univariate amaliyoti
- 2.7. Univariate tuzoqlari
- 2.8. Bir o'zgaruvchi tahlil — har ustun haqida hikoya
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Son ustun (taqsimot, markaz)
- Misol 2 — Kategoriya ustun (value_counts)
- Misol 3 — Muvozanat (nomuvozanat)
- Misol 4 — Muammo topish (NaN, kategoriya son)
- 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
8.3-dars: Bir o'zgaruvchi tahlil (univariate)
8-QISM — EDA (RAZVEDKA TAHLILI) · 3-dars
1. Kirish va motivatsiya
EDA'ning birinchi bosqichi — har ustunni alohida o'rganish. Bu univariate (bir o'zgaruvchi) tahlil: bitta ustun haqida hamma narsani bilish. Son ustun uchun: qanday taqsimlangan (shakl), markazi qayerda (o'rtacha/median), qanchalik tarqoq (std/IQR), outlier bormi. Kategoriya ustun uchun: qaysi qiymatlar, qaysi eng ko'p (value_counts), muvozanatli mi. Bu "har ustun haqida hikoya" — ustunni chuqur tushunish, keyingi (bivariate) tahlilga asos. Bu darsda son va kategoriya ustunlarni univariate tahlil qilish: statistika (describe) + grafik (histogram, box, bar). Nega muhim? (1) Har ustun — alohida tushunish (asos); (2) Shakl — taqsimot (normal? cho'zilgan?); (3) Muammo — outlier, muvozanatsizlik. Bu dars univariate tahlilni o'rgatadi — har ustun haqida.
Bir o'zgaruvchi tahlil (univariate) — har ustun alohida: son ustun (taqsimot shakli — histogram/KDE 5.5; markaz — o'rtacha/median 4.2; tarqoqlik — std/IQR 4.3; outlier — box 5.6), kategoriya ustun (value_counts — qaysi qiymat, eng ko'p; bar grafik; muvozanat), shakl (normal/o'ngga cho'zilgan/bimodal — 5.9), describe (son statistika), hikoya (har ustun haqida). Foydalanish: har ustunni tushunish, taqsimot/muammo. Bu 4.2/4.3 (markaz/tarqoqlik), 5.5/5.6 (histogram/box), 8.4 (bivariate) bilan bog'liq. Bir o'zgaruvchi — har ustun (univariate). Univariate. Ustun.
Real vaziyat. Data Scientist uy narxi ma'lumotini EDA qilmoqchi — har ustundan boshlaydi (univariate): (1) narx (son) — histogram (o'ngga cho'zilgan — ko'p arzon, kam qimmat; median 120, o'rtacha 135 — outlier tortdi; box — bir necha outlier), (2) maydon (son) — normal taqsimot (o'rtacha 80 m2), (3) shahar (kategoriya) — value_counts (Toshkent 40%, Samarqand 30% — muvozanatli), (4) holat (kategoriya) — value_counts (yaxshi 60%, o'rtacha 30% — nomuvozanat?). Data Scientist har ustun haqida bildi (narx cho'zilgan, shahar muvozanatli), keyingi tahlilga tayyorlandi. Bir o'zgaruvchi — har ustun haqida.
Bu darsda univariate tahlilni o'rganamiz.
Bu darsda:
- Son ustun (taqsimot, markaz, tarqoqlik)
- Kategoriya ustun (value_counts, bar)
- Taqsimot shakli (normal/cho'zilgan)
- Outlier va muammo
- Muvozanat (kategoriya)
- Univariate amaliyoti
- Univariate tuzoqlari
- Amaliy: univariate tahlil
ℹ Misollar real pandas/numpy bilan (Python 3.14).
2. Nazariya — chuqur tushuntirish
2.1. Son ustun (taqsimot, markaz, tarqoqlik)
Son ustunni tahlil:
import pandas as pd
# SON USTUN — univariate:
df["narx"].describe() # markaz (mean/50%), tarqoqlik (std, min/max)
df["narx"].median() # median (outlierga chidamli — 4.2)
df["narx"].skew() # egrilik (o'ngga/chapga cho'zilgan)
# grafik: histogram (taqsimot), box (outlier)
df["narx"].hist(bins=30)
df["narx"].plot.box() Son ustun (taqsimot, markaz, tarqoqlik) — univariate: son ustuni alohida — markaz (describe mean, median 4.2 — outlierga chidamli), tarqoqlik (std, IQR — 4.3; min/max), shakl (skew egrilik 5.5; hist histogram — taqsimot), outlier (box — 5.6; IQR). Sabab: son ustun taqsimot (qanday tarqalgan — shakl; markaz qayerda; qanchalik tarqoq; outlier); "ustun haqida hikoya" (markaz + tarqoqlik + shakl + outlier). describe (markaz/tarqoqlik), median (chidamli), hist (shakl), box (outlier). Son ustun — taqsimot/markaz/tarqoqlik. Son. Taqsimot.
2.2. Kategoriya ustun (value_counts, bar)
Kategoriya ustunni tahlil:
import pandas as pd
# KATEGORIYA USTUN — univariate:
df["shahar"].value_counts() # har qiymat soni
df["shahar"].value_counts(normalize=True) # foiz (nisbat)
df["shahar"].nunique() # noyob qiymat soni
# grafik: bar (kategoriya taqsimoti)
df["shahar"].value_counts().plot.bar() Kategoriya ustun (value_counts, bar) — univariate: kategoriya ustuni alohida — value_counts() (har qiymat soni; normalize=True — foiz), nunique() (noyob qiymat soni), bar grafik (kategoriya taqsimoti — 5.3), muvozanat (guruhlar teng?). Sabab: kategoriya ustun taqsimot (qaysi qiymat, qaysi eng ko'p, muvozanatlimi); son emas — value_counts (sanoq/foiz; describe emas). value_counts (sanoq), normalize (foiz), nunique (noyob), bar (grafik). Kategoriya ustun — value_counts/bar (sanoq). Kategoriya. value_counts.
2.3. Taqsimot shakli (normal/cho'zilgan)
Taqsimot shakli (normal/cho'zilgan) — muhim: son ustun shakli — normal (simmetrik qo'ng'iroq — 4.6; o'rtacha=median), o'ngga cho'zilgan (right-skewed — quyruq o'ngda; daromad, narx — ko'p arzon, kam qimmat; o'rtacha > median; 5.5), chapga cho'zilgan (left-skewed — quyruq chapda), bimodal (ikki cho'qqi — ikki guruh; 5.9), bir tekis (uniform). Sabab: shakl — tahlil/model uchun muhim (normal — o'rtacha ma'noli; cho'zilgan — median; log 6.5; bimodal — ikki guruh ajrat); skew (egrilik — musbat o'ngga, manfiy chapga). Normal (simmetrik), cho'zilgan (skew — median), bimodal (ikki guruh). Taqsimot shakli — normal/cho'zilgan (skew). Shakl. Skew.
2.4. Outlier va muammo
Outlier va muammo (univariate) — topish: univariate — muammolar topiladi: outlier (box/IQR — 5.6/6.3; chetki qiymat — xato yoki haqiqiy), NaN (isna — 6.1; yetishmayotgan), noto'g'ri (imkonsiz — yosh 250; 6.10), g'alati taqsimot (barcha bir xil — o'zgarmas; yoki bimodal — ikki guruh). Sabab: univariate — muammoni ko'rsatadi (har ustun — outlier/NaN/xato; tozalash 6-qism yoki e'tibor); EDA'da muammo topish (modeldan oldin). Outlier (box/IQR), NaN (isna), noto'g'ri (domen), g'alati (o'zgarmas/bimodal). Outlier va muammo — topish (univariate). Outlier. Muammo.
2.5. Muvozanat (kategoriya)
Muvozanat (kategoriya) — guruhlar teng?: kategoriya ustun muvozanat — guruhlar tengmi (value_counts — Toshkent 40%, Samarqand 30% — muvozanatli; yoki 95% A, 5% B — nomuvozanat); nomuvozanat (imbalance) — muammo (model — kam guruh o'rganmaydi; klassifikatsiya 16-qism — nomuvozanatli sinf). Sabab: muvozanat — model/tahlil uchun (nomuvozanat — kam guruh e'tiborsiz; masalan firibgarlik 1% — model "hammasi toza" deb 99% aniq, lekin foydasiz); EDA'da muvozanat ko'r (kam guruh — ehtiyot). Muvozanatli (teng), nomuvozanat (95/5 — muammo), kam guruh (model e'tiborsiz). Muvozanat — kategoriya (teng?; nomuvozanat). Muvozanat. Nomuvozanat.
2.6. Univariate amaliyoti
Univariate amaliyoti: har ustun (birma-bir — son va kategoriya); son (describe markaz/tarqoqlik; median/skew; hist shakl; box outlier); kategoriya (value_counts(normalize) sanoq/foiz; nunique; bar; muvozanat); muammo (outlier/NaN/noto'g'ri — 6-qism); shakl (normal/cho'zilgan/bimodal — 5.9); hikoya (har ustun — xulosa); keyingi (bivariate — 8.4). Tuzoqlar: grafiksiz (raqam — Anscombe), o'rtacha cho'zilganda (median), muvozanat e'tiborsiz (nomuvozanat), bimodal o'tkazish (ikki guruh), NaN e'tiborsiz (taqsimot buziladi). Amaliyot — har ustun, son, kategoriya, shakl. Univariate. Ustun.
2.7. Univariate tuzoqlari
Univariate asosiy tuzoqlari: grafiksiz (faqat describe (son) — shakl yo'q (o'ngga cho'zilgan? bimodal? — Anscombe/Datasaurus 5.4; histogram kerak)); o'rtacha cho'zilganda (o'ngga cho'zilgan (narx) — o'rtacha outlier/quyruq tortadi (o'rtacha > median; noto'g'ri markaz); median 4.2); muvozanat e'tiborsiz (kategoriya — nomuvozanat (95/5) e'tiborsiz → model kam guruh o'rganmaydi (klassifikatsiya 16-qism); value_counts ko'r); bimodal o'tkazish (ikki cho'qqi (ikki guruh — 5.9) — o'rtacha ma'nosiz (guruhlar orasida); histogram/KDE ko'r, ajrat); NaN e'tiborsiz (NaN — describe o'tkazib yuboradi (jimda; taqsimot noto'g'ri ko'rinadi); isna tekshir — 6.1); kategoriya son deb (kod 1,2,3 (kategoriya) — describe (o'rtacha 2 — ma'nosiz); value_counts — kategoriya); bin soni (histogram — bins (kam — silliq; ko'p — shovqin; 5.5); mos tanla); noyob ko'p (kategoriya — 1000 noyob (id) — value_counts foydasiz; noyob — id/matn, kategoriya emas); taqsimot faraz (normal deb faraz — tekshir (skew/hist); ko'p real — cho'zilgan). Sabab: univariate shakl/markaz/muvozanat nozik (grafiksiz, o'rtacha, muvozanat — noto'g'ri). Yechim: histogram, median (cho'zilgan), muvozanat ko'r, bimodal ajrat, NaN tekshir. Tuzoqlar — grafiksiz, o'rtacha, muvozanat, bimodal.
2.8. Bir o'zgaruvchi tahlil — har ustun haqida hikoya
Univariate asosiy g'oyasi — har ustun haqida hikoya: EDA'ning birinchi bosqichi — har ustunni alohida o'rganish (univariate — bir o'zgaruvchi; ustun haqida hamma narsa); keyingi (bivariate — 8.4) uchun asos. Son ustun (taqsimot — hist/skew shakl 5.5; markaz — describe/median 4.2; tarqoqlik — std/IQR 4.3; outlier — box 5.6), kategoriya ustun (value_counts(normalize) sanoq/foiz; nunique; bar 5.3; muvozanat), taqsimot shakli (normal/o'ngga cho'zilgan/bimodal — 5.9; skew), outlier va muammo (outlier/NaN/noto'g'ri — 6-qism topish), muvozanat (kategoriya — teng? nomuvozanat — model; 16-qism). Foydalanish: har ustunni tushunish (taqsimot, markaz, muammo), muammo topish (outlier/NaN/nomuvozanat — modeldan oldin). "Har ustun haqida hikoya" (markaz + tarqoqlik + shakl + outlier/muammo). Tuzoqlar: grafiksiz (Anscombe — histogram), o'rtacha cho'zilganda (median), muvozanat e'tiborsiz (nomuvozanat), bimodal o'tkazish (ikki guruh), NaN e'tiborsiz (isna), kategoriya son deb (value_counts). Bu 4.2/4.3 (markaz/tarqoqlik), 5.5/5.6/5.9 (histogram/box/taqsimot), 6-qism (muammo), 8.4 (bivariate) bilan. Bir o'zgaruvchi — har ustun haqida hikoya (univariate; taqsimot/markaz/muammo). Univariate. Ustun. Hikoya.
3. Tez ma'lumotnoma
import pandas as pd
# SON USTUN (univariate):
df["narx"].describe() # markaz (mean/50%), tarqoqlik (std/min/max)
df["narx"].median() # median (outlierga chidamli — 4.2)
df["narx"].skew() # egrilik (>0 o'ngga, <0 chapga cho'zilgan)
df["narx"].hist(bins=30) # taqsimot shakli (5.5)
df["narx"].plot.box() # outlier (5.6)
# KATEGORIYA USTUN (univariate):
df["shahar"].value_counts() # har qiymat soni
df["shahar"].value_counts(normalize=True) # foiz (muvozanat)
df["shahar"].nunique() # noyob soni
df["shahar"].value_counts().plot.bar() # bar (5.3)
# MUAMMO (univariate topadi):
df["x"].isna().sum() # NaN (6.1)
# outlier (box/IQR — 6.3) · noto'g'ri (domen — 6.10)
# SHAKL: normal · o'ngga cho'zilgan (median) · bimodal (ikki guruh)
QOIDA: histogram (Anscombe) · skewda median · muvozanat · NaN tekshirUnivariate xulosasi
Bir o'zgaruvchi tahlil — har ustun haqida hikoya (univariate)
Son ustun — taqsimot (hist/skew), markaz (median), tarqoqlik, outlier (box)
Kategoriya ustun — value_counts (sanoq/foiz), bar, muvozanat
Taqsimot shakli — normal / o'ngga cho'zilgan / bimodal (5.9)
Muammo — outlier/NaN/noto'g'ri (topish — modeldan oldin)4. Batafsil misollar
Misollar real pandas/numpy bilan (Python 3.14).
Misol 1 — Son ustun (taqsimot, markaz)
"""Son ustun univariate (real pandas/numpy)."""
import numpy as np
import pandas as pd
def main() -> None:
np.random.seed(0)
# o'ngga cho'zilgan (narx — ko'p arzon, kam qimmat)
narx = np.concatenate([np.random.normal(100, 20, 900),
np.random.normal(300, 50, 100)])
s = pd.Series(narx)
print("=== 1. describe (markaz/tarqoqlik) ===")
print(f" o'rtacha: {s.mean().round(1)}, median: {s.median().round(1)}")
print(f" std: {s.std().round(1)}, min-max: {s.min().round(0)}-{s.max().round(0)}")
print("\n=== 2. O'rtacha vs median (cho'zilgan) ===")
print(f" mean ({s.mean().round(0)}) > median ({s.median().round(0)})")
print(" → o'ngga cho'zilgan (outlier tortdi)")
print("\n=== 3. skew (egrilik) ===")
print(f" skew: {s.skew().round(2)} (>0 — o'ngga cho'zilgan)")
print("\n=== 4. Hikoya ===")
print(" narx o'ngga cho'zilgan (median afzal); yuqori quyruq")
print(" ⭐ Son ustun — taqsimot, markaz")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. describe (markaz/tarqoqlik) ===
o'rtacha: 119.6, median: 101.0
std: 67.3, min-max: 39.0-438.0
=== 2. O'rtacha vs median (cho'zilgan) ===
mean 120.0-bob > median 101.0-bob
→ o'ngga cho'zilgan (outlier tortdi)
=== 3. skew (egrilik) ===
skew: 2.53 (>0 — o'ngga cho'zilgan)
=== 4. Hikoya ===
narx o'ngga cho'zilgan (median afzal); yuqori quyruq
⭐ Son ustun — taqsimot, markazNima ko'rsatdi: 2.1, 2.3-bo'limlar.
Misol 2 — Kategoriya ustun (value_counts)
"""Kategoriya ustun univariate (real pandas/numpy)."""
import numpy as np
import pandas as pd
def main() -> None:
np.random.seed(0)
shahar = np.random.choice(["Toshkent", "Samarqand", "Buxoro", "Xiva"],
1000, p=[0.4, 0.3, 0.2, 0.1])
s = pd.Series(shahar)
print("=== 1. value_counts (sanoq) ===")
print(s.value_counts().to_string())
print("\n=== 2. Foiz (normalize) ===")
foiz = (s.value_counts(normalize=True) * 100).round(1)
print(foiz.to_string())
print("\n=== 3. nunique (noyob) ===")
print(f" noyob shaharlar: {s.nunique()}")
print("\n=== 4. Muvozanat ===")
print(" Toshkent 40%, Xiva 10% — nisbatan muvozanatli")
print(" ⭐ Kategoriya — value_counts (sanoq/foiz)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. value_counts (sanoq) ===
Toshkent 415
Samarqand 294
Buxoro 183
Xiva 108
=== 2. Foiz (normalize) ===
Toshkent 41.5
Samarqand 29.4
Buxoro 18.3
Xiva 10.8
=== 3. nunique (noyob) ===
noyob shaharlar: 4
=== 4. Muvozanat ===
Toshkent 40%, Xiva 10% — nisbatan muvozanatli
⭐ Kategoriya — value_counts (sanoq/foiz)Nima ko'rsatdi: 2.2-bo'lim.
Misol 3 — Muvozanat (nomuvozanat)
"""Muvozanat: nomuvozanat (real pandas/numpy)."""
import numpy as np
import pandas as pd
def main() -> None:
np.random.seed(0)
# nomuvozanat (firibgarlik — kam)
firibgarlik = np.random.choice(["toza", "firibgar"], 1000, p=[0.97, 0.03])
s = pd.Series(firibgarlik)
print("=== 1. value_counts (nomuvozanat) ===")
print(s.value_counts().to_string())
print("\n=== 2. Foiz ===")
foiz = (s.value_counts(normalize=True) * 100).round(1)
print(f" {foiz.to_dict()}")
print("\n=== 3. Muammo (nomuvozanat) ===")
print(" firibgar 3% — model 'hammasi toza' → 97% aniq (foydasiz)")
print("\n=== 4. E'tibor (16-qism) ===")
print(" nomuvozanat — kam guruhga e'tibor (klassifikatsiya)")
print(" ⭐ Muvozanat — nomuvozanat (muammo)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. value_counts (nomuvozanat) ===
toza 969
firibgar 31
=== 2. Foiz ===
{'toza': 96.9, 'firibgar': 3.1}
=== 3. Muammo (nomuvozanat) ===
firibgar 3% — model 'hammasi toza' → 97% aniq (foydasiz)
=== 4. E'tibor (16-qism) ===
nomuvozanat — kam guruhga e'tibor (klassifikatsiya)
⭐ Muvozanat — nomuvozanat (muammo)Nima ko'rsatdi: 2.5-bo'lim.
Misol 4 — Muammo topish (NaN, kategoriya son)
"""Muammo topish (real pandas/numpy)."""
import numpy as np
import pandas as pd
def main() -> None:
df = pd.DataFrame({
"narx": [100, 200, np.nan, 300, 150],
"mahalla_kod": [1, 2, 1, 3, 2], # kategoriya (kod)
})
print("=== 1. NaN (describe o'tkazadi) ===")
print(f" describe count: {int(df['narx'].describe()['count'])} (5 dan 4)")
print(f" NaN: {int(df['narx'].isna().sum())} (isna tekshir)")
print("\n=== 2. Kategoriya son deb (xato) ===")
print(f" mahalla_kod o'rtacha: {df['mahalla_kod'].mean()} (ma'nosiz!)")
print("\n=== 3. To'g'ri (value_counts) ===")
print(f" mahalla_kod sanoq: {df['mahalla_kod'].value_counts().to_dict()}")
print("\n=== 4. Muammo topildi ===")
print(" NaN (isna) + kategoriya son (value_counts)")
print(" ⭐ Univariate — muammo topish")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. NaN (describe o'tkazadi) ===
describe count: 4 (5 dan 4)
NaN: 1 (isna tekshir)
=== 2. Kategoriya son deb (xato) ===
mahalla_kod o'rtacha: 1.8 (ma'nosiz!)
=== 3. To'g'ri (value_counts) ===
mahalla_kod sanoq: {1: 2, 2: 2, 3: 1}
=== 4. Muammo topildi ===
NaN (isna) + kategoriya son (value_counts)
⭐ Univariate — muammo topishNima ko'rsatdi: 2.4, 2.7-bo'limlar.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "describe yetarli" | Grafik (histogram — shakl) |
| "o'rtacha markaz" | Cho'zilganda median |
| "kategoriya son" | value_counts (mean emas) |
| "muvozanat muhim emas" | Nomuvozanat (model) |
| "bimodal o'rtacha OK" | Ikki guruh (ajrat) |
| "NaN describe'da" | isna (o'tkazadi) |
| "univariate yetarli" | Bivariate (aloqa — 8.4) |
| "har ustun bir xil" | Har ustun hikoya |
6. Keng tarqalgan xatolar va yechimlari
1. Grafiksiz
df["narx"].describe() # shakl yo'q (Anscombe) # ⚠️
df["narx"].hist(bins=30) # taqsimot shakli # ✅2. O'rtacha cho'zilganda
df["narx"].mean() # outlier tortadi (cho'zilgan) # ⚠️
df["narx"].median() # chidamli 4.2-bob # ✅3. Kategoriya son deb
df["mahalla_kod"].mean() # kod o'rtacha (ma'nosiz) # ⚠️
df["mahalla_kod"].value_counts() # kategoriya # ✅4. Muvozanat e'tiborsiz
# nomuvozanat (95/5) e'tiborsiz (model xato) # ⚠️
df["y"].value_counts(normalize=True) # muvozanat ko'r # ✅5. Bimodal o'tkazish
df["boy"].mean() # bimodal (ikki guruh — o'rtacha ma'nosiz) # ⚠️
df["boy"].hist() # ikki cho'qqi ko'r (ajrat — 5.9) # ✅6. NaN e'tiborsiz
df["narx"].describe() # NaN o'tkazadi (taqsimot noto'g'ri) # ⚠️
df["narx"].isna().sum() # NaN tekshir 6.1-bob # ✅7. Noyob ko'p (kategoriya)
df["id"].value_counts() # 1000 noyob (foydasiz) # ⚠️
# id — kategoriya emas (noyob identifikator) # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 4.2/4.3-dars (o'tilgan): Markaz/tarqoqlik
- 5.5/5.6/5.9-dars (o'tilgan): Histogram/box/taqsimot
- 6-qism (o'tilgan): Tozalash (muammo)
- 8.4-dars: Ikki o'zgaruvchi (bivariate)
- 16-qism (reja): Klassifikatsiya (nomuvozanat)
8. Eng yaxshi amaliyotlar
Har ustun — alohida (univariate).
Son — describe + histogram (shakl).
Cho'zilgan — median (o'rtacha emas).
Kategoriya — value_counts (bar).
Muvozanat — ko'r (nomuvozanat).
Muammo — outlier/NaN/noto'g'ri.
Bimodal — ajrat (ikki guruh).
Hikoya — har ustun (xulosa).
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # univariate nima?
2. # son ustun tahlili?
3. # kategoriya ustun?
4. # value_counts?
5. # taqsimot shakli?
6. # o'ngga cho'zilgan?
7. # skew nima?
8. # muvozanat?
9. # nomuvozanat muammosi?
10. # NaN va describe?
11. # kategoriya son?
12. # nega har ustun?Javoblar
- Har ustun alohida (bir o'zgaruvchi)
- describe, median, hist, box
- value_counts, bar
- Har qiymat soni/foiz
- Normal/cho'zilgan/bimodal
- Quyruq o'ngda (mean > median)
- Egrilik (>0 o'ngga)
- Guruhlar teng?
- Kam guruh (model o'rganmaydi)
- describe o'tkazadi (isna)
- value_counts (mean emas)
- Alohida tushunish (asos)
Vazifa 2: Xatolarni tuzating
1. df["narx"].describe() # shakl
2. df["narx"].mean() # cho'zilgan
3. df["mahalla_kod"].mean()
4. # nomuvozanat e'tiborsiz
5. df["narx"].describe() # NaNJavoblar
1. df["narx"].hist() (grafik)
2. df["narx"].median()
3. value_counts() (kategoriya)
4. value_counts(normalize=True)
5. isna().sum() (NaN)Vazifa 3: Son ustun
Modellang:
- describe
- median
- Histogram
- Box (outlier)
Vazifa 4: Kategoriya ustun
Modellang:
- value_counts
- Foiz
- Bar
- Muvozanat
Vazifa 5: Shakl va muammo
Modellang:
- Normal/cho'zilgan
- Skew
- Outlier
- NaN
Vazifa 6: Integratsiya
Modellang:
- Markaz (4.2)
- Histogram (5.5)
- Tozalash (6)
- Bivariate (8.4)
Vazifa 7: O'ylash
Univariate tahlil "har ustun haqida hikoya" — lekin ustunni faqat o'rtacha bilan tavsiflash yetarli emas (o'ngga cho'zilgan taqsimotda o'rtacha aldaydi, bimodalda ma'nosiz). Nima uchun taqsimot shaklini ko'rish (bir son emas) univariate tahlilning mohiyati, va nima uchun turli ustunlar turli tavsif talab qiladi?
Javob
Qisqa javob: Univariate "har ustun hikoya", lekin faqat o'rtacha yetmaydi (cho'zilgan — aldaydi; bimodal — ma'nosiz); taqsimot shaklini ko'rish (bir son emas) univariate mohiyati; turli ustun turli tavsif, chunki: (1) bir son yashiradi — o'rtacha (bir son) — taqsimot shaklini yo'qotadi (cho'zilgan — mean quyruq tortadi; bimodal — mean guruhlar orasida; 5.9); "shakl — hikoya" (bir son emas); (2) shakl — ma'no (normal — o'rtacha ma'noli; cho'zilgan — median; bimodal — ikki guruh; shakl tavsif usulini belgilaydi); (3) turli ustun — son (taqsimot, markaz, tarqoqlik — describe/hist), kategoriya (sanoq, muvozanat — value_counts); tur tavsifni belgilaydi (son ≠ kategoriya); (4) grafik (Anscombe/Datasaurus — bir statistika, turli shakl; grafik shart — 5.4). "Nega shakl mohiyat": (a) taqsimot hikoya (shakl — ustun haqida; markaz + tarqoqlik + shakl + outlier); (b) bir son aldaydi (cho'zilgan — mean; bimodal — o'rtacha; shakl ko'rmasa — noto'g'ri); (c) usul (shakl — markaz usuli (mean/median), model (normal faraz?)); (d) muammo (shakl — outlier, bimodal, o'zgarmas — ko'rinadi). "Nega turli ustun turli tavsif": (1) tur (son — describe/hist; kategoriya — value_counts/bar; tur mos); (2) shakl (normal — mean/std; cho'zilgan — median/IQR; shakl mos); (3) ma'no (kategoriya son emas — sanoq; son — markaz); (4) savol (son — "qanday tarqalgan?"; kategoriya — "qaysi ko'p?"). "Data Scientist qanday": (1) tur (son/kategoriya — usul); (2) shakl (histogram — normal/cho'zilgan/bimodal); (3) markaz (shaklga — mean/median); (4) muammo (outlier/NaN/nomuvozanat); (5) hikoya (har ustun — to'liq tavsif). Saboqlar: bir son yashiradi (shakl — hikoya); shakl mohiyat (bir son emas — grafik); turli ustun turli tavsif (son/kategoriya; normal/cho'zilgan); tur/shakl usulni. To'g'ri: taqsimot shakli (bir son emas — mohiyat); turli ustun (tur/shakl — tavsif); grafik (Anscombe). Muvozanat: son (qisqa — mean) + shakl (to'liq — histogram; hikoya). Bu Data Science EDA asosiy (shakl — hikoya; bir son aldaydi; turli ustun turli tavsif). Univariate — har ustun hikoya (shakl mohiyat; turli ustun turli tavsif).
1. Nega shakl mohiyat
- Bir son yashiradi (mean — cho'zilgan/bimodal aldaydi)
- Taqsimot hikoya (markaz+tarqoqlik+shakl+outlier)
- Usul (shakl — markaz/model belgilaydi)
- Grafik (Anscombe — bir statistika, turli shakl)
2. Nega turli ustun turli tavsif
- Tur (son — describe; kategoriya — value_counts)
- Shakl (normal — mean; cho'zilgan — median)
- Ma'no (kategoriya son emas — sanoq)
- Savol (son "tarqalgan?"; kategoriya "ko'p?")
3. Bir son vs shakl
| Bir son (mean) | Shakl (histogram) |
|---|---|
| Yashiradi (cho'zilgan) | Ko'rsatadi (hikoya) |
| Aldaydi (bimodal) | Ikki guruh |
| Qisqa | To'liq tavsif |
4. Data Scientist qanday
- Tur (son/kategoriya — usul)
- Shakl (histogram — normal/cho'zilgan)
- Markaz (shaklga — mean/median)
- Muammo (outlier/NaN/nomuvozanat)
5. Xulosa
- Bir son yashiradi (mean — cho'zilgan/bimodal aldaydi)
- Shakl mohiyat (bir son emas — histogram; hikoya)
- Turli ustun turli tavsif (son/kategoriya; normal/cho'zilgan)
- Tur/shakl usulni belgilaydi (grafik — Anscombe)
Nimani mustahkamlaydi: 2.3, 2.7-bo'limlar.
Xulosa
Bu darsda univariate tahlilni o'rgandik.
Eng muhim uch fikr:
Son va kategoriya ustun. Son ustun — taqsimot (
hist/skewshakl — 5.5), markaz (describe/median— 4.2; cho'zilganda median), tarqoqlik (std/IQR — 4.3), outlier (box— 5.6). Kategoriya ustun —value_counts(normalize=True)(sanoq/foiz),nunique(noyob), bar 5.3-bob, muvozanat.Shakl va muammo. Taqsimot shakli — normal (simmetrik — mean=median), o'ngga cho'zilgan (quyruq o'ngda — mean>median; median afzal), bimodal (ikki cho'qqi — ikki guruh; 5.9);
skew(egrilik). Outlier va muammo — univariate topadi (outlier box/IQR — 6.3; NaNisna— 6.1; noto'g'ri — 6.10; nomuvozanat). Muvozanat — kategoriya (teng? nomuvozanat 95/5 — model kam guruh; 16-qism).Har ustun hikoya. Univariate — har ustun haqida hikoya (markaz + tarqoqlik + shakl + outlier/muammo; keyingi bivariate 8.4 uchun asos). Taqsimot shaklini ko'rish (bir son emas — mohiyat; mean aldaydi cho'zilgan/bimodalda; grafik Anscombe); turli ustun turli tavsif (son/kategoriya; tur/shakl usulni). Tuzoqlar: grafiksiz (histogram), o'rtacha cho'zilganda (median), kategoriya son deb (value_counts), muvozanat e'tiborsiz (nomuvozanat), bimodal o'tkazish (ajrat), NaN e'tiborsiz (isna), noyob ko'p (id — kategoriya emas).
Keyingi darsda ikki o'zgaruvchi tahlil (bivariate)ni o'rganamiz: ikki ustun orasidagi aloqa — son-son (scatter — 5.4), kategoriya-son (guruh box — 5.6), kategoriya-kategoriya (crosstab); "ustunlar qanday bog'liq".
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!