TensorFlow के साथ रिग्रेशन प्रॉब्लम सॉल्विंग: ए डीप लर्निंग जर्नी
TensorFlow का उपयोग करके कृत्रिम तंत्रिका नेटवर्क बनाने और उसे बेहतर बनाने का तरीका जानें
परिचय
मशीन लर्निंग में प्रतिगमन विश्लेषण एक तकनीक है जिसका उपयोग एक या अधिक स्वतंत्र चर के आधार पर आश्रित चर के मूल्य की भविष्यवाणी करने के लिए किया जाता है। यह एक पर्यवेक्षित शिक्षण तकनीक है जो पूर्वानुमानित मॉडलिंग की छत्रछाया में आती है।
क्या आप उन जटिल गणितीय अवधारणाओं के चारों ओर अपने सिर को लपेटने के लिए प्रतिगमन विश्लेषण और खुजली के ins और outs सीखने के लिए शुरुआती मार्गदर्शिका की तलाश में हैं? डरो मत, मेरे दोस्त! मैंने एक ब्लॉग पोस्ट लिखा है जो अवधारणाओं को सरल, आसानी से समझने वाले तरीके से तोड़ता है। तो उस कप कॉफी को नीचे रखें, अपना कैलकुलेटर लें, और प्रतिगमन विश्लेषण की निराला दुनिया में सिर झुकाने के लिए तैयार हो जाएं! आपको वहां देखने का इंतजार नहीं कर सकता
सरल रेखीय प्रतिगमन के मूल सिद्धांतइसी तरह, गहन शिक्षा में, प्रतिगमन मॉडल तंत्रिका नेटवर्क का उपयोग करके बनाया जा सकता है, जो कम्प्यूटेशनल मॉडल हैं जो मानव मस्तिष्क के काम करने के तरीके की नकल करते हैं। इन मॉडलों में इंटरकनेक्टेड न्यूरॉन्स उर्फ परसेप्ट्रॉन की कई परतें होती हैं और इन्हें एमएलपी (मल्टी-लेयर परसेप्ट्रॉन) के रूप में जाना जाता है जो इनपुट डेटा से उपयोगी सुविधाओं को निकालना सीख सकते हैं और सटीक भविष्यवाणियां कर सकते हैं।
मैं इस संक्षिप्त ब्लॉग पोस्ट को निम्नलिखित अनुभागों में विभाजित करूँगा:
- डेटा प्रीप्रोसेसिंग।
- मॉडल आर्किटेक्चर
- प्रशिक्षण और मूल्यांकन
- निष्कर्ष।
मशीन लर्निंग के क्षेत्र में, डेटा प्रीप्रोसेसिंग चरण एक मॉडल की सफलता में महत्वपूर्ण भूमिका निभाता है। इस चरण में मॉडल के प्रशिक्षण और परीक्षण के लिए इनपुट डेटा तैयार करना शामिल है। इस चरण में सफाई, अन्वेषण, सामान्यीकरण, सुविधा चयन, एन्कोडिंग, वृद्धि आदि जैसे कई चरण शामिल हैं।
- डेटा की सफाई: डेटासेट से किसी भी अपूर्ण, अप्रासंगिक या गलत डेटा को हटाना। यह सुनिश्चित करना है कि इनपुट डेटा उच्च गुणवत्ता का है और इसमें कोई आउटलेयर या त्रुटियां नहीं हैं जो न्यूरल नेट के प्रदर्शन को प्रभावित कर सकती हैं।
- डेटा एक्सप्लोरेशन: इसके वितरण और सुविधाओं के बीच संबंधों में अंतर्दृष्टि प्राप्त करने के लिए डेटासेट का विश्लेषण करना। यह कदम डेटा में किसी भी पैटर्न या रुझान की पहचान करने में मदद करता है जिसका उपयोग तंत्रिका नेटवर्क के प्रदर्शन को बेहतर बनाने के लिए किया जा सकता है।
- डेटा सामान्यीकरण: डेटा को स्केल करना ताकि सभी सुविधाओं के समान पैमाने हों। यह एक महत्वपूर्ण कदम है क्योंकि यह सुनिश्चित करता है कि न्यूरल नेट बड़े मूल्यों वाली सुविधाओं को अनुचित भार नहीं देता है।
- फ़ीचर चयन: तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए उपयोग की जाने वाली सबसे महत्वपूर्ण विशेषताओं का चयन करना।
- डेटा एन्कोडिंग: श्रेणीबद्ध चर को संख्यात्मक चर में परिवर्तित करना क्योंकि मशीनें केवल संख्यात्मक डेटा को इनपुट के रूप में स्वीकार करती हैं।
- डेटा संवर्द्धन: डेटासेट की विविधता बढ़ाने के लिए अतिरिक्त प्रशिक्षण डेटा तैयार करना।
यहां हम अपने मुख्य उद्देश्य पर ध्यान केंद्रित करने के लिए डेटा एक्सप्लोरेशन और क्लीनिंग प्रोसेस को छोड़ देंगे। इसके बजाय, हम जल्दी से एक डेटासेट लोड करेंगे और इसे कुछ सरल चरणों के साथ मॉडल के लिए तैयार करेंगे। जबकि डेटा की खोज और सफाई महत्वपूर्ण विषय हैं, यहाँ उन पर ध्यान देने से हम अपने मुख्य लक्ष्य से दूर हो जाएंगे। तो, आइए केंद्रित रहें और शुरू करें ⚡⚡
हमारे रिग्रेशन मॉडल जनरेशन के लिए, हम यूएस हेल्थ इंश्योरेंस डेटासेट लेंगे, जिसका उपयोग अक्सर व्यक्ति की विशेषताओं और बीमा पॉलिसी के आधार पर चिकित्सा लागत का अनुमान लगाने के लिए किया जाता है।
कोड आवश्यक पुस्तकालयों को लोड करता है जिसमें pandas
, MinMaxScaler
make_column_transformer
और शामिल हैं OneHotEncoder
। इसके बाद यह डेटासेट में संख्यात्मक और श्रेणीबद्ध कॉलम की पहचान करता है और न्यूमेरिक सुविधाओं के लिए MinMaxScaler और श्रेणीबद्ध सुविधाओं के लिए OneHotEncoderct
लागू करने के लिए एक कॉलम ट्रांसफार्मर ( ) बनाता है।
अंत में, ट्रांसफॉर्मर का उपयोग ट्रेन और परीक्षण डेटा को बदलने के लिए किया जाता है, और परिणामी रूपांतरित डेटा को x_train_transformed
और में संग्रहीत किया जाता है x_test_transformed
। ये रूपांतरित डेटासेट अब तंत्रिका नेटवर्क के लिए इनपुट के रूप में उपयोग करने के लिए तैयार हैं, जो प्रक्रिया का अगला चरण है।
मॉडल आर्किटेक्चर
मॉडल आर्किटेक्चर तंत्रिका नेटवर्क की संरचना को संदर्भित करता है जो इनपुट सुविधाओं को आउटपुट सुविधाओं या लक्ष्य चर में मैप करता है। इसमें न्यूरॉन्स की कई परतें होती हैं जो इनपुट डेटा पर गणितीय कार्य करती हैं।
एक विशिष्ट प्रतिगमन आर्किटेक्चर मॉडल में निम्नलिखित पैरामीटर होंगे:
- इनपुट लेयर: यह लेयर इनपुट डेटा लेती है, जो टेंसर या मैट्रिक्स के रूप में हो सकता है।
- छिपी हुई परतें: ये ऐसी परतें हैं जो इनपुट डेटा का एक अरैखिक परिवर्तन करती हैं। छिपी हुई परतों की संख्या और प्रत्येक परत में न्यूरॉन्स की संख्या समस्या की जटिलता और उपलब्ध डेटा की मात्रा पर निर्भर करेगी।
- आउटपुट लेयर: यह लेयर मॉडल की अंतिम भविष्यवाणी करती है। एक प्रतिगमन मॉडल में, आउटपुट परत में आमतौर पर एक न्यूरॉन होता है जो एक निरंतर मूल्य का उत्पादन करता है।
यहां हम अपनी समस्या के आधार पर एक साधारण न्यूरल नेट बनाएंगे। निम्नलिखित कोड यादृच्छिक बीज सेट करता है, तीन परतों के साथ मॉडल आर्किटेक्चर को परिभाषित करता है, मॉडल को औसत पूर्ण त्रुटि हानि फ़ंक्शन और एडम ऑप्टिमाइज़र के साथ संकलित करता है, और 100 युगों के लिए प्रशिक्षण डेटा पर मॉडल को प्रशिक्षित करता है। प्रशिक्षण प्रक्रिया का इतिहास history
चर में संग्रहीत होता है, जिसका उपयोग मॉडल के प्रदर्शन का मूल्यांकन करने के लिए किया जा सकता है।
प्रयोग model.summary()
मॉडल आर्किटेक्चर को इस तरह संक्षेप में प्रस्तुत करेगा
एक तंत्रिका नेटवर्क के मॉडल आर्किटेक्चर में इनपुट और आउटपुट आकार महत्वपूर्ण हैं क्योंकि वे वज़न और पूर्वाग्रह मैट्रिक्स के आकार को निर्धारित करते हैं जो नेटवर्क प्रशिक्षण के दौरान सीखेगा।
गलत तरीके से सेट किए गए आकार के परिणामस्वरूप प्रशिक्षण और भविष्यवाणी के दौरान त्रुटियां हो सकती हैं, और आकार की त्रुटियां सबसे आम प्रकार की त्रुटि हैं।
अपने मूलभूत कौशल को मजबूत करना चाहते हैं? यह पढ़ने लायक हो सकता है
डीप लर्निंग एसेंशियल्सप्रशिक्षण और मूल्यांकन
अब जब हमारे पास अपना मॉडल आर्किटेक्चर सेट हो गया है, तो यह मॉडल को प्रशिक्षित करने और अंतर्दृष्टि प्राप्त करने के लिए भविष्यवाणियां करने का समय है। आइए ट्रेन करें
मॉडल निर्माण के दौरान, हमने मेट्रिक्स सेट किए थे और उनकी गणना TensorFlow के इनबिल्ट फ़ंक्शंस का उपयोग करके की जा सकती है। टेंसरों का सही आकार सुनिश्चित करना महत्वपूर्ण है, खासकर उनकी तुलना करते समय।
बेमेल टेंसर, विशेष रूप से इनपुट और आउटपुट आकार, कई त्रुटियों को जन्म दे सकते हैं। जबकि हमेशा जरूरी नहीं है, सतर्क रहना और आकार बेमेल की जांच करना महत्वपूर्ण है।
# Check the tensor shapes
y_test.shape, y_predicted.shape
>>> ((335,), (335, 1))
# Shape after squeeze()
y_predicted.squeeze().shape
>>> (335,)
# Calcuate the MAE
mae = tf.metrics.mean_absolute_error(y_true=y_test,
y_pred=y_predicted.squeeze())
# Calculate the MSE
mse = tf.metrics.mean_squared_error(y_true=y_test,
y_pred=y_predicted.squeeze())
mae, mse
>>> (<tf.Tensor: shape=(), dtype=float32, numpy=3687.7112>,
<tf.Tensor: shape=(), dtype=float32, numpy=50863628.0>)
यहाँ इसके लिए पूरा कोड है
इसके साथ ही, तंत्रिका नेटवर्क को बढ़ाने के कई तरीके हैं, जैसे कि इसे गहरा बनाने के लिए परतों की संख्या बढ़ाना, इसे व्यापक बनाने के लिए छिपी हुई इकाइयों की संख्या में वृद्धि करना और सीखने की दर को समायोजित करना। ये पैरामीटर, जिन्हें मानव द्वारा समायोजित किया जा सकता है, हाइपरपैरामीटर के रूप में जाना जाता है, और सबसे उपयुक्त हाइपरपैरामीटर खोजने की प्रक्रिया को हाइपरपैरामीटर ट्यूनिंग के रूप में जाना जाता है। तंत्रिका नेटवर्क के प्रदर्शन को अनुकूलित करने के लिए गहन शिक्षण में इस अभ्यास का व्यापक रूप से उपयोग किया जाता है।
मैं इसे आप पर छोड़ता हूँ कि आप विभिन्न दृष्टिकोणों के साथ प्रयोग करें और अपनी स्वयं की समझ विकसित करें।
यहाँ से कहाँ जाएं?
अधिक व्यापक समझ हासिल करने के लिए, मैं एक कस्टम डेटासेट बनाने और हाइपरपरमेटर्स के साथ प्रयोग करने की सलाह दूंगा। एक तरीका यह है कि संख्याओं की एक सूची बनाई जाए और उस पर एक कस्टम-जनरेटिंग फ़ंक्शन लागू किया जाए, पूर्वाग्रहों को पेश किया जाए और परिणामी मानों को लक्ष्य चर के रूप में उपयोग किया जाए। फिर, इस डेटासेट को न्यूरल नेटवर्क में फीड करें और सटीकता में सुधार के लिए इसे फाइन-ट्यून करें।
मैंने TensorFlow के लिए एक व्यापक भंडार बनाया है जिसे मैं प्रयोगों और उदाहरणों के साथ नियमित अंतराल पर अपडेट करता रहता हूं। इस स्थान में सहयोग करने के लिए स्वतंत्र महसूस करें
निष्कर्ष
TensorFlow का उपयोग करके एक शक्तिशाली प्रतिगमन मॉडल बनाना कोई आसान काम नहीं है, लेकिन सही उपकरण और तकनीकों के साथ यह किया जा सकता है। इस ब्लॉग में, हमने पता लगाया है कि डेटा को प्रीप्रोसेस कैसे करें, एक गहरे तंत्रिका नेटवर्क आर्किटेक्चर को परिभाषित करें, मॉडल को प्रशिक्षित करें और इसके प्रदर्शन का मूल्यांकन करें। इन कौशलों के साथ, आप समस्याओं और डेटासेट की एक विस्तृत श्रृंखला के लिए प्रतिगमन मॉडल बनाने में सक्षम होंगे। याद रखें, अभ्यास परिपूर्ण बनाता है, इसलिए जब तक आप सटीकता और प्रदर्शन के वांछित स्तर को प्राप्त नहीं कर लेते, तब तक अपने मॉडलों का प्रयोग और परिशोधन करते रहें।
और यह हमें इस ब्लॉग पोस्ट के अंत में लाता है। बधाई
मुझे आशा है कि मैं एमएलपी (मल्टी-लेयर परसेप्ट्रॉन) का उपयोग करके एक प्रतिगमन मॉडल की वास्तुकला के आसपास कुछ buzzwords को समझने में सक्षम था। यदि आपके कोई प्रश्न हैं या मैंने यहां कुछ भी याद किया है बेझिझक उन्हें टिप्पणी अनुभाग में आग लगा दें।
मैं और अधिक एम मशीन सीखने/डेटा विज्ञान अवधारणाओं को लाने की कोशिश करूंगा और फैंसी-लगने वाली शर्तों और अवधारणाओं को सरल लोगों में तोड़ने की कोशिश करूंगा।
मुझे आशा है कि आपको यह लेख अच्छा लगा होगा! ऐसे और आर्टिकल्स के लिए आप मुझे अफाक उमेर को फॉलो कर सकते हैं।