IlmHamroh
Data Science va sun'iy intellekt/Kirish Data Science3/8-dars18 daqiqa
Mundarija (22)

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 ≠ raqamli

4. Batafsil misollar

Misollar ma'lumot turlarini (deterministik, pandas bilan) ko'rsatadi.

Misol 1 — Ma'lumot turlari (pandas dtypes)

python
"""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:

text
=== 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)

python
"""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:

text
=== 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 farqi

Nima ko'rsatdi: 2.2-bo'lim.

Misol 3 — Raqam ≠ raqamli (tuzoq)

python
"""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:

text
=== 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

python
"""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:

text
=== 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)

python
df["pochta_indeks"].mean()   # toifa o'rtachasi (bema'ni)      # ⚠️
df["pochta_indeks"] = df["pochta_indeks"].astype("category")   # ✅

2. Nominalni raqam kodlash

python
{"Toshkent": 1, "Samarqand": 2}   # soxta tartib                # ⚠️
pd.get_dummies(df["shahar"])   # one-hot (tartibsiz)            # ✅

3. Ordinal tartibni tashlash

python
pd.get_dummies(df["daraja"])   # bronza<oltin bilim yo'qoladi  # ⚠️
df["daraja"].map({"bronza":1,"kumush":2,"oltin":3})   # tartib  # ✅

4. Sanani satr qoldirish

python
df["sana"]   # "2026-01-15" satr (feature yo'q)                 # ⚠️
df["sana"] = pd.to_datetime(df["sana"]); df["sana"].dt.month    # ✅

5. Kategorikni kodlashsiz model

python
model.fit(df[["shahar"]])   # matn model'ga (xato)             # ⚠️
# avval kodla (one-hot/label — 19-qism)                          # ✅

6. dtype tekshirmaslik

python
# tur noto'g'ri (raqam satr sifatida o'qildi)                  # ⚠️
df.dtypes   # tekshir, astype bilan tuzat                       # ✅

7. Aralash tur ustunda

python
# 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

  1. Avval turni aniqla (birinchi qadam).

  2. Raqam ≠ raqamli (ID/indeks — kategorik).

  3. Nominal → one-hot, ordinal → label (tartib).

  4. Sana → feature (kun, oy, farq).

  5. Kategorik → kodla (model raqam kutadi).

  6. dtype tekshir (df.dtypes — to'g'rimi).

  7. Matn → tokenlash (NLP).

  8. Strukturaga keltir (jadval — tahlil oson).


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
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
  1. Raqamli, kategorik, matn, sana, maxsus
  2. O'lchanadigan son (matematik amal)
  3. Uzluksiz kasr (bo'y), diskret butun (soni)
  4. Toifa (o'lchanmaydi)
  5. Nominal tartibsiz, ordinal tartibli
  6. Rang, shahar, jins
  7. Daraja (bronza<oltin), baho
  8. Kategorik (raqam ko'rinsa ham)
  9. Kodlash kerak (one-hot/label)
  10. Jadval (qator × ustun)
  11. Feature (kun, oy, farq)
  12. To'g'ri ishlov (butun tahlilni belgilaydi)

Vazifa 2: Xatolarni tuzating

python
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"]])   # kodlashsiz
Javoblar
python
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:

  1. Uzluksiz
  2. Diskret
  3. Matematik amal
  4. Misol

Vazifa 4: Kategorik

Modellang:

  1. Nominal
  2. Ordinal
  3. Kodlash
  4. Farq

Vazifa 5: Maxsus turlar

Modellang:

  1. Matn
  2. Sana
  3. Rasm
  4. Ishlov

Vazifa 6: Struktura

Modellang:

  1. Strukturali
  2. Strukturasiz
  3. Jadval
  4. 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

  1. Ma'lumotni tushunish > sof kod (ma'no vs son)
  2. Jim xatolar xavfli (kod ishlaydi, noto'g'ri)
  3. Soha bilimi muhim (kontekst)
  4. Avval turni/ma'noni tushun

6. Xulosa

  1. Ma'lumotni tushunish muhimroq (ma'no — inson)
  2. Jim xatolar (kod ishlaydi, natija bema'ni)
  3. Eng katta xatolar ma'lumotdan (ko'rinmas)
  4. 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:

  1. 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.

  2. 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.

  3. 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.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
1.3-dars: Ma'lumot turlari va tuzilishi — IlmHamroh