Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

PyTorch का उपयोग करके रैखिक प्रतिगमन?

रैखिक प्रतिगमन के बारे में

सरल रैखिक प्रतिगमन मूल बातें

  • हमें दो सतत चर के बीच संबंध को समझने की अनुमति देता है।

  • उदाहरण -

    • x =स्वतंत्र चर

      • वजन

    • y =आश्रित चर

      • ऊंचाई

  • वाई =αx + β

आइए एक प्रोग्राम के माध्यम से सरल रेखीय प्रतिगमन को समझते हैं -

#सिंपल लीनियर रिग्रेशनआयात numpy as npimport matplotlib.pyplot as pltnp.random.seed(1)n =70x =np.random.randn(n)y =x * np.random.randn(n)colors =np. random.rand(n)plt.plot(np.unique(x), np.poly1d(np.polyfit(x, y, 1))(np.unique(x)))plt.scatter(x, y, c =रंग, अल्फा =0.5)plt.show()

आउटपुट

PyTorch का उपयोग करके रैखिक प्रतिगमन?

रैखिक प्रतिगमन का उद्देश्य:

  • बिंदुओं और रेखा के बीच की दूरी को कम करने के लिए (y =αx + β)

  • एडजस्ट करना

    • गुणांक:α

    • अवरोधन/पूर्वाग्रह:β

PyTorch के साथ एक लीनियर रिग्रेशन मॉडल बनाना

मान लें कि हमारा गुणांक (α) 2 है और अवरोधन (β) 1 है तो हमारा समीकरण बन जाएगा -

y =2x +1 #रैखिक मॉडल

डेटासेट बनाना

x_values ​​=[i for i इन रेंज(11)]x_values

आउटपुट

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

#कन्वर्ट टू numpy

x_train =np.array(x_values, dtype =np.float32)x_train.shape

आउटपुट

(11,)
#महत्वपूर्ण:2D आवश्यकx_train =x_train.reshape(-1, 1)x_train.shape

आउटपुट

(11, 1)
y_values ​​=[2*i + 1 for i in x_values]y_values

आउटपुट

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]
#list iterationy_values ​​=[] for i in x_values:result =2*i +1y_values.append(result)y_values

आउटपुट

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]
y_train =np.array(y_values, dtype =np.float32)y_train.shape

आउटपुट

(11,)
#2D आवश्यक_ट्रेन =y_train.reshape(-1, 1)y_train.shape

आउटपुट

(11, 1)

बिल्डिंग मॉडल

#आयात पुस्तकालयआयात मशालआयात मशाल.एनएन के रूप में मशाल से nn.autograd आयात चर# बनाएँ मॉडल वर्ग वर्ग LinearRegModel(nn.Module):def __init__(self, input_size, output_size):super(LinearRegModel, self).__init__()self. रैखिक =nn.Linear (input_dim, output_dim) def आगे (स्वयं, x):बाहर =स्वयं। रैखिक (x) वापसी outinput_dim =1output_dim =1model =LinearRegModel (input_dim, output_dim) मानदंड =nn.MSELoss (learning_rate =0.01 अनुकूलक) =टॉर्च। ऑप्टिम। एसजीडी (मॉडल। पैरामीटर्स (), एलआर =लर्निंग_रेट) युग =100 फॉर एपोच इन रेंज (युग):एपोच + =1 # सुन्न सरणी को टार्च वेरिएबल इनपुट में बदलें =वेरिएबल (टॉर्च। चर(torch.from_numpy(y_train))#साफ़ ग्रेडिएंट w.r.t पैरामीटरOptimizer.zero_grad()# आउटपुट आउटपुट प्राप्त करने के लिए फ़ॉरवर्ड करें =मॉडल. फ़ॉरवर्ड (इनपुट्स) # लॉसलॉस की गणना करें =मानदंड (आउटपुट, लेबल) # ग्रेडिएंट प्राप्त करना w.r.t पैरामीटरलॉस.बैकवर्ड ()# पैरामीटर्स को अपडेट कर रहा है। 

आउटपुट

युग 1, हानि 276.7417907714844युग 2, हानि 22.601360321044922 युग 3, हानि 1.8716105222702026युग 4, हानि 0.18043726682662964 युग 5, हानि 0.04218350350856781 युग 6, हानि 0.03060017339885235 युग 7, 998 हानि 0.065279,2749409 हानि 0.029351992,86524 , हानि 0.02830091118812561 ......... युग 94, हानि 0.011018744669854641 युग 95, हानि 0.010895680636167526 युग 96, हानि 0.010774039663374424 युग 97, हानि 0.010653747245669365 युग 98, हानि 0.010534750297665594059 

तो हम युग 1 से युग 100 तक नुकसान को काफी कम कर सकते हैं।

ग्राफ़ प्लॉट करें

#पूरी तरह से अनुमान लगाया गया =मॉडल (चर (torch.from_numpy(x_train)))। )).data.numpy()#Plot true dataplt.plot(x_train, y_train, 'go', label ='True data', alpha =0.5)#Plot Predictionsplt.plot(x_train, भविष्यवाणी, '--', लेबल ='भविष्यवाणियां', अल्फ़ा =0.5)#किंवदंती और Plotplt.legend(loc ='best')plt.show()

आउटपुट

PyTorch का उपयोग करके रैखिक प्रतिगमन?

तो हम ग्राफ से कर सकते हैं- हमारा सही और अनुमानित मूल्य लगभग समान है।


  1. PyTorch का उपयोग करके रैखिक प्रतिगमन?

    रैखिक प्रतिगमन के बारे में सरल रैखिक प्रतिगमन मूल बातें हमें दो सतत चर के बीच संबंध को समझने की अनुमति देता है। उदाहरण - x =स्वतंत्र चर वजन y =आश्रित चर ऊंचाई वाई =αx + β आइए एक प्रोग्राम के माध्यम से सरल रेखीय प्रतिगमन को समझते हैं - #सिंपल लीनियर रिग्रेशनआयात numpy as

  1. पायथन में CX_Freeze का उपयोग करना

    कभी-कभी हमें कुछ अलग बनाने का मन करता है जो बहुत ही रोमांचक होता है, और मानव स्वभाव के अनुसार, हम हमेशा इसे साझा करना पसंद करते हैं। पायथन भी उन इच्छाओं को पूरा करता है। पायथन का उपयोग करते हुए, यदि हम अपने पायथन प्रोग्राम को अपने दोस्तों के साथ साझा करना चाहते हैं, तो हम ऐसा कर सकते हैं, केवल उन स

  1. रूबी में रेखीय प्रतिगमन के साथ भविष्य की भविष्यवाणी करना

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