Während dieser Zeit lernte er die Maschine, lernte die Logistic Regression von Chapter 5 und fühlte sich ziemlich anstrengend. Die Verfolgungsquelle, von der Logistic Regression zu der Linear Regression, bis hin zu der Minimal-Zweifach-Regelung. Schließlich wurde er in die Minimal-Zweifach-Regelung von Chapter 9 Abschnitt 10 der Advanced Mathematical Rational (Sixth Edition, Unterbuch) eingestellt. Die Mindest-Zweifach-Schleife ist eine Implementierungsmethode zur Erstellung von empirischen Formeln in Optimierungsproblemen. Die Funktion dieser Schleife ist hilfreich für die Erforschung der Schleife der Logistic-Regressionsschleife und der Lernschleife, die die Vektormaschine unterstützt.
Der historische Hintergrund für die Entstehung des Mindestzweifaches ist interessant.
1801 entdeckte der italienische Astronom Giuseppe Piazzi den ersten Asteroiden, den Stern der Schlucht. Nach 40 Tagen Nachverfolgungsbeobachtungen verlor Piazzi die Position des Sterns, weil der Stern hinter der Sonne lief. Wissenschaftler aus der ganzen Welt begannen dann mit den Beobachtungen von Piazzi nach Sterns zu suchen, aber nach den Ergebnissen der meisten Menschen fanden sie keine Ergebnisse.
Die Methode der Mindestzweifachzahl, die Gauss 1809 in seinem Buch Theory of Motion of Celestial Objects veröffentlichte, wurde 1806 von dem französischen Wissenschaftler Le Jeune unabhängig voneinander entdeckt, wurde aber nicht bekannt. Es gab eine Auseinandersetzung darüber, wer zuerst das Mindestzweifachprinzip erfunden hatte.
1829 lieferte Gauss einen Beweis, dass die Optimierung des Mindestzweifachs stärker als andere Methoden wirkt, siehe Gauss-Markovs Theorem.
Das Herzstück des Quadratum ist es, das Quadrat und das Minimum der Abweichungen aller Daten zu gewährleisten.
Nehmen wir an, wir sammeln Längen- und Breitendaten von einigen Kriegsschiffen.
Mit Hilfe dieser Daten zeichnen wir in Python ein Punktbild:
Der Code für die Zeichnung der Punktkarte lautet:
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()
Wenn wir die ersten beiden Punkte wegnehmen, dann bekommen wir die beiden Gleichungen. 152a+b=15,5 328A+b ist gleich 32.4. Wir können also diese beiden Gleichungen lösen, und wir bekommen a = 0.197, b = -14.48. Wenn wir das nicht tun, dann können wir eine Anpassung erhalten, die so aussieht:
Okay, nun kommt die neue Frage, ob a und b optimal sind? Die Fachsprache lautet: a und b sind die optimalen Parameter des Modells?
Die Antwort lautet: Gewährleistung des Quadrats und des Minims der Abweichungen aller Daten. Was die Grundsätze angeht, werden wir später besprechen, und zunächst sehen wir, wie wir dieses Tool nutzen können, um am besten a und b zu berechnen.
Wir müssen jetzt versuchen, M zu minimieren a und b. Beachten Sie, dass wir in dieser Gleichung wissen, dass yi und xi
Das ist eine binäre Funktion, mit a, b als Eigenvariable und M als Verursacher der Variable.
Denken Sie daran, wie es in der Hochzahl mit der Einheitsfunktion extrem ist. Wir verwenden das Instrument der Derivate. In der Binärfunktion verwenden wir die Derivate. Wenn wir die Verzerrungen für M ermitteln, erhalten wir eine Gleichungsreihe.
In diesen beiden Gleichungen sind x und y bekannt.
Es ist einfach, a und b zu finden. Da ich Wikipedia-Daten verwende, zeichne ich hier direkt mit der Antwort ein passendes Bild:
# -*- 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()
Warum sollte man bei Datenvergleichsmodellen die Quadrate der Differenz zwischen den Prognosedaten und den tatsächlichen Daten anstelle von absoluten und minimalen Werten verwenden, um die Modellparameter zu optimieren?
Die Frage wurde bereits beantwortet, siehe Link.http://blog.sciencenet.cn/blog-430956-621997.html)
Ich persönlich finde diese Erklärung sehr interessant. Vor allem die Annahme, dass alle Punkte, die von f (x) abweichen, Geräusche haben.
Je weiter ein Punkt abweicht, desto größer ist der Lärm, desto geringer ist die Wahrscheinlichkeit, dass dieser Punkt auftritt. Welche Beziehung erfüllt dann die Abweichung x mit der Wahrscheinlichkeit f (x)?
All dies ist zweidimensional, d.h. es gibt nur eine Selbstveränderung. In der realen Welt beeinflusst das Endergebnis jedoch die Überlagerung von Faktoren, d.h. es gibt mehrere Selbstveränderungen.
Für eine allgemeine N-metralineare Funktion ist es in Ordnung, mit einer inversen Matrix in einer schwarzen linearen Algebra zu lösen; da momentan keine geeigneten Beispiele gefunden wurden, bleibt es hier als eine Quotiente.
Natürlich ist die Natur mehr eine polymorphische Anpassung als eine einfache Linearität, das ist ein höherer Inhalt.
Das Originalwerk, die Vervielfältigung ist erlaubt, bitte geben Sie bei der Vervielfältigung den Ursprung des Artikels, die Urheberinformationen und diese Erklärung in Form von Hyperlinks an; andernfalls werden Sie rechtlich haftbar gemacht.http://sbp810050504.blog.51cto.com/2799422/1269572