इस समय के दौरान, मैंने कंक्रीट मशीनों को कंक्रीट सीखने के लिए सीखा, और अध्याय 5 में कंक्रीट लॉजिस्टिक रिगोरेशन कंक्रीट को सीखा, जो काफी कठिन था। यह कंक्रीट लॉजिस्टिक रिगोरेशन कंक्रीट से कंक्रीट रैखिक रिगोरेशन कंक्रीट तक का पता लगाने के लिए काफी कठिन था, फिर कंक्रीट न्यूनतम द्विगुणन कंक्रीट तक। अंत में, मैं कंक्रीट उन्नत गणित कंक्रीट (छठा संस्करण) के अध्याय 9 के खंड 10 में कंक्रीट न्यूनतम द्विगुणन कंक्रीट के लिए तैयार हुआ, जिससे मुझे पता चला कि न्यूनतम द्विगुणन के पीछे गणित का सिद्धांत कहां से आया। सबसे कम दो गुणांक तालिका सबसे अधिक अनुकूलन समस्याओं में अनुभव के सूत्रों के निर्माण का एक कार्यान्वयन है। इसका उपयोग करना तालिका Logistic regression तालिका और तालिका समर्थित वेक्टर मशीनों के सीखने के लिए उपयोगी है।
सबसे कम द्विगुणांक के साथ घनत्व के उद्भव का ऐतिहासिक संदर्भ दिलचस्प है.
1801 में, इतालवी खगोलविद जुसेप पियाज़ी ने पहली क्षुद्रग्रह घाटी तारा की खोज की। 40 दिनों के बाद, घाटी तारा ने सूर्य के पीछे चलने के कारण पियाज़ी की स्थिति खो दी। इसके बाद, दुनिया भर के वैज्ञानिकों ने पियाज़ी के अवलोकनों का उपयोग करके घाटी तारा की खोज शुरू की, लेकिन अधिकांश लोगों के हिसाब से कोई परिणाम नहीं मिला। 24 वर्षीय गैस ने भी घाटी तारा की कक्षा की गणना की। ऑस्ट्रियाई खगोलविद हेरिच ऑर्बस ने घाटी तारा की कक्षा के आधार पर इसे फिर से खोजा।
गॉस के द्वारा उपयोग किए जाने वाले न्यूनतम द्विगुणन के तरीकों का वर्णन 1809 में उनके ग्रंथ में किया गया था, और फ्रांसीसी वैज्ञानिक लेजेंड ने 1806 में स्वतंत्र रूप से गॉस के न्यूनतम द्विगुणन का पता लगाया था।
1829 में, गॉस ने यह साबित किया कि न्यूनतम द्विगुणन का अनुकूलन प्रभाव अन्य तरीकों की तुलना में अधिक मजबूत था, देखें गॉस-मार्कोव प्रमेय।
मान लीजिए कि हम कुछ युद्धपोतों के लिए लंबाई और चौड़ाई डेटा एकत्र करते हैं।
इन आंकड़ों के आधार पर, हमने पायथन में एक बिन्दु रेखाचित्र बनायाः
इस तरह के चित्रों के लिए कोड निम्नानुसार हैः
import numpy as np # -*- coding: utf-8 -*
import os
import matplotlib.pyplot as plt
def drawScatterDiagram(fileName): # 改变工作路径到数据文件存放的地方
os.chdir("d:/workspace_ml")
xcord=[];ycord=[]
fr=open(fileName)
for line in fr.readlines():
lineArr=line.strip().split()
xcord.append(float(lineArr[1]));ycord.append(float(lineArr[2]))
plt.scatter(xcord,ycord,s=30,c='red',marker='s')
plt.show()
अगर हम पहले दो बिंदुओं को हटा दें, तो हम दो समीकरणों को प्राप्त करते हैं। 152a+b=15.5 ३२८a + b = 32.4 तो हम इन दोनों समीकरणों को हल करते हैं, और हम देखते हैं कि a = 0.197, b = -14.48 तो हम इस तरह के एक आकृति प्राप्त कर सकते हैं:
ठीक है, एक नया सवाल आता है, क्या ए, बी सबसे अच्छा है? पेशेवर शब्दों में, क्या ए, बी मॉडल के सबसे अच्छे पैरामीटर हैं?
इसका उत्तर है: सभी डेटा विचलन के वर्ग और न्यूनतम को सुनिश्चित करें. सिद्धांत के बारे में, हम बाद में बात करेंगे, सबसे पहले यह देखने के लिए कि इस उपकरण का उपयोग कैसे किया जाए ताकि सबसे अच्छा a और b की गणना की जा सके. मान लीजिए कि सभी डेटा के वर्ग और M हैं, तो
अब हम M को a और b का सबसे छोटा बनाना चाहते हैं. ध्यान दें कि इस समीकरण में, हम जानते हैं कि y और xi हैं.
तो यह समीकरण एक द्विआधारी फलन है जिसमें a, b स्वयं चर है, और M कारक चर है।
याद कीजिए कि उच्च संख्याओं में एक-एक फ़ंक्शन के लिए चरम कैसे होता है. हम व्युत्पन्न का उपयोग करते हैं. तो द्विआधारी में, हम अभी भी व्युत्पन्न का उपयोग करते हैं. लेकिन यहां व्युत्पन्न का एक नया नाम है। व्युत्पन्न व्युत्पन्न व्युत्पन्न है। व्युत्पन्न व्युत्पन्न दो चरों में से एक को निरंतर के रूप में प्राप्त करने के लिए है। और हम M के लिए एक पूर्णांक प्राप्त करते हैं, तो हम एक समीकरण सेट मिलता है.
इन दोनों समीकरणों में x और y दोनों ज्ञात हैं.
A और B का पता लगाना आसान है. विकिपीडिया के आंकड़ों का उपयोग करते हुए, मैं सीधे उत्तरों का उपयोग करके एक उपयुक्त छवि खींच रहा हूंः
# -*- coding: utf-8 -*importnumpy as npimportosimportmatplotlib.pyplot as pltdefdrawScatterDiagram(fileName):
# 改变工作路径到数据文件存放的地方os.chdir("d:/workspace_ml")xcord=[];
# ycord=[]fr=open(fileName)forline infr.readlines():lineArr=line.strip().split()xcord.append(float(lineArr[1]));
# ycord.append(float(lineArr[2]))plt.scatter(xcord,ycord,s=30,c='red',marker='s')
# a=0.1965;b=-14.486a=0.1612;b=-8.6394x=np.arange(90.0,250.0,0.1)y=a*x+bplt.plot(x,y)plt.show()
# -*- coding: utf-8 -*
import numpy as np
import os
import matplotlib.pyplot as plt
def drawScatterDiagram(fileName):
#改变工作路径到数据文件存放的地方
os.chdir("d:/workspace_ml")
xcord=[];ycord=[]
fr=open(fileName)
for line in fr.readlines():
lineArr=line.strip().split()
xcord.append(float(lineArr[1]));ycord.append(float(lineArr[2]))
plt.scatter(xcord,ycord,s=30,c='red',marker='s')
#a=0.1965;b=-14.486
a=0.1612;b=-8.6394
x=np.arange(90.0,250.0,0.1)
y=a*x+b
plt.plot(x,y)
plt.show()
डेटा अनुकूलन में, मॉडल पैरामीटर को अनुकूलित करने के लिए मॉडल के अनुमानित डेटा को वास्तविक डेटा के साथ अंतर के वर्ग के बजाय पूर्ण और न्यूनतम क्यों कहा जाता है?
इस सवाल का जवाब पहले ही दिया जा चुका है, लिंक देखें।http://blog.sciencenet.cn/blog-430956-621997.html)
व्यक्तिगत रूप से, यह व्याख्या बहुत दिलचस्प लगती है; विशेष रूप से यह धारणाः सभी बिंदुओं में जो f (x) से विचलित होते हैं, वहाँ शोर होता है।
एक बिंदु के विचलन से पता चलता है कि शोर जितना बड़ा होगा, इस बिंदु के होने की संभावना उतनी ही कम होगी। तो विचलन की डिग्री x के साथ होने की संभावना f (x) का क्या संबंध है?
उपरोक्त सभी दो आयामी स्थितियां हैं, यानी केवल एक स्वयं परिवर्तनीय है। लेकिन वास्तविक दुनिया में, अंतिम परिणाम को प्रभावित करने वाले कई कारकों का एक ओवरलैप है, यानी स्वयं परिवर्तनीय के कई मामले हैं।
सामान्य N मेट्रॉन लाइनर फलन के लिए, एक उलटा मैट्रिक्स का उपयोग करके हल करना ठीक है; एक उदाहरण के रूप में, क्योंकि एक उपयुक्त उदाहरण नहीं मिला है, यह एक समय के लिए यहां रहता है।
बेशक, प्रकृति बहुपद अनुरूपता के बारे में अधिक है, सरल रैखिकता के बारे में नहीं, जो कि उच्चतर सामग्री है।
मूल कार्य, प्रतिलिपि बनाने की अनुमति है, प्रतिलिपि बनाने पर कृपया हाइपरलिंक के रूप में लेख की मूल उत्पत्ति, लेखक की जानकारी और इस कथन को इंगित करें; अन्यथा कानूनी दायित्व का पीछा किया जाएगा।http://sbp810050504.blog.51cto.com/2799422/1269572