Computer in Hindi | Business in Hindi: Machine Learning
Showing posts with label Machine Learning. Show all posts
Showing posts with label Machine Learning. Show all posts

Monday, April 4, 2022

What is polynomial regression in machine learning Hindi

April 04, 2022 0
What is polynomial regression in machine learning Hindi

 बहुपद प्रतिगमन एक प्रतिगमन एल्गोरिथ्म है जो एक आश्रित (y) और स्वतंत्र चर (x) के बीच संबंध को nth डिग्री बहुपद के रूप में मॉडल करता है। बहुपद प्रतिगमन समीकरण नीचे दिया गया है:

y= b0+b1x1+ b2x12+ b2x13+...... bnx1n

  • इसे ML में मल्टीपल लीनियर रिग्रेशन का स्पेशल केस भी कहा जाता है। क्योंकि हम इसे बहुपद प्रतिगमन में बदलने के लिए कई रैखिक प्रतिगमन समीकरण में कुछ बहुपद शब्द जोड़ते हैं।
  • यह सटीकता बढ़ाने के लिए कुछ संशोधन के साथ एक रैखिक मॉडल है।
  • प्रशिक्षण के लिए बहुपद प्रतिगमन में प्रयुक्त डेटासेट गैर-रेखीय प्रकृति का है।
  • यह जटिल और गैर-रेखीय कार्यों और डेटासेट को फिट करने के लिए एक रेखीय प्रतिगमन मॉडल का उपयोग करता है।
  • इसलिए, "बहुपद प्रतिगमन में, मूल विशेषताओं को आवश्यक डिग्री (2,3,..,n) की बहुपद विशेषताओं में परिवर्तित किया जाता है और फिर एक रैखिक मॉडल का उपयोग करके मॉडलिंग की जाती है।"

polynomial regression in machine learning in Hindi

Need for Polynomial Regression:

एमएल में बहुपद प्रतिगमन की आवश्यकता को निम्न बिंदुओं में समझा जा सकता है:


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

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


polynomial regression in machine learning
polynomial regression in machine learning



उपरोक्त छवि में, हमने एक डेटासेट लिया है जिसे गैर-रैखिक रूप से व्यवस्थित किया गया है। इसलिए यदि हम इसे एक रैखिक मॉडल के साथ कवर करने का प्रयास करते हैं, तो हम स्पष्ट रूप से देख सकते हैं कि यह शायद ही किसी डेटा बिंदु को कवर करता है। दूसरी ओर, अधिकांश डेटा बिंदुओं को कवर करने के लिए एक वक्र उपयुक्त है, जो बहुपद मॉडल का है।



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


Equation of the Polynomial Regression Model:

सरल रैखिक प्रतिगमन समीकरण: y = b0+b1x .........(A)


एकाधिक रैखिक प्रतिगमन समीकरण: y= b0+b1x+ b2x2+ b3x3+....+ bnxn .........(B)


बहुपद प्रतिगमन समीकरण: y= b0+b1x + b2x2+ b3x3+....+ bnxn ..........(C)


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


Implementation of Polynomial Regression using Python

यहां हम पायथन का उपयोग करके बहुपद प्रतिगमन को लागू करेंगे। हम इसे सरल रैखिक प्रतिगमन मॉडल के साथ बहुपद प्रतिगमन मॉडल की तुलना करके समझेंगे। तो सबसे पहले, आइए उस समस्या को समझते हैं जिसके लिए हम मॉडल बनाने जा रहे हैं।


समस्या विवरण: एक मानव संसाधन कंपनी है, जो एक नए उम्मीदवार को नियुक्त करने जा रही है। उम्मीदवार ने अपना पिछला वेतन 160K प्रति वर्ष बताया है, और एचआर को यह जांचना होगा कि वह सच कह रहा है या झांसा। तो इसकी पहचान करने के लिए उनके पास केवल उनकी पिछली कंपनी का डाटासेट होता है जिसमें टॉप 10 पदों के वेतन का उल्लेख उनके स्तर के साथ किया जाता है। उपलब्ध डेटासेट की जाँच करके, हमने पाया है कि स्थिति स्तरों और वेतन के बीच एक गैर-रैखिक संबंध है। हमारा लक्ष्य ब्लफ़िंग डिटेक्टर रिग्रेशन मॉडल बनाना है, ताकि एचआर एक ईमानदार उम्मीदवार को नियुक्त कर सके। इस तरह के मॉडल को बनाने के चरण नीचे दिए गए हैं।


polynomial regression in machine learning Hindi
polynomial regression in machine learning Hindi



Steps for polynomial regression in machine learning:

