मुख्य सामग्री पर जाएं

Python Feature Selection Tutorial: एक शुरुआती मार्गदर्शिका

फ़ीचर सिलेक्शन की मूल बातें जानें और Python में अलग-अलग फीचर सिलेक्शन तकनीकों को लागू और जाँच करना सीखें।
अपडेट किया गया 25 सित॰ 2026  · 14 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

banner

इस ट्यूटोरियल का कोड ऑनलाइन चलाएं और संपादित करें

कोड चलाएं

यदि आप Python में और सीखना चाहते हैं, तो DataCamp का निःशुल्क Intro to Python for Data Science कोर्स करें।

आप सभी ने डेटासेट्स देखे होंगे। कभी वे छोटे होते हैं, लेकिन अक्सर उनका आकार अत्यंत बड़ा होता है। बहुत बड़े डेटासेट्स को प्रोसेस करना चुनौतीपूर्ण हो जाता है, कम से कम इतना कि प्रोसेसिंग बॉटलनेक पैदा हो जाए।

तो, आखिर ये डेटासेट इतने बड़े क्यों होते हैं? वजह है फीचर्स। फीचर्स जितने अधिक होंगे, डेटासेट उतना बड़ा होगा। खैर, हमेशा नहीं। आपको ऐसे डेटासेट भी मिलेंगे जिनमें फीचर्स की संख्या बहुत अधिक है, पर इंस्टेंसेज़ उतनी नहीं हैं। लेकिन यहाँ चर्चा का केंद्र यह नहीं है। आप सोच सकते हैं कि एक साधारण कंप्यूटर के साथ ऐसे डेटासेट्स को कैसे प्रोसेस करें जिनमें समय बर्बाद न हो।

अक्सर, हाई-डायमेंशनल डेटासेट में कुछ पूरी तरह अप्रासंगिक, तुच्छ और महत्वहीन फीचर्स होते हैं। देखा गया है कि ऐसे फीचर्स का योगदान, महत्वपूर्ण फीचर्स की तुलना में प्रेडिक्टिव मॉडलिंग में कम होता है। कभी-कभी शून्य भी। ये फीचर्स कई समस्याएँ पैदा करते हैं, जो कुशल प्रेडिक्टिव मॉडलिंग में बाधा बनते हैं -

  • इन फीचर्स के लिए अनावश्यक संसाधनों का आवंटन।
  • ये फीचर्स शोर की तरह काम करते हैं, जिससे मशीन लर्निंग मॉडल का प्रदर्शन बहुत खराब हो सकता है।
  • मॉडल को ट्रेन होने में अधिक समय लगता है।

तो समाधान क्या है? सबसे किफायती समाधान है Feature Selection।

Feature Selection किसी दिए गए डेटासेट से सबसे महत्वपूर्ण फीचर्स को चुनने की प्रक्रिया है। कई मामलों में, Feature Selection मशीन लर्निंग मॉडल के प्रदर्शन को भी बेहतर बना सकती है।

दिलचस्प लग रहा है, है न?

आपने Feature Selection और डेटा साइंस व मशीन लर्निंग में इसकी महत्ता का अनौपचारिक परिचय देख लिया। इस पोस्ट में आप कवर करने जा रहे हैं:

  • फ़ीचर सिलेक्शन का परिचय और इसकी महत्ता को समझना
  • फ़ीचर सिलेक्शन और डायमेंशनलिटी रिडक्शन में अंतर
  • फ़ीचर सिलेक्शन के विभिन्न प्रकार
  • scikit-learn के साथ अलग-अलग फ़ीचर सिलेक्शन मेथड्स का इम्प्लीमेंटेशन

Feature Selection का परिचय

Feature selection को Variable selection या Attribute selection के नाम से भी जाना जाता है।

मूल रूप से यह प्रक्रिया डेटासेट के सबसे महत्वपूर्ण/प्रासंगिक फीचर्स का चयन करने की है।

