मशीन लर्निंग - स्केल
स्केल सुविधाएँ
जब आपके डेटा के अलग-अलग मान हों, और यहां तक कि अलग-अलग माप इकाइयाँ भी हों, तो उनकी तुलना करना मुश्किल हो सकता है। मीटर की तुलना में किलोग्राम क्या है? या समय की तुलना में ऊंचाई?
इस समस्या का उत्तर स्केलिंग है। हम डेटा को नए मानों में स्केल कर सकते हैं जिनकी तुलना करना आसान है।
नीचे दी गई तालिका पर एक नज़र डालें, यह वही डेटा सेट है जिसका उपयोग हमने कई प्रतिगमन अध्याय में किया था , लेकिन इस बार वॉल्यूम कॉलम में सेमी 3 (1000 के बजाय 1.0) के बजाय लीटर में मान शामिल हैं ।
फ़ाइल केवल परीक्षण उद्देश्यों के लिए है, आप इसे यहाँ डाउनलोड कर सकते हैं: Cars2.csv
कार | नमूना | आयतन | वज़न | सीओ 2 |
टोयोटा | आयगो | 1.0 | 790 | 99 |
मित्सुबिशी | अंतरिक्ष सितारा | 1.2 | 1160 | 95 |
स्कोडा | सिटिगो | 1.0 | 929 | 95 |
व्यवस्थापत्र | 500 | 0.9 | 865 | 90 |
छोटा | कूपर | 1.5 | 1140 | 105 |
वीडब्ल्यू | यूपी! | 1.0 | 929 | 105 |
स्कोडा | फ़ेबिया | 1.4 | 1109 | 90 |
मर्सिडीज | एक कक्षा | 1.5 | 1365 | 92 |
पायाब | पर्व | 1.5 | 1112 | 98 |
ऑडी | ए 1 | 1.6 | 1150 | 99 |
हुंडई | मैं -20 | 1.1 | 980 | 99 |
सुजुकी | तीव्र | 1.3 | 990 | 101 |
पायाब | पर्व | 1.0 | 1112 | 99 |
होंडा | नागरिक | 1.6 | 1252 | 94 |
Hundai | I30 | 1.6 | 1326 | 97 |
ओपल | एस्ट्रा | 1.6 | 1330 | 97 |
बीएमडब्ल्यू | 1 | 1.6 | 1365 | 99 |
माजदा | 3 | 2.2 | 1280 | 104 |
स्कोडा | तेज़ | 1.6 | 1119 | 104 |
पायाब | केंद्र | 2.0 | 1328 | 105 |
पायाब | मोंडो | 1.6 | 1584 | 94 |
ओपल | बिल्ला | 2.0 | 1428 | 99 |
मर्सिडीज | सी-क्लास | 2.1 | 1365 | 99 |
स्कोडा | ऑक्टेविया | 1.6 | 1415 | 99 |
वोल्वो | S60 | 2.0 | 1415 | 99 |
मर्सिडीज | सीएलए | 1.5 | 1465 | 102 |
ऑडी | ए4 | 2.0 | 1490 | 104 |
ऑडी | ए6 | 2.0 | 1725 | 114 |
वोल्वो | वी70 | 1.6 | 1523 | 109 |
बीएमडब्ल्यू | 5 | 2.0 | 1705 | 114 |
मर्सिडीज | ई क्लास | 2.1 | 1605 | 115 |
वोल्वो | एक्ससी70 | 2.0 | 1746 | 117 |
पायाब | बी मैक्स | 1.6 | 1235 | 104 |
बीएमडब्ल्यू | 2 | 1.6 | 1390 | 108 |
ओपल | ज़फीरास | 1.6 | 1405 | 109 |
मर्सिडीज | एसएलके | 2.5 | 1395 | 120 |
मात्रा 1.0 की वजन 790 के साथ तुलना करना मुश्किल हो सकता है, लेकिन अगर हम उन दोनों को तुलनीय मूल्यों में मापते हैं, तो हम आसानी से देख सकते हैं कि एक मूल्य दूसरे की तुलना में कितना है।
डेटा स्केलिंग के लिए अलग-अलग तरीके हैं, इस ट्यूटोरियल में हम मानकीकरण नामक एक विधि का उपयोग करेंगे।
मानकीकरण विधि इस सूत्र का उपयोग करती है:
z = (x - u) / s
z
नया मान
कहाँ है x
, मूल मान
u
है, माध्य s
है और मानक विचलन है।
यदि आप ऊपर दिए गए डेटा से वेट कॉलम लेते हैं, तो पहला मान 790 है, और स्केल किया गया मान होगा:
(790 - ) / = -2.1
यदि आप ऊपर दिए गए डेटा से वॉल्यूम कॉलम लेते हैं, तो पहला मान 1.0 है, और स्केल किया गया मान होगा:
(1.0 - ) / = -1.59
अब आप 790 की 1.0 से तुलना करने के बजाय -2.1 की तुलना -1.59 से कर सकते हैं।
आपको इसे मैन्युअल रूप से करने की आवश्यकता नहीं है, पायथन स्केलेर मॉड्यूल में एक विधि है जिसे कहा जाता है StandardScaler()
जो डेटा सेट को बदलने के तरीकों के साथ एक स्केलर ऑब्जेक्ट देता है।
उदाहरण
वज़न और आयतन कॉलम में सभी मानों को स्केल करें:
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 मूल्यों की भविष्यवाणी करें
मल्टीपल रिग्रेशन चैप्टर में कार्य एक कार से CO2 उत्सर्जन की भविष्यवाणी करना था जब आप केवल उसके वजन और मात्रा को जानते थे।
जब डेटा सेट को बढ़ाया जाता है, तो आपको मानों की भविष्यवाणी करते समय पैमाने का उपयोग करना होगा:
उदाहरण
2300 किलोग्राम वजन वाली 1.3 लीटर कार से CO2 उत्सर्जन का अनुमान लगाएं:
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]