آموزش ماشین یادگیری - مقیاسبندی
- پائیدھ کا آگے بہت سارے ریگرسیشن
- پائیدھ کا پیچھا تدریب/ٹیسٹ
مقیاس ویژگیها (Scale Features)
هنگامی که دادههای شما دارای مقادیر مختلفی هستند، حتی با استفاده از واحدهای اندازهگیری مختلف، ممکن است بسیار دشوار باشد که آنها را مقایسه کنید. کیلوگرم در مقایسه با متر چگونه است؟ یا ارتفاع در مقایسه با زمان؟
جواب این سوال تغییر مقیاس است. ما میتوانیم دادهها را به مقیاسهای جدیدی که قابل مقایسه هستند، تغییر دهیم.
لطفاً جدول زیر را ببینید، که بابہت سارے ریگرسیشندر این فصل از دادههای استفاده شده مشابه است، اما این بار، واحد حجم در ستون Volume لیوان است، نه ccm (۱۰۰۰ به جای ۱.۰).
ماشین | مدل | حجم | وزن | کربن دیاکسید |
---|---|---|---|---|
تویوتا | ایگویو | 1.0 | 790 | 99 |
میتسوبیشی | اسپیس استار | 1.2 | 1160 | 95 |
Skoda | سیتیگو | 1.0 | 929 | 95 |
فیات | 500 | 0.9 | 865 | 90 |
مینی | کوپر | 1.5 | 1140 | 105 |
وایآیوی | آپ! | 1.0 | 929 | 105 |
Skoda | فابیا | 1.4 | 1109 | 90 |
Mercedes | A-کلاس | 1.5 | 1365 | 92 |
Ford | Fiesta | 1.5 | 1112 | 98 |
Audi | A1 | 1.6 | 1150 | 99 |
Hyundai | I20 | 1.1 | 980 | 99 |
Suzuki | Swift | 1.3 | 990 | 101 |
Ford | Fiesta | 1.0 | 1112 | 99 |
Honda | Civic | 1.6 | 1252 | 94 |
Hundai | I30 | 1.6 | 1326 | 97 |
Opel | Astra | 1.6 | 1330 | 97 |
BMW | 1 | 1.6 | 1365 | 99 |
Mazda | 3 | 2.2 | 1280 | 104 |
Skoda | Rapid | 1.6 | 1119 | 104 |
Ford | Focus | 2.0 | 1328 | 105 |
Ford | Mondeo | 1.6 | 1584 | 94 |
Opel | Insignia | 2.0 | 1428 | 99 |
Mercedes | C-Class | 2.1 | 1365 | 99 |
Skoda | Octavia | 1.6 | 1415 | 99 |
Volvo | S60 | 2.0 | 1415 | 99 |
Mercedes | CLA | 1.5 | 1465 | 102 |
Audi | A4 | 2.0 | 1490 | 104 |
Audi | A6 | 2.0 | 1725 | 114 |
Volvo | V70 | 1.7 | 1523 | 109 |
BMW | 5 | 2.0 | 1705 | 114 |
Mercedes | E-Class | 2.1 | 1605 | 115 |
Volvo | XC70 | 2.0 | 1746 | 117 |
Ford | B-Max | 1.6 | 1235 | 104 |
BMW | 2 | 1.6 | 1390 | 108 |
Opel | Zafira | 1.6 | 1405 | 109 |
Mercedes | SLK | 2.5 | 1395 | 120 |
很难将排量 1.0 与车重 790 进行比较,但是如果将它们都缩放为可比较的值,我们可以很容易地看到一个值与另一个值相比有多少。
اسکالر بنانے کے طریقوں کی بہت سی موجود ہیں، اس درس میں ہم ایک نام 'standardization' والا طریقہ کار استعمال کریں گے。
اسٹینڈرڈائزیشن طریقہ کار استعمال کرتے ہوئے اس کی فرمول درج ذیل ہے:
z = (x - u) / s
جس میں z نئی اعداد، x اصل اعداد، u اوسط، s معیار انحراف اوسط ہوتا ہے。
اگر آپ سلسلے سے اعداد حاصل کرتے ہیں، تو پہلا اعداد 790، اسکالر بنانے کے بعد کا اعداد: weight کوئی سلسلہ، تو پہلا اعداد 790، اسکالر بنانے کے بعد کا اعداد:
(790 - 1292.23) / 238.74 = -2.1
اگر آپ سلسلے سے اعداد حاصل کرتے ہیں، تو پہلا اعداد 790، اسکالر بنانے کے بعد کا اعداد: volume کوئی سلسلہ، تو پہلا اعداد 1.0، اسکالر بنانے کے بعد کا اعداد:
(1.0 - 1.61) / 0.38 = -1.59
اب آپ -2.1 کو -1.59 سے مقایسه کرسکتے ہیں، نہ کہ 790 کو 1.0 سے مقایسه کرسکتے ہیں。
آپ کو اس کو ہندرانی طور پر نہیں چلانا پڑتا، پیتون اسکلئیر ماڈیول میں ایک نام 'StandardScaler' والا ماڈیول موجود ہے StandardScaler()
طریق کا استعمال، جس میں تبدیل شدہ ڈاٹا سیٹ کا اسکالر آئیٹم شامل ہوتا ہے。
مثال
اسکالر Weight اور Volume کی اعداد کو اسکالر میکنی:
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Weight', 'Volume']] 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.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]
کربن ڈائی آکسائڈ کا اندازہ لگانا
بہت سارے ریگرسیشنیہ کار کا مقصد صرف موٹر کی وزن اور کلاج کی معلومات کی بنیاد پر ان کا کربن ڈائی آکسائڈ کا اخراج اندازہ لگانا ہے۔
دیتا سیٹ کو سکال کیا جاچکا ہے تو پریڈکشن کے لئے اس کی سکالنگ کی کیجائی بجائی استعمال کریں:
مثال
2300 کلوگرام کا 1.3 لیٹر کا موٹر کار کا کربن ڈائی آکسائڈ کا اخراج کا اندازہ لگانا:
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.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)
نتائج:
[107.2087328]
- پائیدھ کا آگے بہت سارے ریگرسیشن
- پائیدھ کا پیچھا تدریب/ٹیسٹ