IlmHamroh
Data Science va sun'iy intellekt/Malumotni tozalash5/12-dars18 daqiqa
Mundarija (22)

6.5-dars: Normalizatsiya

6-QISM — MA'LUMOTNI TOZALASH · 5-dars


1. Kirish va motivatsiya

Ma'lumotda ustunlar turli masshtabda bo'ladi: yosh 0-100, daromad 0-1000000, ball 0-5. Ba'zi modellar (masalan masofaga asoslangan — KNN, K-means, neyron tarmoq) uchun bu muammo: katta masshtabli ustun (daromad) kichikni (yosh) bostiradi — masofa hisoblashda daromad hukmronlik qiladi, yosh e'tiborga olinmaydi. Normalizatsiya (normalization) — ustunlarni bir masshtabga keltirish. Eng ko'p ishlatiladigan — Min-Max (0-1 oralig'iga): (x - min) / (max - min). Bu barcha ustunni teng maydonga qo'yadi. Bu darsda Min-Max normalizatsiya, qachon kerak, va sklearn'ning MinMaxScaler. Nega muhim? (1) Teng — ustunlar bir masshtab (biri bostirmaydi); (2) Model — masofaga asoslangan (KNN, neyron) uchun shart; (3) Oraliq — 0-1 (aniq chegara). Bu dars normalizatsiyani o'rgatadi — bir masshtabga keltirish.

Normalizatsiya (normalization) — bir masshtabga: Min-Max ((x - min) / (max - min) — 0-1 oraliq), sklearn (MinMaxScaler — 20-qism), qachon (masofaga asoslangan — KNN, K-means, neyron), teng maydon (katta ustun bostirmasin), oraliq (0-1 — aniq chegara), standartlashtirish farqi (6.6 — z-score; normalizatsiya Min-Max). Foydalanish: ustunlarni tenglash, model uchun tayyorlash. Bu 6.6 (standartlashtirish), 4.3 (min/max/tarqoqlik), 20-qism (ML) bilan bog'liq. Normalizatsiya — bir masshtabga (Min-Max 0-1). Masshtab. Teng.

Real vaziyat. Data Scientist mijoz ma'lumotida model qurmoqchi (yosh 18-70, daromad 300-50000). Muammo (KNN): masofa hisoblash — sqrt((yosh1-yosh2)^2 + (daromad1-daromad2)^2); daromad farqi ulkan (50000-300 = 49700), yosh farqi kichik (70-18 = 52); daromad hukmronlik (yosh e'tiborsiz — model faqat daromadga qaraydi). Normalizatsiya (Min-Max): yosh → 0-1, daromad → 0-1 (ikkalasi teng maydon); endi masofa adolatli (yosh ham, daromad ham hisobga olinadi). Data Scientist normalizatsiya qildi (Min-Max — 0-1), model adolatli (ustunlar teng). Normalizatsiya — bir masshtabga.

Bu darsda normalizatsiyani o'rganamiz.

Bu darsda:

  • Min-Max normalizatsiya (0-1)
  • Nega kerak (masshtab muammosi)
  • sklearn MinMaxScaler
  • Qachon kerak (qaysi model)
  • Normalizatsiya va outlier
  • Normalizatsiya amaliyoti
  • Normalizatsiya tuzoqlari
  • Amaliy: normalizatsiya

ℹ Misollar real pandas/numpy/sklearn bilan (Python 3.14) ishlaydi.


2. Nazariya — chuqur tushuntirish

2.1. Min-Max normalizatsiya (0-1)

Formulasi:

python
# Min-Max: (x - min) / (max - min) → 0-1 oralig'iga
normalized = (x - x.min()) / (x.max() - x.min())

# min → 0, max → 1, o'rtadagilar oraliqda
# masalan: [10, 20, 30] → [0.0, 0.5, 1.0]

