पायथन में लासो रिग्रेशन (कदम दर कदम)


लैस्सो रिग्रेशन एक ऐसी विधि है जिसका उपयोग हम एक रिग्रेशन मॉडल को फिट करने के लिए कर सकते हैं जब डेटा में मल्टीकॉलिनेरिटी मौजूद होती है।

संक्षेप में, न्यूनतम वर्ग प्रतिगमन उन गुणांक अनुमानों को खोजने का प्रयास करता है जो वर्गों के अवशिष्ट योग (आरएसएस) को कम करते हैं:

RSS = Σ(y i – ŷ i )2

सोना:

  • Σ : एक ग्रीक प्रतीक जिसका अर्थ है योग
  • y i : iवें अवलोकन के लिए वास्तविक प्रतिक्रिया मान
  • ŷ i : एकाधिक रेखीय प्रतिगमन मॉडल के आधार पर अनुमानित प्रतिक्रिया मूल्य

इसके विपरीत, लैस्सो प्रतिगमन निम्नलिखित को कम करना चाहता है:

आरएसएस + λΣ|β जे |

जहां j 1 से p भविष्यवक्ता चर और λ ≥ 0 तक जाता है।

समीकरण में इस दूसरे पद को निकासी दंड के रूप में जाना जाता है। लैस्सो रिग्रेशन में, हम λ के लिए एक मान का चयन करते हैं जो न्यूनतम संभव एमएसई (माध्य वर्ग त्रुटि) परीक्षण उत्पन्न करता है।

यह ट्यूटोरियल पायथन में लासो रिग्रेशन कैसे करें इसका चरण-दर-चरण उदाहरण प्रदान करता है।

चरण 1: आवश्यक पैकेज आयात करें

सबसे पहले, हम पायथन में लासो रिग्रेशन करने के लिए आवश्यक पैकेज आयात करेंगे:

 import pandas as pd
from numpy import arange
from sklearn. linear_model import LassoCV
from sklearn. model_selection import RepeatedKFold

चरण 2: डेटा लोड करें

इस उदाहरण के लिए, हम mtcars नामक डेटासेट का उपयोग करेंगे, जिसमें 33 विभिन्न कारों की जानकारी शामिल है। हम एचपी को प्रतिक्रिया चर के रूप में और निम्नलिखित चर को भविष्यवक्ता के रूप में उपयोग करेंगे:

  • एमपीजी
  • वज़न
  • मल
  • क्यूसेक

निम्नलिखित कोड दिखाता है कि इस डेटासेट को कैसे लोड और प्रदर्शित किया जाए:

 #define URL where data is located
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv"

#read in data
data_full = pd. read_csv (url)

#select subset of data
data = data_full[["mpg", "wt", "drat", "qsec", "hp"]]

#view first six rows of data
data[0:6]

	mpg wt drat qsec hp
0 21.0 2.620 3.90 16.46 110
1 21.0 2.875 3.90 17.02 110
2 22.8 2.320 3.85 18.61 93
3 21.4 3.215 3.08 19.44 110
4 18.7 3,440 3.15 17.02 175
5 18.1 3.460 2.76 20.22 105

चरण 3: लैस्सो रिग्रेशन मॉडल को फिट करें

इसके बाद, हम लासो रिग्रेशन मॉडल को फिट करने के लिए स्केलेर के लासोसीवी() फ़ंक्शन का उपयोग करेंगे और पेनल्टी टर्म के लिए उपयोग करने के लिए इष्टतम अल्फा मान खोजने के लिए के-फोल्ड क्रॉस-वैलिडेशन करने के लिए रिपीटेडकेफोल्ड() फ़ंक्शन का उपयोग करेंगे।

नोट: पायथन में “लैम्ब्डा” के बजाय “अल्फा” शब्द का उपयोग किया जाता है।

इस उदाहरण के लिए, हम k = 10 गुना चुनेंगे और क्रॉस-सत्यापन प्रक्रिया को 3 बार दोहराएंगे।

यह भी ध्यान रखें कि LassoCV() डिफ़ॉल्ट रूप से केवल अल्फा मान 0,1, 1 और 10 का परीक्षण करता है। हालाँकि, हम 0.01 की वृद्धि में अपनी स्वयं की अल्फा रेंज 0 से 1 तक सेट कर सकते हैं:

 #define predictor and response variables
X = data[["mpg", "wt", "drat", "qsec"]]
y = data["hp"]

#define cross-validation method to evaluate model
cv = RepeatedKFold(n_splits= 10 , n_repeats= 3 , random_state= 1 )

#define model
model = LassoCV(alphas= arange (0, 1, 0.01), cv=cv, n_jobs= -1 )

#fit model
model. fit (x,y)

#display lambda that produced the lowest test MSE
print( model.alpha_ )

0.99

लैम्ब्डा मान जो परीक्षण के एमएसई को न्यूनतम करता है वह 0.99 हो जाता है।

चरण 4: पूर्वानुमान लगाने के लिए मॉडल का उपयोग करें

अंत में, हम नई टिप्पणियों के बारे में भविष्यवाणियां करने के लिए अंतिम लैस्सो रिग्रेशन मॉडल का उपयोग कर सकते हैं। उदाहरण के लिए, निम्नलिखित कोड दिखाता है कि निम्नलिखित विशेषताओं के साथ एक नई कार को कैसे परिभाषित किया जाए:

  • एमपीजी: 24
  • वज़न: 2.5
  • कीमत: 3.5
  • क्यूसेक: 18.5

निम्नलिखित कोड दिखाता है कि इस नए अवलोकन के एचपी मान की भविष्यवाणी करने के लिए फिट किए गए लैस्सो रिग्रेशन मॉडल का उपयोग कैसे करें:

 #define new observation
new = [24, 2.5, 3.5, 18.5]

#predict hp value using lasso regression model
model. predict ([new])

array([105.63442071])

दर्ज किए गए मानों के आधार पर, मॉडल भविष्यवाणी करता है कि इस कार का एचपी मान 105.63442071 होगा।

आप इस उदाहरण में प्रयुक्त पूरा पायथन कोड यहां पा सकते हैं।

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *