Ich bin Anfänger zu Python und ich bin zugewiesen, um meinen eigenen Algorithmus zu erstellen, um lineare Regression ohne Verwendung von Import zu lösen. Das Problem ist, wenn ich mein Programm versuche, den Fehler zu berechnen, gibt es den seltsamen Wert (ich vergleiche es mit Berechnung von Microsoft Excel). Hier ist mein Programm:Python, seltsam Wert bei der Berechnung der Fehler der linearen Regression
x=[1.,1.,2.,2.,2.,2.,2.,2.,2.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,3.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,4.,5.,5.,5.,5.,5.,5.,5.,5.,6.]
y=[67.,62.,109.,83.,91.,88.,123.,100.,109.,137.,131.,122.,122.,118.,115.,131.,143.,142.,122.,140.,150.,140.,150,150.,140.,150.,130.,130.,138.,135.,146.,146.,145.,145.,144.,140.,150.,152.,157.,155.,153.,154.,158.,162.,161.,162.,165.,171.,162.,169.,167.,150.,170.,140.,140.,150.,150.,150.,160.,150.,150.,150.,150.,140.,160.,170.,160.,160.,170.,171.,188.,170.,150.,150.,160.,160.,180.,170.]
sumx = 0
sumxdoubled = 0
sumxsquare = 0
sumxy = 0
meanx = 0
sumy = 0
sumerror = 0
n= 78
for i in range(78):
sumxy = sumxy + (x[i] * y[i])
print("Total (x.y) : ",sumxy)
for i in range(78):
sumx = sumx + x[i]
print("Total x : ",sumx)
for i in range(78):
sumxsquare = sumxsquare + (x[i] ** 2)
print("Total (x^2) : ",sumxsquare)
sumxdoubled = sumx ** 2
print("(Total x)^2 : ",sumxdoubled)
meanx = sumx/n
print("Average x : ",meanx)
for i in range(78):
sumy = sumy + y[i]
print("Total y : ",sumy)
meany = sumy/n
print("Average y : ",meany)
a1 = ((n*sumxy) - (sumx * sumy))/((n*sumxsquare) - sumxdoubled)
print("a1 = ",a1)
a0 = meany - a1 * meanx
print("a0 = ",a0)
for i in range (78):
sumerror = sumerror + (y[i] - a0 - (a1 * x[i]))
print("Total error = ",sumerror)
Und der Ausgang ist:
Total (x.y) : 42117.0
Total x : 283.0
Total (x^2) : 1093.0
(Total x)^2 : 80089.0
Average x : 3.628205128205128
Total y : 11201.0
Average y : 143.60256410256412
a1 = 22.312294288480153
a0 = 62.64898354307843
Total error = -7.673861546209082e-13
Der Wert Fehler, wenn ich die gleichen Daten versuchen, mit Microsoft Excel -14.25
ist
Warum der Python gibt den Wert an, ist nicht einmal in der Nähe von Excel-Wert -14.25
? Ich konnte nicht erraten, was mit dem Programm falsch ist, weil ich sicher bin, dass ich den richtigen Algorithmus verwende, um den Fehler zu berechnen.