Min-Max normalizatsiya (0-1) — formula: (x - min) / (max - min) — qiymatni 0-1 oralig'iga (min → 0, max → 1, o'rtadagilar oraliqda); [10, 20, 30] → [0.0, 0.5, 1.0]. Sabab: turli masshtab (yosh 0-100, daromad 0-1M) → bir masshtab (0-1 — teng); formula — har qiymatdan min ayirib, diapazon (max-min) ga bo'lish (nisbiy o'rin — 0-1). min → 0 (eng kichik), max → 1 (eng katta), oraliq (nisbiy). Min-Max — (x-min)/(max-min) (0-1; nisbiy o'rin). Min-Max. 0-1.

2.2. Nega kerak (masshtab muammosi)

Nega kerak (masshtab muammosi) — bostirish: turli masshtabda ustunlar — katta masshtab kichikni bostiradi (masofa/og'irlik hisobida hukmronlik); KNN/K-means (masofa — sqrt((yosh farqi)^2 + (daromad farqi)^2); daromad farqi ulkan — hukmron; yosh e'tiborsiz), neyron tarmoq (og'irlik — katta kirish sekin o'rganiladi), gradient tushish (katta masshtab — sekin/beqaror konvergensiya). Sabab: model son qiymatiga qaraydi (masshtab — ma'no emas; 50000 daromad > 50 yosh — ma'noli emas, faqat masshtab); normalizatsiya → teng (ustunlar bir maydon; adolatli). Masofa (KNN — katta hukmron), neyron (og'irlik — sekin), gradient (konvergensiya). Nega kerak — masshtab bostirish (katta kichikni; teng). Bostirish. Teng.

2.3. sklearn MinMaxScaler

sklearn MinMaxScaler — kutubxona usuli: from sklearn.preprocessing import MinMaxScaler; scaler.fit_transform(X) (o'rgan + qo'lla — 0-1); fit (min/max o'rgan — o'quv to'plami), transform (qo'lla — test to'plami; bir xil min/max). Sabab: sklearn — standart (ML quvuri — 20-qism; fit/transform ajratilgan); muhim: fit faqat o'quv to'plamida (test — transform bilan; o'quv min/max; aks holda ma'lumot sizishi — test ma'lumoti o'quvga ta'sir; 20-qism). fit_transform (o'quv — o'rgan + qo'lla), transform (test — qo'lla; o'quv min/max), sizish (test fit — xato). sklearn MinMaxScaler — fit_transform (o'quv), transform (test). Scaler. fit/transform.

2.4. Qachon kerak (qaysi model)

Qachon kerak (qaysi model) — modelga bog'liq: KERAK — masofaga asoslangan (KNN, K-means — masofa; SVM — masofa/chegara), neyron tarmoq (gradient — masshtab), gradient tushish (regressiya — konvergensiya; regularizatsiya — jazo teng); KERAK EMAS — daraxt asosli (Decision Tree, Random Forest, XGBoost — bo'lish (>chegara); masshtab ta'sir qilmaydi — har ustun alohida bo'linadi). Sabab: model turi — masofa/gradient (masshtab muhim — normalizatsiya) yoki bo'lish (masshtab befarq — daraxt); keraksiz normalizatsiya (daraxt — ziyon emas, lekin ortiqcha). Masofa/neyron/gradient (kerak), daraxt (kerak emas). Qachon kerak — model turi (masofa/gradient kerak; daraxt emas). Model. Masofa.

2.5. Normalizatsiya va outlier

Normalizatsiya va outlier — Min-Max sezgir: Min-Max outlierga sezgir ((x-min)/(max-min) — max outlier bo'lsa (50000), diapazon ulkan (50000-300); qolgan qiymatlar 0'ga yaqin siqiladi (300-800 → 0.00-0.01; farq yo'qoladi)); outlier — normalizatsiyani buzadi. Sabab: min/max — chetki qiymatlar (outlier — 4.3; max outlier → diapazon buziladi); hal — avval outlier hal (6.3 — o'chir/clip; keyin normalizatsiya), yoki standartlashtirish (6.6 — z-score; o'rtacha/std; outlierga kamroq sezgir), yoki RobustScaler (median/IQR — chidamli). Min-Max (outlier sezgir — diapazon), outlier avval (clip — 6.3), RobustScaler (chidamli). Normalizatsiya va outlier — Min-Max sezgir (outlier avval; RobustScaler). Outlier. Sezgir.

2.6. Normalizatsiya amaliyoti

Normalizatsiya amaliyoti: model tekshir (masofaga asoslanganmi — KNN/neyron kerak; daraxt kerak emas); outlier hal (avval — 6.3 clip; Min-Max sezgir); Min-Max ((x-min)/(max-min) yoki MinMaxScaler); fit/transform (o'quv fit_transform, test transform — o'quv min/max; sizish yo'q); son ustun (faqat son — kategoriya emas); tekshir (0-1 oraliq). Tuzoqlar: keraksiz (daraxt — ortiqcha), outlier (Min-Max buziladi — avval hal), test fit (sizish — o'quv min/max), kategoriya (son emas), target normalizatsiya (odatda kerak emas). Amaliyot — model, outlier, Min-Max, fit/transform. Masshtab. Teng.

2.7. Normalizatsiya tuzoqlari

Normalizatsiya asosiy tuzoqlari: keraksiz normalizatsiya (daraxt asosli (Random Forest, XGBoost — bo'lish; masshtab befarq) — normalizatsiya ortiqcha (ziyon emas, lekin keraksiz); model turini bil); outlier buzadi (Min-Max — max/min ga bog'liq; outlier (50000) → diapazon ulkan → qolgan 0'ga siqiladi (farq yo'q); avval outlier hal 6.3-bob yoki RobustScaler); test fit (fit faqat o'quv to'plamida; test'ni fit qilish → ma'lumot sizishi (test min/max — o'quvga; noto'g'ri baholash; 20-qism); test — transform); kategoriya normalizatsiya (son ustun (yosh, daromad); kategoriya (shahar, jins — kodlangan 0/1) normalizatsiya ma'nosiz; faqat son); target (y) normalizatsiya (odatda xususiyat (X) normalizatsiya; target (y — bashorat) odatda emas (ba'zan regressiyada — keyin teskari)); yangi qiymat oraliqdan tashqari (test/yangi ma'lumot — o'quv min/max bilan; yangi qiymat min'dan past/max'dan katta → 0'dan past yoki 1'dan katta (normal — clip yoki e'tibor)); normalizatsiya vs standartlashtirish (Min-Max (0-1 — chegara; outlier sezgir) vs z-score (o'rtacha 0 — chegarasiz; outlier chidamliroq; 6.6); tanlov — model/ma'lumot); inverse unut (target normalizatsiya qilinsa — bashorat teskari (inverse_transform) — asl birlik). Sabab: normalizatsiya model/outlier/sizish nozik (keraksiz, outlier, test fit — noto'g'ri). Yechim: model turi, outlier avval, o'quv fit, son ustun. Tuzoqlar — keraksiz, outlier, test fit, kategoriya.

2.8. Normalizatsiya — bir masshtabga keltirish

Normalizatsiya asosiy g'oyasi — bir masshtabga keltirish: ustunlar turli masshtabda (yosh 0-100, daromad 0-1M) → muammo (masofaga asoslangan model — katta ustun kichikni bostiradi; KNN/K-means/neyron); bir masshtab (teng — adolatli). Min-Max ((x-min)/(max-min) — 0-1 oraliq; min→0, max→1), sklearn (MinMaxScaler — fit_transform o'quv, transform test; sizish yo'q), qachon (masofa/gradient — KNN, neyron kerak; daraxt — kerak emas), outlier (Min-Max sezgir — max outlier diapazon buzadi; avval hal 6.3 yoki RobustScaler), standartlashtirish farqi (6.6 — z-score; Min-Max 0-1 chegara, z-score o'rtacha 0 chegarasiz). Foydalanish: ustunlarni tenglash (biri bostirmasin), model uchun tayyorlash (masofa/gradient — 20-qism). Tuzoqlar: keraksiz (daraxt — ortiqcha), outlier (Min-Max buziladi — avval), test fit (sizish — o'quv min/max), kategoriya (son emas), yangi qiymat oraliqdan tashqari (clip). Bu 6.6 (standartlashtirish — z-score), 4.3 (min/max), 6.3 (outlier), 20-qism (ML — scaler) bilan. Normalizatsiya — bir masshtabga (Min-Max 0-1; masofa/gradient model). Masshtab. Teng. Min-Max.


3. Tez ma'lumotnoma

python
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler

# MIN-MAX (qo'lda):
df["x_norm"] = (df["x"] - df["x"].min()) / (df["x"].max() - df["x"].min())
#   min → 0, max → 1

# SKLEARN (ML quvuri — 20-qism):
scaler = MinMaxScaler()
X_train_norm = scaler.fit_transform(X_train)   # o'quv: fit + transform
X_test_norm = scaler.transform(X_test)         # test: transform (o'quv min/max)
#   test'ni fit QILMA (ma'lumot sizishi)

# QACHON KERAK:
#   KERAK  — masofa (KNN, K-means, SVM), neyron, gradient
#   EMAS   — daraxt (Random Forest, XGBoost — bo'lish; masshtab befarq)

# OUTLIER: Min-Max sezgir (max outlier → diapazon buzadi)
#   avval outlier hal (6.3 clip) yoki RobustScaler (median/IQR)

# NORMALIZATSIYA vs STANDARTLASHTIRISH:
#   Min-Max (0-1; chegara; outlier sezgir)
#   z-score (o'rtacha 0; chegarasiz; chidamliroq — 6.6)
QOIDA: model turi · outlier avval · o'quv fit · son ustun

Normalizatsiya xulosasi

Normalizatsiya — bir masshtabga (Min-Max 0-1)
Min-Max — (x-min)/(max-min) (min→0, max→1)
Nega — masshtab bostirish (katta kichikni; masofa model)
sklearn — MinMaxScaler (o'quv fit, test transform; sizish yo'q)
Qachon — masofa/gradient kerak; daraxt kerak emas

4. Batafsil misollar

Misollar real pandas/numpy/sklearn bilan (Python 3.14) ishlaydi.

Misol 1 — Min-Max (qo'lda)

python
"""Min-Max normalizatsiya (real pandas)."""

import pandas as pd


def main() -> None:
    df = pd.DataFrame({
        "yosh": [18, 30, 45, 60, 70],
        "daromad": [300, 5000, 20000, 40000, 50000],
    })

    print("=== 1. Turli masshtab ===")
    print(f"  yosh: {df['yosh'].min()}-{df['yosh'].max()}")
    print(f"  daromad: {df['daromad'].min()}-{df['daromad'].max()}")

    print("\n=== 2. Min-Max (yosh) ===")
    df["yosh_norm"] = (df["yosh"] - df["yosh"].min()) / (df["yosh"].max() - df["yosh"].min())
    print(f"  {df['yosh_norm'].round(2).tolist()}")

    print("\n=== 3. Min-Max (daromad) ===")
    df["daromad_norm"] = (df["daromad"] - df["daromad"].min()) / (df["daromad"].max() - df["daromad"].min())
    print(f"  {df['daromad_norm'].round(2).tolist()}")

    print("\n=== 4. Endi teng masshtab ===")
    print(f"  ikkalasi 0-1 oralig'ida")
    print("  ⭐ Min-Max — bir masshtabga (0-1)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Turli masshtab ===
  yosh: 18-70
  daromad: 300-50000

=== 2. Min-Max (yosh) ===
  [0.0, 0.23, 0.52, 0.81, 1.0]

=== 3. Min-Max (daromad) ===
  [0.0, 0.09, 0.4, 0.8, 1.0]

=== 4. Endi teng masshtab ===
  ikkalasi 0-1 oralig'ida
  ⭐ Min-Max — bir masshtabga (0-1)

Nima ko'rsatdi: 2.1-bo'lim.

Misol 2 — Masshtab muammosi (masofa)

python
"""Masshtab muammosi: masofa (real numpy)."""

import numpy as np


def main() -> None:
    # ikki mijoz: yosh va daromad
    a = np.array([25, 30000])   # yosh 25, daromad 30000
    b = np.array([50, 31000])   # yosh 50, daromad 31000

    print("=== 1. Normalizatsiyasiz masofa ===")
    masofa = np.sqrt(((a - b) ** 2).sum())
    print(f"  masofa: {masofa.round(0)}")
    print(f"  yosh farqi: {abs(a[0]-b[0])} (25 yil!)")
    print(f"  daromad farqi: {abs(a[1]-b[1])} (1000)")
    print("  daromad hukmron (yosh e'tiborsiz)")

    print("\n=== 2. Normalizatsiya (0-1) ===")
    # faraz: yosh 18-70, daromad 300-50000
    a_norm = np.array([(25-18)/(70-18), (30000-300)/(50000-300)])
    b_norm = np.array([(50-18)/(70-18), (31000-300)/(50000-300)])
    print(f"  a: {a_norm.round(2)}, b: {b_norm.round(2)}")

    print("\n=== 3. Normalizatsiyalangan masofa ===")
    masofa_norm = np.sqrt(((a_norm - b_norm) ** 2).sum())
    print(f"  masofa: {masofa_norm.round(2)}")
    print("  endi yosh ham hisobga olindi (adolatli)")

    print("\n=== 4. Xulosa ===")
    print("  normalizatsiyasiz: daromad hukmron")
    print("  ⭐ Masshtab muammosi (katta bostiradi)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Normalizatsiyasiz masofa ===
  masofa: 1000.0
  yosh farqi: 25 (25 yil!)
  daromad farqi: 1000 (1000)
  daromad hukmron (yosh e'tiborsiz)

=== 2. Normalizatsiya (0-1) ===
  a: [0.13 0.6 ], b: [0.62 0.62]

=== 3. Normalizatsiyalangan masofa ===
  masofa: 0.48
  endi yosh ham hisobga olindi (adolatli)

=== 4. Xulosa ===
  normalizatsiyasiz: daromad hukmron
  ⭐ Masshtab muammosi (katta bostiradi)

Nima ko'rsatdi: 2.2-bo'lim.

Misol 3 — sklearn MinMaxScaler

python
"""sklearn MinMaxScaler (real sklearn)."""

import numpy as np
from sklearn.preprocessing import MinMaxScaler


def main() -> None:
    X_train = np.array([[18, 300], [30, 5000], [45, 20000], [70, 50000]])
    X_test = np.array([[25, 3000], [55, 35000]])

    print("=== 1. MinMaxScaler (o'quv — fit_transform) ===")
    scaler = MinMaxScaler()
    X_train_norm = scaler.fit_transform(X_train)
    print(f"  o'quv normalizatsiya:\n{X_train_norm.round(2)}")

    print("\n=== 2. O'rgangan min/max ===")
    print(f"  min: {scaler.data_min_}")
    print(f"  max: {scaler.data_max_}")

    print("\n=== 3. Test (transform — o'quv min/max) ===")
    X_test_norm = scaler.transform(X_test)
    print(f"  test normalizatsiya:\n{X_test_norm.round(2)}")

    print("\n=== 4. Nega test fit emas ===")
    print("  test fit → ma'lumot sizishi (o'quv min/max ishlatiladi)")
    print("  ⭐ MinMaxScaler — o'quv fit, test transform")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. MinMaxScaler (o'quv — fit_transform) ===
  o'quv normalizatsiya:
[[0.   0.  ]
 [0.23 0.09]
 [0.52 0.4 ]
 [1.   1.  ]]

=== 2. O'rgangan min/max ===
  min: [ 18. 300.]
  max: [   70. 50000.]

=== 3. Test (transform — o'quv min/max) ===
  test normalizatsiya:
[[0.13 0.05]
 [0.71 0.7 ]]

=== 4. Nega test fit emas ===
  test fit → ma'lumot sizishi (o'quv min/max ishlatiladi)
  ⭐ MinMaxScaler — o'quv fit, test transform

Nima ko'rsatdi: 2.3-bo'lim.

Misol 4 — Outlier va Min-Max

python
"""Outlier Min-Max ni buzadi (real pandas)."""

import pandas as pd


def main() -> None:
    normal = pd.Series([400, 450, 500, 550, 600])
    outlierli = pd.Series([400, 450, 500, 550, 50000])   # outlier

    print("=== 1. Normal (outlier'siz) Min-Max ===")
    n_norm = (normal - normal.min()) / (normal.max() - normal.min())
    print(f"  {n_norm.round(3).tolist()}")

    print("\n=== 2. Outlier bilan Min-Max ===")
    o_norm = (outlierli - outlierli.min()) / (outlierli.max() - outlierli.min())
    print(f"  {o_norm.round(4).tolist()}")

    print("\n=== 3. Muammo ===")
    print("  outlier max=50000 → diapazon ulkan")
    print("  qolgan qiymatlar 0'ga siqildi (farq yo'q)")

    print("\n=== 4. Hal ===")
    print("  avval outlier hal (6.3 clip) yoki RobustScaler")
    print("  ⭐ Min-Max outlierga sezgir")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Normal (outlier'siz) Min-Max ===
  [0.0, 0.25, 0.5, 0.75, 1.0]

=== 2. Outlier bilan Min-Max ===
  [0.0, 0.001, 0.002, 0.003, 1.0]

=== 3. Muammo ===
  outlier max=50000 → diapazon ulkan
  qolgan qiymatlar 0'ga siqildi (farq yo'q)

=== 4. Hal ===
  avval outlier hal (6.3 clip) yoki RobustScaler
  ⭐ Min-Max outlierga sezgir

Nima ko'rsatdi: 2.5-bo'lim.


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

Noto'g'ri fikr To'g'risi
"normalizatsiya har doim" Masofa/gradient (daraxt emas)
"har model uchun" Daraxt — kerak emas
"test'ni ham fit" O'quv fit (sizish)
"Min-Max outlierga chidamli" Sezgir (max buzadi)
"kategoriyani ham" Son ustun (kategoriya emas)
"target'ni ham" Odatda X (target emas)
"Min-Max = z-score" Farqli (6.6)
"0-1 doim" Yangi qiymat tashqari (clip)

6. Keng tarqalgan xatolar va yechimlari

1. Keraksiz (daraxt)

python
# Random Forest uchun normalizatsiya (ortiqcha)                   # ⚠️
# daraxt — masshtab befarq (kerak emas)                          # ✅

2. Test'ni fit

python
scaler.fit_transform(X_test)   # ma'lumot sizishi                # ⚠️
scaler.transform(X_test)   # o'quv min/max                       # ✅

3. Outlier

python
(x - x.min()) / (x.max() - x.min())   # outlier buzadi           # ⚠️
# avval outlier hal 6.3-bob yoki RobustScaler                      # ✅

4. Kategoriya

python
scaler.fit_transform(df[["shahar_kod"]])   # kategoriya (ma'nosiz) # ⚠️
scaler.fit_transform(df[["yosh", "daromad"]])   # son            # ✅

5. Target normalizatsiya

python
scaler.fit_transform(y)   # target (odatda kerakmas)             # ⚠️
scaler.fit_transform(X)   # xususiyat                            # ✅

6. Bir ustunni unutish

python
# faqat daromad normalizatsiya (yosh xom)                        # ⚠️
# barcha son ustun (bir xil)                                     # ✅

7. inverse unutish (target)

python
# target normalizatsiya, bashorat 0-1 (asl emas)                 # ⚠️
scaler.inverse_transform(bashorat)   # asl birlik                # ✅

7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 6.6-dars: Standartlashtirish (z-score)
  • 4.3-dars (o'tilgan): Min/max (tarqoqlik)
  • 6.3-dars (o'tilgan): Outlier (avval hal)
  • 6.11-dars: Tozalash quvuri
  • 20-qism (reja): ML (scaler — masofa model)

8. Eng yaxshi amaliyotlar

  1. Model tekshir — masofa/gradient (daraxt emas).

  2. Outlier avval — Min-Max sezgir.

  3. Min-Max — (x-min)/(max-min) yoki Scaler.

  4. O'quv fit, test transform (sizish yo'q).

  5. Son ustun — kategoriya emas.

  6. Xususiyat (X) — target emas.

  7. RobustScaler — outlier bo'lsa.

  8. inverse — target normalizatsiya bo'lsa.


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
1.  # normalizatsiya nima?
2.  # Min-Max formulasi?
3.  # min → ?
4.  # nega kerak?
5.  # KNN uchun?
6.  # daraxt uchun?
7.  # MinMaxScaler?
8.  # test fit mi?
9.  # outlier ta'siri?
10. # kategoriya?
11. # normalizatsiya vs standartlashtirish?
12. # nega bir masshtab?
Javoblar
  1. Bir masshtabga keltirish
  2. (x-min)/(max-min)
  3. 0 (max → 1)
  4. Masshtab bostirish (katta)
  5. Kerak (masofa)
  6. Kerak emas (bo'lish)
  7. sklearn (fit/transform)
  8. Yo'q (o'quv fit — sizish)
  9. Sezgir (max buzadi)
  10. Son ustun (kategoriya emas)
  11. Min-Max (0-1) vs z-score
  12. Adolatli (biri bostirmaydi)

Vazifa 2: Xatolarni tuzating

python
1.  # Random Forest uchun normalizatsiya

2.  scaler.fit_transform(X_test)

3.  (x-x.min())/(x.max()-x.min())   # outlier

4.  scaler.fit_transform(df[["shahar_kod"]])

5.  scaler.fit_transform(y)
Javoblar
python
1.  daraxt — kerak emas

2.  scaler.transform(X_test)

3.  outlier hal / RobustScaler

4.  son ustun (yosh, daromad)

5.  X (xususiyat)

Vazifa 3: Min-Max

Modellang:

  1. Formula
  2. min → 0
  3. max → 1
  4. 0-1 oraliq

Vazifa 4: Nega kerak

Modellang:

  1. Masshtab bostirish
  2. KNN masofa
  3. Neyron
  4. Teng maydon

Vazifa 5: sklearn va outlier

Modellang:

  1. fit_transform (o'quv)
  2. transform (test)
  3. Outlier sezgir
  4. RobustScaler

Vazifa 6: Integratsiya

Modellang:

  1. Standartlashtirish (6.6)
  2. Outlier (6.3)
  3. Quvur (6.11)
  4. ML (20)

Vazifa 7: O'ylash

Normalizatsiya masofaga asoslangan modellar (KNN, K-means, neyron) uchun shart, lekin daraxt asoslilar (Random Forest) uchun keraksiz. Bu shuni ko'rsatadiki, ma'lumotni tayyorlash modelga bog'liq — "universal tozalash" yo'q. Nima uchun "tozalash modeldan ajralmas" tamoyili muhim, va Data Scientist tozalash qarorlarini qanday qabul qiladi?

Javob

Qisqa javob: Normalizatsiya masofa model (KNN, neyron) uchun shart, daraxt uchun keraksiz; ma'lumot tayyorlash modelga bog'liq ("universal tozalash" yo'q); "tozalash modeldan ajralmas" tamoyili muhim, Data Scientist qarorlarni modelga qarab qabul qiladi, chunki: (1) model turi farq — masofa/gradient (KNN, neyron — masshtab muhim; normalizatsiya kerak) vs bo'lish (daraxt — masshtab befarq; normalizatsiya keraksiz); bir tayyorlash hammaga to'g'ri kelmaydi; (2) universal yo'q — "toza ma'lumot" mutlaq emas (model uchun toza); daraxt uchun normalizatsiya ortiqcha (ziyon emas, lekin behuda); neyron uchun shart (yo'qsa sekin/beqaror); (3) tayyorlash — model qismi — ma'lumot tayyorlash (normalizatsiya, kodlash, transformatsiya) model quvuri (pipeline — 6.11, 20-qism; modelga moslangan); (4) qaror kontekstga — model + ma'lumot + maqsad (tozalash qarori — universal retsept emas). "Nega tamoyil muhim": (a) behuda ish — universal tozalash (hamma narsani har doim — ortiqcha; daraxtga normalizatsiya); (b) noto'g'ri — ba'zi tozalash zarar (masalan, daraxt uchun kodlash turi; yoki normalizatsiya target'ni); (c) model tushunish — qaysi tozalash kerak — modelni bilish (masofa? bo'lish? gradient?); (d) quvur — tayyorlash + model birga (pipeline — sinov, moslash). "Data Scientist qanday qaror": (1) model tanla (avval — KNN? daraxt? neyron?; yoki bir necha sinov); (2) model talabi (masofa — normalizatsiya; bo'lish — emas; NaN — hamma); (3) ma'lumot (outlier — clip; kategoriya — kodlash; NaN — hal); (4) sinov (tozalash bilan/siz — natija; qaysi yaxshi); (5) quvur (tayyorlash + model — pipeline; izchil); (6) hujjat (nega bu tozalash — model uchun). "Umumiy vs maxsus": umumiy (NaN hal, dublikat, xato tuzatish — har model uchun; ma'lumot to'g'riligi), maxsus (normalizatsiya, kodlash turi — modelga bog'liq). "Nega muhim": tozalash modelga (universal yo'q — behuda/zarar); model tushun (qaysi kerak); quvur (birga). Saboqlar: tozalash modelga bog'liq (universal yo'q); model turi (masofa/bo'lish — normalizatsiya?); umumiy (NaN — har model) vs maxsus (normalizatsiya — model); qaror (model + sinov + quvur). To'g'ri: tozalash — modelga (normalizatsiya — masofa; daraxt emas); universal yo'q (behuda/zarar); umumiy (NaN) vs maxsus (masshtab); quvur (birga). Muvozanat: umumiy tozalash (har model — NaN, dublikat) + maxsus (modelga — normalizatsiya, kodlash). Bu Data Science tayyorlash asosiy (tozalash modelga; universal yo'q; umumiy vs maxsus; quvur). Normalizatsiya — modelga (masofa kerak, daraxt emas; tozalash modeldan ajralmas).

1. Nega tozalash modelga bog'liq

  • Model turi (masofa — normalizatsiya; daraxt — emas)
  • Universal yo'q (toza — model uchun)
  • Tayyorlash — model qismi (quvur)
  • Qaror kontekstga (model + ma'lumot)

2. Nega universal yo'q

  • Behuda (daraxtga normalizatsiya — ortiqcha)
  • Zarar (ba'zi tozalash — noto'g'ri)
  • Model tushun (qaysi kerak)
  • Quvur (tayyorlash + model birga)

3. Umumiy vs maxsus tozalash

Umumiy (har model) Maxsus (modelga)
NaN hal Normalizatsiya (masofa)
Dublikat Kodlash turi
Xato tuzatish Transformatsiya

4. Qaror qabul qilish

  1. Model tanla (KNN/daraxt/neyron)
  2. Model talabi (masofa — normalizatsiya)
  3. Sinov (tozalash bilan/siz)
  4. Quvur (tayyorlash + model)

5. Xulosa

  1. Tozalash modelga bog'liq (universal yo'q)
  2. Model turi (masofa — normalizatsiya; daraxt — emas)
  3. Umumiy (NaN — har model) vs maxsus (normalizatsiya — model)
  4. Qaror (model + sinov + quvur; hujjat)

Nimani mustahkamlaydi: 2.4, 2.6-bo'limlar.


Xulosa

Bu darsda normalizatsiyani o'rgandik.

Eng muhim uch fikr:

  1. Min-Max va nega kerak. Min-Max — (x - min) / (max - min) (0-1 oraliq; min→0, max→1; nisbiy o'rin). Nega kerak — turli masshtab (yosh 0-100, daromad 0-1M) → katta ustun kichikni bostiradi (masofa/gradient hisobida); KNN/K-means (masofa — daromad hukmron), neyron (og'irlik), gradient (konvergensiya); normalizatsiya → teng (adolatli).

  2. sklearn va qachon. MinMaxScaler — fit_transform(X_train) (o'quv — o'rgan+qo'lla), transform(X_test) (test — o'quv min/max; test'ni fit qilma — ma'lumot sizishi). Qachon — masofa/gradient (KNN, neyron — kerak); daraxt (Random Forest, XGBoost — bo'lish; masshtab befarq — kerak emas).

  3. Bir masshtabga. Outlier — Min-Max sezgir (max outlier → diapazon ulkan → qolgan 0'ga siqiladi; avval outlier hal 6.3, yoki RobustScaler). Normalizatsiya vs standartlashtirish (Min-Max 0-1 chegara vs z-score o'rtacha 0 — 6.6). Tozalash modelga bog'liq (universal yo'q; normalizatsiya — masofa; daraxt emas; umumiy NaN vs maxsus masshtab). Tuzoqlar: keraksiz (daraxt), outlier (avval hal), test fit (sizish), kategoriya (son emas), target (X emas), yangi qiymat oraliqdan tashqari (clip).

Keyingi darsda standartlashtirish (standardization)ni o'rganamiz: z-score bilan ((x - o'rtacha) / std — 4.6) o'rtacha 0, std 1 ga keltirish; normalizatsiyadan farqi (chegarasiz, outlierga chidamliroq), qachon qaysi.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
6.5-dars: Normalizatsiya — IlmHamroh