تعلم الآلة - تدريب/اختبار
- الصفحة السابقة الإرجاع المتعدد
- الصفحة التالية التدريب/الاختبار
Feature Scaling (Scale Features)
When your data has different values, even using different units of measurement, it may be difficult to compare them. How many kilograms is compared to meters? Or altitude compared to time?
The answer to this question is scaling. We can scale the data to new values that are easy to compare.
Please see the table below, which is consistent with what we haveالإرجاع المتعددOne set of data is used in the chapter, but this time, the unit of Volume column is liter instead of ccm (1.0 instead of 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 |
VW | Up! | 1.0 | 929 | 105 |
Skoda | Fabia | 1.4 | 1109 | 90 |
Mercedes | A-Class | 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 هي الإشارة.
إذا تم الحصول على weight إذا كانت الأعمدة، فإن القيمة الأولى هي 790، القيمة الموسعة هي:
(790 - 1292.23) / 238.74 = -2.1
إذا تم الحصول على volume إذا كانت الأعمدة، فإن القيمة الأولى هي 1.0، القيمة الموسعة هي:
(1.0 - 1.61) / 0.38 = -1.59
الآن، يمكنك مقارنة -2.1 مع -1.59 بدلاً من مقارنة 790 مع 1.0.
لا تحتاج إلى تنفيذ هذه العملية يدويًا، يحتوي مكتبة sklearn في Python على اسم StandardScaler()
الطريقة، التي تعود بجسم Scaler يحتوي على طريقة تحويل مجموعة البيانات.
مثال
توسيع القيم في أعمدة 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 ]
توقع قيمة CO2
الإرجاع المتعددالمهمة في هذا الفصل هي التنبؤ بكمية انبعاث ثاني أكسيد الكربون لمركبة معروفة فقط بوزنها و حجمها.
بعد تقليل مجموعة البيانات، يجب استخدام نسبة التقليل عند التنبؤ بالقيم المقدرة:
مثال
توقع كمية انبعاث ثاني أكسيد الكربون لسيارة وزنها 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]
- الصفحة السابقة الإرجاع المتعدد
- الصفحة التالية التدريب/الاختبار