Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Raqamli ma'lumot (uzluksiz, diskret)
- 2.2. Kategorik ma'lumot (nominal, ordinal)
- 2.3. Matn, sana va maxsus turlar
- 2.4. Strukturali vs strukturasiz
- 2.5. Ma'lumot turi nega muhim
- 2.6. Turlar amaliyoti
- 2.7. Turlar tuzoqlari
- 2.8. Ma'lumot turi — to'g'ri ishlovning birinchi qadami
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Ma'lumot turlari (pandas dtypes)
- Misol 2 — Nominal vs ordinal (kodlash)
- Misol 3 — Raqam ≠ raqamli (tuzoq)
- Misol 4 — Strukturali vs strukturasiz
- 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
1.3-dars: Ma'lumot turlari va tuzilishi
1-QISM — KIRISH: DATA SCIENCE · 3-dars
1. Kirish va motivatsiya
Data Science'ning markazida ma'lumot turadi — lekin "ma'lumot" bir xil narsa emas. Yosh (raqam), jins (toifa), izoh (matn), rasm, sana — bularning har biri boshqacha ishlov talab qiladi. Modelga yoshni to'g'ridan berish mumkin, lekin "erkak/ayol"ni avval raqamga aylantirish kerak; matnni tahlil qilishdan oldin tokenlarga bo'lish kerak. Ma'lumot turini noto'g'ri tushunish — butun tahlilni buzadi (masalan, pochta indeksini "son" deb o'rtachasini olish — bema'nilik). Bu dars ma'lumotning asosiy turlarini (raqamli, kategorik, matn, sana, rasm) va tuzilishini (jadval — qatorlar/ustunlar) o'rgatadi. Ma'lumotni tanish — u bilan to'g'ri ishlashning birinchi qadami.
Ma'lumot turlari va tuzilishi — ma'lumotni toifalash va shaklini tushunish: raqamli (numerical — uzluksiz bo'y, diskret bolalar soni), kategorik (categorical — nominal rang, ordinal daraja), matn (text — izoh, hujjat), sana/vaqt (datetime), maxsus (rasm, ovoz, geo); tuzilish — strukturali (jadval — qatorlar × ustunlar, DataFrame) vs strukturasiz (matn, rasm — erkin). Foydalanish: to'g'ri ishlov (kategorik → kodlash, matn → tokenlash), tahlil. Bu 1.1 (Data Science), 4-qism (Pandas) bilan bog'liq. Ma'lumot turi — raqamli, kategorik, matn, sana. Strukturali jadval. To'g'ri ishlov.
Real vaziyat. Data Scientist mijoz ma'lumotini oldi: yosh (raqam), shahar (kategorik — nominal), daraja (kategorik — ordinal: bronza<kumush<oltin), izoh (matn), royxatdan_sana (sana). Har birini turlicha ishladi: yosh — to'g'ridan model uchun, shahar — one-hot kodlash, daraja — tartibli kodlash (bronza=1, kumush=2), izoh — matn tahlil (sentiment), sana — feature (necha kun, oy). Agar u shahar (nominal) ni oddiy raqam qilsa — model noto'g'ri tartib o'ylardi (Toshkent=1 < Samarqand=2 — bema'ni). Ma'lumot turini tanish — to'g'ri ishlov.
Bu darsda ma'lumot turlari va tuzilishini o'rganamiz.
Bu darsda:
- Raqamli ma'lumot (uzluksiz, diskret)
- Kategorik ma'lumot (nominal, ordinal)
- Matn, sana va maxsus turlar
- Strukturali vs strukturasiz
- Ma'lumot turi nega muhim
- Turlar amaliyoti
- Turlar tuzoqlari
- Amaliy: ma'lumot turlari modeli
ℹ Bu kirish dars — misollar ma'lumot turlarini (deterministik, pandas bilan) ko'rsatadi.
2. Nazariya — chuqur tushuntirish
2.1. Raqamli ma'lumot (uzluksiz, diskret)
Sonlar — o'lchanadigan:
RAQAMLI (numerical):
UZLUKSIZ (continuous) — istalgan qiymat (kasr)
bo'y (172.5 sm), harorat (36.6°), narx (19.99)
DISKRET (discrete) — sanaladigan (butun)
bolalar soni (0,1,2), xaridlar (5), qavat (3)
→ matematik amal mumkin (o'rtacha, yig'indi)Raqamli ma'lumot (numerical) — o'lchanadigan sonlar: uzluksiz (continuous — istalgan qiymat, kasr; bo'y 172.5, harorat 36.6, narx 19.99 — o'lchov), diskret (discrete — sanaladigan, butun; bolalar soni 0/1/2, xaridlar 5, qavat 3 — hisob). Sabab: raqamli ma'lumotda matematik amal mantiqli (o'rtacha bo'y, umumiy narx — ma'noli); uzluksiz/diskret farqi ishlovga ta'sir (uzluksiz — bo'lish mumkin, diskret — butun). Model raqamli ma'lumotni to'g'ridan oladi (kodlash kerak emas — 2.2 kategorik farqi). Muhim: raqam har doim raqamli emas (pochta indeksi — raqam, lekin kategorik! o'rtacha olmaydi). Raqamli — o'lchanadigan (uzluksiz/diskret). Matematik amal. To'g'ridan model.
2.2. Kategorik ma'lumot (nominal, ordinal)
Toifalar — o'lchanmaydigan:
KATEGORIK (categorical):
NOMINAL — tartibsiz toifa
rang (qizil/ko'k), shahar (Toshkent/Samarqand), jins
→ tartib YO'Q (Toshkent > Samarqand bema'ni)
ORDINAL — tartibli toifa
daraja (bronza<kumush<oltin), baho (past<o'rta<yuqori)
→ tartib BOR, lekin masofa noaniq
→ model uchun RAQAMGA aylantirish kerak (kodlash)Kategorik ma'lumot (categorical) — toifalar (o'lchanmaydi): nominal (tartibsiz toifa — rang, shahar, jins; tartib yo'q — Toshkent > Samarqand bema'ni), ordinal (tartibli toifa — daraja bronza<kumush<oltin, baho past<o'rta<yuqori; tartib bor, lekin masofa noaniq — kumush-bronza ≠ oltin-kumush). Sabab: kategorik ma'lumotda matematik amal ma'nosiz (o'rtacha rang — bema'ni); model raqam kutadi (matn emas) — kodlash kerak (nominal → one-hot, ordinal → tartibli raqam — 19-qism). Nominal/ordinal farqi kodlashga ta'sir (ordinal tartibni saqlash, nominal saqlamaslik). Kategorik — toifa (nominal/ordinal). O'lchanmaydi. Kodlash kerak.
2.3. Matn, sana va maxsus turlar
Boshqa ma'lumot shakllari:
MATN (text) — izoh, hujjat, xabar
→ tokenlash, embedding (25-qism NLP)
SANA/VAQT (datetime) — 2026-01-15, 14:30
→ feature: kun, oy, hafta kuni, farq
MAXSUS:
rasm (piksel massivi) → CNN (24-qism)
ovoz (to'lqin) → signal
geo (koordinata) → xarita
grafik (bog'lanish) → graf Matn, sana va maxsus turlar — boshqa shakllar: matn (text — izoh, hujjat, xabar; strukturasiz; tokenlash, embedding — 25-qism NLP), sana/vaqt (datetime — 2026-01-15; feature'ga aylantiriladi: kun, oy, hafta kuni, farq — 5-qism), rasm (piksel massivi — CNN 24-qism), ovoz (to'lqin — signal), geo (koordinata — xarita), grafik (bog'lanish — graf). Sabab: bu turlar maxsus ishlov talab qiladi (matn → raqam, rasm → tensor); model raqam kutadi, shuning uchun har tur o'zgartiriladi (matn → embedding, sana → feature, rasm → piksel). Zamonaviy AI (DL) bu maxsus turlarga mo'ljallangan (matn — LLM, rasm — CNN). Matn/sana/maxsus — maxsus ishlov. Raqamga o'zgartirish. DL.
2.4. Strukturali vs strukturasiz
Ma'lumot shakli:
STRUKTURALI (structured) — jadval
qatorlar (kuzatishlar) × ustunlar (xususiyatlar)
DataFrame, SQL jadval, CSV
| yosh | shahar | narx |
| 25 | Toshkent | 100 |
STRUKTURASIZ (unstructured) — erkin
matn, rasm, ovoz, video (jadvalga sig'maydi)
YARIM (semi) — JSON, XML (qism tuzilish)Strukturali vs strukturasiz — ma'lumot shakli: strukturali (structured — jadval: qatorlar = kuzatishlar/namunalar, ustunlar = xususiyatlar/feature; DataFrame, SQL, CSV — Data Science asosiy shakli), strukturasiz (unstructured — erkin: matn, rasm, ovoz, video — jadvalga sig'maydi), yarim strukturali (semi — JSON/XML — qism tuzilish). Sabab: strukturali ma'lumot oson tahlil (jadval — filtrlash, guruhlash, model); an'anaviy ML strukturali (jadval — sklearn), DL strukturasiz (rasm/matn — 22-qism). Ma'lumotni jadvalga keltirish (tozalash, feature — 6/19-qism) ko'p ishning maqsadi. Strukturali — jadval (qator×ustun). Strukturasiz — erkin. Jadval oson.
2.5. Ma'lumot turi nega muhim
Ma'lumot turi nega muhim: (1) to'g'ri ishlov — har tur turlicha (raqamli — to'g'ridan, kategorik — kodlash, matn — tokenlash); noto'g'ri ishlov → noto'g'ri natija; (2) matematik amal — raqamlida o'rtacha ma'noli, kategorikda emas (o'rtacha shahar bema'ni); (3) model tanlash — tur modelni belgilaydi (jadval → sklearn, rasm → CNN); (4) feature engineering — sana → kun/oy, matn → embedding (19-qism); (5) xato oldini — pochta indeksini "son" deb o'rtachasini olish — klassik xato. Sabab: ma'lumot turi butun tahlilni belgilaydi (birinchi qadam — turni tanish); noto'g'ri tur → butun ish buziladi. Yaxshi Data Scientist avval turni aniqlaydi (raqamli? kategorik? nominal/ordinal?). Tur nega muhim — ishlov, amal, model, feature. Birinchi qadam. Xato oldini.
2.6. Turlar amaliyoti
Ma'lumot turlari amaliyoti: turni aniqla (avval — raqamli/kategorik/matn/sana); nominal vs ordinal (kodlashga ta'sir — ordinal tartib saqlanadi); raqam ≠ raqamli (pochta indeksi, ID — kategorik, o'rtacha olmaydi); kategorik → kodlash (one-hot/label — 19-qism); sana → feature (kun, oy, farq); matn → tokenlash (NLP — 25-qism); dtype tekshir (pandas — df.dtypes, tur to'g'ri-mi); strukturaga keltir (jadval — tahlil oson). Tuzoqlar: raqamni raqamli deb (ID/indeks — kategorik), nominalni ordinal deb (noto'g'ri tartib), kategorikni to'g'ridan model (kodlashsiz — xato), sanaeni satr deb (feature yo'q). Amaliyot — turni aniqla, to'g'ri ishlov, dtype tekshir. To'g'ri tur — to'g'ri tahlil.
2.7. Turlar tuzoqlari
Ma'lumot turlari asosiy tuzoqlari: raqam = raqamli deb (pochta indeksi, telefon, ID — raqam ko'rinadi, lekin kategorik — o'rtacha/yig'indi bema'ni; kategorik deb belgila); nominalni ordinal deb (shaharni 1,2,3 kodlash — model noto'g'ri tartib o'ylaydi; one-hot); ordinalni nominal deb (daraja tartibini tashlash — bilim yo'qoladi; tartibli kodlash); kategorikni kodlamaslik (matn model'ga — xato yoki noto'g'ri); sanaeni satr deb (feature chiqarmaslik — kun/oy yo'q); yetishmayotgan turni noto'g'ri (NaN — raqamli/kategorik turlicha 6-qism); aralash tur (bir ustunda raqam+matn — tozalash kerak). Sabab: tur butun tahlilni belgilaydi; noto'g'ri tur → butun ish buziladi (jim xato). Yechim: turni aniqla, dtype tekshir, to'g'ri kodla. Tuzoqlar — raqam/kategorik, nominal/ordinal, kodlamaslik. Turni aniqla.
2.8. Ma'lumot turi — to'g'ri ishlovning birinchi qadami
Ma'lumot turlari asosiy g'oyasi — to'g'ri ishlovning birinchi qadami: har ma'lumot turi (raqamli, kategorik, matn, sana, rasm) turlicha ishlov talab qiladi; turni tanish — u bilan to'g'ri ishlashning birinchi qadami (noto'g'ri tur → butun tahlil buziladi). Data Science ish oqimi 1.1-bob da tozalash/tahlil/model — hammasi ma'lumot turiga bog'liq (kategorik → kodlash, matn → embedding, sana → feature). Bu 4-qism (Pandas — dtype), 6-qism (tozalash), 19-qism (feature engineering) uchun poydevor. Ma'lumotni tanish (turi, tuzilishi) — Data Scientist'ning birinchi mahorati (kod yozishdan oldin — ma'lumotni tushunish). To'g'ri tur → to'g'ri ishlov → to'g'ri natija. Ma'lumot turi — birinchi qadam. To'g'ri ishlov. Poydevor.
3. Tez ma'lumotnoma
MA'LUMOT TURLARI:
RAQAMLI (numerical) — o'lchanadigan (matematik amal mumkin)
uzluksiz: bo'y, harorat, narx (kasr)
diskret: bolalar soni, xaridlar (butun)
KATEGORIK (categorical) — toifa (kodlash kerak)
nominal: rang, shahar (tartib YO'Q → one-hot)
ordinal: daraja, baho (tartib BOR → label)
MATN → tokenlash (NLP) · SANA → feature (kun/oy) · RASM → tensor
STRUKTURA:
strukturali — jadval (qator × ustun, DataFrame)
strukturasiz — matn, rasm (erkin)
TUZOQ: raqam ≠ raqamli (ID/indeks — kategorik!)
nominal ≠ ordinal (tartib bor/yo'q)
QOIDA: avval turni aniqla → to'g'ri ishlov (dtype tekshir)Turlar xulosasi
Ma'lumot turi — to'g'ri ishlovning birinchi qadami
Raqamli — o'lchanadigan (uzluksiz/diskret, matematik amal)
Kategorik — toifa (nominal/ordinal, kodlash kerak)
Matn/sana/rasm — maxsus ishlov (raqamga o'zgartirish)
Strukturali (jadval) vs strukturasiz (erkin) · raqam ≠ raqamli4. Batafsil misollar
Misollar ma'lumot turlarini (deterministik, pandas bilan) ko'rsatadi.
Misol 1 — Ma'lumot turlari (pandas dtypes)
"""Ma'lumot turlari: pandas dtype bilan aniqlash (real pandas)."""
import pandas as pd
def main() -> None:
df = pd.DataFrame({
"yosh": [25, 30, 22], # raqamli (diskret)
"boy": [172.5, 168.0, 180.3], # raqamli (uzluksiz)
"shahar": ["Toshkent", "Samarqand", "Toshkent"], # kategorik
"sana": pd.to_datetime(["2026-01-01", "2026-02-15", "2026-03-10"]),
})
print("=== 1. Ustun turlari (dtype) ===")
for ustun, tur in df.dtypes.items():
print(f" {ustun:8} → {tur}")
print("\n=== 2. Raqamli statistika ===")
print(f" yosh o'rtacha: {df['yosh'].mean():.1f}")
print(f" boy o'rtacha: {df['boy'].mean():.1f}")
print("\n=== 3. Kategorik (o'rtacha bema'ni) ===")
print(f" shahar qiymatlari: {df['shahar'].unique().tolist()}")
print("\n=== 4. Sana feature ===")
print(f" oylar: {df['sana'].dt.month.tolist()}")
print(" ⭐ Har tur turlicha (dtype aniqlaydi)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Ustun turlari (dtype) ===
yosh → int64
boy → float64
shahar → str
sana → datetime64[us]
=== 2. Raqamli statistika ===
yosh o'rtacha: 25.7
boy o'rtacha: 173.6
=== 3. Kategorik (o'rtacha bema'ni) ===
shahar qiymatlari: ['Toshkent', 'Samarqand']
=== 4. Sana feature ===
oylar: [1, 2, 3]
⭐ Har tur turlicha (dtype aniqlaydi)Nima ko'rsatdi: 2.1, 2.2, 2.3-bo'limlar.
Misol 2 — Nominal vs ordinal (kodlash)
"""Nominal vs ordinal: kodlash farqi (model)."""
def kodla(qiymat: str, tur: str) -> object:
ordinal_xarita = {"bronza": 1, "kumush": 2, "oltin": 3}
if tur == "ordinal":
return ordinal_xarita.get(qiymat, 0) # tartib saqlanadi
return f"one-hot({qiymat})" # nominal — tartibsiz
def main() -> None:
print("=== 1. Ordinal (daraja — tartib bor) ===")
for d in ["bronza", "kumush", "oltin"]:
print(f" {d} → {kodla(d, 'ordinal')}")
print(" tartib saqlanadi (bronza=1 < oltin=3)")
print("\n=== 2. Nominal (shahar — tartib yo'q) ===")
for s in ["Toshkent", "Samarqand"]:
print(f" {s} → {kodla(s, 'nominal')}")
print(" one-hot (soxta tartib yo'q)")
print("\n=== 3. Xato: nominalni raqam ===")
print(" Toshkent=1, Samarqand=2 → model 'Samarqand>Toshkent' o'ylaydi (bema'ni)")
print("\n=== 4. Qoida ===")
print(" ordinal → label (tartib), nominal → one-hot")
print(" ⭐ Kodlash turi — nominal/ordinal farqi")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Ordinal (daraja — tartib bor) ===
bronza → 1
kumush → 2
oltin → 3
tartib saqlanadi (bronza=1 < oltin=3)
=== 2. Nominal (shahar — tartib yo'q) ===
Toshkent → one-hot(Toshkent)
Samarqand → one-hot(Samarqand)
one-hot (soxta tartib yo'q)
=== 3. Xato: nominalni raqam ===
Toshkent=1, Samarqand=2 → model 'Samarqand>Toshkent' o'ylaydi (bema'ni)
=== 4. Qoida ===
ordinal → label (tartib), nominal → one-hot
⭐ Kodlash turi — nominal/ordinal farqiNima ko'rsatdi: 2.2-bo'lim.
Misol 3 — Raqam ≠ raqamli (tuzoq)
"""Raqam ≠ raqamli: ID/indeks kategorik (model)."""
USTUNLAR = {
"yosh": {"raqam": True, "raqamli": True, "sabab": "o'lchanadigan"},
"pochta_indeks": {"raqam": True, "raqamli": False, "sabab": "toifa (o'rtacha bema'ni)"},
"telefon": {"raqam": True, "raqamli": False, "sabab": "identifikator"},
"narx": {"raqam": True, "raqamli": True, "sabab": "o'lchanadigan"},
}
def main() -> None:
print("=== Raqam ko'rinadi, lekin raqamli emas ===")
for ustun, info in USTUNLAR.items():
haqiqiy = "raqamli" if info["raqamli"] else "KATEGORIK"
print(f" {ustun:14} → {haqiqiy:10} ({info['sabab']})")
print("\n=== Xato ===")
print(" pochta_indeks o'rtachasi: bema'ni (toifa, o'lchov emas)")
print("\n=== Qoida ===")
print(" raqam ko'rinsa ham — ma'nosini tekshir (o'lchovmi? toifami?)")
print(" ⭐ Raqam ≠ raqamli (ID/indeks — kategorik)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== Raqam ko'rinadi, lekin raqamli emas ===
yosh → raqamli (o'lchanadigan)
pochta_indeks → KATEGORIK (toifa (o'rtacha bema'ni))
telefon → KATEGORIK (identifikator)
narx → raqamli (o'lchanadigan)
=== Xato ===
pochta_indeks o'rtachasi: bema'ni (toifa, o'lchov emas)
=== Qoida ===
raqam ko'rinsa ham — ma'nosini tekshir (o'lchovmi? toifami?)
⭐ Raqam ≠ raqamli (ID/indeks — kategorik)Nima ko'rsatdi: 2.5, 2.7-bo'limlar.
Misol 4 — Strukturali vs strukturasiz
"""Struktura: jadval vs erkin ma'lumot (model)."""
def struktura_turi(ma_lumot: str) -> str:
strukturali = {"CSV", "SQL jadval", "DataFrame", "Excel"}
strukturasiz = {"matn", "rasm", "ovoz", "video"}
if ma_lumot in strukturali:
return "strukturali (jadval — qator×ustun)"
if ma_lumot in strukturasiz:
return "strukturasiz (erkin — jadvalga sig'maydi)"
return "yarim (JSON/XML)"
def main() -> None:
print("=== Ma'lumot tuzilishi ===")
for m in ["CSV", "DataFrame", "matn", "rasm", "JSON"]:
print(f" {m:12} → {struktura_turi(m)}")
print("\n=== Data Science uchun ===")
print(" strukturali → an'anaviy ML (sklearn — jadval)")
print(" strukturasiz → DL (matn LLM, rasm CNN)")
print("\n=== Maqsad ===")
print(" ko'p ish — ma'lumotni jadvalga keltirish (tahlil oson)")
print(" ⭐ Strukturali (jadval) vs strukturasiz (erkin)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== Ma'lumot tuzilishi ===
CSV → strukturali (jadval — qator×ustun)
DataFrame → strukturali (jadval — qator×ustun)
matn → strukturasiz (erkin — jadvalga sig'maydi)
rasm → strukturasiz (erkin — jadvalga sig'maydi)
JSON → yarim (JSON/XML)
=== Data Science uchun ===
strukturali → an'anaviy ML (sklearn — jadval)
strukturasiz → DL (matn LLM, rasm CNN)
=== Maqsad ===
ko'p ish — ma'lumotni jadvalga keltirish (tahlil oson)
⭐ Strukturali (jadval) vs strukturasiz (erkin)Nima ko'rsatdi: 2.4-bo'lim.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "Raqam = raqamli" | ID/indeks — kategorik (o'rtacha bema'ni) |
| "Barcha kategorik bir xil" | Nominal (tartibsiz) vs ordinal (tartibli) |
| "Kategorikni to'g'ridan model" | Kodlash kerak (one-hot/label) |
| "Sana — oddiy matn" | Feature (kun, oy, farq) |
| "Nominalni raqam qilsa mayli" | Soxta tartib (model chalkashadi) |
| "Ma'lumot bir xil ishlov" | Har tur turlicha |
| "Struktura muhim emas" | Jadval → oson tahlil |
| "Turni keyin aniqlash" | Avval (birinchi qadam) |
6. Keng tarqalgan xatolar va yechimlari
1. Raqamni raqamli deb (ID)
df["pochta_indeks"].mean() # toifa o'rtachasi (bema'ni) # ⚠️
df["pochta_indeks"] = df["pochta_indeks"].astype("category") # ✅2. Nominalni raqam kodlash
{"Toshkent": 1, "Samarqand": 2} # soxta tartib # ⚠️
pd.get_dummies(df["shahar"]) # one-hot (tartibsiz) # ✅3. Ordinal tartibni tashlash
pd.get_dummies(df["daraja"]) # bronza<oltin bilim yo'qoladi # ⚠️
df["daraja"].map({"bronza":1,"kumush":2,"oltin":3}) # tartib # ✅4. Sanani satr qoldirish
df["sana"] # "2026-01-15" satr (feature yo'q) # ⚠️
df["sana"] = pd.to_datetime(df["sana"]); df["sana"].dt.month # ✅5. Kategorikni kodlashsiz model
model.fit(df[["shahar"]]) # matn model'ga (xato) # ⚠️
# avval kodla (one-hot/label — 19-qism) # ✅6. dtype tekshirmaslik
# tur noto'g'ri (raqam satr sifatida o'qildi) # ⚠️
df.dtypes # tekshir, astype bilan tuzat # ✅7. Aralash tur ustunda
# bir ustunda raqam + "yo'q" (aralash) # ⚠️
# tozalash (bir turga keltir — 6-qism) # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 4-qism: Pandas — dtype, ustun turlari
- 6-qism: Tozalash — tur tuzatish
- 19-qism: Feature engineering — kodlash
- 8-qism: Vizualizatsiya — tur grafik tanlaydi
- 25-qism: NLP — matn ishlov
8. Eng yaxshi amaliyotlar
Avval turni aniqla (birinchi qadam).
Raqam ≠ raqamli (ID/indeks — kategorik).
Nominal → one-hot, ordinal → label (tartib).
Sana → feature (kun, oy, farq).
Kategorik → kodla (model raqam kutadi).
dtype tekshir (df.dtypes — to'g'rimi).
Matn → tokenlash (NLP).
Strukturaga keltir (jadval — tahlil oson).
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # ma'lumot turlari?
2. # raqamli nima?
3. # uzluksiz vs diskret?
4. # kategorik nima?
5. # nominal vs ordinal?
6. # nominal misol?
7. # ordinal misol?
8. # pochta indeksi qaysi tur?
9. # kategorik model uchun?
10. # strukturali nima?
11. # sana bilan nima?
12. # tur nega muhim?Javoblar
- Raqamli, kategorik, matn, sana, maxsus
- O'lchanadigan son (matematik amal)
- Uzluksiz kasr (bo'y), diskret butun (soni)
- Toifa (o'lchanmaydi)
- Nominal tartibsiz, ordinal tartibli
- Rang, shahar, jins
- Daraja (bronza<oltin), baho
- Kategorik (raqam ko'rinsa ham)
- Kodlash kerak (one-hot/label)
- Jadval (qator × ustun)
- Feature (kun, oy, farq)
- To'g'ri ishlov (butun tahlilni belgilaydi)
Vazifa 2: Xatolarni tuzating
1. df["id"].mean() # ID o'rtachasi
2. {"Toshkent":1,"Samarqand":2} # nominal
3. # daraja one-hot (tartib yo'qoladi)
4. df["sana"] # satr
5. model.fit(df[["shahar"]]) # kodlashsizJavoblar
1. id — kategorik (astype category)
2. pd.get_dummies (one-hot)
3. map({"bronza":1,...}) (tartib)
4. pd.to_datetime + dt.month
5. avval kodla (one-hot)Vazifa 3: Raqamli
Modellang:
- Uzluksiz
- Diskret
- Matematik amal
- Misol
Vazifa 4: Kategorik
Modellang:
- Nominal
- Ordinal
- Kodlash
- Farq
Vazifa 5: Maxsus turlar
Modellang:
- Matn
- Sana
- Rasm
- Ishlov
Vazifa 6: Struktura
Modellang:
- Strukturali
- Strukturasiz
- Jadval
- Erkin
Vazifa 7: O'ylash
Ma'lumot turini noto'g'ri tushunish (masalan pochta indeksini "son" deb o'rtachasini olish) butun tahlilni jimgina buzadi — xato ko'rinmaydi, lekin natija bema'ni. Nima uchun "ma'lumotni tushunish" (domain understanding) sof texnik mahoratdan (kod) muhimroq, va nega Data Science'da eng katta xatolar ko'pincha ma'lumotni noto'g'ri talqin qilishdan kelib chiqadi?
Javob
Qisqa javob: "Ma'lumotni tushunish" texnik mahoratdan muhimroq, chunki: kod to'g'ri ishlashi mumkin (xatosiz bajariladi), lekin noto'g'ri ma'lumotga qo'llanilsa — natija bema'ni (pochta indeksi o'rtachasi — kod hisoblaydi, lekin ma'no yo'q); mashina ma'noni bilmaydi (faqat sonlar), inson kontekstni tushunishi kerak (bu raqam nima anglatadi). Ya'ni: kod "qanday", tushunish "nima/nega" — ikkinchisi hal qiladi. "Nega ma'lumotni tushunish muhimroq": (1) jim xato — noto'g'ri tur/talqin xato bermaydi (kod ishlaydi), lekin natija noto'g'ri (ko'rinmaydi — xavfli); (2) kontekst mashinada yo'q — model sonni ko'radi (pochta indeksi — 100000), ma'noni bilmaydi (toifa-mi, o'lchov-mi) — inson aytadi; (3) soha bilimi — ma'lumot real dunyoni aks ettiradi (tibbiyot, moliya) — sohani bilmasang, talqin noto'g'ri; (4) garbage in, garbage out — noto'g'ri tushunilgan ma'lumot → noto'g'ri model (eng zo'r algoritm ham qutqarmaydi). "Nega eng katta xatolar ma'lumotdan": kod xatosi ko'rinadi (crash, xato xabar — tuzatiladi); ma'lumot xatosi ko'rinmaydi (jim — natija chiroyli, lekin noto'g'ri); shuning uchun ma'lumot xatolari xavfliroq (sezilmaydi, ishlab chiqarishga o'tadi). Bu umumiy tamoyil: Data Science ma'lumot haqida (kod — vosita); ma'lumotni tushunish (tur, kontekst, soha) — asosiy mahorat; texnik mahorat (kod) kerak, lekin yetarli emas (ma'lumotsiz — bema'ni). Data Science saboqlari: ma'lumotni tushunish > sof kod (ma'no — inson, son — mashina); jim xatolar xavfli (kod ishlaydi, natija noto'g'ri); soha bilimi muhim (kontekst); avval turni/ma'noni tushun (kod keyin). Ma'lumot turi misolida: pochta indeksi — raqam ko'rinadi, lekin toifa (tushunish — inson); o'rtacha olish — jim xato (kod ishlaydi, ma'no yo'q).
1. Nega ma'lumotni tushunish muhimroq
- Kod to'g'ri ishlaydi, lekin noto'g'ri ma'lumotda bema'ni
- Mashina ma'noni bilmaydi (son), inson kontekstni
- Kod "qanday", tushunish "nima/nega" (hal qiladi)
2. Nega eng katta xatolar ma'lumotdan
- Jim xato (kod ishlaydi, natija noto'g'ri — ko'rinmaydi)
- Kontekst mashinada yo'q (inson aytadi)
- Soha bilimi (ma'lumot real dunyoni aks ettiradi)
- Garbage in, garbage out (algoritm qutqarmaydi)
3. Kod xato vs ma'lumot xato
| Jihat | Kod xato | Ma'lumot xato |
|---|---|---|
| Ko'rinish | Crash (ko'rinadi) | Jim (ko'rinmaydi) |
| Tuzatish | Oson | Qiyin (sezilmaydi) |
| Xavf | Kam | Katta (ishlab chiqarishga) |
4. Data Science ma'lumot haqida
Kod — vosita. Ma'lumotni tushunish (tur, kontekst, soha) — asos. Texnik kerak, yetarli emas.
5. Data Science saboqlari
- Ma'lumotni tushunish > sof kod (ma'no vs son)
- Jim xatolar xavfli (kod ishlaydi, noto'g'ri)
- Soha bilimi muhim (kontekst)
- Avval turni/ma'noni tushun
6. Xulosa
- Ma'lumotni tushunish muhimroq (ma'no — inson)
- Jim xatolar (kod ishlaydi, natija bema'ni)
- Eng katta xatolar ma'lumotdan (ko'rinmas)
- Avval turni tushun (kod keyin)
Nimani mustahkamlaydi: 2.5, 2.8-bo'limlar.
Xulosa
Bu darsda ma'lumot turlari va tuzilishini o'rgandik.
Eng muhim uch fikr:
Raqamli va kategorik. Raqamli ma'lumot (numerical) — o'lchanadigan sonlar: uzluksiz (continuous — kasr; bo'y, harorat, narx), diskret (discrete — butun; bolalar soni, xaridlar); matematik amal mantiqli (o'rtacha, yig'indi), model to'g'ridan oladi. Kategorik ma'lumot (categorical) — toifalar (o'lchanmaydi): nominal (tartibsiz — rang, shahar; tartib yo'q → one-hot), ordinal (tartibli — daraja bronza<oltin; tartib bor → label kodlash); model raqam kutadi — kodlash kerak.
Maxsus turlar va struktura. Matn (tokenlash — NLP), sana (feature — kun/oy/farq), rasm (tensor — CNN), ovoz/geo/grafik — har biri maxsus ishlov (raqamga o'zgartirish); zamonaviy AI (DL) maxsus turlarga. Strukturali vs strukturasiz: strukturali (jadval — qator×ustun, DataFrame/SQL/CSV — an'anaviy ML), strukturasiz (matn, rasm — erkin, DL), yarim (JSON/XML); ko'p ish ma'lumotni jadvalga keltirish.
Nega muhim va birinchi qadam. Ma'lumot turi butun tahlilni belgilaydi: to'g'ri ishlov (raqamli to'g'ridan, kategorik kodlash), matematik amal (raqamlida o'rtacha ma'noli), model tanlash, feature; tuzoqlar — raqam≠raqamli (ID/indeks kategorik — o'rtacha bema'ni), nominal≠ordinal (tartib bor/yo'q). Ma'lumot turi — to'g'ri ishlovning birinchi qadami: turni tanish kod yozishdan oldin keladi; noto'g'ri tur → butun ish jimgina buziladi. Ma'lumotni tushunish (ma'no, kontekst — inson) sof koddan (mashina — son) muhimroq; eng katta xatolar ma'lumotni noto'g'ri talqindan (jim xato — kod ishlaydi, natija bema'ni).
Keyingi darsda Data Science ish oqimi (CRISP-DM) ni chuqur o'rganamiz: savoldan qarorgacha har bosqichni batafsil — muammoni tushunish, ma'lumot, model, baholash va joriy etish.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!