बहुपद प्रतिगमन में शामिल मुख्य चरण नीचे दिए गए हैं:


  • डेटा प्री-प्रोसेसिंग
  • एक रैखिक प्रतिगमन मॉडल बनाएं और इसे डेटासेट में फिट करें
  • एक बहुपद प्रतिगमन मॉडल बनाएं और इसे डेटासेट में फिट करें
  • रैखिक प्रतिगमन और बहुपद प्रतिगमन मॉडल के परिणाम की कल्पना करें।
  • आउटपुट की भविष्यवाणी करना।


Data Pre-processing Step:


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


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

प्री-प्रोसेसिंग चरण के लिए कोड नीचे दिया गया है:

  1. # importing libraries  
  2. import numpy as nm  
  3. import matplotlib.pyplot as mtp  
  4. import pandas as pd  
  5.   
  6. #importing datasets  
  7. data_set= pd.read_csv('Position_Salaries.csv')  
  8.   
  9. #Extracting Independent and dependent Variable  
  10. x= data_set.iloc[:, 1:2].values  
  11. y= data_set.iloc[:, 2].values  

Explanation:


  • कोड की उपरोक्त पंक्तियों में, हमने डेटासेट आयात करने और उस पर काम करने के लिए महत्वपूर्ण पायथन पुस्तकालयों को आयात किया है।
  • इसके बाद, हमने डेटासेट 'Position_Salaries.csv' आयात किया है, जिसमें तीन कॉलम (स्थिति, स्तर और वेतन) हैं, लेकिन हम केवल दो कॉलम (वेतन और स्तर) पर विचार करेंगे।
  • उसके बाद, हमने डेटासेट से डिपेंडेंट (Y) और इंडिपेंडेंट वेरिएबल (X) निकाला है। एक्स-वेरिएबल के लिए, हमने पैरामीटर्स को [:,1:2] के रूप में लिया है, क्योंकि हम 1 इंडेक्स (स्तर) चाहते हैं, और इसमें शामिल हैं: 2 इसे मैट्रिक्स के रूप में बनाने के लिए।

Output:


polynomial regression
polynomial regression in machine learning



उपरोक्त कोड को निष्पादित करके, हम अपने डेटासेट को इस प्रकार पढ़ सकते हैं:


जैसा कि हम उपरोक्त आउटपुट में देख सकते हैं, तीन कॉलम मौजूद हैं (स्थिति, स्तर और वेतन)। लेकिन हम केवल दो स्तंभों पर विचार कर रहे हैं क्योंकि स्थितियां स्तरों के बराबर हैं या स्थिति के एन्कोडेड रूप के रूप में देखी जा सकती हैं।


यहां हम स्तर 6.5 के लिए आउटपुट की भविष्यवाणी करेंगे क्योंकि उम्मीदवार के पास क्षेत्रीय प्रबंधक के रूप में 4+ वर्ष का अनुभव है, इसलिए उसे स्तर 7 और 6 के बीच कहीं होना चाहिए।


Building the Linear regression model:


अब, हम रैखिक प्रतिगमन मॉडल को डेटासेट में बनाएंगे और फिट करेंगे। बहुपद प्रतिगमन के निर्माण में, हम रैखिक प्रतिगमन मॉडल को संदर्भ के रूप में लेंगे और दोनों परिणामों की तुलना करेंगे। कोड नीचे दिया गया है:

  1. #Fitting the Linear Regression to the dataset  
  2. from sklearn.linear_model import LinearRegression  
  3. lin_regs= LinearRegression()  
  4. lin_regs.fit(x,y)  

उपरोक्त कोड में, हमने LinearRegression क्लास के lin_regs ऑब्जेक्ट का उपयोग करके सिंपल लीनियर मॉडल बनाया है और इसे डेटासेट वेरिएबल्स (x और y) में फिट किया है।


Output:

Out[5]: LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

Building the Polynomial regression model:


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

  1.  #Fitting the Polynomial regression to the dataset  
  2. from sklearn.preprocessing import PolynomialFeatures  
  3. poly_regs= PolynomialFeatures(degree= 2)  
  4. x_poly= poly_regs.fit_transform(x)  
  5. lin_reg_2 =LinearRegression()  
  6. lin_reg_2.fit(x_poly, y)  

कोड की उपरोक्त पंक्तियों में, हमने poly_regs.fit_transform(x) का उपयोग किया है, क्योंकि पहले हम अपने फीचर मैट्रिक्स को बहुपद फीचर मैट्रिक्स में परिवर्तित कर रहे हैं, और फिर इसे बहुपद प्रतिगमन मॉडल में फिट कर रहे हैं। पैरामीटर मान (डिग्री = 2) हमारी पसंद पर निर्भर करता है। हम इसे अपनी बहुपद विशेषताओं के अनुसार चुन सकते हैं।


