2017-10-03 1 views
1

Scikit-learn ermöglicht die Bereitstellung von Stichprobengewichten für lineare, logistische und Grat-Regressionen (unter anderem), nicht jedoch für elastische Netz- oder Lasso-Regressionen. Mit Stichprobengewichten meine ich, dass jedes Element der Eingabe (und die entsprechende Ausgabe) von unterschiedlicher Bedeutung ist und sich auf die geschätzten Koeffizienten proportional zu seinem Gewicht auswirken sollte.Elastische Netzregression oder Lasso-Regression mit gewichteten Stichproben (sklearn)

Gibt es eine Möglichkeit, meine Daten zu manipulieren, bevor ich sie an ElasticNet.fit() übergebe, um meine Beispielgewichte zu integrieren?

Wenn nicht, gibt es einen grundlegenden Grund, warum es nicht möglich ist?

Danke!

Antwort

2

Sie können einige Diskussion darüber in slearns issue-tracker lesen.

Er liest im Grunde wie:

  • nicht so schwer zu tun (Theorie weise)
  • Schmerz alle grundlegenden sklearn'APIs zu halten und die Unterstützung aller möglichen Fälle (dicht gegen spärlichen)

Wie Sie in diesem Thread und der linked one about adaptive lasso sehen können, gibt es dort nicht viel Aktivität (wahrscheinlich, weil nicht viele Leute sich interessieren und das verwandte Papier nicht populär genug ist; aber das ist nur eine Vermutung).

Abhängig von Ihrer genauen Aufgabe (Größe? Spärlichkeit?), Könnten Sie Ihren eigenen Optimizer ganz einfach basierend auf scipy.optimize bauen, was diese Art von Sample-Gewichten unterstützt (die etwas langsamer, aber robust und präzise sein werden) !

+0

Genau das, was ich gesucht habe, danke. – Albeit