Python – مقیاس (Scale)

مقیاس‌دهی ویژگی‌ها

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

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

در جدول زیر، همان داده‌های قبلی را داریم اما این بار ستون حجم مقادیر را به لیتر به جای cm³ (1.0 به جای 1000) نمایش می‌دهد.

Car Model Volume Weight CO2
Toyota Aygo 1.0 790 99
Mitsubishi Space Star 1.2 1160 95
Skoda Citigo 1.0 929 95
Fiat 500 0.9 865 90
Mini Cooper 1.5 1140 105

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

روش‌های مقیاس‌دهی

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

استانداردسازی

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

z=(xu)sz = \frac{(x – u)}{s}

که در آن:

  • zz مقدار جدید است
  • xx مقدار اصلی است
  • uu میانگین است
  • ss انحراف معیار است

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

(7901292.23)238.74=2.1\frac{(790 – 1292.23)}{238.74} = -2.1

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

(1.01.61)0.38=1.59\frac{(1.0 – 1.61)}{0.38} = -1.59

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

استفاده از StandardScaler

شما نیازی به انجام این کار به صورت دستی ندارید، ماژول sklearn در پایتون دارای متدی به نام StandardScaler() است که شیء Scaler با روش‌هایی برای تبدیل داده‌ها را باز می‌گرداند.

مثال

مقیاس‌دهی تمام مقادیر در ستون‌های وزن و حجم:

import pandas
from sklearn.preprocessing import StandardScaler

# خواندن داده‌ها
df = pandas.read_csv("data.csv")

# انتخاب ستون‌های وزن و حجم
X = df[['Weight', 'Volume']]

# ایجاد شیء StandardScaler
scale = StandardScaler()

# مقیاس‌دهی داده‌ها
scaledX = scale.fit_transform(X)

print(scaledX)

نتیجه: توجه داشته باشید که اولین دو مقدار -2.1 و -1.59 هستند که با محاسبات ما مطابقت دارد:

[[-2.10389253 -1.59336644]
 [-0.55407235 -1.07190106]
 [-1.52166278 -1.59336644]
 [-1.78973979 -1.85409913]
 ...
 [ 0.4302729   2.31762392]]

پیش‌بینی مقادیر CO2

وظیفه در فصل رگرسیون چندگانه پیش‌بینی میزان انتشار CO2 از یک خودرو بود زمانی که تنها وزن و حجم آن را می‌دانید.

زمانی که داده‌ها مقیاس‌دهی شده‌اند، باید از مقیاس استفاده کنید زمانی که مقادیر را پیش‌بینی می‌کنید.

مثال

پیش‌بینی میزان انتشار CO2 برای خودرویی با حجم 1.3 لیتر که وزن آن 2300 کیلوگرم است:

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler

# خواندن داده‌ها
df = pandas.read_csv("data.csv")

# انتخاب ستون‌های وزن و حجم
X = df[['Weight', 'Volume']]
y = df['CO2']

# ایجاد شیء StandardScaler و مقیاس‌دهی داده‌ها
scale = StandardScaler()
scaledX = scale.fit_transform(X)

# ایجاد شیء LinearRegression و آموزش مدل
regr = linear_model.LinearRegression()
regr.fit(scaledX, y)

# مقیاس‌دهی داده‌های جدید
scaled = scale.transform([[2300, 1.3]])

# پیش‌بینی مقدار CO2
predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)

نتیجه:

[107.2087328]

ما پیش‌بینی کرده‌ایم که خودرویی با موتور 1.3 لیتری و وزن 2300 کیلوگرم، به طور تقریبی 107 گرم CO2 به ازای هر کیلومتر تولید خواهد کرد.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.