Feature Selection की महत्ता समझना

फ़ीचर सिलेक्शन की महत्ता तब सबसे अधिक दिखती है जब आप ऐसे डेटासेट से निपट रहे हों जिसमें बहुत अधिक फीचर्स हों। ऐसे डेटासेट को अक्सर हाई डायमेंशनल डेटासेट कहा जाता है। अब, इस उच्च डायमेंशनलिटी के साथ कई समस्याएँ आती हैं — ट्रेनिंग समय में भारी बढ़ोतरी, मॉडल का जटिल होना और नतीजतन ओवरफिटिंग का खतरा।

अक्सर हाई-डायमेंशनल फीचर सेट में कई फीचर्स रिडंडेंट होते हैं, यानी वे अन्य आवश्यक फीचर्स के विस्तार मात्र होते हैं। ये रिडंडेंट फीचर्स भी मॉडल ट्रेनिंग में प्रभावी योगदान नहीं देते। इसलिए, बेहतर प्रेडिक्टिव परफॉर्मेंस पाने के लिए किसी भी डेटासेट से सबसे महत्वपूर्ण और प्रासंगिक फीचर्स को निकालना आवश्यक हो जाता है।

"वैरिएबल सिलेक्शन का उद्देश्य तीन गुना है: भविष्यवाणी करने वालों के परफॉर्मेंस में सुधार, उन्हें तेज़ और किफायती बनाना, और उस अंतर्निहित प्रक्रिया को बेहतर समझना जिसने डेटा उत्पन्न किया।"

-An Introduction to Variable and Feature Selection

अब डायमेंशनलिटी रिडक्शन और फीचर सिलेक्शन में अंतर समझते हैं।

कभी-कभी फीचर सिलेक्शन को डायमेंशनलिटी रिडक्शन समझ लिया जाता है। लेकिन ये अलग हैं। दोनों मेथड्स डेटासेट में एट्रिब्यूट्स की संख्या घटाते हैं, पर डायमेंशनलिटी रिडक्शन नए एट्रिब्यूट कॉम्बिनेशंस बनाकर ऐसा करता है (कभी-कभी इसे फीचर ट्रांसफॉर्मेशन भी कहते हैं), जबकि फीचर सिलेक्शन मेथड्स मौजूदा एट्रिब्यूट्स को बिना बदले शामिल या बाहर करते हैं।

डायमेंशनलिटी रिडक्शन के कुछ उदाहरण हैं Principal Component Analysis, Singular Value Decomposition, Linear Discriminant Analysis आदि।

आइए फीचर सिलेक्शन की महत्ता संक्षेप में देखें:

  • यह मशीन लर्निंग एल्गोरिद्म को तेज़ी से ट्रेन होने में सक्षम बनाता है।
  • मॉडल की जटिलता घटती है और व्याख्या आसान होती है।
  • अगर सही सबसेट चुना जाए तो मॉडल की सटीकता बढ़ती है।
  • ओवरफिटिंग घटती है।

अगले सेक्शन में आप फीचर सिलेक्शन के सामान्य प्रकार — Filter methods, Wrapper methods, और Embedded methods — पढ़ेंगे।

Filter Methods

निम्नलिखित चित्र फ़िल्टर-आधारित फीचर सिलेक्शन मेथड्स को सबसे अच्छे तरीके से दर्शाता है:

filter-based feature selection methods

छवि स्रोत: Analytics Vidhya

फ़िल्टर मेथड डेटा की सामान्य विशिष्टताओं पर निर्भर करता है और बिना किसी माइनिंग एल्गोरिद्म को शामिल किए फीचर सबसेट का चयन करता है। फ़िल्टर मेथड दूरी, सूचना, निर्भरता और स्थिरता जैसे आकलन मानदंडों का उपयोग करता है। यह मूलतः रैंकिंग तकनीक के मानदंड अपनाता है और वेरिएबल सिलेक्शन के लिए रैंक ऑर्डरिंग मेथड का उपयोग करता है। रैंकिंग मेथड का उपयोग इसलिए किया जाता है क्योंकि यह सरल है, और उत्कृष्ट व प्रासंगिक फीचर्स देता है। रैंकिंग मेथड वर्गीकरण प्रक्रिया शुरू होने से पहले ही अप्रासंगिक फीचर्स को फ़िल्टर कर देता है।

