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

1.2-dars: Muhit va vositalar

1-QISM — KIRISH: DATA SCIENCE · 2-dars


1. Kirish va motivatsiya

Har hunarmandning ustaxonasi bor — Data Scientist uchun bu ish muhiti. To'g'ri sozlangan muhit ishni tez, tartibli va takrorlanadigan qiladi; noto'g'ri muhit esa "menda ishlaydi, sizda ishlamaydi" degan koshmarga olib keladi. Data Science'da asosiy vosita — Jupyter Notebook (kod, natija, izoh, grafik bir joyda — interaktiv), Google Colab (bepul, bulutda, GPU bilan — o'rnatishsiz), va virtual muhit (har loyiha o'z kutubxonalari bilan — chalkashliksiz). Bu dars Data Science ish muhitini tushuntiradi: qaysi vosita, nega, qanday sozlash. To'g'ri muhit — samarali ishning poydevori. Kod yozishdan oldin, qayerda yozishni bilish kerak.

Data Science muhiti — ma'lumot bilan ishlash uchun vositalar to'plami: Jupyter Notebook (interaktiv — kod, natija, grafik, izoh bir hujjatda, hujayralar), Google Colab (bulut Jupyter — bepul, o'rnatishsiz, GPU), virtual muhit (venv/conda — har loyiha o'z kutubxonalari, izolyatsiya), paket menejeri (pip — kutubxona o'rnatish), asosiy kutubxonalar (numpy, pandas, matplotlib, sklearn). Foydalanish: ma'lumot tahlili, model qurish, reproduksiya. Bu 1.1 (Data Science) ni amaliyotga tayyorlaydi. Bu 1.1, 3-qism (NumPy) bilan bog'liq. Muhit — Jupyter, Colab, venv. Interaktiv. Izolyatsiya.

Real vaziyat. Talaba Data Science'ni o'rgana boshladi. Avval oddiy .py fayllar bilan ishladi — har o'zgarishda butun skriptni qayta ishga tushirdi (sekin, grafik alohida oynada). Keyin Jupyter Notebook'ga o'tdi: hujayra-hujayra kod yozdi, natija darhol pastda (grafik ham), izohlar bilan tushuntirdi — interaktiv eksperiment. Kuchli noutbuk yo'q edi — Google Colab ishlatdi (bepul GPU, brauzerda). Har loyiha uchun virtual muhit yaratdi (kutubxonalar chalkashmasin). Ish tez, tartibli bo'ldi. Muhit — interaktiv, izolyatsiyalangan, bepul.

Bu darsda Data Science muhitini o'rganamiz.

Bu darsda:

  • Jupyter Notebook (interaktiv)
  • Google Colab (bulut, bepul)
  • Virtual muhit (venv/conda)
  • Paketlar (pip) va kutubxonalar
  • Reproduksiya (takrorlanadigan ish)
  • Muhit amaliyoti
  • Muhit tuzoqlari
  • Amaliy: muhit modeli

ℹ Bu kirish dars — misollar muhit tushunchalarini (deterministik) modellashtiradi.


2. Nazariya — chuqur tushuntirish

2.1. Jupyter Notebook (interaktiv)

Kod, natija, izoh bir joyda:

python
# Jupyter hujayrasi (cell) — alohida ishga tushiriladi
import pandas as pd
df = pd.DataFrame({"son": [1, 2, 3]})
df                      # natija DARHOL pastda ko'rinadi (print kerak emas)
Jupyter Notebook tuzilishi:
   [hujayra 1] kod → natija pastda
   [hujayra 2] matn (Markdown — izoh, sarlavha)
   [hujayra 3] kod → grafik pastda
   → interaktiv: hujayrani alohida ishga tushir

Jupyter Notebook — Data Science'ning asosiy interaktiv vositasi: kod, natija, grafik va izoh bir hujjatda (.ipynb), hujayralar (cell) ga bo'lingan — har hujayra alohida ishga tushiriladi. Sabab: ma'lumot tahlili eksperimental (sinab ko'rish, natijani ko'rish, o'zgartirish); Jupyter buni oson qiladi (hujayra ishga tush → natija darhol pastda, keyin keyingisi — sikl yo'q). Grafik ham inline (pastda), Markdown hujayra (izoh, sarlavha — hikoya). .py fayldan farqi: .py butun ishga tushadi, Jupyter hujayra-hujayra (interaktiv). Data Science'da standart. Jupyter — kod+natija+izoh bir joyda. Hujayra. Interaktiv.

2.2. Google Colab (bulut, bepul)

O'rnatishsiz, brauzerda:

Google Colab (colab.research.google.com):
   bulut Jupyter — brauzerda ishlaydi (o'rnatish YO'Q)
   bepul GPU/TPU (chuqur o'rganish uchun)
   Google Drive bilan (fayl saqlash)
   ulashish (havola — hamkorlik)

   → kuchli noutbuk kerak emas (bulut hisoblaydi)

Google Colab — Google'ning bepul bulut Jupyter'i: brauzerda ishlaydi (o'rnatish yo'q — kutubxonalar oldindan bor), bepul GPU/TPU (chuqur o'rganish — 22-qism), Google Drive bilan (fayl), ulashish (havola — hamkorlik). Sabab: Data Science ba'zan kuchli hisoblash talab qiladi (GPU — neyron tarmoq); hamma noutbuk kuchli emas; Colab bulutda hisoblaydi (foydalanuvchi brauzer — arzon/bepul). Boshlovchi uchun ideal (o'rnatish muammosi yo'q — darhol boshlash). Cheklov: internet kerak, sessiya vaqti cheklangan (bepul), fayl saqlash (Drive). Colab — bulut Jupyter (bepul, GPU). O'rnatishsiz. Boshlash oson.

2.3. Virtual muhit (venv/conda)

Har loyiha o'z kutubxonalari bilan:

bash
# venv — virtual muhit yaratish (loyiha izolyatsiyasi)
python -m venv muhit          # muhit yaratish
# faollashtirish (Windows): muhit\Scripts\activate
# faollashtirish (Linux/Mac): source muhit/bin/activate
pip install pandas numpy       # faqat shu muhitga o'rnatiladi

# har loyiha alohida muhit → kutubxonalar chalkashmaydi

Virtual muhit (venv/conda) — har loyiha uchun alohida, izolyatsiyalangan kutubxona to'plami: python -m venv (muhit yaratish), faollashtirish, pip install (faqat shu muhitga). Sabab: turli loyiha turli kutubxona versiyasini talab qiladi (loyiha A — pandas 1.5, loyiha B — pandas 2.0); global o'rnatish chalkashish (versiyalar to'qnashadi — "dependency hell"); virtual muhit izolyatsiya (har loyiha o'z muhiti — mustaqil). venv (Python standart), conda (Anaconda — DS uchun mashhur, ilmiy paketlar oson). requirements.txt (kutubxonalar ro'yxati — reproduksiya). Virtual muhit — izolyatsiya (har loyiha alohida). Chalkashlik yo'q. venv/conda.

2.4. Paketlar (pip) va kutubxonalar

Data Science asosiy kutubxonalari:

python
# pip — kutubxona o'rnatish (Python paket menejeri)
# pip install numpy pandas matplotlib scikit-learn

# ASOSIY KUTUBXONALAR:
import numpy as np           # sonli hisoblash (massiv)
import pandas as pd          # ma'lumot (DataFrame)
import matplotlib.pyplot as plt  # vizualizatsiya (grafik)
from sklearn import ...      # machine learning

Paketlar va kutubxonalar — pip (Python paket menejeri — pip install) bilan o'rnatiladigan Data Science asosiy kutubxonalari: numpy (sonli hisoblash — massiv, 3-qism), pandas (ma'lumot — DataFrame, 4-qism), matplotlib/seaborn (vizualizatsiya — 8-qism), scikit-learn (machine learning — 14-qism), scipy (ilmiy), torch/tensorflow (chuqur o'rganish — 22-qism). Sabab: Data Science kutubxonalar ustiga qurilgan (noldan yozmaydi — tayyor, sinovdan o'tgan); pip install bilan o'rnatiladi (yoki Colab'da tayyor). Standart nomlar (np, pd, plt — konvensiya, hamma biladi). Bu kutubxonalar Data Science yadrosi (har kunlik). Paketlar — pip install. numpy/pandas/sklearn. Yadro. Konvensiya.

2.5. Reproduksiya (takrorlanadigan ish)

Boshqa ham ishga tushira olsin:

python
# REPRODUKSIYA — ish takrorlanadigan bo'lsin:
import numpy as np
np.random.seed(42)          # urug' — tasodif takrorlanadi

# requirements.txt — kutubxona versiyalari
# pandas==2.0.0
# numpy==1.24.0

# → boshqa kishi bir xil natija oladi (versiya + urug')

Reproduksiya (takrorlanadigan ish) — boshqa kishi (yoki kelajakdagi siz) bir xil natija olishi: urug' (np.random.seed(42) — tasodif takrorlanadi, model bir xil), requirements.txt (kutubxona versiyalari — bir xil muhit), Git (kod versiyasi), ma'lumot versiyasi. Sabab: Data Science tasodifiy elementlar bor (train/test split, model init — 14-qism); versiya farqi turli natija (pandas 1 vs 2); reproduksiya bo'lmasa — natija takrorlab bo'lmaydi (ilm/biznes uchun yomon — ishonchsiz). Yaxshi Data Scientist reproduksiya ta'minlaydi (urug', versiya, kod). Bu ilmiy usul (takrorlanish — ishonch). Reproduksiya — urug', versiya, kod. Bir xil natija. Ishonch.

2.6. Muhit amaliyoti

Data Science muhit amaliyotlari: Jupyter/Colab (interaktiv — tahlil, eksperiment); Colab boshlovchiga (o'rnatishsiz — tez boshlash); virtual muhit (har loyiha — izolyatsiya, venv/conda); requirements.txt (kutubxonalar — reproduksiya); urug' (seed — tasodif takrorlanadi); standart nomlar (np, pd, plt — konvensiya); Markdown izoh (Jupyter — hikoya, tushuntirish); Git (kod versiyasi, ma'lumot alohida). Tuzoqlar: global o'rnatish (chalkashish — virtual muhit), reproduksiyasiz (urug'/versiya yo'q — takrorlab bo'lmaydi), hamma kodni bir hujayrada (Jupyter — hujayralarga bo'l), katta ma'lumot Git'ga (alohida saqlash). Amaliyot — Jupyter, virtual muhit, reproduksiya. Interaktiv, izolyatsiyalangan.

2.7. Muhit tuzoqlari

Data Science muhit asosiy tuzoqlari: global o'rnatish (barcha kutubxona global — versiyalar to'qnashadi, "menda ishlaydi" muammosi; virtual muhit); reproduksiyasiz (urug'/versiya yo'q — natija takrorlab bo'lmaydi, ishonchsiz); hujayra tartibi (Jupyter — hujayralar tartibsiz ishga tushirilsa, holat chalkashadi; yuqoridan pastga); katta ma'lumot Git'ga (ma'lumot fayllari Git'ga — repo shishadi; ma'lumot alohida, .gitignore); Colab sessiyasi (bepul — vaqt cheklangan, uzilsa ish yo'qoladi; saqlash); kutubxona versiyasi (kod eski versiyaga — yangida ishlamaydi; requirements.txt). Sabab: muhit poydevor (noto'g'ri — ish chalkashadi, takrorlanmaydi). Yechim: virtual muhit, reproduksiya, tartibli. Tuzoqlar — global, reproduksiyasiz, tartibsiz. Izolyatsiya, reproduksiya.

2.8. Muhit — samarali va takrorlanadigan ishning poydevori

Data Science muhit asosiy g'oyasi — samarali va takrorlanadigan ishning poydevori: to'g'ri muhit ishni tez (interaktiv — Jupyter/Colab), tartibli (izolyatsiya — virtual muhit) va takrorlanadigan (reproduksiya — urug'/versiya) qiladi. Kod yozishdan oldin qayerda yozish muhim (muhit — ustaxona). Jupyter (interaktiv eksperiment), Colab (bepul, GPU), virtual muhit (izolyatsiya), reproduksiya (ishonch) — bularning barchasi Data Science ishini professional qiladi (skript emas — tartibli, takrorlanadigan). Bu 1.1 (Data Science) ni amaliyotga tayyorlaydi va butun kurs (3-qismdan) shu muhitda ishlaydi. Yomon muhit — chalkashish, takrorlanmas; yaxshi muhit — samarali, ishonchli. Muhit — poydevor. Tez, tartibli, takrorlanadigan. Professional.


3. Tez ma'lumotnoma

JUPYTER NOTEBOOK (interaktiv):
   .ipynb · hujayralar (cell) · kod+natija+grafik+izoh bir joyda
   df                      # natija darhol (print kerak emas)

GOOGLE COLAB (bepul bulut):
   colab.research.google.com · o'rnatishsiz · GPU bepul · Drive

VIRTUAL MUHIT (izolyatsiya):
   python -m venv muhit
   pip install pandas numpy    # faqat shu muhitga
   # har loyiha alohida → chalkashlik yo'q

ASOSIY KUTUBXONALAR:
   numpy (np) · pandas (pd) · matplotlib (plt) · sklearn

REPRODUKSIYA:
   np.random.seed(42)          # urug' (tasodif takrorlanadi)
   requirements.txt            # kutubxona versiyalari

QOIDA: Jupyter/Colab · virtual muhit · urug' + versiya (reproduksiya)

Muhit xulosasi

Muhit — samarali/takrorlanadigan ishning poydevori
Jupyter — interaktiv (kod+natija+izoh, hujayralar)
Colab — bepul bulut Jupyter (o'rnatishsiz, GPU)
Virtual muhit — izolyatsiya (har loyiha alohida, venv/conda)
Reproduksiya — urug' + versiya (boshqa ham bir xil natija)

4. Batafsil misollar

Bu kirish dars — misollar muhit tushunchalarini (deterministik) modellashtiradi.

Misol 1 — Reproduksiya (urug' ta'siri)

python
"""Reproduksiya: urug' bir xil natija beradi (real numpy)."""

import numpy as np


def main() -> None:
    print("=== 1. Urug'siz (har safar boshqa) ===")
    print("  (urug' bo'lmasa natija takrorlanmaydi)")

    print("\n=== 2. Urug' bilan (42) — birinchi ===")
    np.random.seed(42)
    a = np.random.randint(0, 100, 5)
    print(f"  {a.tolist()}")

    print("\n=== 3. Urug' bilan (42) — qayta ===")
    np.random.seed(42)
    b = np.random.randint(0, 100, 5)
    print(f"  {b.tolist()}")

    print("\n=== 4. Bir xilmi? ===")
    print(f"  teng: {np.array_equal(a, b)}")
    print("  ⭐ Urug' — tasodif takrorlanadi (reproduksiya)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Urug'siz (har safar boshqa) ===
  (urug' bo'lmasa natija takrorlanmaydi)

=== 2. Urug' bilan (42) — birinchi ===
  [51, 92, 14, 71, 60]

=== 3. Urug' bilan (42) — qayta ===
  [51, 92, 14, 71, 60]

=== 4. Bir xilmi? ===
  teng: True
  ⭐ Urug' — tasodif takrorlanadi (reproduksiya)

Nima ko'rsatdi: 2.5-bo'lim.

Misol 2 — Virtual muhit (izolyatsiya modeli)

python
"""Virtual muhit: har loyiha alohida kutubxona (model)."""


class Muhit:
    def __init__(self, nom: str) -> None:
        self.nom = nom
        self.paketlar = {}

    def ornat(self, paket: str, versiya: str) -> None:
        self.paketlar[paket] = versiya


def main() -> None:
    print("=== 1. Loyiha A muhiti ===")
    a = Muhit("loyiha_a")
    a.ornat("pandas", "1.5.0")
    print(f"  {a.nom}: {a.paketlar}")

    print("\n=== 2. Loyiha B muhiti ===")
    b = Muhit("loyiha_b")
    b.ornat("pandas", "2.0.0")
    print(f"  {b.nom}: {b.paketlar}")

    print("\n=== 3. Chalkashlik yo'q ===")
    print(f"  A pandas: {a.paketlar['pandas']}, B pandas: {b.paketlar['pandas']}")
    print("  har loyiha o'z versiyasi (izolyatsiya)")

    print("\n=== 4. Global bo'lsa ===")
    print("  bir pandas — ikki loyiha to'qnashadi (chalkashlik)")
    print("  ⭐ Virtual muhit — izolyatsiya (har loyiha alohida)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Loyiha A muhiti ===
  loyiha_a: {'pandas': '1.5.0'}

=== 2. Loyiha B muhiti ===
  loyiha_b: {'pandas': '2.0.0'}

=== 3. Chalkashlik yo'q ===
  A pandas: 1.5.0, B pandas: 2.0.0
  har loyiha o'z versiyasi (izolyatsiya)

=== 4. Global bo'lsa ===
  bir pandas — ikki loyiha to'qnashadi (chalkashlik)
  ⭐ Virtual muhit — izolyatsiya (har loyiha alohida)

Nima ko'rsatdi: 2.3-bo'lim.

Misol 3 — Jupyter vs .py (ish uslubi)

python
"""Jupyter vs .py: interaktiv vs to'liq ishga tushirish (model)."""


def ish_uslubi(vosita: str) -> dict:
    if vosita == "Jupyter":
        return {"birlik": "hujayra (cell)", "natija": "darhol pastda", "grafik": "inline"}
    return {"birlik": "butun fayl", "natija": "terminalda", "grafik": "alohida oyna"}


def main() -> None:
    print("=== 1. Jupyter Notebook ===")
    j = ish_uslubi("Jupyter")
    print(f"  birlik: {j['birlik']}")
    print(f"  natija: {j['natija']}, grafik: {j['grafik']}")

    print("\n=== 2. Oddiy .py skript ===")
    p = ish_uslubi(".py")
    print(f"  birlik: {p['birlik']}")
    print(f"  natija: {p['natija']}, grafik: {p['grafik']}")

    print("\n=== 3. Data Science uchun ===")
    print("  eksperiment → Jupyter (interaktiv, tez)")

    print("\n=== 4. Ishlab chiqarish uchun ===")
    print("  tayyor kod → .py (avtomatlashtirish)")
    print("  ⭐ Jupyter — interaktiv eksperiment (DS uchun)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Jupyter Notebook ===
  birlik: hujayra (cell)
  natija: darhol pastda, grafik: inline

=== 2. Oddiy .py skript ===
  birlik: butun fayl
  natija: terminalda, grafik: alohida oyna

=== 3. Data Science uchun ===
  eksperiment → Jupyter (interaktiv, tez)

=== 4. Ishlab chiqarish uchun ===
  tayyor kod → .py (avtomatlashtirish)
  ⭐ Jupyter — interaktiv eksperiment (DS uchun)

Nima ko'rsatdi: 2.1-bo'lim.

Misol 4 — Asosiy kutubxonalar (tekshirish)

python
"""Asosiy kutubxonalar: mavjudligi va vazifasi (real import)."""


def main() -> None:
    kutubxonalar = [
        ("numpy", "sonli hisoblash (massiv)"),
        ("pandas", "ma'lumot (DataFrame)"),
        ("sklearn", "machine learning"),
    ]

    print("=== Data Science asosiy kutubxonalari ===")
    for nom, vazifa in kutubxonalar:
        try:
            mod = __import__(nom)
            v = getattr(mod, "__version__", "?")
            print(f"  BOR   {nom:10} v{v} — {vazifa}")
        except ImportError:
            print(f"  YO'Q  {nom:10} — {vazifa}")

    print("\n  standart nomlar: np, pd, plt (konvensiya)")
    print("  ⭐ Kutubxonalar — Data Science yadrosi")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== Data Science asosiy kutubxonalari ===
  BOR   numpy      v2.5.3 — sonli hisoblash (massiv)
  BOR   pandas     v3.0.6 — ma'lumot (DataFrame)
  BOR   sklearn    v1.9.1 — machine learning

  standart nomlar: np, pd, plt (konvensiya)
  ⭐ Kutubxonalar — Data Science yadrosi

Nima ko'rsatdi: 2.4-bo'lim.


5. To'g'ri va noto'g'ri tushunishlar

Noto'g'ri fikr To'g'risi
"Oddiy .py yetadi" Jupyter interaktiv (DS eksperiment)
"Colab uchun to'lov" Bepul (GPU ham)
"Global o'rnatish yaxshi" Virtual muhit (izolyatsiya)
"Urug' keraksiz" Reproduksiya (takrorlanadigan)
"Kuchli noutbuk shart" Colab (bulut hisoblaydi)
"Versiya muhim emas" requirements.txt (bir xil muhit)
"Ma'lumot Git'ga" Alohida (repo shishmasin)
"Bir hujayrada hamma kod" Hujayralarga bo'l (interaktiv)

6. Keng tarqalgan xatolar va yechimlari

1. Global o'rnatish (chalkashlik)

bash
pip install pandas   # global (loyihalar to'qnashadi)         # ⚠️
python -m venv muhit; pip install pandas   # izolyatsiya       # ✅

2. Reproduksiyasiz

python
np.random.rand()   # har safar boshqa (takrorlanmaydi)         # ⚠️
np.random.seed(42); np.random.rand()   # urug' (takrorlanadi)  # ✅

3. Hamma kod bir hujayrada

python
# 100 qator bir hujayrada (interaktivlik yo'qoladi)            # ⚠️
# mantiqiy hujayralarga bo'l (tahlil, model — alohida)          # ✅

4. Katta ma'lumot Git'ga

bash
git add data.csv   # 2GB fayl (repo shishadi)                  # ⚠️
# .gitignore: *.csv (ma'lumot alohida saqlanadi)                # ✅

5. Versiya belgilanmagan

python
# requirements.txt yo'q (boshqa muhitda ishlamaydi)            # ⚠️
# pip freeze > requirements.txt (versiyalar)                    # ✅

6. Hujayralarni tartibsiz ishga tushirish

python
# hujayra 5 → hujayra 2 → hujayra 8 (holat chalkashadi)        # ⚠️
# yuqoridan pastga (Restart & Run All — tekshir)                # ✅

7. Colab sessiyasini saqlamaslik

python
# uzoq ish, saqlanmagan (sessiya uzildi — yo'qoldi)            # ⚠️
# Drive'ga saqlash (natija, model)                              # ✅

7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 1.1-dars (o'tilgan): Data Science nima
  • 3-qism: NumPy — birinchi kutubxona
  • 4-qism: Pandas — ma'lumot bilan ishlash
  • 8-qism: Vizualizatsiya (matplotlib)
  • 29-qism: MLOps — reproduksiya, deploy

8. Eng yaxshi amaliyotlar

  1. Jupyter/Colab (interaktiv eksperiment).

  2. Colab boshlovchiga (o'rnatishsiz, bepul).

  3. Virtual muhit (har loyiha — izolyatsiya).

  4. requirements.txt (kutubxona versiyalari).

  5. Urug' (seed — reproduksiya).

  6. Standart nomlar (np, pd, plt).

  7. Ma'lumot Git'dan alohida (.gitignore).

  8. Hujayralarga bo'l (Restart & Run All tekshir).


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
1.  # Jupyter Notebook nima?
2.  # hujayra (cell) nima?
3.  # Jupyter afzalligi?
4.  # Colab nima?
5.  # Colab bepulmi?
6.  # virtual muhit nima?
7.  # nega virtual muhit?
8.  # venv vs conda?
9.  # pip nima?
10. # asosiy kutubxonalar?
11. # reproduksiya nima?
12. # urug' (seed) nima?
Javoblar
  1. Interaktiv (kod+natija+izoh bir joyda, hujayralar)
  2. Alohida ishga tushiriladigan kod/matn birligi
  3. Interaktiv (natija darhol, grafik inline)
  4. Bepul bulut Jupyter (brauzerda)
  5. Ha (GPU ham bepul)
  6. Har loyiha alohida kutubxona (izolyatsiya)
  7. Versiyalar chalkashmaydi (dependency hell yo'q)
  8. venv Python standart, conda ilmiy paketlar
  9. Python paket menejeri (kutubxona o'rnatish)
  10. numpy, pandas, matplotlib, sklearn
  11. Boshqa ham bir xil natija oladi
  12. Tasodifni takrorlanadigan qiladi (seed)

Vazifa 2: Xatolarni tuzating

python
1.  pip install pandas   # global

2.  np.random.rand()   # urug'siz

3.  # 100 qator bir hujayrada

4.  git add data.csv   # 2GB

5.  # requirements.txt yo'q
Javoblar
python
1.  venv (izolyatsiya)

2.  np.random.seed(42)

3.  hujayralarga bo'l

4.  .gitignore (ma'lumot alohida)

5.  pip freeze > requirements.txt

Vazifa 3: Jupyter

Modellang:

  1. Hujayra
  2. Natija
  3. Interaktiv
  4. Markdown

Vazifa 4: Virtual muhit

Modellang:

  1. Loyiha A
  2. Loyiha B
  3. Izolyatsiya
  4. Chalkashlik yo'q

Vazifa 5: Reproduksiya

Modellang:

  1. Urug'
  2. Versiya
  3. Takrorlash
  4. Ishonch

Vazifa 6: Kutubxonalar

Modellang:

  1. numpy
  2. pandas
  3. sklearn
  4. Yadro

Vazifa 7: O'ylash

Data Science'da "reproduksiya" (boshqa kishi bir xil natija olishi) muhim — urug', versiya, kod belgilanadi. Nima uchun "takrorlanadigan ish" ilm va muhandislikda ishonchning asosi, va nega "menda ishlaydi" (works on my machine) yolg'iz o'zi yetarli emas?

Javob

Qisqa javob: "Takrorlanadigan ish" ishonchning asosi, chunki: ilm va muhandislikda natija tekshiriladigan bo'lishi kerak (boshqa ham o'sha natijani olishi — dalil); agar natija faqat bir joyda (bir kishi, bir mashina) ishlasa — u ishonchsiz (tasodifiy-mi? xato-mi? — bilib bo'lmaydi). Reproduksiya (urug' + versiya + kod) natijani mustahkam qiladi (har kim, har joyda bir xil — haqiqat). "Nega 'menda ishlaydi' yetarli emas": (1) tekshirib bo'lmaydi — faqat sizda ishlasa, boshqa tasdiqlay olmaydi (ilm — tekshiruv talab qiladi); (2) yashirin bog'liqlik — sizning mashinada maxsus versiya/sozlama bor (boshqada yo'q) → ishlamaydi (yashirin — bilinmaydi); (3) kelajakdagi siz — 6 oy keyin o'zingiz ham eslamaysiz (versiya o'zgardi — ishlamay qoldi); (4) jamoa — hamkasb kodni ishlata olmasa — foydasiz (birga ishlash — 31-qism). "Nega ilm/muhandislikda asos": ilmiy usul takrorlanishga asoslanadi (tajriba takrorlansa — haqiqat, aks holda — tasodif/xato); Data Science ilm ham (model — gipoteza, natija — tekshiriladi). Reproduksiya yo'llari: urug' (seed — tasodif bir xil), versiya (requirements.txt — muhit bir xil), kod (Git), ma'lumot (versiya). Bu umumiy tamoyil: takrorlanadigan natija — ishonch (ilm, muhandislik, biznes); "menda ishlaydi" — yolg'iz dalil emas (yashirin bog'liqlik, tekshirib bo'lmas). Data Science saboqlari: reproduksiya — ishonch asosi (takrorlanish — haqiqat); "menda ishlaydi" yetarli emas (tekshirib bo'lmaydi); urug' + versiya + kod (mustahkam); ilm takrorlanishga asoslanadi; kelajak/jamoa uchun (mustaqil). Muhit misolida: urug' + requirements.txt → boshqa ham bir xil natija (ishonch).

1. Nega takrorlanadigan ish ishonch asosi

  • Natija tekshiriladigan (boshqa ham oladi — dalil)
  • Bir joyda ishlasa — ishonchsiz (tasodif? xato?)
  • Reproduksiya mustahkam qiladi (har kim bir xil)

2. Nega "menda ishlaydi" yetarli emas

  • Tekshirib bo'lmaydi (boshqa tasdiqlay olmaydi)
  • Yashirin bog'liqlik (maxsus versiya/sozlama)
  • Kelajakdagi siz (eslamaysiz)
  • Jamoa (hamkasb ishlata olmaydi)

3. Ilmiy usul asosi

Takrorlanish → haqiqat. Takrorlanmasa → tasodif/xato. Data Science ilm ham (model — gipoteza).

4. Reproduksiya yo'llari

Urug' (seed), versiya (requirements.txt), kod (Git), ma'lumot (versiya).

5. Data Science saboqlari

  1. Reproduksiya — ishonch asosi (takrorlanish)
  2. "Menda ishlaydi" yetarli emas (tekshirib bo'lmas)
  3. Urug' + versiya + kod (mustahkam)
  4. Ilm takrorlanishga asoslanadi

6. Xulosa

  1. Takrorlanadigan — ishonch (ilm, muhandislik)
  2. "Menda ishlaydi" — yashirin bog'liqlik (yetarli emas)
  3. Reproduksiya — urug' + versiya + kod
  4. Boshqa ham bir xil natija (haqiqat)

Nimani mustahkamlaydi: 2.5, 2.8-bo'limlar.


Xulosa

Bu darsda Data Science muhitini o'rgandik.

Eng muhim uch fikr:

  1. Jupyter va Colab. Jupyter Notebook — Data Science'ning asosiy interaktiv vositasi: kod, natija, grafik, izoh bir hujjatda (.ipynb), hujayralarga bo'lingan (har biri alohida ishga tushiriladi); ma'lumot tahlili eksperimental (hujayra ishga tush → natija darhol → keyingisi), grafik inline, Markdown izoh. Google Colab — bepul bulut Jupyter (brauzerda, o'rnatishsiz, GPU/TPU bepul, Drive); kuchli noutbuk kerak emas (bulut hisoblaydi), boshlovchiga ideal.

  2. Virtual muhit va kutubxonalar. Virtual muhit (venv/conda) — har loyiha uchun izolyatsiyalangan kutubxona to'plami (python -m venv); turli loyiha turli versiya talab qiladi, global o'rnatish chalkashish ("dependency hell"), virtual muhit izolyatsiya. Paketlar (pip install) va asosiy kutubxonalar: numpy (np — massiv), pandas (pd — DataFrame), matplotlib (plt — grafik), scikit-learn (ML), torch (DL); standart nomlar (konvensiya), Data Science yadrosi.

  3. Reproduksiya va poydevor. Reproduksiya — boshqa kishi bir xil natija olishi: urug' (np.random.seed(42) — tasodif takrorlanadi), requirements.txt (versiyalar), Git (kod); Data Science tasodifiy elementlar/versiya farqi tufayli reproduksiya zarur (ishonch — ilmiy usul). Muhit — samarali va takrorlanadigan ishning poydevori: to'g'ri muhit ishni tez (interaktiv), tartibli (izolyatsiya), takrorlanadigan (reproduksiya) qiladi. "Menda ishlaydi" yolg'iz yetarli emas (yashirin bog'liqlik, tekshirib bo'lmas) — takrorlanadigan ish ilm/muhandislik ishonchining asosi.

Keyingi darsda NumPy ni o'rganamiz: Data Science'ning sonli poydevori — massiv (ndarray), vektorlashtirilgan amallar va tez hisoblash. Bu birinchi real kutubxona.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
1.2-dars: Muhit va vositalar — IlmHamroh