2-bo‘lim

Ish muhitini sozlash

Python, virtual muhit, kutubxonalar va Jupyter Notebook ni o'rnatish hamda birinchi kodni ishga tushirish.

🕑 16 daqiqa o‘qish 📄 852 so‘z 👁 6 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Python o'rnatish
  2. Virtual muhit
  3. Kutubxonalarni o'rnatish
  4. Jupyter Notebook
  5. Foydali tugmalar
  6. Muqobil muhitlar
  7. Birinchi kod
  8. To'liq ishlaydigan misol
  9. Loyiha tuzilishi
  10. Foydali sozlamalar
  11. Xulosa

Mashinali o'qitish uchun bir nechta vosita kerak. Ularni bir marta to'g'ri sozlab olsak, keyingi bo'limlar silliq ketadi.

Python o'rnatish #

Terminal
python --version
Natija
Python 3.12.4

Agar Python o'rnatilmagan bo'lsa, python.org dan yuklab oling.

Windows da "Add to PATH" ni belgilang

O'rnatuvchining birinchi ekranida "Add Python to PATH" katagini albatta belgilang. Aks holda terminalda python buyrug'i ishlamaydi.

Unutgan bo'lsangiz - o'rnatuvchini qayta ishga tushirib, "Modify" ni tanlang.

Anaconda - muqobil yo'l

anaconda.com - Python va barcha ML kutubxonalari bir paketda keladi.

Toza PythonAnaconda
Hajmi~30 MB~500 MB
KutubxonalarQo'lda o'rnatiladiTayyor
Boshlovchi uchunO'rtachaOsonroq
NazoratTo'liqKamroq

Ushbu darslikda toza Python ishlatiladi - u qanday ishlashini yaxshiroq tushunasiz.

Virtual muhit #

Har bir loyiha uchun alohida muhit yaratish - majburiy odat.

Terminal
mkdir ml-loyiham
cd ml-loyiham

# Muhit yaratish
python -m venv muhit

# Faollashtirish - Windows
muhit\Scripts\activate

# Faollashtirish - macOS, Linux
source muhit/bin/activate
Natija
(muhit) C:\Users\husanboy\ml-loyiham>

Qavs ichidagi (muhit) - muhit faol ekanini bildiradi.

Terminal
# Chiqish
deactivate
Nima uchun virtual muhit kerak?

A loyihasi scikit-learn 1.2 ni, B loyihasi scikit-learn 1.5 ni talab qiladi. Global o'rnatishda bu ikkisi bir vaqtda tura olmaydi.

Virtual muhit har bir loyihaga o'z kutubxonalar to'plamini beradi.

muhit/ ni Git ga qo'shmang
Natija
# .gitignore
muhit/
venv/
__pycache__/
*.pyc
.ipynb_checkpoints/

O'rniga bog'liqliklar ro'yxatini saqlang:

Terminal
pip freeze > requirements.txt

Kutubxonalarni o'rnatish #

Terminal
pip install numpy pandas matplotlib seaborn scikit-learn jupyter
KutubxonaVazifasi
NumPyTez massivlar va matematik amallar
PandasJadval ko'rinishidagi ma'lumot bilan ishlash
MatplotlibGrafiklar chizish
SeabornMatplotlib ustidagi chiroyli statistik grafiklar
scikit-learnAsosiy ML algoritmlari
JupyterInteraktiv daftar muhiti
Terminal
# Tekshirish
pip list
Natija
Package         Version
--------------- -------
jupyter         1.0.0
matplotlib      3.9.0
numpy           2.0.0
pandas          2.2.2
scikit-learn    1.5.0
seaborn         0.13.2
Aniq versiyalarni yozib qo'ying
Terminal
pip freeze > requirements.txt
Natija
numpy==2.0.0
pandas==2.2.2
scikit-learn==1.5.0

Boshqa kompyuterda:

Terminal
pip install -r requirements.txt

Bu "menda ishlaydi, sizda ishlamaydi" muammosini oldini oladi.