फ़िल्टर मेथड्स आम तौर पर डेटा प्रीप्रोसेसिंग स्टेप के रूप में उपयोग किए जाते हैं। फीचर्स का चयन किसी भी मशीन लर्निंग एल्गोरिद्म से स्वतंत्र होता है। फीचर्स को सांख्यिकीय स्कोर्स के आधार पर रैंक दिया जाता है जो आउटकम वैरिएबल के साथ उनके सहसंबंध को दर्शाते हैं। कोरिलेशन संदर्भ-निर्भर शब्द है और काम के अनुसार बदलता है। आप अलग-अलग प्रकार के डेटा (यहाँ कंटीन्युअस और कैटेगोरिकल) के लिए कोरिलेशन कोएफिशिएंट्स परिभाषित करने हेतु नीचे दी तालिका देख सकते हैं।

table for defining correlation coefficients for different types of data

छवि स्रोत: Analytics Vidhya

कुछ फ़िल्टर मेथड्स के उदाहरण हैं Chi-squared test, information gain, और correlation coefficient scores।

अब आप Wrapper methods देखेंगे।

Wrapper Methods

फ़िल्टर मेथड्स की तरह, आइए एक इन्फोग्राफिक देखें जो रैपर मेथड्स को बेहतर समझने में मदद करेगा:

understand wrapper methods

छवि स्रोत: Analytics Vidhya

ऊपर की छवि से स्पष्ट है कि रैपर मेथड को एक मशीन लर्निंग एल्गोरिद्म की आवश्यकता होती है और उसके प्रदर्शन को मूल्यांकन मानदंड के रूप में उपयोग करता है। यह मेथड ऐसे फीचर्स खोजता है जो दिए गए एल्गोरिद्म के लिए सबसे उपयुक्त हों और माइनिंग परफॉर्मेंस को बेहतर बनाने का लक्ष्य रखता है। फीचर्स का मूल्यांकन करने के लिए वर्गीकरण कार्यों में प्रेडिक्टिव एक्यूरेसी और क्लस्टरिंग में गुडनेस का उपयोग किया जाता है।

रैपर मेथड्स के सामान्य उदाहरण हैं फॉरवर्ड फीचर सिलेक्शन, बैकवर्ड फीचर एलिमिनेशन, रिकर्सिव फीचर एलिमिनेशन आदि।

  • Forward Selection: प्रक्रिया एक खाली फीचर सेट [reduced set] से शुरू होती है। मूल फीचर्स में से सर्वश्रेष्ठ फीचर चुना जाता है और रिड्यूस्ड सेट में जोड़ा जाता है। हर अगली इटरेशन में बचे हुए मूल एट्रिब्यूट्स में से सबसे अच्छा एट्रिब्यूट सेट में जोड़ा जाता है।

  • Backward Elimination: प्रक्रिया पूर्ण एट्रिब्यूट सेट से शुरू होती है। हर चरण में सेट में बचे सबसे खराब एट्रिब्यूट को हटा दिया जाता है।

  • फॉरवर्ड सिलेक्शन और बैकवर्ड एलिमिनेशन का संयोजन: स्टेपवाइज़ फॉरवर्ड सिलेक्शन और बैकवर्ड एलिमिनेशन को मिलाकर प्रत्येक चरण में प्रक्रिया बचे हुए एट्रिब्यूट्स में से सर्वश्रेष्ठ चुनती है और सबसे खराब को हटाती है।

  • Recursive Feature elimination: RFE एक ग्रीडी सर्च करता है ताकि सबसे अच्छा परफॉर्म करने वाला फीचर सबसेट मिले। यह इटरेटिवली मॉडल बनाता है और हर इटरेशन में सबसे अच्छे या सबसे खराब फीचर को निर्धारित करता है। तब तक उपर्युक्त मॉडल्स बनते हैं जब तक सभी फीचर्स एक्सप्लोर न हो जाएँ। अंत में फीचर्स को उनके एलिमिनेशन के क्रम के आधार पर रैंक किया जाता है। सबसे खराब स्थिति में, यदि डेटासेट में N फीचर्स हैं, तो RFE 2N फीचर कॉम्बिनेशंस पर ग्रीडी सर्च करेगा।