कोड निष्पादित करने के बाद, हमें एक और मैट्रिक्स x_poly मिलेगा, जिसे वेरिएबल एक्सप्लोरर विकल्प के तहत देखा जा सकता है:


polynomial regression example
polynomial regression example



इसके बाद, हमने अपने x_poly वेक्टर को लीनियर मॉडल में फ़िट करने के लिए एक अन्य LinearRegression ऑब्जेक्ट, अर्थात् lin_reg_2 का उपयोग किया है।


OUTPUT :- 

Out[11]: LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

रैखिक प्रतिगमन के लिए परिणाम की कल्पना करना:

  1. #Visulaizing the result for Linear Regression model  
  2. mtp.scatter(x,y,color="blue")  
  3. mtp.plot(x,lin_regs.predict(x), color="red")  
  4. mtp.title("Bluff detection model(Linear Regression)")  
  5. mtp.xlabel("Position Levels")  
  6. mtp.ylabel("Salary")  
  7. mtp.show()  

OUTPUT :- 

Visualizing the result for Linear regression:
Visualizing the result for Linear regression:




अब हम लीनियर रिग्रेशन मॉडल के परिणाम की कल्पना करेंगे जैसा कि हमने सिंपल लीनियर रिग्रेशन में किया था। नीचे इसके लिए कोड है:


उपरोक्त आउटपुट छवि में, हम स्पष्ट रूप से देख सकते हैं कि प्रतिगमन रेखा डेटासेट से बहुत दूर है। भविष्यवाणियां एक लाल सीधी रेखा में होती हैं, और नीले बिंदु वास्तविक मान होते हैं। अगर हम सीईओ के मूल्य की भविष्यवाणी करने के लिए इस आउटपुट पर विचार करते हैं, तो यह लगभग वेतन देगा। 600000$, जो वास्तविक मूल्य से बहुत दूर है।


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


Visualizing the result for Polynomial Regression


यहां हम बहुपद प्रतिगमन मॉडल के परिणाम की कल्पना करेंगे, जिसके लिए कोड उपरोक्त मॉडल से थोड़ा अलग है।


इसके लिए कोड नीचे दिया गया है:

  1. #Visulaizing the result for Polynomial Regression  
  2. mtp.scatter(x,y,color="blue")  
  3. mtp.plot(x, lin_reg_2.predict(poly_regs.fit_transform(x)), color="red")  
  4. mtp.title("Bluff detection model(Polynomial Regression)")  
  5. mtp.xlabel("Position Levels")  
  6. mtp.ylabel("Salary")  
  7. mtp.show()  