Jupyter Notebook #

Ma'lumot tahlili uchun eng qulay muhit: kodni qismlarga bo'lib ishga tushirasiz va natijani darhol ko'rasiz.

Terminal
jupyter notebook

Brauzerda http://localhost:8888 ochiladi.

tahlil.ipynb Python 3 (ishlamoqda) [1]: import pandas as pd malumot = pd.read_csv('uylar.csv') [2]: malumot.head(3) maydon xonalar narx 0 65 2 620 [ ]: keyingi katak... Har bir katak alohida ishga tushiriladi, natija darhol ko'rinadi
Jupyter - eksperiment qilish uchun ideal muhit

Foydali tugmalar #

TugmaAmal
Shift + EnterKatakni ishga tushirish va keyingisiga o'tish
Ctrl + EnterIshga tushirish, shu yerda qolish
Alt + EnterIshga tushirish va yangi katak qo'shish
Esc keyin AYuqoriga katak qo'shish
Esc keyin BPastga katak qo'shish
Esc keyin D DKatakni o'chirish
Esc keyin MMatn (Markdown) katagiga aylantirish
Esc keyin YKod katagiga aylantirish
Katak tartibi chalkashtiradi

Jupyter da kataklarni istalgan tartibda ishga tushirish mumkin. Bu qulay, lekin xavfli: yuqoridan pastga qayta ishga tushirganda kod ishlamay qolishi mumkin.

Ishni tugatgach har doim Kernel → Restart & Run All qiling. Agar xatosiz o'tsa - daftar haqiqatan ishlaydi.

Muqobil muhitlar #

MuhitXususiyati
Jupyter NotebookKlassik, brauzerda
JupyterLabZamonaviyroq, ko'p oynali
VS Code.ipynb fayllarni to'g'ridan-to'g'ri ochadi
Google ColabBulutda, bepul GPU, o'rnatish shart emas
Kaggle NotebooksBulutda, ma'lumotlar to'plamlari bilan
Google Colab

colab.research.google.com

Kompyuteringiz kuchsiz bo'lsa yoki hech nima o'rnatmoqchi bo'lmasangiz - bu eng oson yo'l. Brauzer va Google hisobi yetarli.

Bepul GPU ham beriladi - neyron tarmoqlar uchun juda foydali.

Birinchi kod #

Yangi daftar yarating va sinab ko'ring:

Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn

print("NumPy:       ", np.__version__)
print("Pandas:      ", pd.__version__)
print("scikit-learn:", sklearn.__version__)
Natija
NumPy:        2.0.0
Pandas:       2.2.2
scikit-learn: 1.5.0

To'liq ishlaydigan misol #

Hamma narsa to'g'ri sozlanganini tekshirish uchun:

Python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# Sun'iy ma'lumot yaratamiz: uy maydoni va narxi
np.random.seed(42)

maydon = np.random.uniform(40, 150, 50).reshape(-1, 1)
narx = maydon.flatten() * 8 + np.random.normal(0, 60, 50) + 100

# Modelni o'qitamiz
model = LinearRegression()
model.fit(maydon, narx)

bashorat = model.predict(maydon)