काफी अच्छा!

अब एम्बेडेड मेथड्स पढ़ते हैं।

Embedded Methods

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

इसी वजह से रेग्युलराइज़ेशन मेथड्स को पेनलाइज़ेशन मेथड्स भी कहा जाता है, जो किसी प्रेडिक्टिव एल्गोरिद्म (जैसे रिग्रेशन) के ऑप्टिमाइज़ेशन में अतिरिक्त बाधाएँ जोड़ते हैं ताकि मॉडल कम जटिलता (कम कोएफिशिएंट्स) की ओर झुके।

रेग्युलराइज़ेशन एल्गोरिद्म के उदाहरण हैं LASSO, Elastic Net, Ridge Regression आदि।

Filter और Wrapper Methods में अंतर

कभी-कभी फ़िल्टर और रैपर मेथड्स के कार्यात्मक अंतर को लेकर भ्रम हो सकता है। आइए देखें, वे किन बिंदुओं पर अलग हैं।

  • फ़िल्टर मेथड्स किसी फीचर के अच्छा या बुरा होने का निर्धारण करने के लिए मशीन लर्निंग मॉडल का उपयोग नहीं करते, जबकि रैपर मेथड्स एक मॉडल का उपयोग करते हैं और फीचर्स के साथ उसे ट्रेन करके तय करते हैं कि फीचर आवश्यक है या नहीं।
  • फ़िल्टर मेथड्स रैपर मेथड्स की तुलना में बहुत तेज़ होते हैं क्योंकि वे मॉडल ट्रेनिंग शामिल नहीं करते। दूसरी ओर, रैपर मेथड्स कम्प्यूटेशनली महंगे होते हैं और बहुत बड़े डेटासेट्स के मामले में ये सबसे प्रभावी विकल्प नहीं होते।
  • जब डेटा इतना नहीं होता कि फीचर्स के सांख्यिकीय सहसंबंध को अच्छे से मॉडल किया जा सके, तब फ़िल्टर मेथड्स सर्वश्रेष्ठ फीचर सबसेट ढूँढने में असफल हो सकते हैं, पर रैपर मेथड्स अपनी व्यापक प्रकृति के कारण प्रायः सर्वश्रेष्ठ सबसेट दे सकते हैं।
  • रैपर मेथड्स से प्राप्त फीचर्स का अपने अंतिम मॉडल में उपयोग करने से ओवरफिटिंग हो सकती है, क्योंकि रैपर मेथड्स पहले ही फीचर्स के साथ मॉडल को ट्रेन कर चुके होते हैं और यह असली लर्निंग की शक्ति को प्रभावित कर सकता है। लेकिन फ़िल्टर मेथड्स से मिले फीचर्स अधिकांश मामलों में ओवरफिटिंग नहीं कराते।

अभी तक आपने फीचर सिलेक्शन की महत्ता समझी, और यह भी कि यह डायमेंशनलिटी रिडक्शन से कैसे अलग है। आपने फीचर सिलेक्शन के विभिन्न प्रकार भी कवर किए। अभी तक सब बढ़िया!

अब, कुछ ऐसी गलतियों पर नज़र डालते हैं जिनमें आप फीचर सिलेक्शन करते हुए फँस सकते हैं:

