Ermittlung des Polynomgrades in der Regressionsanalyse

8

Ich arbeite an einem maschinellen Lernprojekt, bei dem ich versuche, eine Kurve auf Daten anzupassen. Leider hat das Datum einen etwas hohen Merkmalsvektor. Daher kann ich sie nicht wirklich in einem 2D- oder 3D-Raum darstellen, um zu erraten, wie die Form der Daten aussieht.

Abgesehen von Treffer und Versuch gibt es also einen mathematischen Weg, um den Grad des Polynoms zu finden, der am besten zu meinen Daten passt.

Ich meine, ich weiß, dass ich für jeden Grad einen Fehler der kleinsten Quadrate untersuchen und dann den mit dem minimalen Fehler auswählen kann, aber dann wird es ein doppeltes Optimierungsproblem sein, da die erste Optimierungsschleife darin bestehen würde, einen Satz von Gewichten für zu finden die Kurve, die zu den Daten passt, während die zweite Schleife verwendet wird, um den Grad zu überprüfen. Irgendwelche Vorschläge?

frazman
quelle
Planen Sie statistische Inferenzen (Konfidenzbänder, Hypothesentests usw.)? Das würde den Ansatz ändern.
Frank Harrell

Antworten:

9

Entschuldigung, wenn dies zu elementar ist, wollte ich diese Antwort nur so eigenständig wie möglich gestalten. Tatsächlich können Sie nicht das tun, was Sie beschreiben: Das beste Polynom des Grades passt immer mindestens genauso gut wie das beste Polynom des Grades , da die Menge der Polynome des Grades alle Grad umfasst Polynome (setzen Sie einfach ). Wenn Sie weiter erhöhen , können Sie an einem bestimmten Punkt ein Polynom finden, das perfekt zu den Daten passt (dh ohne Fehler).k k + 1 k a k + 1 = 0 kk+1kk+1keink+1=0k

Dies ist normalerweise keine sehr attraktive Lösung, da es schwer vorstellbar ist, dass ein Prozess beispielsweise durch ein Millionen-Grad-Polynom beschrieben werden sollte, und es ist fast sicher, dass diese Art von Modell komplexer ist, als zur angemessenen Beschreibung der Daten erforderlich ist . Dieses Phänomen wird als Überanpassung bezeichnet , und ein gutes Beispiel ist dieses Wikipedia-Bild. Die Daten sind eindeutig nahezu linear, aber es ist möglich (aber nicht wünschenswert), mit einem komplexeren Modell einen geringeren Fehler zu erzielen.

Überanpassung

Im Allgemeinen besteht das Ziel darin, den Fehler zu minimieren, der bei neuen Daten aus demselben zugrunde liegenden Modell und nicht bei dem aktuellen Datensatz auftreten würde. Oft ist es nicht möglich oder praktisch, einfach mehr Daten abzurufen. Daher wird normalerweise eine Form der Kreuzvalidierung verwendet , um das Modell zu finden, das die besten bis unsichtbaren Daten verallgemeinert. Es gibt viele Formen der Kreuzvalidierung, die Sie im Wikipedia-Artikel oder in zahlreichen Antworten auf CrossValidated (ha!) Lesen können. Tatsächlich können sie jedoch alle reduziert werden, um: ein Modell an einige Ihrer Daten anzupassen und damit die Werte für den Rest Ihrer Daten vorherzusagen. Tun Sie dies wiederholt und wählen Sie das Modell (in diesem Fall den Grad des Polynoms), das Ihnen im Durchschnitt die beste Leistung bietet.

bnaul
quelle
0

Eine Möglichkeit, dieses "Such" -Problem zu lösen, besteht darin, zunächst mit einem meta-heuristischen Algorithmus wie der genetischen Programmierung zu beginnen. Sobald das Programm in der Lage ist, eine "Near" -Funktion (von anständiger Fitness) zu erstellen, beginnen Sie mit herkömmlichen Regressionsalgorithmen für maschinelles Lernen Grad von GP identifiziert. Sie müssen noch Kreuzvalidierungen durchführen, um Ihr n-Grad-Polynommodell anzupassen. Einige Dinge, die Sie beim Ausführen von GP sicherstellen müssen, sind, dass Sie keine Funktionen bereitstellen, die nicht verwendet werden sollten, da GP sonst die Tendenz hat, komplexe Modelle zu erstellen, die Entscheidungsbaum + linear + quadratisch usw. imitieren.

Manish
quelle