उपरोक्त कोड में, हमने x_poly के बजाय lin_reg_2.predict(poly_regs.fit_transform(x) लिया है, क्योंकि हम चाहते हैं कि एक रैखिक प्रतिगामी वस्तु बहुपद सुविधाओं मैट्रिक्स की भविष्यवाणी करे।


आउटपुट:


regression in machine learning
regression in machine learning



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


For degree= 3:


यदि हम डिग्री = 3 को बदलते हैं, तो हम अधिक सटीक प्लॉट देंगे, जैसा कि नीचे की छवि में दिखाया गया है।


polynomial regression algorithm
polynomial regression algorithm



SO जैसा कि हम यहां उपरोक्त आउटपुट छवि में देख सकते हैं, स्तर 6.5 के लिए अनुमानित वेतन 170K$-190k$ के करीब है, जो ऐसा लगता है कि भविष्य का कर्मचारी अपने वेतन के बारे में सच कह रहा है।


डिग्री = 4: आइए फिर से डिग्री को 4 में बदलें, और अब सबसे सटीक प्लॉट मिलेगा। इसलिए हम बहुपद की घात बढ़ाकर अधिक सटीक परिणाम प्राप्त कर सकते हैं।


polynomial regression in hindi
polynomial regression in hindi



Predicting the final result with the Linear Regression model:


अब, हम लीनियर रिग्रेशन मॉडल का उपयोग करके अंतिम आउटपुट की भविष्यवाणी करेंगे, यह देखने के लिए कि कोई कर्मचारी सच कह रहा है या झांसा। तो, इसके लिए, हम भविष्यवाणी () विधि का उपयोग करेंगे और मान 6.5 पास करेंगे। नीचे इसके लिए कोड है:

  1. lin_pred = lin_regs.predict([[6.5]])  
  2. print(lin_pred)  

Output:

[330378.78787879]

Predicting the final result with the Polynomial Regression model:


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


poly_pred = lin_reg_2.predict(poly_regs.fit_transform([[6.5]]))  

print(poly_pred)  

Output:


[158862.45265153]

जैसा कि हम देख सकते हैं, बहुपद प्रतिगमन के लिए अनुमानित आउटपुट [158862.45265153] है, जो वास्तविक मूल्य के बहुत करीब है, इसलिए हम कह सकते हैं कि भविष्य का कर्मचारी सच कह रहा है।

Friday, April 1, 2022

What is loss function in machine learning Hindi

April 01, 2022 0
What is loss function in machine learning Hindi

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


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


मोटे तौर पर, हानि कार्यों को दो प्रमुख श्रेणियों में वर्गीकृत किया जा सकता है, जो सीखने के कार्य के प्रकार पर निर्भर करता है -  Regression losses और Classification losses। वर्गीकरण में, हम परिमित श्रेणीबद्ध मूल्यों के सेट से आउटपुट की भविष्यवाणी करने की कोशिश कर रहे हैं यानी हाथ से लिखे अंकों की छवियों के बड़े डेटा सेट को देखते हुए, उन्हें 0–9 अंकों में से एक में वर्गीकृत करना। दूसरी ओर, प्रतिगमन, एक निरंतर मूल्य की भविष्यवाणी करने से संबंधित है, उदाहरण के लिए दिया गया फर्श क्षेत्र, कमरों की संख्या, कमरों का आकार, कमरे की कीमत की भविष्यवाणी करना।


        n        - Number of training examples.

        i        - ith training example in a data set.

        y(i)     - Ground truth label for ith training example.

        y_hat(i) - Prediction for ith training example.


loss function in machine learning in Hindi


Regression Losses

Mean Square Error/Quadratic Loss/L2 Loss


गणितीय सूत्रीकरण :-


loss function in machine learning
loss function in machine learning



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


import numpy as npy_hat = np.array([0.000, 0.166, 0.333])
y_true = np.array([0.000, 0.254, 0.998])
def rmse(predictions, targets):
differences = predictions - targets
differences_squared = differences ** 2
mean_of_differences_squared = differences_squared.mean()
rmse_val = np.sqrt(mean_of_differences_squared)
return rmse_val
print("d is: " + str(["%.8f" % elem for elem in y_hat]))
print("p is: " + str(["%.8f" % elem for elem in y_true]))
rmse_val = rmse(y_hat, y_true)
print("rms error is: " + str(rmse_val))



Mean Absolute Error/L1 Loss

Mathematical formulation :-



loss function in machine learning in Hindi
loss function in machine learning in Hindi



दूसरी ओर, मीन निरपेक्ष त्रुटि, भविष्यवाणियों और वास्तविक टिप्पणियों के बीच पूर्ण अंतर के योग के औसत के रूप में मापा जाता है। एमएसई की तरह, यह भी उनकी दिशा पर विचार किए बिना त्रुटि की भयावहता को मापता है। MSE के विपरीत, MAE को अधिक जटिल उपकरणों की आवश्यकता होती है जैसे कि रेखीय प्रोग्रामिंग ग्रेडिएंट की गणना करने के लिए। प्लस एमएई आउटलेर्स के लिए अधिक मजबूत है क्योंकि यह वर्ग का उपयोग नहीं करता है।

import numpy as npy_hat = np.array([0.000, 0.166, 0.333])
y_true = np.array([0.000, 0.254, 0.998])

print("d is: " + str(["%.8f" % elem for elem in y_hat]))
print("p is: " + str(["%.8f" % elem for elem in y_true]))

def mae(predictions, targets):
differences = predictions - targets
absolute_differences = np.absolute(differences)
mean_absolute_differences = absolute_differences.mean()
return mean_absolute_differences
mae_val = mae(y_hat, y_true)
print ("mae error is: " + str(mae_val))


Mean Bias Error

यह अपने समकक्ष की तुलना में मशीन लर्निंग डोमेन में बहुत कम आम है। यह एमएसई के समान ही है, एकमात्र अंतर यह है कि हम पूर्ण मूल्यों को नहीं लेते हैं। स्पष्ट रूप से सावधानी बरतने की आवश्यकता है क्योंकि सकारात्मक और नकारात्मक त्रुटियां एक दूसरे को रद्द कर सकती हैं। हालांकि व्यवहार में कम सटीक, यह निर्धारित कर सकता है कि मॉडल में सकारात्मक पूर्वाग्रह या नकारात्मक पूर्वाग्रह है या नहीं।


Mathematical formulation :-


Mathematical formulation
Mathematical formulation 


Classification Losses


Hinge Loss/Multi class SVM Loss

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

गणितीय सूत्रीकरण :-


Hinge Loss/Multi class SVM Loss
Hinge Loss/Multi class SVM Loss



एक उदाहरण पर विचार करें जहां हमारे पास तीन प्रशिक्षण उदाहरण और भविष्यवाणी करने के लिए तीन वर्ग हैं - कुत्ता, बिल्ली और घोड़ा। प्रत्येक वर्ग के लिए हमारे एल्गोरिथ्म द्वारा अनुमानित मूल्यों के नीचे: -


loss function machine learning example
loss function machine learning example




सभी 3 प्रशिक्षण उदाहरणों के लिए काज हानियों की गणना: -


## 1st training example
max(0, (1.49) - (-0.39) + 1) + max(0, (4.21) - (-0.39) + 1)
max(0, 2.88) + max(0, 5.6)
2.88 + 5.6
8.48 (High loss as very wrong prediction)
## 2nd training example
max(0, (-4.61) - (3.28)+ 1) + max(0, (1.46) - (3.28)+ 1)
max(0, -6.89) + max(0, -0.82)
0 + 0
0 (Zero loss as correct prediction)
## 3rd training example
max(0, (1.03) - (-2.27)+ 1) + max(0, (-2.37) - (-2.27)+ 1)
max(0, 4.3) + max(0, 0.9)
4.3 + 0.9
5.2 (High loss as very wrong prediction)

Cross Entropy Loss/Negative Log Likelihood

वर्गीकरण समस्याओं के लिए यह सबसे आम सेटिंग है। क्रॉस-एन्ट्रॉपी हानि बढ़ जाती है क्योंकि अनुमानित संभावना वास्तविक लेबल से अलग हो जाती है।

गणितीय सूत्रीकरण :-


Mathematical formulation
Mathematical formulation :-



ध्यान दें कि जब वास्तविक लेबल 1 (y(i) = 1) होता है, तो फ़ंक्शन का दूसरा भाग गायब हो जाता है जबकि वास्तविक लेबल 0 (y(i) = 0) होने की स्थिति में पहला आधा हटा दिया जाता है। संक्षेप में, हम जमीनी सच्चाई वर्ग के लिए वास्तविक अनुमानित संभावना के लॉग को केवल गुणा कर रहे हैं। इसका एक महत्वपूर्ण पहलू यह है कि क्रॉस एंट्रॉपी लॉस उन भविष्यवाणियों को भारी रूप से दंडित करता है जो आश्वस्त हैं लेकिन गलत हैं।



import numpy as nppredictions = np.array([[0.25,0.25,0.25,0.25],
[0.01,0.01,0.01,0.96]])
targets = np.array([[0,0,0,1],
[0,0,0,1]])
def cross_entropy(predictions, targets, epsilon=1e-10):
predictions = np.clip(predictions, epsilon, 1. - epsilon)
N = predictions.shape[0]
ce_loss = -np.sum(np.sum(targets * np.log(predictions + 1e-5)))/N
return ce_loss
cross_entropy_loss = cross_entropy(predictions, targets)
print ("Cross entropy loss is: " + str(cross_entropy_loss))

Thursday, March 31, 2022

classification algorithms machine learning Hindi

March 31, 2022 0
classification algorithms machine learning Hindi

 जैसा कि हम जानते हैं, पर्यवेक्षित मशीन लर्निंग एल्गोरिदम को मोटे तौर पर प्रतिगमन और वर्गीकरण एल्गोरिदम में वर्गीकृत किया जा सकता है। प्रतिगमन एल्गोरिदम में, हमने निरंतर मूल्यों के लिए आउटपुट की भविष्यवाणी की है, लेकिन श्रेणीबद्ध मूल्यों की भविष्यवाणी करने के लिए, हमें वर्गीकरण एल्गोरिदम की आवश्यकता है।


classification algorithms machine learning

वर्गीकरण एल्गोरिथ्म एक पर्यवेक्षित शिक्षण तकनीक है जिसका उपयोग प्रशिक्षण डेटा के आधार पर नई टिप्पणियों की श्रेणी की पहचान करने के लिए किया जाता है। वर्गीकरण में, एक प्रोग्राम दिए गए डेटासेट या अवलोकनों से सीखता है और फिर नए अवलोकन को कई वर्गों या समूहों में वर्गीकृत करता है। जैसे, Yes or No, 0 or 1, Spam or Not Spam, cat or dog, आदि। वर्गों को लक्ष्य/लेबल या श्रेणियां कहा जा सकता है।


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


वर्गीकरण एल्गोरिथम में, एक असतत आउटपुट function(y) को इनपुट  variable(x) में मैप किया जाता है।


  1. y=f(x), where y = categorical output  


ML वर्गीकरण एल्गोरिथ्म का सबसे अच्छा उदाहरण ईमेल स्पैम डिटेक्टर है।


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


नीचे दिए गए आरेख का उपयोग करके वर्गीकरण एल्गोरिदम को बेहतर ढंग से समझा जा सकता है। नीचे दिए गए आरेख में, दो वर्ग हैं, कक्षा ए और कक्षा बी। इन वर्गों में ऐसी विशेषताएं हैं जो एक दूसरे के समान हैं और अन्य वर्गों से भिन्न हैं।


डेटासेट पर वर्गीकरण को लागू करने वाले एल्गोरिथम को क्लासिफायरियर के रूप में जाना जाता है। दो प्रकार के वर्गीकरण हैं:


classification algorithms machine learning
classification algorithms machine learning



Binary Classifier: यदि वर्गीकरण समस्या के केवल दो संभावित परिणाम हैं, तो इसे बाइनरी क्लासिफायर कहा जाता है।

उदाहरण: हाँ या नहीं, पुरुष या महिला, स्पैम या नहीं स्पैम, CAT या DOG, आदि।

Multi-class Classifier: यदि किसी वर्गीकरण समस्या के दो से अधिक परिणाम हैं, तो इसे मल्टी-क्लास क्लासिफायरियर कहा जाता है।

उदाहरण: फसलों के प्रकारों का वर्गीकरण, संगीत के प्रकारों का वर्गीकरण।

Learners in Classification Problems:

वर्गीकरण समस्याओं में शिक्षार्थी दो प्रकार के होते हैं:


  • Lazy Learners:  आलसी शिक्षार्थी सबसे पहले प्रशिक्षण डेटासेट को संग्रहीत करता है और तब तक प्रतीक्षा करता है जब तक कि वह परीक्षण डेटासेट प्राप्त न कर ले। आलसी सीखने वाले के मामले में, प्रशिक्षण डेटासेट में संग्रहीत सबसे संबंधित डेटा के आधार पर वर्गीकरण किया जाता है। प्रशिक्षण में कम समय लगता है लेकिन भविष्यवाणियों के लिए अधिक समय लगता है।

उदाहरण: के-एनएन एल्गोरिथ्म, केस-आधारित तर्क

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

Types of classification algorithms machine learning:

वर्गीकरण एल्गोरिदम को आगे मुख्य रूप से दो श्रेणियों में विभाजित किया जा सकता है:


  • Linear Models

संभार तन्त्र परावर्तन

समर्थन वेक्टर मशीन

  • Non-linear Models

K-निकटतम पड़ोसी

कर्नेल एसवीएम

भोले बेयस

निर्णय वृक्ष वर्गीकरण

यादृच्छिक वन वर्गीकरण

Evaluating a Classification model In Machine Learning

एक बार हमारा मॉडल पूरा हो जाने के बाद, इसके प्रदर्शन का मूल्यांकन करना आवश्यक है; या तो यह एक वर्गीकरण या प्रतिगमन मॉडल है। तो एक वर्गीकरण मॉडल का मूल्यांकन करने के लिए, हमारे पास निम्नलिखित तरीके हैं:


1. Log Loss or Cross-Entropy Loss:


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

  1. ?(ylog(p)+(1?y)log(1?p))  



2. Confusion Matrix:


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

classification algorithms machine learning
classification algorithms machine learning



3. AUC-ROC curve:


  • ROC कर्व का मतलब रिसीवर ऑपरेटिंग कैरेक्टरिस्टिक कर्व है और AUC का मतलब एरिया अंडर द कर्व है।
  • यह एक ग्राफ है जो विभिन्न थ्रेसहोल्ड पर वर्गीकरण मॉडल के प्रदर्शन को दर्शाता है।
  • बहु-वर्ग वर्गीकरण मॉडल के प्रदर्शन की कल्पना करने के लिए, हम AUC-ROC वक्र का उपयोग करते हैं।
  • आरओसी वक्र को टीपीआर और एफपीआर के साथ प्लॉट किया जाता है, जहां वाई-अक्ष पर टीपीआर (सच्ची सकारात्मक दर) और एक्स-अक्ष पर एफपीआर (झूठी सकारात्मक दर) होती है।

Use cases of Classification Algorithms

वर्गीकरण एल्गोरिदम का उपयोग विभिन्न स्थानों पर किया जा सकता है। वर्गीकरण एल्गोरिदम के कुछ लोकप्रिय उपयोग के मामले नीचे दिए गए हैं:


  • ईमेल स्पैम डिटेक्शन
  • वाक् पहचान
  • कैंसर ट्यूमर कोशिकाओं की पहचान।
  • दवाओं का वर्गीकरण
  • बायोमेट्रिक पहचान, आदि।

Sunday, March 27, 2022

logistic regression in machine learning in Hindi

March 27, 2022 0
logistic regression in machine learning in Hindi

Logistic regression एक supervised learning classification algorithm है जिसका उपयोग लक्ष्य चर की संभावना का अनुमान लगाने के लिए किया जाता है। लक्ष्य या आश्रित चर की प्रकृति द्विबीजपत्री है, जिसका अर्थ है कि केवल दो संभावित वर्ग होंगे।



सरल शब्दों में, आश्रित चर प्रकृति में द्विआधारी है जिसमें डेटा को 1 (सफलता/हां के लिए खड़ा है) या 0 (असफलता/नहीं के लिए खड़ा है) के रूप में कोडित किया गया है।


गणितीय रूप से, एक logistic regression model पी (वाई = 1) को एक्स के एक फ़ंक्शन के रूप में भविष्यवाणी करता है। यह सबसे सरल एमएल एल्गोरिदम में से एक है जिसका उपयोग विभिन्न वर्गीकरण समस्याओं जैसे कि स्पैम का पता लगाने, मधुमेह की भविष्यवाणी, कैंसर का पता लगाने आदि के लिए किया जा सकता है।


logistic regression in machine learning in Hindi


Type of logistic regression

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


Binary or Binomial

इस तरह के वर्गीकरण में, एक आश्रित चर के केवल दो संभावित प्रकार होंगे या तो 1 और 0। उदाहरण के लिए, ये चर सफलता या विफलता, हाँ या नहीं, जीत या हार आदि का प्रतिनिधित्व कर सकते हैं।


Multinomial

इस प्रकार के वर्गीकरण में, आश्रित चर के 3 या अधिक संभावित अनियंत्रित प्रकार हो सकते हैं या ऐसे प्रकार हो सकते हैं जिनका कोई मात्रात्मक महत्व नहीं है। उदाहरण के लिए, ये चर "टाइप ए" या "टाइप बी" या "टाइप सी" का प्रतिनिधित्व कर सकते हैं।


Ordinal

इस प्रकार के वर्गीकरण में आश्रित चर में 3 या अधिक संभावित क्रमबद्ध प्रकार या मात्रात्मक महत्व वाले प्रकार हो सकते हैं। उदाहरण के लिए, ये चर "खराब" या "अच्छा", "बहुत अच्छा", "उत्कृष्ट" का प्रतिनिधित्व कर सकते हैं और प्रत्येक श्रेणी में 0,1,2,3 जैसे स्कोर हो सकते हैं।


Assumptions For logistic regression in machine learning in Hindi

लॉजिस्टिक रिग्रेशन के कार्यान्वयन में गोता लगाने से पहले, हमें उसी के बारे में निम्नलिखित धारणाओं से अवगत होना चाहिए -


  • बाइनरी लॉजिस्टिक रिग्रेशन के मामले में, लक्ष्य चर हमेशा बाइनरी होना चाहिए और वांछित परिणाम कारक स्तर 1 द्वारा दर्शाया जाता है।


  • मॉडल में कोई बहु-संरेखता नहीं होनी चाहिए, जिसका अर्थ है कि स्वतंत्र चर एक दूसरे से स्वतंत्र होना चाहिए।


  • हमें अपने मॉडल में सार्थक चर शामिल करने चाहिए।


  • हमें लॉजिस्टिक रिग्रेशन के लिए एक बड़ा नमूना आकार चुनना चाहिए।


Regression Models in Machine Learning in Hindi

बाइनरी लॉजिस्टिक रिग्रेशन मॉडल - लॉजिस्टिक रिग्रेशन का सबसे सरल रूप बाइनरी या बिनोमियल लॉजिस्टिक रिग्रेशन है जिसमें लक्ष्य या आश्रित चर के केवल 2 संभावित प्रकार हो सकते हैं या तो 1 या 0।


मल्टीनोमियल लॉजिस्टिक रिग्रेशन मॉडल - लॉजिस्टिक रिग्रेशन का एक अन्य उपयोगी रूप मल्टीनोमियल लॉजिस्टिक रिग्रेशन है जिसमें लक्ष्य या आश्रित चर के 3 या अधिक संभावित अनियंत्रित प्रकार हो सकते हैं यानी वे प्रकार जिनका कोई मात्रात्मक महत्व नहीं है।

Friday, March 25, 2022

overfitting and underfitting machine learning with example Hindi

March 25, 2022 0
overfitting and underfitting machine learning with example Hindi

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


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


overfitting और underfitting को समझने से पहले, आइए कुछ बुनियादी शब्दों को समझते हैं जो इस विषय को अच्छी तरह से समझने में मदद करेंगे:


सिग्नल: यह डेटा के वास्तविक अंतर्निहित पैटर्न को संदर्भित करता है जो मशीन लर्निंग मॉडल को डेटा से सीखने में मदद करता है।

Noise: शोर अनावश्यक और अप्रासंगिक डेटा है जो मॉडल के प्रदर्शन को कम करता है।

Bias: पूर्वाग्रह एक भविष्यवाणी त्रुटि है जो मशीन लर्निंग एल्गोरिदम की देखरेख के कारण मॉडल में पेश की जाती है। या यह अनुमानित मूल्यों और वास्तविक मूल्यों के बीच का अंतर है।

Variance: यदि मशीन लर्निंग मॉडल प्रशिक्षण डेटासेट के साथ अच्छा प्रदर्शन करता है, लेकिन परीक्षण डेटासेट के साथ अच्छा प्रदर्शन नहीं करता है, तो विचरण होता है।

Overfitting in machine Learning In Hindi

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


जब तक हम अपने मॉडल को प्रशिक्षण प्रदान करते हैं, तब तक ओवरफिटिंग होने की संभावना बढ़ जाती है। इसका मतलब है कि जितना अधिक हम अपने मॉडल को प्रशिक्षित करते हैं, उतने ही अधिक मॉडल के होने की संभावना अधिक होती है।


ओवरफिटिंग मुख्य समस्या है जो पर्यवेक्षित शिक्षण में होती है।


उदाहरण: ओवरफिटिंग की अवधारणा को लीनियर रिग्रेशन आउटपुट के नीचे दिए गए ग्राफ से समझा जा सकता है:


overfitting in machine learning
overfitting in machine learning



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


 avoid the Overfitting in Model in machine Learning In Hindi

ओवरफिटिंग और अंडरफिटिंग दोनों ही मशीन लर्निंग मॉडल के खराब प्रदर्शन का कारण बनते हैं। लेकिन मुख्य कारण ओवरफिटिंग है, इसलिए कुछ ऐसे तरीके हैं जिनसे हम अपने मॉडल में ओवरफिटिंग की घटना को कम कर सकते हैं।


  • Cross-Validation
  • Training with more data
  • Removing features
  • Early stopping the training
  • Regularization
  • Ensembling


underfitting in machine learning in Hindi

अंडरफिटिंग तब होती है जब हमारा मशीन लर्निंग मॉडल डेटा की अंतर्निहित प्रवृत्ति को पकड़ने में सक्षम नहीं होता है। मॉडल में ओवरफिटिंग से बचने के लिए, प्रशिक्षण डेटा के फीडिंग को प्रारंभिक चरण में रोका जा सकता है, जिसके कारण मॉडल प्रशिक्षण डेटा से पर्याप्त नहीं सीख सकता है। नतीजतन, यह डेटा में प्रमुख प्रवृत्ति का सबसे अच्छा फिट खोजने में विफल हो सकता है।


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


एक अंडरफिट मॉडल में उच्च पूर्वाग्रह और कम विचरण होता है।


उदाहरण: हम लीनियर रिग्रेशन मॉडल के आउटपुट का उपयोग करके अंडरफिटिंग को समझ सकते हैं:


underfitting in machine learning in hindi
underfitting in machine learning in hindi



जैसा कि हम उपरोक्त आरेख से देख सकते हैं, मॉडल प्लॉट में मौजूद डेटा बिंदुओं को पकड़ने में असमर्थ है।


How to avoid underfitting in machine learning 

मॉडल के प्रशिक्षण समय को बढ़ाकर।

सुविधाओं की संख्या में वृद्धि करके।

Goodness of Fit

"Goodness of Fit" शब्द आँकड़ों से लिया गया है, और मशीन लर्निंग मॉडल का लक्ष्य Goodness of Fit को प्राप्त करना है। सांख्यिकी मॉडलिंग में, यह परिभाषित करता है कि परिणाम या अनुमानित मूल्य डेटासेट के वास्तविक मूल्यों से कितनी निकटता से मेल खाते हैं।


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


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


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