महत्वपूर्ण विचार

आप मशीन लर्निंग पाइपलाइन में फीचर सिलेक्शन की अहमियत और इसके एकीकरण से मिलने वाले फायदों को समझ चुके होंगे। लेकिन यह समझना बहुत ज़रूरी है कि अपनी पाइपलाइन में फीचर सिलेक्शन को ठीक किस स्थान पर जोड़ना चाहिए।

सीधे शब्दों में, विशेषकर जब आप क्रॉस-वैलिडेशन जैसी एक्यूरेसी एस्टिमेशन मेथड्स का उपयोग कर रहे हों, तो डेटा को मॉडल में ट्रेनिंग के लिए भेजने से पहले फीचर सिलेक्शन स्टेप शामिल करें। इससे हर फोल्ड पर मॉडल ट्रेनिंग से ठीक पहले फीचर सिलेक्शन होता है। लेकिन अगर आप पहले फीचर सिलेक्शन करके डेटा तैयार करें, फिर चुने हुए फीचर्स पर मॉडल सिलेक्शन और ट्रेनिंग करें, तो यह एक बड़ी गलती होगी।

यदि आप पूरे डेटा पर फीचर सिलेक्शन करते हैं और फिर क्रॉस-वैलिडेट करते हैं, तो क्रॉस-वैलिडेशन के प्रत्येक फोल्ड का टेस्ट डेटा भी फीचर्स चुनने में उपयोग हो चुका होता है, और इससे आपके मॉडल के प्रदर्शन का आकलन पक्षपाती हो जाता है।

सिद्धांत बहुत हुए! अब सीधे कोडिंग पर आते हैं।

Python में एक केस स्टडी

इस केस स्टडी के लिए आप Pima Indians Diabetes डेटासेट का उपयोग करेंगे। डेटासेट का विवरण यहाँ उपलब्ध है।

यह डेटासेट एक वर्गीकरण कार्य से संबद्ध है, जहाँ आपको 8 फीचर्स के आधार पर यह अनुमान लगाना है कि किसी व्यक्ति को डायबिटीज है या नहीं।

डेटासेट में कुल 768 ऑब्जर्वेशंस हैं। आपका पहला काम डेटासेट को लोड करना है ताकि आप आगे बढ़ सकें। लेकिन उससे पहले आवश्यक डिपेंडेंसीज़ इम्पोर्ट कर लेते हैं। बाकी आप चलते-चलते इम्पोर्ट कर सकते हैं।

import pandas as pd
import numpy as np

अब जब डिपेंडेंसीज़ इम्पोर्ट हो गई हैं, तो Pandas लाइब्रेरी की मदद से Pima Indians डेटासेट को एक DataFrame ऑब्जेक्ट में लोड करते हैं।

data = pd.read_csv("diabetes.csv")

डेटासेट सफलतापूर्वक data नाम के DataFrame ऑब्जेक्ट में लोड हो गया है। अब, डेटा पर नज़र डालते हैं।

data.head()
Dataframe

तो आप 8 अलग-अलग फीचर्स देख सकते हैं, जिन्हें 1 और 0 के आउटकम में लेबल किया गया है, जहाँ 1 का मतलब है कि ऑब्जर्वेशन में डायबिटीज है और 0 का मतलब है कि नहीं है। यह डेटासेट मिसिंग वैल्यूज़ के लिए जाना जाता है। विशेष रूप से, कुछ कॉलम्स में मिसिंग ऑब्जर्वेशंस को शून्य मान के रूप में चिह्नित किया गया है। आप कॉलम्स की परिभाषा से समझ सकते हैं कि कुछ मापों के लिए शून्य मान व्यावहारिक नहीं है, जैसे बॉडी मास इंडेक्स या ब्लड प्रेशर के लिए शून्य मान अमान्य है।

लेकिन इस ट्यूटोरियल के लिए, आप सीधे डेटासेट के प्रीप्रोसेस्ड वर्शन का उपयोग करेंगे।

