Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Min-Max normalizatsiya (0-1)
- 2.2. Nega kerak (masshtab muammosi)
- 2.3. sklearn MinMaxScaler
- 2.4. Qachon kerak (qaysi model)
- 2.5. Normalizatsiya va outlier
- 2.6. Normalizatsiya amaliyoti
- 2.7. Normalizatsiya tuzoqlari
- 2.8. Normalizatsiya — bir masshtabga keltirish
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Min-Max (qo'lda)
- Misol 2 — Masshtab muammosi (masofa)
- Misol 3 — sklearn MinMaxScaler
- Misol 4 — Outlier va Min-Max
- 5. To'g'ri va noto'g'ri tushunishlar
- 6. Keng tarqalgan xatolar va yechimlari
- 7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8. Eng yaxshi amaliyotlar
- 9. Amaliy topshiriq
- Xulosa
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:
# 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
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 ustunNormalizatsiya 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 emas4. Batafsil misollar
Misollar real pandas/numpy/sklearn bilan (Python 3.14) ishlaydi.
Misol 1 — Min-Max (qo'lda)
"""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:
=== 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)
"""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:
=== 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
"""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:
=== 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 transformNima ko'rsatdi: 2.3-bo'lim.
Misol 4 — Outlier va Min-Max
"""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:
=== 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 sezgirNima 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)
# Random Forest uchun normalizatsiya (ortiqcha) # ⚠️
# daraxt — masshtab befarq (kerak emas) # ✅2. Test'ni fit
scaler.fit_transform(X_test) # ma'lumot sizishi # ⚠️
scaler.transform(X_test) # o'quv min/max # ✅3. Outlier
(x - x.min()) / (x.max() - x.min()) # outlier buzadi # ⚠️
# avval outlier hal 6.3-bob yoki RobustScaler # ✅4. Kategoriya
scaler.fit_transform(df[["shahar_kod"]]) # kategoriya (ma'nosiz) # ⚠️
scaler.fit_transform(df[["yosh", "daromad"]]) # son # ✅5. Target normalizatsiya
scaler.fit_transform(y) # target (odatda kerakmas) # ⚠️
scaler.fit_transform(X) # xususiyat # ✅6. Bir ustunni unutish
# faqat daromad normalizatsiya (yosh xom) # ⚠️
# barcha son ustun (bir xil) # ✅7. inverse unutish (target)
# 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
Model tekshir — masofa/gradient (daraxt emas).
Outlier avval — Min-Max sezgir.
Min-Max —
(x-min)/(max-min)yoki Scaler.O'quv fit, test transform (sizish yo'q).
Son ustun — kategoriya emas.
Xususiyat (X) — target emas.
RobustScaler — outlier bo'lsa.
inverse — target normalizatsiya bo'lsa.
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
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
- Bir masshtabga keltirish
- (x-min)/(max-min)
- 0 (max → 1)
- Masshtab bostirish (katta)
- Kerak (masofa)
- Kerak emas (bo'lish)
- sklearn (fit/transform)
- Yo'q (o'quv fit — sizish)
- Sezgir (max buzadi)
- Son ustun (kategoriya emas)
- Min-Max (0-1) vs z-score
- Adolatli (biri bostirmaydi)
Vazifa 2: Xatolarni tuzating
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
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:
- Formula
- min → 0
- max → 1
- 0-1 oraliq
Vazifa 4: Nega kerak
Modellang:
- Masshtab bostirish
- KNN masofa
- Neyron
- Teng maydon
Vazifa 5: sklearn va outlier
Modellang:
- fit_transform (o'quv)
- transform (test)
- Outlier sezgir
- RobustScaler
Vazifa 6: Integratsiya
Modellang:
- Standartlashtirish (6.6)
- Outlier (6.3)
- Quvur (6.11)
- 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
- Model tanla (KNN/daraxt/neyron)
- Model talabi (masofa — normalizatsiya)
- Sinov (tozalash bilan/siz)
- Quvur (tayyorlash + model)
5. Xulosa
- Tozalash modelga bog'liq (universal yo'q)
- Model turi (masofa — normalizatsiya; daraxt — emas)
- Umumiy (NaN — har model) vs maxsus (normalizatsiya — model)
- Qaror (model + sinov + quvur; hujjat)
Nimani mustahkamlaydi: 2.4, 2.6-bo'limlar.
Xulosa
Bu darsda normalizatsiyani o'rgandik.
Eng muhim uch fikr:
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).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).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.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!