وقتی دادههای شما مقادیر متفاوت و حتی واحدهای اندازهگیری متفاوتی دارند، ممکن است دشوار باشد
آنها را مقایسه کنید کیلوگرم در مقایسه با متر چیست؟ یا ارتفاع در مقایسه با زمان؟
پاسخ این مشکل مقیاسپذیری است. ما میتوانیم دادهها را به مقادیر جدیدی که سادهتر هستند، مقیاس کنیم
مقایسه کنید.
به جدول زیر نگاهی بیندازید، این همان مجموعه داده ای است که ما در آن استفاده کردیم
فصل رگرسیون چندگانه، اما این بار ستون حجم
حاوی مقادیر لیتر به جای ccm (1.0 به جای 1000).
ماشین | مدل | جلد | وزن | CO2 |
تویوتا | آیگو | 1.0 | 790 | 99 |
میتسوبیشی | Space Star | 1.2 | 1160 | 95 |
اشکودا | سیتیگو | 1.0 | 929 | 95 |
فیات | 500 | 0.9 | 865 | 90 |
مینی | کوپر | 1.5 | 1140 | 105 |
VW | بالا! | 1.0 | 929 | 105 |
اشکودا | فابیا | 1.4 | 1109 | 90 |
مرسدس | A-Class | 1.5 | 1365 | 92 |
فورد | فیستا | 1.5 | 1112 | 98 |
آئودی | A1 | 1.6 | 1150 | 99 |
هیوندای | I20 | 1.1 | 980 | 99 |
سوزوکی | سوئیفت | 1.3 | 990 | 101 |
فورد | فیستا | 1.0 | 1112 | 99 |
هوندا | مدنی | 1.6 | 1252 | 94 |
هوندای | I30 | 1.6 | 1326 | 97 |
اوپل | Astra | 1.6 | 1330 | 97 |
BMW | 1 | 1.6 | 1365 | 99 |
مزدا | 3 | 2.2 | 1280 | 104 |
اشکودا | سریع | 1.6 | 1119 | 104 |
فورد | تمرکز | 2.0 | 1328 | 105 |
فورد | Mondeo | 1.6 | 1584 | 94 |
اوپل | نشانه | 2.0 | 1428 | 99 |
مرسدس | C-Class | 2.1 | 1365 | 99 |
اشکودا | اکتاویا | 1.6 | 1415 | 99 |
Volvo | S60 | 2.0 | 1415 | 99 |
مرسدس | CLA | 1.5 | 1465 | 102 |
آئودی | A4 | 2.0 | 1490 | 104 |
آئودی | A6 | 2.0 | 1725 | 114 |
Volvo | V70 | 1.6 | 1523 | 109 |
BMW | 5 | 2.0 | 1705 | 114 |
مرسدس | E-Class | 2.1 | 1605 | 115 |
Volvo | XC70 | 2.0 | 1746 | 117 |
فورد | B-Max | 1.6 | 1235 | 104 |
BMW | 2 | 1.6 | 1390 | 108 |
اوپل | Zafira | 1.6 | 1405 | 109 |
مرسدس | SLK | 2.5 | 1395 | 120 |
مقایسه حجم 1.0 با وزن 790 می تواند دشوار باشد، اما اگر ما
هر دو را در مقادیر قابل مقایسه مقیاس کنیم، ما به راحتی می توانیم مقدار یک مقدار را ببینیم
با دیگری مقایسه می شود.
روش های مختلفی برای مقیاس بندی داده ها وجود دارد، در این آموزش از a استفاده می کنیم
روشی به نام استانداردسازی.
روش استانداردسازی
از این فرمول استفاده می کند:
z = (x - u) / s
جایی که z
مقدار جدید است،x
مقدار اصلی است،u
میانگین و s
است
انحراف معیار.
اگر ستون وزن را از مجموعه داده های بالا بگیرید، اولین مقدار است
790 است و مقدار مقیاس شده این خواهد بود:
(790 - 1292.23) / 238.74 = -2.1
اگر ستون حجم را از مجموعه داده بالا بگیرید، اولین مقدار است
1.0 است و مقدار آن مقیاس شده است
خواهد بود:
اکنون می توانید به جای مقایسه 790 با 1.0، -2.1 را با -1.59 مقایسه کنید.
لازم نیست این کار را به صورت دستی انجام دهید،
ماژول Python sklea
متدی به نام StandardScaler()
دارد.
که یک شی Scaler را با روش هایی برای تبدیل مجموعه داده ها برمی گرداند.
Scale all values in the Weight and Volume columns:
Note that the first two values are -2.1 and -1.59, which corresponds to our
calculations:
[[-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]]