# load data
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pd.read_csv(url, names=names)

अब आपने डेटा को dataframe नाम के DataFrame ऑब्जेक्ट में लोड कर लिया है।

तेज़ कम्प्यूटेशन के लिए DataFrame ऑब्जेक्ट को NumPy array में बदलते हैं। साथ ही, फीचर्स और लेबल्स को अलग-अलग वैरिएबल्स में विभाजित करते हैं।

array = dataframe.values
X = array[:,0:8]
Y = array[:,8]

शानदार! आपने डेटा तैयार कर लिया है।

सबसे पहले, आप नॉन-नेगेटिव फीचर्स के लिए Chi-Squared सांख्यिकीय परीक्षण इम्प्लीमेंट करेंगे ताकि डेटासेट से 4 सर्वश्रेष्ठ फीचर्स चुने जा सकें। आपने देखा कि Chi-Squared परीक्षण फ़िल्टर मेथड्स की श्रेणी में आता है। यदि कोई Chi-Squared के आंतरिक पहलुओं के बारे में जानना चाहता है, तो यह वीडियो बेहतरीन है।

scikit-learn लाइब्रेरी SelectKBest क्लास प्रदान करती है, जिसका उपयोग विभिन्न सांख्यिकीय परीक्षणों के साथ किसी निश्चित संख्या में फीचर्स चुनने के लिए किया जा सकता है; इस मामले में यह Chi-Squared है।

# Import the necessary libraries first
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2

आपने एक्सपेरिमेंट्स चलाने के लिए लाइब्रेरीज़ इम्पोर्ट कर लीं। अब, इसे ऐक्शन में देखते हैं।

# Feature extraction
test = SelectKBest(score_func=chi2, k=4)
fit = test.fit(X, Y)

# Summarize scores
np.set_printoptions(precision=3)
print(fit.scores_)

features = fit.transform(X)
# Summarize selected features
print(features[0:5,:])
[ 111.52  1411.887   17.605   53.108 2175.565  127.669    5.393  181.304]
[[148.    0.   33.6  50. ]
 [ 85.    0.   26.6  31. ]
 [183.    0.   23.3  32. ]
 [ 89.   94.   28.1  21. ]
 [137.  168.   43.1  33. ]]

व्याख्या:

आप प्रत्येक एट्रिब्यूट के स्कोर और चुने गए 4 एट्रिब्यूट्स देख सकते हैं (जिनके स्कोर सबसे अधिक हैं): plas, test, mass, और age। ये स्कोर आपके मॉडल ट्रेनिंग के लिए सर्वश्रेष्ठ फीचर्स निर्धारित करने में और मदद करेंगे।

नोट: पहली पंक्ति फीचर्स के नाम दर्शाती है। डेटासेट के प्रीप्रोसेसिंग के दौरान नामों को संख्यात्मक रूप से एन्कोड किया गया है।

अब आप Recursive Feature Elimination इम्प्लीमेंट करेंगे, जो एक रैपर फीचर सिलेक्शन मेथड है।

Recursive Feature Elimination (या RFE) एट्रिब्यूट्स को रिकर्सिवली हटाकर और बचे हुए एट्रिब्यूट्स पर मॉडल बनाकर काम करता है।

यह मॉडल की एक्यूरेसी का उपयोग करता है ताकि यह पहचाना जा सके कि कौन-से एट्रिब्यूट (और उनके संयोजन) टारगेट एट्रिब्यूट की भविष्यवाणी में सबसे अधिक योगदान देते हैं।

RFE क्लास के बारे में अधिक आप scikit-learn डॉक्यूमेंटेशन में पढ़ सकते हैं।

# Import your necessary dependencies
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

आप Logistic Regression क्लासिफायर के साथ RFE का उपयोग करके टॉप 3 फीचर्स चुनेंगे। जब तक एल्गोरिद्म सक्षम और सुसंगत है, एल्गोरिद्म का चयन बहुत मायने नहीं रखता।