print(f"Koeffitsiyent: {model.coef_[0]:.2f}")
print(f"Kesishma:      {model.intercept_:.2f}")
print(f"Aniqlik (R2):  {model.score(maydon, narx):.3f}")
Natija
Koeffitsiyent: 7.94
Kesishma:      107.31
Aniqlik (R2):  0.947
Python
plt.figure(figsize=(8, 5))
plt.scatter(maydon, narx, alpha=0.7, label="Haqiqiy narxlar")
plt.plot(maydon, bashorat, color="red", linewidth=2, label="Model bashorati")
plt.xlabel("Maydon (m2)")
plt.ylabel("Narx (mln so'm)")
plt.title("Uy maydoni va narxi bog'liqligi")
plt.legend()
plt.grid(alpha=0.3)
plt.show()
Maydon (m2) Narx (mln so'm) 40 67 95 122 150 400 650 900 1150 1400 Haqiqiy narxlar Model bashorati
Model nuqtalar orasidan eng mos to'g'ri chiziqni topdi
Bu allaqachon mashinali o'qitish

Yuqoridagi 10 satr kod - to'liq ML modeli. Siz:

  1. Ma'lumot bergansiz
  2. Model uni o'zi tahlil qilgan
  3. Bog'liqlikni topgan
  4. Endi yangi uy uchun narx aytishi mumkin
Python
yangi_uy = np.array([[85]])
print(f"Bashorat: {model.predict(yangi_uy)[0]:.0f} mln so'm")
Natija
Bashorat: 782 mln so'm

Loyiha tuzilishi #

Natija
ml-loyiham/
├── muhit/                  # virtual muhit (Git ga kirmaydi)
├── malumotlar/
│   ├── xom/                # o'zgartirilmagan asl fayllar
│   └── tayyor/             # tozalangan ma'lumot
├── daftarlar/
│   ├── 01-tahlil.ipynb
│   └── 02-model.ipynb
├── manba/
│   ├── tayyorlash.py
│   └── model.py
├── modellar/               # saqlangan modellar
├── .gitignore
├── requirements.txt
└── README.md
Xom ma'lumotga tegmang

malumotlar/xom/ papkasidagi fayllarni hech qachon o'zgartirmang.

Har qanday tozalash natijasi tayyor/ ga saqlansin. Xato qilsangiz, har doim boshidan boshlash imkoni bo'ladi.

Foydali sozlamalar #

Python
import pandas as pd

# Barcha ustunlarni ko'rsatish
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 200)

# Kasr sonlarni chiroyli ko'rsatish
pd.set_option('display.float_format', '{:.2f}'.format)
Python
# Grafiklarni daftar ichida ko'rsatish (eski versiyalarda kerak)
%matplotlib inline

# Ogohlantirishlarni yashirish
import warnings
warnings.filterwarnings('ignore')
Ogohlantirishlarni butunlay yashirmang

filterwarnings('ignore') qulay, lekin muhim xabarlarni ham yashiradi.

Faqat aniq bir turdagi ogohlantirishni yashiring:

Python
warnings.filterwarnings('ignore', category=FutureWarning)
Amaliy topshiriq
  1. Python o'rnating va python --version bilan tekshiring.
  2. ml-loyiham papkasini yarating va virtual muhit oching.
  3. Muhitni faollashtiring va kutubxonalarni o'rnating.
  4. pip freeze > requirements.txt qiling va faylni oching.
  5. Jupyter Notebook ni ishga tushiring.
  6. Yangi daftar yarating va versiyalarni chop etuvchi kodni yozing.
  7. Yuqoridagi chiziqli regressiya misolini to'liq ishga tushiring.
  8. np.random.seed(42) ni seed(7) ga o'zgartiring - natija boshqacha bo'lishini ko'ring.
  9. Yuqoridagi loyiha tuzilishini yarating va .gitignore yozing.
  10. Google Colab da ham xuddi shu kodni ishga tushirib ko'ring.

Xulosa #

  • Har bir loyiha uchun virtual muhit yarating: python -m venv muhit.
  • Asosiy kutubxonalar: NumPy, Pandas, Matplotlib, scikit-learn.
  • requirements.txt bog'liqliklarni aniq versiyalar bilan saqlaydi.
  • Jupyter Notebook - kodni qismlarga bo'lib ishlatish uchun ideal.
  • Ishni tugatgach Restart & Run All bilan tekshiring.
  • Google Colab - o'rnatishsiz va bepul GPU bilan ishlash imkoni.
  • Xom ma'lumotni hech qachon o'zgartirmang - alohida papkada saqlang.
  • muhit/, __pycache__/, .ipynb_checkpoints/ ni .gitignore ga qo'ying.

Keyingi bo'limda NumPy bilan tanishamiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.