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) 
  • Abbildung GUI Einfrieren
  • Wie zeichnet man Dateien mit numpy?
  • Wie man Cluster von gestapelten Stäben mit Python (Pandas)
  • Wie kann ich mit Zelle Grafik aufheben?
  • Wie man Oberfläche mit stärkerem Kontrast färbt
  • Python Seaborn Distplot Y-Wert entspricht einem gegebenen X-Wert
  • Plotten eines Linienplots mit Fehlerbalken und Datenpunkten aus einem Pandas DataFrame
  • Wie kann ich eine Handlung mit einem festen Seitenverhältnis bekommen?
  • Kontur Plot Legent - Matplotlib
  • Fix hässliche Oberfläche Plot
  • Matplotlib: Textfarbcode in der Legende anstelle einer Zeile
  • Python ist die beste Programmiersprache der Welt.