# Feature extraction
model = LogisticRegression()
rfe = RFE(model, 3)
fit = rfe.fit(X, Y)
print("Num Features: %s" % (fit.n_features_))
print("Selected Features: %s" % (fit.support_))
print("Feature Ranking: %s" % (fit.ranking_))
Num Features: 3
Selected Features: [ True False False False False  True  True False]
Feature Ranking: [1 2 3 5 6 1 1 4]

आप देख सकते हैं कि RFE ने शीर्ष 3 फीचर्स के रूप में preg, mass, और pedi चुने हैं।

ये support ऐरे में True से चिह्नित हैं और ranking ऐरे में “1” से। यह इन फीचर्स की मज़बूती को इंगित करता है।

अगला, आप Ridge regression का उपयोग करेंगे, जो मूलतः एक रेग्युलराइज़ेशन तकनीक है और एम्बेडेड फीचर सिलेक्शन तकनीक भी।

यह लेख Ridge regression की उत्कृष्ट व्याख्या देता है। अवश्य देखें।

# First things first
from sklearn.linear_model import Ridge

अब आप Ridge regression का उपयोग करके R2 कोएफिशिएंट निर्धारित करेंगे।

साथ ही, scikit-learn के Ridge regression की आधिकारिक डॉक्यूमेंटेशन भी देखें।

ridge = Ridge(alpha=1.0)
ridge.fit(X,Y)
Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None,
   normalize=False, random_state=None, solver='auto', tol=0.001)

Ridge regression के परिणामों को बेहतर समझने के लिए, आप एक छोटा हेल्पर फ़ंक्शन लिखेंगे जो परिणामों को बेहतर ढंग से प्रिंट करने में मदद करेगा ताकि आप उन्हें आसानी से समझ सकें।

# A helper method for pretty-printing the coefficients
def pretty_print_coefs(coefs, names = None, sort = False):
    if names == None:
        names = ["X%s" % x for x in range(len(coefs))]
    lst = zip(coefs, names)
    if sort:
        lst = sorted(lst,  key = lambda x:-np.abs(x[0]))
    return " + ".join("%s * %s" % (round(coef, 3), name)
                                   for coef, name in lst)

अब आप Ridge मॉडल के कोएफिशिएंट टर्म्स को इस छोटे फ़ंक्शन में पास करेंगे और देखेंगे क्या होता है।

print ("Ridge model:", pretty_print_coefs(ridge.coef_))
Ridge model: 0.021 * X0 + 0.006 * X1 + -0.002 * X2 + 0.0 * X3 + -0.0 * X4 + 0.013 * X5 + 0.145 * X6 + 0.003 * X7

आप सभी कोएफिशिएंट टर्म्स को फीचर वैरिएबल्स के साथ देख सकते हैं। यह फिर से सबसे आवश्यक फीचर्स चुनने में आपकी मदद करेगा। Ridge regression लागू करते समय ये बिंदु ध्यान में रखें:

  • इसे L2-Regularization भी कहते हैं।
  • कोरिलेटेड फीचर्स के लिए इनके कोएफिशिएंट्स प्रायः समान होते हैं।
  • नेगेटिव कोएफिशिएंट वाले फीचर्स का योगदान उतना नहीं होता। पर जब आप बहुत सारे फीचर्स से निपट रहे हों, तो यह स्कोर अंतिम फीचर सिलेक्शन निर्णय में अवश्य मदद करेगा।

इसके साथ केस स्टडी सेक्शन समाप्त होता है। ऊपर लागू की गई विधियाँ आपको किसी डेटासेट के फीचर्स को व्यापक रूप से समझने में मदद करेंगी। इन तकनीकों पर कुछ अहम बातें:

  • फ़ीचर सिलेक्शन मूलतः डेटा प्रीप्रोसेसिंग का हिस्सा है, जिसे किसी भी मशीन लर्निंग पाइपलाइन का सबसे समय लेने वाला हिस्सा माना जाता है।
  • ये तकनीकें आपको इसे अधिक व्यवस्थित और मशीन लर्निंग अनुकूल तरीके से अपनाने में मदद करेंगी। आप फीचर्स की व्याख्या अधिक सटीकता से कर पाएँगे।

