Least-Squares passen zu einem Straight Line Python-Code

Ich habe eine Streuung aus X- und Y-Koordinaten. Ich möchte die Least-Squares Fit auf eine gerade Linie verwenden, um die Linie der besten Passform zu erhalten.

Die Least-Squares Fit an eine Straight Line beziehen sich auf: Wenn (x_1, y_1), …. (x_n, y_n) gemessene Datenpaare sind, dann ist die beste Gerade y = A + Bx.

Hier ist mein Code in Python:

# number of points is 50 A = (sum(x**2)*sum(y) - sum(x)*sum(x*y)) / (50*sum(x**2) - (sum(x))**2) B = (50*sum(x*y) - sum(x)*sum(y)) / (50*sum(x**2) - (sum(x))**2) print (A,B) 

Sieht das richtig aus, ich habe Probleme beim Drucken von A und B. Vielen Dank!

3 Solutions collect form web for “Least-Squares passen zu einem Straight Line Python-Code”

Wenn ich deine Frage richtig verstehe, hast du zwei dataset x und y die du am wenigsten quadratisch fit machen möchtest.

Sie müssen nicht den Algorithmus selbst schreiben, curve_fit von scipy.optimize sollte tun, was Sie wollen, versuchen:

 from scipy.optimize import curve_fit def f(x, A, B): # this is your 'straight line' y=f(x) return A*x + B A,B = curve_fit(f, x, y)[0] # your data x, y to fit 

A , B wäre der Hang und abfangen für gerade Linie

Weitere Details und Beispiele finden Sie unter: http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html#scipy.optimize.curve_fit

Einfacher, wenn Sie nur eine Zeile wollen ist scipy.stats.linregress :

 >>> from scipy import stats >>> slope, intercept, r_value, p_value, std_err = stats.linregress(x,y) 

Link zu docs

Sie versuchen, zwei Listen x und y (oder von selbst) zu multiplizieren, aber es ist nicht in Python definiert. Sie müssen entweder Ihre eigene Funktion schreiben, um die Liste Element-für-Element-Multiplikation oder verwenden Sie numpy.multiply . Zum Beispiel, wenn Sie elemet-weise Multiplikation von x und y machen wollen,

 import numpy as np xy = np.multiply(x,y) 
  • Wie man Daten über einen "Tageszeitraum" in Pandas für das Plotten überlagert
  • Farbige Mesh-Plot einer Funktion in Python
  • Effizientes Plotten einer Tabelle im csv-Format mit Python
  • Wie man MxN Piechart Plots mit einer Legende zu machen und y-Achsen-Titel in Matplotlib entfernt
  • Mehrere y-Skalen, aber nur eine für Pan und Zoom aktiviert
  • Plotten von Ozeanen in Karten mit Basiskarte und Python
  • Overlay gedreht Bilder auf Handlung mit Matplotlib
  • Wie kann ich xticklabels in matplotlib drehen, so dass der Abstand zwischen jedem xticklabel gleich ist?
  • So legen Sie den Standardstil in Bokeh fest?
  • Python Tkinter: Ein Matplotlib-Plot in ein Widget einbetten
  • Plotten mehrere Zeilen mit Pandas Dataframe
  • Python ist die beste Programmiersprache der Welt.