Autoregressives Vektormodell mit scikit-learn

9

Ich versuche, vektorautoregressive (VAR) Modelle unter Verwendung der verallgemeinerten linearen Modellanpassungsverfahren anzupassen, die in scikit-learn enthalten sind. Das lineare Modell hat die Form y = X w , aber die Systemmatrix X hat eine sehr spezielle Struktur: es ist blockdiagonal und alle Blöcke sind identisch. Um die Leistung und den Speicherverbrauch zu optimieren, kann das Modell als Y = BW ausgedrückt werden, wobei B ein Block von X , und Y und W sind jetzt Matrizen anstelle von Vektoren. Die Klassen LinearRegression, Ridge, RidgeCV, Lasso und ElasticNet akzeptieren die letztere Modellstruktur ohne weiteres. Die Anpassung von LassoCV oder ElasticNetCV schlägt jedoch fehl, weil Y zweidimensional ist.

Ich habe Ссылка gefunden Aus dieser Diskussion gehe ich hervor, dass das Verhalten von LassoCV / ElasticNetCV beabsichtigt ist. Gibt es eine Möglichkeit, die Alpha / Rho-Parameter zu optimieren, abgesehen von der manuellen Implementierung der Kreuzvalidierung?

Außerdem erwarten die Bayesschen Regressionstechniken in scikit-learn auch, dass y eindimensional ist. Gibt es einen Weg dazu?

Hinweis: Ich verwende scikit-learn 0.14 (stabil)

    
kazemakase 19.12.2013, 12:02
quelle

2 Antworten

2

Wie wichtig ist die Performance- und Speicheroptimierung, die mit dieser Formulierung der Regression erreicht wird? Da Ihre Neuformulierung scikit-learn bricht, würde ich es nicht wirklich eine Optimierung nennen ... Ich würde vorschlagen:

  1. Ausführen der nicht optimierten Version und Warten (wenn möglich).

  2. Git ziehen Sie den folgenden Code , der Ihr Problem angeblich löst. Es wird in der Konversation referenziert, die Sie aus dem Projekt "github" von scikit-learn gepostet haben. Siehe hier für Anweisungen zum Erstellen von Scikit-Lernen aus einem Git-Pull. Sie können dann den verzweigten scikit-learn-Speicherort zu Ihrem Python-Pfad hinzufügen und Ihre Regression mit dem geänderten Bibliothekscode ausführen. Achten Sie darauf, Ihre Erfahrungen und Probleme, die Sie begegnen, zu posten; Ich bin mir sicher, dass die Entwickler von scikit es begrüßen würden.

fredbaba 29.12.2013 01:45
quelle
2

Um Matrizen anstelle von Vektoren vorherzusagen, gibt es für Lasso und ElasticNet ihr MultiTask * Pendant:

Ссылка Ссылка

    
Warith HARCHAOUI 14.11.2014 10:07
quelle