समापन!

इस पोस्ट में आपने एक सबसे अधिक अध्ययनित और शोधित सांख्यिकीय विषय — फीचर सिलेक्शन — को कवर किया। आपने इसकी विभिन्न किस्मों से परिचय पाया और उन्हें उपयोग करके देखा कि किसी डेटासेट में कौन-से फीचर्स महत्वपूर्ण हैं।

आप इस ट्यूटोरियल को आगे बढ़ाते हुए किसी कोरिलेशन माप को रैपर मेथड में जोड़कर देख सकते हैं कि परफॉर्मेंस कैसा आता है। इस प्रक्रिया में संभव है कि आप अपना खुद का फीचर सिलेक्शन मैकेनिज़्म बना लें। इसी तरह आप अपने छोटे शोध की नींव रखते हैं। शोधकर्ता चयन के लिए विभिन्न सॉफ्ट कंप्यूटिंग सिद्धांतों का भी उपयोग कर रहे हैं। यह स्वयं में अध्ययन और शोध का विस्तृत क्षेत्र है। साथ ही, आपको मौजूदा फीचर सिलेक्शन एल्गोरिद्म्स को विभिन्न डेटासेट्स पर आज़माकर अपने निष्कर्ष निकालने चाहिए।

ये पारंपरिक फीचर सिलेक्शन मेथड्स आज भी प्रासंगिक क्यों हैं?

हाँ, यह सवाल स्वाभाविक है। क्योंकि ऐसी न्यूरल नेट आर्किटेक्चर (उदाहरण के लिए CNNs) मौजूद हैं जो डेटा से सबसे महत्वपूर्ण फीचर्स निकालने में सक्षम हैं, पर उनकी भी सीमाएँ हैं। ऐसे सामान्य टेबुलर डेटासेट्स के लिए जिनमें खास गुण (जैसे छवियों के पारंपरिक गुण — ट्रांज़िशनल प्रॉपर्टीज़, एजेस, पोज़िशनल प्रॉपर्टीज़, कंटूर्स आदि) नहीं होते, CNN का उपयोग समझदारी नहीं है। साथ ही, जब डेटा और संसाधन सीमित हों, तो टेबुलर डेटासेट्स पर CNN ट्रेन करना पूरी तरह बेकार साबित हो सकता है। इसलिए, ऐसे मामलों में आपने जो मेथड्स सीखे, वे निश्चित रूप से काम आएँगे।

यदि आप इस विषय में और गहराई चाहते हैं, तो निम्न संसाधन सहायक होंगे:

नीचे वे संदर्भ दिए गए हैं जिनका उपयोग इस ट्यूटोरियल को लिखने में किया गया:

यदि कोई शंका हो, तो अवश्य टिप्पणी करें!

विषय
Python

Python पाठ्यक्रम

{count, plural, one {कोर्स} other {कोर्स}}

Python परिचय

{hours} घंटा
7.1M
Python के साथ डेटा विश्लेषण की बुनियादी बातें सिर्फ चार घंटे में सीखें। यह ऑनलाइन पाठ्यक्रम Python इंटरफ़ेस का परिचय देगा और लोकप्रिय पैकेजों का अन्वेषण करेगा।
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें

{count, plural, one {कोर्स} other {कोर्स}}

Python में Data Science परिचय

{hours} घंटा
503.6K
Python से डेटा विज्ञान में उतरें और अपने डेटा का प्रभावी विश्लेषण व विज़ुअलाइज़ेशन करना सीखें। कोई कोडिंग अनुभव या कौशल की आवश्यकता नहीं।
और देखेंRight Arrow