Finde und zeichne Regressionsebene zu einer Menge von Punkten

8

Ich möchte einigen Datenpunkten eine Ebene zuweisen und sie zeichnen. Mein aktueller Code ist dies:

%Vor%

was zu folgendem führt:

Wie Sie im Moment sehen können, erstelle ich das Flugzeug manuell. Wie kann ich es berechnen? Ich denke, es ist irgendwie mit scipy.optimize.minimize möglich. Die Art der Fehlerfunktion ist mir im Moment nicht so wichtig. Ich denke, dass die kleinsten Quadrate (vertikale Punktebenenentfernung) gut sind. Es wäre cool, wenn einer von euch mir zeigen könnte, wie es geht.

    
Tobias Hermann 20.12.2013, 09:02
quelle

2 Antworten

10

Oh, die Idee kam mir gerade in den Sinn. Es ist sehr leicht. : -)

%Vor%

Entschuldige, dass du unnötigerweise gefragt hast.

    
Tobias Hermann 20.12.2013, 09:15
quelle
3

Eine andere Möglichkeit ist eine einfache Lösung der kleinsten Quadrate. Die Gleichung für eine Ebene ist: ax + by + c = z. Also richte Matrizen wie diese mit all deinen Daten ein:

%Vor%

Und

%Vor%

Und

%Vor%

Mit anderen Worten: Ax = B. Nun löse nach x, was deine Koeffizienten sind. Aber da (ich nehme an) Sie mehr als 3 Punkte haben, ist das System überbestimmt, also müssen Sie die linke Pseudoinverse verwenden. Die Antwort lautet also:

%Vor%

Und hier ist ein einfacher Python-Code mit einem Beispiel:

%Vor%     
Ben 01.06.2017 19:07
quelle