Oy 2 — Klassik ML (Scikit-learn)
🎯 Bu oydagi maqsad
Oy oxirida siz quyidagilarni qilolasiz:
- Real biznes muammosini ML masalasiga aylantirish (regression / classification / clustering)
- Scikit-learn bilan to'liq ML pipeline qurish
- Modelni baholash va xato turlarini tushunish
- XGBoost/LightGBM bilan production darajadagi modellar yaratish
- Kaggle competition'da qatnashish va top 30%'ga kirish
Haftalik taqsimot
| Hafta | Mavzu | Vaqt |
|---|---|---|
| Hafta 1 | ML asoslari + Regression | 10-12 soat |
| Hafta 2 | Classification + Clustering | 10-12 soat |
| Hafta 3 | Feature Engineering + Evaluation | 8-10 soat |
| Hafta 4 | Ensembles (XGBoost/LightGBM) + Kaggle | 12-15 soat |
Boblar tartibi
- ML ga kirish — terminlar, jarayon, training/test split
- Regression — uzluksiz qiymatni bashorat qilish
- Classification — sinflarga ajratish
- Clustering — unsupervised guruhlash
- Feature Engineering — feature'larni tayyorlash va yaratish
- Model Evaluation — metrik va validation
- Ensemble Methods — Random Forest, XGBoost, LightGBM
- Mashqlar — qo'shimcha mashqlar va Kaggle topshiriqlari
Oy oxirida nima qila olasiz?
- Tabular ma'lumotlarda 80% problemalarni hal qilish (regression, classification, clustering)
- Scikit-learn
Pipelineyordamida reproducible kod yozish - Modelni
joblibbilan saqlash va FastAPI'da serve qilish - XGBoost/LightGBM bilan Kaggle'da top 30%
- ML modelining biznes uchun ROIni tushuntirish
Backend Dev uchun maslahat
Backend'da REST API yozish kabi, ML'da fit() → predict() pattern bor:
# Backend pattern
@app.post("/users")
def create_user(data: UserIn):
user = User(**data.dict())
db.add(user)
return user
# ML pattern
model = LogisticRegression()
model.fit(X_train, y_train) # "train" qilish
predictions = model.predict(X_test) # "predict" qilish
Bu pattern barcha sklearn modellarda bir xil — agar LinearRegressionni bilsangiz, RandomForestni ham bilasiz.
MLOps integration (boshidan)
Backend dev'ning ustunligi — production thinking. Birinchi modelni yozayotganingizda allaqachon o'ylang:
- Reproducibility —
random_state=42har joyda - Saqlash —
joblib.dump(model, 'model.pkl') - Versioning —
model_v1.pkl,model_v2.pkl - Schema — Pydantic bilan input/output validation
- Logging — har bashorat uchun timestamp va input
Bu mavzular Oy 6 (MLOps)'da chuqurroq, lekin birinchi kunidan boshlang.
Boshlash
ML ga kirish bilan boshlang.