Masshtablash
Masshtab xususiyatlari
Ma’lumotlaringiz turli qiymatlarga va hatto turli o‘lchov birliklariga ega bo‘lsa, ularni solishtirish qiyin bo‘lishi mumkin. Kilogramm metrga nisbatan nima? Yoki vaqtga nisbatan balandlikmi?
Bu muammoning javobi masshtablashdir. Biz ma’lumotlarni solishtirish osonroq bo‘lgan yangi qiymatlarga o‘tkazishimiz mumkin.
Quyidagi jadvalni ko‘rib chiqing, bu biz ko‘p regressiya bobida foydalangan bir xil ma’lumotlar to‘plamidir, ammo bu safar hajm ustunida sm3 o‘rniga litrdagi qiymatlar mavjud (1000 o‘rniga 1,0).
| Avtomobil | Model | Ovoz balandligi | Og‘irligi | CO2 |
| Toyota | Aygo | 1.0 | 790 | 99 |
| Mitsubishi | Kosmik yulduz | 1.2 | 1160 | 95 |
| Skoda | Citigo | 1.0 | 929 | 95 |
| Fiat | 500 | 0.9 | 865 | 90 |
| Mini | Kuper | 1.5 | 1140 | 105 |
| VW | Up! | 1.0 | 929 | 105 |
| Skoda | Fabia | 1.4 | 1109 | 90 |
| Mersedes | A-sinfi | 1.5 | 1365 | 92 |
| Ford | Fiesta | 1.5 | 1112 | 98 |
| Audi | A1 | 1.6 | 1150 | 99 |
| Hyundai | I20 | 1.1 | 980 | 99 |
| Suzuki | Tezkor | 1.3 | 990 | 101 |
| Ford | Fiesta | 1.0 | 1112 | 99 |
| Honda | Fuqarolik | 1.6 | 1252 | 94 |
| Hunday | I30 | 1.6 | 1326 | 97 |
| Opel | Astra | 1.6 | 1330 | 97 |
| BMW | 1 | 1.6 | 1365 | 99 |
| Mazda | 3 | 2.2 | 1280 | 104 |
| Skoda | Tez | 1.6 | 1119 | 104 |
| Ford | Diqqat | 2.0 | 1328 | 105 |
| Ford | Mondeo | 1.6 | 1584 | 94 |
| Opel | Belgilar | 2.0 | 1428 | 99 |
| Mersedes | C-sinfi | 2.1 | 1365 | 99 |
| Skoda | Octavia | 1.6 | 1415 | 99 |
| Volvo | S60 | 2.0 | 1415 | 99 |
| Mersedes | CLA | 1.5 | 1465 | 102 |
| Audi | A4 | 2.0 | 1490 | 104 |
| Audi | A6 | 2.0 | 1725 | 114 |
| Volvo | V70 | 1.6 | 1523 | 109 |
| BMW | 5 | 2.0 | 1705 | 114 |
| Mersedes | E-Class | 2.1 | 1605 | 115 |
| Volvo | XC70 | 2.0 | 1746 | 117 |
| Ford | B-Maks | 1.6 | 1235 | 104 |
| BMW | 2 | 1.6 | 1390 | 108 |
| Opel | Zafira | 1.6 | 1405 | 109 |
| Mersedes | SLK | 2.5 | 1395 | 120 |
1.0 hajmini og‘irligi 790 bilan solishtirish qiyin bo‘lishi mumkin, ammo agar biz ularni taqqoslanadigan qiymatlarga o‘tkazsak, biz bir qiymat boshqasiga qanchalik solishtirilganini osongina ko‘rishimiz mumkin.
Ma’lumotlarni masshtablashning turli usullari mavjud, bu qo‘llanmada biz standartlashtirish deb ataladigan usuldan foydalanamiz.
Standartlashtirish usuli quyidagi formuladan foydalanadi:
z = (x - u) / s
Bu erda z - yangi qiymat, x - asl qiymat, u - o‘rtacha va s - standart og‘ish.
Agar siz yuqoridagi ma’lumotlar to‘plamidan vazn ustunini olsangiz, birinchi qiymat 790 ga teng bo‘ladi va o‘lchov qiymati quyidagicha bo‘ladi:
(790 - 1292.23) / 238.74 = -2.1
Agar siz yuqoridagi ma’lumotlar to‘plamidan ovoz balandligi ustunini olsangiz, birinchi qiymat 1,0 ga teng va o‘lchovli qiymat quyidagicha bo‘ladi:
Endi siz 790 ni 1,0 bilan solishtirish o‘rniga -2,1ni -1,59 bilan solishtirishingiz mumkin.
Buni qo‘lda qilish shart emas, Python sklearn modulida StandardScaler() deb nomlangan usul mavjud bo‘lib, u ma’lumotlar to‘plamini o‘zgartirish usullari bilan Scaler obyektini qaytaradi.
Misol
Og‘irligi va hajmi ustunlaridagi barcha qiymatlarni masshtablash:
import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
df = pandas.read_csv("data.csv")
X = df[['Weight', 'Volume']]
scaledX = scale.fit_transform(X)
print(scaledX)
Natija:
E’tibor bering, dastlabki ikkita qiymat -2,1 va -1,59 ni tashkil qiladi, bu bizning hisob-kitoblarimizga mos keladi:
[[-2.10389253 -1.59336644] [-0.55407235 -1.07190106] [-1.52166278 -1.59336644] [-1.78973979 -1.85409913] [-0.63784641 -0.28970299] [-1.52166278 -1.59336644] [-0.76769621 -0.55043568] [ 0.3046118 -0.28970299] [-0.7551301 -0.28970299] [-0.59595938 -0.0289703 ] [-1.30803892 -1.33263375] [-1.26615189 -0.81116837] [-0.7551301 -1.59336644] [-0.16871166 -0.0289703 ] [ 0.14125238 -0.0289703 ] [ 0.15800719 -0.0289703 ] [ 0.3046118 -0.0289703 ] [-0.05142797 1.53542584] [-0.72580918 -0.0289703 ] [ 0.14962979 1.01396046] [ 1.2219378 -0.0289703 ] [ 0.5685001 1.01396046] [ 0.3046118 1.27469315] [ 0.51404696 -0.0289703 ] [ 0.51404696 1.01396046] [ 0.72348212 -0.28970299] [ 0.8281997 1.01396046] [ 1.81254495 1.01396046] [ 0.96642691 -0.0289703 ] [ 1.72877089 1.01396046] [ 1.30990057 1.27469315] [ 1.90050772 1.01396046] [-0.23991961 -0.0289703 ] [ 0.40932938 -0.0289703 ] [ 0.47215993 -0.0289703 ] [ 0.4302729 2.31762392]]
CO2 qiymatlarini bashorat qilish
Ko‘p regressiya bobidagi vazifa avtomobilning og‘irligi va hajmini bilganingizda CO2 emissiyasini taxmin qilish edi.
Ma’lumotlar to‘plami masshtablanganda, siz qiymatlarni bashorat qilishda o‘lchovdan foydalanishingiz kerak bo‘ladi:
Misol
Og‘irligi 2300 kilogramm bo‘lgan 1,3 litrli avtomobildan CO2 emissiyasini taxmin qiling:
import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
df = pandas.read_csv("data.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
scaledX = scale.fit_transform(X)
regr = linear_model.LinearRegression()
regr.fit(scaledX, y)
scaled = scale.transform([[2300, 1.3]])
predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)
Natija:
[107.2087328]
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
