Frage zu numpy.linalg.lstsq

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
smith0815
User
Beiträge: 99
Registriert: Dienstag 13. April 2010, 11:08

Hi

Wie der Titel schon verrät, tüftle ich gerade an numpy.linalg.lstsq.

Erwartet hatte ich, bei einer Eingabe von

x = [[1,1],[2,2],[3,3],[4,4]]
y = [1,2,3,4]

als Winkelhalbierende eines 3D Koordinatensystems,
die Werte für m = 1 und n = 0 raus zu bekommen (bei der Formel mx + n)

Nur sehen die Werte die ich bekomme ganz anders aus

(array([ 8.10792259e-17, 1.00000000e+00]),
array([ 0.]),
2,
array([ 7.74596669e+00, 9.42055475e-16]))

Kann mir das einer erklären?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Code: Alles auswählen

>>> import numpy
>>> help(numpy.linalg.lstsq)
Hint: Ist 8e-17 eine große Zahl? ;-)

edit: PS Der Algorithmus ist iterativ (wahrscheinlich Levenberg-Marquardt - aber da bin ich gerade zu faul, zum nachschauen). D. h. in diesem Fall, daß rcond vorgibt, wie "genau" Dein Ergebnis sein wird, bzw. bei den Defaulteinstellungen, wie genau Dein System arbeiten kann.

edit: PPS Ist das jetzt, was Du verwendest für Dein letztes großes Fittingproblem?
smith0815
User
Beiträge: 99
Registriert: Dienstag 13. April 2010, 11:08

zu PPS:

als erstes ja, denn es soll eine einfache Regressionsgrade liefern.
Für die Sachen höherer Ordnung nehme ich neuronale Netze und SVMs,
die sind zum einen einfacher zu kalibrieren und außerdem genauer.

Die sind aber schon fertig programmiert.
Nur das Einfachste fällt mir immer am schwersten so auch jetzt.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

:?: SVMs und Neuronale Netze, haben doch nichts mit dem Fitting zu tun, was in diesem Thread angesprochen war?

Also, wenn doch, ist es kein Wunder, daß wir Dich nicht verstanden haben. Und in jedem Fall solltest Du - ich will wirklich nicht besserwisserisch klingen - daran arbeiten Dein Problem besser zu beschreiben, damit man Dir besser helfen kann.

Und Klassifikation mit Hilfe linearer Regression mag funktionieren, aber ist wahrscheinlich eher gefährlich.

Gruß,
Christian
smith0815
User
Beiträge: 99
Registriert: Dienstag 13. April 2010, 11:08

OK da hast du wohl recht,
denn wenn du glaubst, dass es meiner Großen Aufgabe um Klassifikation ging,
ist bei meiner Erklärung wirklich einiges falsch gelaufen.

Denn es ging um Regression, nicht um Klassifikation.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Nee, sorry. Da habe ich mich fehlerhaft ausgedrückt: Natürlich kann man SVMs und neuronale Netze zur Regression verwenden. Aber dennoch vermute ich, daß bei Dir ein analytisches Herangehen simpler und stabiler wäre. Aber das kann man (ich) wohl eher nicht im Forum angehen.
Antworten