Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Tahlil quvuri (pipeline)
- 2.2. Savol — tahlil boshi
- 2.3. Yuklash va tozalash
- 2.4. Kashf (EDA)
- 2.5. Vizualizatsiya
- 2.6. Statistik tekshirish
- 2.7. Xulosa va tavsiya
- 2.8. Ma'lumot tahlili — qaror asosi
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Yuklash, tozalash, kashf
- Misol 2 — Guruhlash va vaqt tahlili
- Misol 3 — Statistik tekshirish
- Misol 4 — Amaliy: to'liq tahlil loyihasi
- 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
24.18-dars: Amaliy tahlil loyihasi
24-QISM — MA'LUMOT TAHLILI · 18-dars (yakuniy)
1. Kirish va motivatsiya
24-qism davomida ma'lumot tahlilining barcha bosqichlarini o'rgandik: NumPy (24.1–24.4), pandas (24.5–24.12), vizualizatsiya (24.13–24.15), statistika (24.16–24.17). Endi ularni birlashtirib, real ma'lumotni to'liq tahlil qilamiz — savoldan xulosaga. Bu — 24-qismning yakuni, barcha bilimni bir loyihada qo'llash.
Ma'lumot tahlili loyihasi — to'liq quvur (pipeline): 1) savol (nima bilmoqchimiz?), 2) yuklash (o'qish — 24.6), 3) tozalash (24.8 — bo'sh, xato), 4) kashf (describe, guruhlash — 24.9), 5) vizualizatsiya (24.13 — trend, taqqoslash), 6) statistika (24.16–24.17 — test, korrelyatsiya), 7) xulosa (javob + tavsiya). Har bosqich oldingi darslarga tayanadi. "Ma'lumotdan qaror" — tahlilchining asosiy ishi.
Real vaziyat. Bir do'kon savol berdi: "qaysi hudud daromadliroq va yangi mahsulotni kiritsakmi?". Xom sotuv ma'lumoti bor edi. To'liq tahlil: yuklash → tozalash (bo'sh narxlar) → guruhlash (hudud daromadi) → grafik (trend) → t-test (hudud farqi muhimmi) → xulosa (Toshkent daromadliroq, lekin farq statistik muhim emas — ko'proq ma'lumot kerak). Ma'lumot tahlili biznes qarori uchun ishonchli asos berdi.
Bu darsda — 24-qism yakuni — to'liq ma'lumot tahlili loyihasini bajaramiz.
Bu darsda:
- Tahlil quvuri (pipeline)
- Savol → ma'lumot → xulosa
- Yuklash va tozalash
- Kashf (EDA)
- Guruhlash va tahlil
- Statistik tekshirish
- Xulosa va tavsiya
- 24-qism yakuni
ℹ Misollarda NumPy, pandas, scipy bilan sinaladi.
2. Nazariya — chuqur tushuntirish
2.1. Tahlil quvuri (pipeline)
Ma'lumot tahlili bosqichlari:
1. Savol — nima bilmoqchimiz?
2. Yuklash — ma'lumotni o'qi (24.6)
3. Tozalash — bo'sh, xato, takror (24.8)
4. Kashf (EDA) — describe, guruhlash (24.9)
5. Vizualizatsiya — grafik (24.13-15)
6. Statistika — test, korrelyatsiya (24.16-17)
7. Xulosa — javob + tavsiyaTahlil quvuri (pipeline) — ma'lumotdan xulosaga tartibli yo'l: savol → yuklash → tozalash → kashf → vizualizatsiya → statistika → xulosa. Har bosqich oldingiga tayanadi (iflos ma'lumot — noto'g'ri xulosa). Bu tartib tahlilni ishonchli va takrorlanadigan qiladi. Ba'zan bosqichlar takrorlanadi (kashf → yana tozalash). Tahlilning umumiy tuzilishi.
2.2. Savol — tahlil boshi
Yaxshi savol — yaxshi tahlil:
Yomon: "ma'lumotni tahlil qil" (aniq emas)
Yaxshi: "qaysi hudud daromadliroq?" (aniq, o'lchab bo'ladigan)
Yaxshi: "narx va sotuv bog'liqmi?"Savol — tahlilning boshi va yo'nalishi: aniq, o'lchab bo'ladigan (qaysi hudud? narx sotuvga ta'sir qiladimi?). Noaniq savol ("ma'lumotni ko'r") — yo'nalishsiz tahlil. Aniq savol qaysi ma'lumot, qaysi usul (guruhlash? test?) kerakligini belgilaydi. "To'g'ri savol — yarim javob" — tahlil savoldan boshlanadi, ma'lumotdan emas.
2.3. Yuklash va tozalash
Ma'lumotni tayyorlash:
df = pd.read_csv("sotuv.csv", parse_dates=["sana"]) # yukla
df.isna().sum() # bo'shni tekshir
df["narx"] = df["narx"].fillna(df["narx"].median()) # tozala
df = df.drop_duplicates() # takror Yuklash (24.6 — read_csv, parse_dates) va tozalash (24.8 — isna, fillna, drop_duplicates) — tahlilning 80% 24.6-bob. Ma'lumotni o'qi, tekshir (head, dtypes, isna), tozala (bo'sh, xato, takror). Toza ma'lumotsiz keyingi bosqichlar noto'g'ri ("garbage in, garbage out"). Bu — ishonchli tahlilning poydevori.
2.4. Kashf (EDA)
Ma'lumotni tanish:
df.describe() # statistik xulosa (24.16)
df.shape # o'lcham
df["hudud"].value_counts() # kategoriya
df.groupby("hudud")["daromad"].sum() # guruhlash (24.9) Kashf (EDA — Exploratory Data Analysis) — ma'lumotni tanish va naqshlarni topish: describe() (statistika, 24.16), value_counts (kategoriya), groupby (24.9 — toifa bo'yicha), korrelyatsiya 24.16-bob. Maqsad: ma'lumotda nima bor, qanday taqsimlangan, qanday bog'lanishlar. Bu bosqichda savolga yaqinlashamiz (qaysi hudud katta?). Kashf — tahlilning yuragi.
2.5. Vizualizatsiya
Naqshlarni ko'rsatish:
df.groupby("hudud")["daromad"].sum().plot(kind="bar") # taqqoslash
df.resample("ME")["daromad"].sum().plot(kind="line") # trend
sns.heatmap(df.corr(numeric_only=True), annot=True) # korrelyatsiyaVizualizatsiya (24.13–24.15) — naqshlarni ko'z bilan: taqqoslash (bar — hududlar), trend (line — vaqt, 24.11), korrelyatsiya (heatmap — 24.14), taqsimot (hist). Grafik sonlardan tez tushuniladi va xulosani ko'rsatadi. To'g'ri grafik turi 24.13-bob — savolga mos. Vizualizatsiya — kashf va yetkazishning kuchli qismi.
2.6. Statistik tekshirish
Xulosani tasdiqlash:
t, p = stats.ttest_ind(hudud_a, hudud_b) # farq muhimmi (24.17)
r, pr = stats.pearsonr(narx, sotuv) # korrelyatsiya muhim (24.17)Statistik tekshirish (24.16–24.17) — kuzatilgan naqshni tasdiqlash: guruhlar farqi haqiqiymi (t-test), korrelyatsiya muhimmi (pearsonr). "Toshkent daromadliroq ko'rinadi" — lekin farq statistik muhimmi yoki tasodifmi? Bu bosqich xulosani ishonchli qiladi (soxta xulosadan saqlaydi). Statistika — tahlilning ilmiy asosi.
2.7. Xulosa va tavsiya
Javob va harakat:
Xulosa: Toshkent daromadi yuqori (18650 vs 13800)
Statistik: lekin farq muhim emas (p=0.22 > 0.05)
Tavsiya: ko'proq ma'lumot yig'ish, keyin qarorXulosa — savolga javob (ma'lumot asosida) va tavsiya (harakat): natija (Toshkent daromadliroq), ishonchlilik (statistik muhimmi), tavsiya (nima qilish). Halol xulosa: ma'lumot nimani ko'rsatadi va nimani ko'rsatmaydi (cheklovlar — kam ma'lumot, korrelyatsiya ≠ sababiy). Bu tahlilning maqsadi — ma'lumot bilan ishonchli qaror. Tahlil xulosa bilan tugaydi.
2.8. Ma'lumot tahlili — qaror asosi
Ma'lumot tahlilining maqsadi — ma'lumot bilan qaror (data-driven decision): his-tuyg'u yoki taxmin emas, ma'lumot asosida. Lekin halol bo'lish: ma'lumot cheklovlarini tan olish (kam namuna, iflos manba, korrelyatsiya ≠ sababiy), chalg'itmaslik (24.16 — to'liq rasm), statistik tasdiq 24.17-bob. "Ma'lumot yolg'on gapirmaydi, lekin uni noto'g'ri o'qish mumkin". Yaxshi tahlilchi: to'g'ri savol, toza ma'lumot, to'g'ri usul, halol xulosa. Bu 24-qismning mohiyati.
3. Tez ma'lumotnoma
import numpy as np, pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
import seaborn as sns
# 1. Yuklash 24.6-bob:
df = pd.read_csv("data.csv", parse_dates=["sana"])
# 2. Tozalash 24.8-bob:
df.isna().sum()
df["narx"] = df["narx"].fillna(df["narx"].median())
df = df.drop_duplicates()
# 3. Kashf (24.9, 24.16):
df.describe()
df.groupby("hudud")["daromad"].sum()
df.corr(numeric_only=True)
# 4. Vizualizatsiya (24.13-15):
df.groupby("hudud")["daromad"].sum().plot(kind="bar")
df.resample("ME")["daromad"].sum().plot(kind="line")
# 5. Statistika 24.17-bob:
t, p = stats.ttest_ind(guruh_a, guruh_b)
# 6. Xulosa: javob + ishonchlilik + tavsiyaLoyiha xulosasi
Pipeline: savol → yukla → tozala → kashf → vizual → statistika → xulosa
Har bosqich oldingiga tayanadi · toza ma'lumot → to'g'ri xulosa
Ma'lumot bilan qaror (halol, cheklovlar bilan)4. Batafsil misollar
Misollarda NumPy, pandas, scipy bilan sinaladi. Bu — to'liq tahlil loyihasining bosqichlari.
Misol 1 — Yuklash, tozalash, kashf
"""1-3 bosqich: yuklash (parse_dates), tozalash (fillna), kashf (describe, guruhlash)."""
import warnings
warnings.filterwarnings("ignore")
from io import StringIO
import pandas as pd
def main() -> None:
csv = (
"sana,hudud,mahsulot,narx,soni\n"
"2024-01-05,Toshkent,Python,100,50\n"
"2024-01-15,Samarqand,Go,120,30\n"
"2024-02-10,Toshkent,Python,100,60\n"
"2024-02-20,Samarqand,Rust,150,20\n"
"2024-03-01,Toshkent,Go,120,45\n"
"2024-03-15,Samarqand,Python,,25\n"
)
print("=== 1. Yuklash (parse_dates) ===")
df = pd.read_csv(StringIO(csv), parse_dates=["sana"])
print(f" shape: {df.shape}, ustunlar: {list(df.columns)}")
print("\n=== 2. Bo'shni tekshir va tozala ===")
print(f" bo'sh narx: {df['narx'].isna().sum()}")
df["narx"] = df["narx"].fillna(df["narx"].median())
print(f" tozalangach: {df['narx'].isna().sum()}")
print("\n=== 3. Daromad ustuni ===")
df["daromad"] = df["narx"] * df["soni"]
print(f" daromadlar: {df['daromad'].tolist()}")
print("\n=== 4. Kashf (describe, value_counts) ===")
print(f" o'rtacha daromad: {round(df['daromad'].mean(), 1)}")
print(f" hudud soni: {df['hudud'].value_counts().to_dict()}")
print(" ⭐ yukla → tozala → kashf (tahlil poydevori)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Yuklash (parse_dates) ===
shape: (6, 5), ustunlar: ['sana', 'hudud', 'mahsulot', 'narx', 'soni']
=== 2. Bo'shni tekshir va tozala ===
bo'sh narx: 1
tozalangach: 0
=== 3. Daromad ustuni ===
daromadlar: [5000.0, 3600.0, 6000.0, 3000.0, 5400.0, 3000.0]
=== 4. Kashf (describe, value_counts) ===
o'rtacha daromad: 4333.3
hudud soni: {'Toshkent': 3, 'Samarqand': 3}
⭐ yukla → tozala → kashf (tahlil poydevori)Nima ko'rsatdi: 2.3, 2.4-bo'limlar.
Misol 2 — Guruhlash va vaqt tahlili
"""4-5 bosqich: guruhlash (hudud/mahsulot), vaqt tahlil (resample) — naqshlarni topish."""
import warnings
warnings.filterwarnings("ignore")
from io import StringIO
import pandas as pd
def main() -> None:
csv = (
"sana,hudud,mahsulot,narx,soni\n"
"2024-01-05,Toshkent,Python,100,50\n"
"2024-01-15,Samarqand,Go,120,30\n"
"2024-02-10,Toshkent,Python,100,60\n"
"2024-02-20,Samarqand,Rust,150,20\n"
"2024-03-01,Toshkent,Go,120,45\n"
"2024-02-25,Samarqand,Go,120,35\n"
)
df = pd.read_csv(StringIO(csv), parse_dates=["sana"])
df["daromad"] = df["narx"] * df["soni"]
print("=== 1. Hudud bo'yicha daromad ===")
hudud = df.groupby("hudud")["daromad"].sum().sort_values(ascending=False)
print(f" {hudud.to_dict()}")
print("\n=== 2. Mahsulot bo'yicha o'rtacha narx ===")
print(f" {df.groupby('mahsulot')['narx'].mean().round(1).to_dict()}")
print("\n=== 3. Vaqt tahlil (oylik daromad) ===")
df_t = df.set_index("sana").sort_index()
oylik = df_t.resample("ME")["daromad"].sum()
print(f" {[(str(k.date()), int(v)) for k, v in oylik.items()]}")
print("\n=== 4. Eng yaxshi hudud ===")
print(f" eng daromadli: {hudud.index[0]} ({hudud.iloc[0]})")
print(" ⭐ guruhlash + vaqt — naqshlarni topish (kashf)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Hudud bo'yicha daromad ===
{'Toshkent': 16400, 'Samarqand': 10800}
=== 2. Mahsulot bo'yicha o'rtacha narx ===
{'Go': 120.0, 'Python': 100.0, 'Rust': 150.0}
=== 3. Vaqt tahlil (oylik daromad) ===
[('2024-01-31', 8600), ('2024-02-29', 13200), ('2024-03-31', 5400)]
=== 4. Eng yaxshi hudud ===
eng daromadli: Toshkent (16400)
⭐ guruhlash + vaqt — naqshlarni topish (kashf)Nima ko'rsatdi: 2.4, 2.5-bo'limlar.
Misol 3 — Statistik tekshirish
"""6-bosqich: statistik tekshirish — t-test (hudud farqi), korrelyatsiya (narx-soni)."""
import warnings
warnings.filterwarnings("ignore")
from io import StringIO
import pandas as pd
from scipy import stats
def main() -> None:
csv = (
"hudud,narx,soni\n"
"Toshkent,100,50\nToshkent,100,60\nToshkent,120,45\nToshkent,150,15\n"
"Samarqand,120,30\nSamarqand,150,20\nSamarqand,120,35\nSamarqand,100,25\n"
)
df = pd.read_csv(StringIO(csv))
df["daromad"] = df["narx"] * df["soni"]
print("=== 1. Hudud daromadlari ===")
tosh = df[df["hudud"] == "Toshkent"]["daromad"]
sam = df[df["hudud"] == "Samarqand"]["daromad"]
print(f" Toshkent o'rtacha: {round(tosh.mean(), 1)}")
print(f" Samarqand o'rtacha: {round(sam.mean(), 1)}")
print("\n=== 2. t-test (farq muhimmi?) ===")
t, p = stats.ttest_ind(tosh, sam)
print(f" p-qiymat: {round(p, 3)}")
print(f" farq statistik muhim: {p < 0.05}")
print("\n=== 3. Korrelyatsiya (narx-soni) ===")
r, pr = stats.pearsonr(df["narx"], df["soni"])
print(f" korrelyatsiya: {round(r, 3)}")
print(f" muhim: {pr < 0.05}")
print("\n=== 4. Talqin ===")
print(f" narx oshsa soni tushadi (manfiy korrelyatsiya)")
farq_holati = "muhim" if p < 0.05 else "ishonchsiz (koproq malumot kerak)"
print(f" hudud farqi {farq_holati}")
print(" ⭐ statistik tekshirish — xulosani tasdiqlash")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Hudud daromadlari ===
Toshkent o'rtacha: 4662.5
Samarqand o'rtacha: 3325.0
=== 2. t-test (farq muhimmi?) ===
p-qiymat: 0.191
farq statistik muhim: False
=== 3. Korrelyatsiya (narx-soni) ===
korrelyatsiya: -0.731
muhim: True
=== 4. Talqin ===
narx oshsa soni tushadi (manfiy korrelyatsiya)
hudud farqi ishonchsiz (koproq malumot kerak)
⭐ statistik tekshirish — xulosani tasdiqlashNima ko'rsatdi: 2.6-bo'lim.
Misol 4 — Amaliy: to'liq tahlil loyihasi
Real loyiha: savoldan xulosaga — barcha bosqich birga. Bu — ma'lumot tahlilining to'liq namunasi.
"""to'liq loyiha: savol → yukla → tozala → kashf → statistika → xulosa + tavsiya."""
import warnings
warnings.filterwarnings("ignore")
from io import StringIO
import pandas as pd
from scipy import stats
def main() -> None:
print("=== SAVOL: qaysi hudud daromadliroq? ===\n")
print("=== 1. Yuklash va tozalash ===")
csv = (
"sana,hudud,narx,soni\n"
"2024-01-05,Toshkent,100,50\n2024-02-10,Toshkent,100,60\n"
"2024-03-01,Toshkent,120,45\n2024-01-20,Toshkent,150,15\n"
"2024-01-15,Samarqand,120,30\n2024-02-20,Samarqand,150,20\n"
"2024-02-25,Samarqand,120,35\n2024-03-15,Samarqand,,25\n"
)
df = pd.read_csv(StringIO(csv), parse_dates=["sana"])
df["narx"] = df["narx"].fillna(df["narx"].median())
df["daromad"] = df["narx"] * df["soni"]
print(f" {len(df)} yozuv, bo'sh tozalandi")
print("\n=== 2. Kashf (hudud daromadi) ===")
hudud = df.groupby("hudud")["daromad"].sum()
print(f" {hudud.to_dict()}")
print("\n=== 3. Statistik tekshirish (t-test) ===")
tosh = df[df["hudud"] == "Toshkent"]["daromad"]
sam = df[df["hudud"] == "Samarqand"]["daromad"]
t, p = stats.ttest_ind(tosh, sam)
print(f" p-qiymat: {round(p, 3)}")
print("\n=== 4. XULOSA va tavsiya ===")
yuqori = hudud.idxmax()
muhim = p < 0.05
print(f" javob: {yuqori} daromadi yuqori ({int(hudud.max())} vs {int(hudud.min())})")
print(f" ishonchlilik: farq statistik {'muhim' if muhim else 'muhim EMAS (p>0.05)'}")
if muhim:
tavsiya = f"{yuqori}ga e'tibor qaratish"
else:
tavsiya = "ko'proq ma'lumot yig'ish (farq ishonchsiz)"
print(f" tavsiya: {tavsiya}")
print(" ⭐ to'liq tahlil — savoldan ishonchli xulosaga")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== SAVOL: qaysi hudud daromadliroq? ===
=== 1. Yuklash va tozalash ===
8 yozuv, bo'sh tozalandi
=== 2. Kashf (hudud daromadi) ===
{'Samarqand': 13800.0, 'Toshkent': 18650.0}
=== 3. Statistik tekshirish (t-test) ===
p-qiymat: 0.217
=== 4. XULOSA va tavsiya ===
javob: Toshkent daromadi yuqori (18650 vs 13800)
ishonchlilik: farq statistik muhim EMAS (p>0.05)
tavsiya: ko'proq ma'lumot yig'ish (farq ishonchsiz)
⭐ to'liq tahlil — savoldan ishonchli xulosagaNima ko'rsatdi: 2.1–2.8-bo'limlar.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "Ma'lumotdan boshla" | Savoldan boshla |
| "Tozalash — ozroq" | Tahlilning 80% |
| "Grafik chizsam bo'ldi" | Statistik tasdiq kerak |
| "Farq bor = xulosa" | Test (muhimmi?) |
| "Ma'lumot haqiqatni aytadi" | To'g'ri o'qish kerak |
| "Bir usul yetarli" | Ko'p bosqich (pipeline) |
| "Xulosa = javob" | Javob + ishonchlilik + cheklov |
| "Korrelyatsiya = sabab" | ≠ sababiy |
6. Keng tarqalgan xatolar va yechimlari
1. Savolsiz tahlil
# ma'lumotni ko'r-ko'rona tahlil # ⚠️ yo'nalishsiz
# aniq savol (qaysi hudud?) # ✅2. Tozalashni o'tkazib yuborish
df.groupby(...) # bo'sh/xato aralash # ⚠️
df.isna().sum(); tozala; keyin tahlil # ✅3. Grafik = xulosa deb o'ylash
# "grafikda farq ko'rinadi" → xulosa # ⚠️
# t-test (farq muhimmi?) # ✅4. Statistik tasdiqsiz xulosa
# "Toshkent katta" (ko'z bilan) # ⚠️
# t-test bilan tasdiqla # ✅5. Cheklovlarni aytmaslik
# "Toshkent daromadliroq" (aniq) # ⚠️
# "...lekin kam ma'lumot, farq ishonchsiz" # ✅6. Korrelyatsiyani sababiy talqin
# "narx sotuvni tushiradi" (sababiy) # ⚠️
# "narx-sotuv manfiy korrelyatsiya" (≠ sabab) # ✅7. Iflos ma'lumotga ishonish
# o'qidim, darrov tahlil # ⚠️
# tekshir (head, dtypes, isna, describe) # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 24.1–24.17 (o'tilgan): Barcha 24-qism — bu loyihada birga
- 25-qism: ML — ma'lumot tayyorlash (tahlil asosi)
- 26-qism: Avtomatlashtirish — tahlil skripti
- 28-qism: Infratuzilma — ma'lumot quvuri
- 31-qism: Loyihalar — ETL, ma'lumot tahlili
8. Eng yaxshi amaliyotlar
Savoldan boshla (ma'lumotdan emas).
Tozalashga vaqt sarfla (80%).
Kashf (EDA) — describe, guruhlash.
Grafik bilan naqshni ko'rsat.
Statistik tasdiq (test, korrelyatsiya).
Xulosa: javob + ishonchlilik + cheklov.
Halol bo'l (cheklovlarni tan ol).
Takrorlanadigan (skript, hujjatlangan).
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # tahlil quvuri nima?
2. # tahlil nimadan boshlanadi?
3. # tozalash nima uchun?
4. # EDA nima?
5. # kashf nima beradi?
6. # vizualizatsiya nima uchun?
7. # statistik tasdiq nima uchun?
8. # xulosa nima?
9. # halol xulosa nima?
10. # data-driven qaror nima?
11. # savol nega muhim?
12. # korrelyatsiya sababiymi?Javoblar
- Savol → yukla → tozala → kashf → vizual → statistika → xulosa
- Savol (ma'lumotdan emas)
- Toza ma'lumot → to'g'ri xulosa
- Exploratory Data Analysis (kashf)
- Ma'lumotni tanish, naqshlar
- Naqshni ko'rsatish (tez tushunish)
- Xulosani ishonchli qilish (tasodifmi?)
- Javob + ishonchlilik + tavsiya
- Cheklovlarni tan olish
- Ma'lumot asosida qaror
- Yo'nalish beradi (yarim javob)
- Yo'q (correlation ≠ causation)
Vazifa 2: Xatolarni tuzating
1. # ma'lumotni ko'r-ko'rona # savol
2. df.groupby(...) # tozalashsiz # avval tozala
3. # grafik → xulosa # statistik tasdiq
4. # "Toshkent katta" (aniq) # cheklov
5. # "narx sotuvni tushiradi" # ≠ sababiyJavoblar
1. # aniq savol (qaysi hudud?)
2. df.isna(); tozala; keyin groupby
3. # t-test bilan tasdiqla
4. # "...lekin kam ma'lumot, ishonchsiz"
5. # "manfiy korrelyatsiya (≠ sabab)"Vazifa 3: Yuklash/tozalash
Tayyorlash:
read_csvisnafillna- Yangi ustun
Vazifa 4: Kashf
EDA:
describevalue_countsgroupby- Korrelyatsiya
Vazifa 5: Statistika
Tasdiq:
ttest_indpearsonr- p-qiymat
- Talqin
Vazifa 6: To'liq loyiha
Savoldan xulosaga:
- Savol
- Yukla, tozala
- Kashf, statistika
- Xulosa + tavsiya
Vazifa 7: O'ylash
Ma'lumot tahlili — savoldan ishonchli xulosaga tartibli yo'l (pipeline). Har bosqich muhim: savol (yo'nalish), tozalash (toza ma'lumot), kashf (naqsh), statistika (tasdiq), xulosa (javob + cheklov). Nima uchun "tahlil — jarayon, bir amal emas", va nega halol xulosa (cheklovlarni tan olish) — yaxshi tahlilchining eng muhim fazilati, "ma'lumot bilan qaror" (data-driven) mas'uliyati nimani anglatadi?
Javob
Qisqa javob: Tahlil — jarayon (savol → tozala → kashf → statistika → xulosa), bir amal emas, chunki har bosqich oldingiga tayanadi va xatosi keyingini buzadi (iflos ma'lumot → noto'g'ri xulosa). Har bosqichni o'tkazib yuborish (tozalash yo'q, statistik tasdiq yo'q) noto'g'ri xulosa beradi. Halol xulosa (cheklovlarni tan olish) — eng muhim fazilat, chunki: ma'lumot hamma narsani aytmaydi (kam namuna, iflos manba, korrelyatsiya ≠ sababiy) — buni tan olmaslik soxta ishonch beradi (xato qaror). Yaxshi tahlilchi "ma'lumot nimani ko'rsatadi va nimani ko'rsatmaydi" ni aytadi. "Ma'lumot bilan qaror" mas'uliyati — ma'lumotni to'g'ri o'qish (chalg'itmaslik), cheklovlar bilan, ehtiyotli talqin. "Ma'lumot yolg'on gapirmaydi, lekin uni noto'g'ri o'qish mumkin" — mas'uliyat tahlilchida.
1. Tahlil — jarayon
Har bosqich oldingiga tayanadi:
- Savol yo'q → yo'nalishsiz
- Tozalash yo'q → iflos → noto'g'ri
- Statistik tasdiq yo'q → soxta xulosa
Bir bosqich buzilsa — butun tahlil buziladi.
2. Halol xulosa
Ma'lumot hamma narsani aytmaydi:
- Kam namuna (ishonchsiz)
- Iflos manba (xato)
- Korrelyatsiya ≠ sababiy
- Statistik ≠ amaliy muhim
Bularni tan olmaslik — soxta ishonch (xato qaror).
3. "Nimani ko'rsatadi va ko'rsatmaydi"
| Ko'rsatadi | Ko'rsatmaydi |
|---|---|
| Toshkent daromadliroq | Farq ishonchlimi (kam ma'lumot) |
| Korrelyatsiya bor | Sabab (≠ causation) |
| Namunada naqsh | Butun populyatsiya |
4. Data-driven mas'uliyat
Ma'lumot bilan qaror — kuchli, lekin mas'uliyat: to'g'ri o'qish, cheklovlar, halol xulosa. Noto'g'ri o'qish (chalg'itish, p-hacking) — ma'lumot "yolg'on"dan battar (soxta ishonch).
5. Muhandislik saboqlari
- Tahlil — jarayon (har bosqich muhim)
- Halol xulosa (cheklovlar)
- Ma'lumot hamma narsani aytmaydi
- Data-driven — mas'uliyat bilan
6. Xulosa
- Tahlil — tartibli jarayon (pipeline)
- Halol xulosa — eng muhim fazilat
- Cheklovlarni tan ol
- Ma'lumotni to'g'ri o'qi (mas'uliyat)
Nimani mustahkamlaydi: 2.1–2.8-bo'limlar.
Xulosa
Bu darsda — 24-qism yakuni — to'liq ma'lumot tahlili loyihasini bajardik.
Eng muhim uch fikr:
Tahlil quvuri (pipeline). Ma'lumot tahlili — savoldan xulosaga tartibli yo'l: savol (aniq, o'lchab bo'ladigan — yo'nalish) → yuklash (24.6 —
read_csv,parse_dates) → tozalash (24.8 —isna,fillna,drop_duplicates— tahlilning 80%) → kashf (EDA —describe,groupby, korrelyatsiya — naqshlarni topish) → vizualizatsiya (24.13–24.15 — grafik bilan naqsh) → statistika (24.16–24.17 — test bilan tasdiq) → xulosa (javob + ishonchlilik + tavsiya). Har bosqich oldingiga tayanadi.Har bosqichning roli. Savol — tahlil boshi (ma'lumotdan emas — "to'g'ri savol yarim javob"). Tozalash — poydevor (iflos ma'lumot → noto'g'ri xulosa, "garbage in, garbage out"). Kashf (EDA) — ma'lumotni tanish (nima bor, qanday taqsimlangan, bog'lanishlar). Vizualizatsiya — naqshni ko'z bilan (tez tushunish). Statistik tekshirish — kuzatilgan naqshni tasdiqlash (farq haqiqiymi yoki tasodif — t-test, pearsonr — soxta xulosadan saqlaydi). Har biri 24-qismning oldingi darslariga tayanadi.
Halol xulosa va data-driven qaror. Xulosa — savolga javob (ma'lumot asosida) + ishonchlilik (statistik muhimmi) + tavsiya (harakat). Halol bo'lish — ma'lumot cheklovlarini tan olish (kam namuna, iflos manba, korrelyatsiya ≠ sababiy), "nimani ko'rsatadi va nimani ko'rsatmaydi". Tahlil — jarayon (bir amal emas), har bosqich muhim. Maqsad — ma'lumot bilan qaror (data-driven), lekin mas'uliyat bilan (to'g'ri o'qish, chalg'itmaslik). "Ma'lumot yolg'on gapirmaydi, lekin uni noto'g'ri o'qish mumkin". 24-qism: NumPy (24.1–24.4), pandas (24.5–24.12), vizualizatsiya (24.13–24.15), statistika (24.16–24.17), amaliy loyiha 24.18-bob — ma'lumotdan haqiqatni ajratish mahorati.
Keyingi qismda (25-qism: ML va AI) mashinaviy o'qitishni — modelni ma'lumotda o'qitish, bashorat, scikit-learn, PyTorch, LLM API'ni o'rganamiz: ma'lumotdan model qurish mahorati.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!