समस्या
लीनियर रिग्रेशन एल्गोरिथम को लागू करने के लिए एक प्रोग्राम लिखें।
उपयोगकर्ता को कुल मानों की संख्या दर्ज करनी होगी।
समाधान
सी प्रोग्रामिंग भाषा में रैखिक प्रतिगमन की गणना करने का समाधान इस प्रकार है -
रेखीय समाश्रयण प्रेक्षित डेटा से एक रेखीय समीकरण को जोड़कर दो चरों के बीच संबंध का पता लगाता है। एक चर को व्याख्यात्मक चर होना चाहिए, और दूसरा एक आश्रित चर है।
रैखिक प्रतिगमन के संबंध में तर्क नीचे समझाया गया है -
for(i=0;i<n;i++){ printf("enter values of x and y"); scanf("%f%f",&x,&y); sumx=sumx+x; sumxsq=sumxsq+(x*x); sumy=sumy+y; sumxy=sumxy+(x*y); } d=n*sumxsq-sumx*sumx; m=(n*sumxy-sumx*sumy)/d; c=(sumy*sumxsq-sumx*sumxy)/d;
अंत में, m और c प्रिंट करें।
उदाहरण
रैखिक प्रतिगमन की गणना करने के लिए C प्रोग्राम निम्नलिखित है:-
#include<math.h> #include<stdio.h> main(){ int n,i; float x,y,m,c,d; float sumx=0,sumxsq=0,sumy=0,sumxy=0; printf("enter the number of values for n:"); scanf("%d",&n); for(i=0;i<n;i++){ printf("enter values of x and y"); scanf("%f%f",&x,&y); sumx=sumx+x; sumxsq=sumxsq+(x*x); sumy=sumy+y; sumxy=sumxy+(x*y); } d=n*sumxsq-sumx*sumx; m=(n*sumxy-sumx*sumy)/d; c=(sumy*sumxsq-sumx*sumxy)/d; printf("M=%f\tC=%f\n",m,c); }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
enter the number of values for n:5 enter values of x and y1 5 enter values of x and y2 6 enter values of x and y2 4 enter values of x and y3 7 enter values of x and y1 1 M=2.000000 C=1.000000