ویژگی های مقیاس(Scale Features)


وقتی داده‌های شما مقادیر متفاوت و حتی واحدهای اندازه‌گیری متفاوتی دارند، ممکن است دشوار باشد
آنها را مقایسه کنید کیلوگرم در مقایسه با متر چیست؟ یا ارتفاع در مقایسه با زمان؟



پاسخ این مشکل مقیاس‌پذیری است. ما می‌توانیم داده‌ها را به مقادیر جدیدی که ساده‌تر هستند، مقیاس کنیم
مقایسه کنید.




به جدول زیر نگاهی بیندازید، این همان مجموعه داده ای است که ما در آن استفاده کردیم
فصل رگرسیون چندگانه، اما این بار ستون حجم
حاوی مقادیر لیتر به جای ccm (1.0 به جای 1000).















ماشینمدلجلدوزنCO2































































































































































































































































تویوتاآیگو1.079099
میتسوبیشیSpace Star1.2116095
اشکوداسیتیگو1.092995
فیات5000.986590
مینیکوپر1.51140105
VWبالا!1.0929105
اشکودافابیا1.4110990
مرسدسA-Class1.5136592
فوردفیستا1.5111298
آئودیA11.6115099
هیوندایI201.198099
سوزوکیسوئیفت1.3990101
فوردفیستا1.0111299
هوندامدنی1.6125294
هوندایI301.6132697
اوپلAstra1.6133097
BMW11.6136599
مزدا32.21280104
اشکوداسریع1.61119104
فوردتمرکز2.01328105
فوردMondeo1.6158494
اوپلنشانه2.0142899
مرسدسC-Class2.1136599
اشکودااکتاویا1.6141599
VolvoS602.0141599
مرسدسCLA1.51465102
آئودیA42.01490104
آئودیA62.01725114
VolvoV701.61523109
BMW52.01705114
مرسدسE-Class2.11605115
VolvoXC702.01746117
فوردB-Max1.61235104
BMW21.61390108
اوپلZafira1.61405109
مرسدسSLK2.51395120




مقایسه حجم 1.0 با وزن 790 می تواند دشوار باشد، اما اگر ما
هر دو را در مقادیر قابل مقایسه مقیاس کنیم، ما به راحتی می توانیم مقدار یک مقدار را ببینیم
با دیگری مقایسه می شود.


روش های مختلفی برای مقیاس بندی داده ها وجود دارد، در این آموزش از a استفاده می کنیم
روشی به نام استانداردسازی.




روش استانداردسازی
از این فرمول استفاده می کند:


z = (x - u) / s


جایی که z مقدار جدید است،
x مقدار اصلی است،
u میانگین و s است
انحراف معیار.


اگر ستون وزن را از مجموعه داده های بالا بگیرید، اولین مقدار است
790 است و مقدار مقیاس شده این خواهد بود:



(790 - 1292.23) / 238.74 = -2.1

اگر ستون حجم را از مجموعه داده بالا بگیرید، اولین مقدار است
1.0 است و مقدار آن مقیاس شده است
خواهد بود:


(1.0 - 1.61) / 0.38 = -1.59



اکنون می توانید به جای مقایسه 790 با 1.0، -2.1 را با -1.59 مقایسه کنید.



لازم نیست این کار را به صورت دستی انجام دهید،
ماژول Python sklea
متدی به نام StandardScaler() دارد.
که یک شی Scaler را با روش هایی برای تبدیل مجموعه داده ها برمی گرداند.




مثال


Scale all values in the Weight and Volume columns:



import pandas
from sklea
import linear_model
from
sklea
.preprocessing import StandardScaler
scale = StandardScaler()


df = pandas.read_csv("cars2.csv")

X = df[['Weight', 'Volume']]


scaledX = scale.fit_transform(X)


print(scaledX)

Result:


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]]