Ich kann natürlich nicht für die gesamte Branche sprechen, aber ich arbeite in der Industrie und habe an Kaggle teilgenommen, damit ich meine POV teilen kann.
Erstens haben Sie zu Recht den Verdacht, dass Kaggle nicht genau dem entspricht, was die Leute in der Industrie tun. Es ist ein Spiel und unterliegt der Spielkunst, mit vielen verrückten Einschränkungen. Zum Beispiel im aktuell laufenden Santander- Wettbewerb:
- Die Feature-Namen wurden künstlich gehasht, um ihre Bedeutung zu verbergen
- Der "Trainingssatz" war künstlich auf weniger Zeilen als Spalten beschränkt, so dass die Auswahl von Merkmalen, die Robustheit und die Regularisierungstechnik für den Erfolg unabdingbar waren.
- Das sogenannte "Test" -Set hat eine deutlich andere Verteilung als das Trainingsset und die beiden sind eindeutig keine Zufallsstichproben aus derselben Population.
Wenn mir jemand bei der Arbeit einen Datensatz wie diesen geben würde, würde ich sofort anbieten, mit ihm am Feature-Engineering zu arbeiten, damit wir nützliche Features erhalten. Ich würde vorschlagen, dass wir Domänenwissen verwenden, um über wahrscheinliche Interaktionsterme, Schwellenwerte, Strategien für die Codierung kategorialer Variablen usw. zu entscheiden. Eine solche Herangehensweise an das Problem wäre eindeutig produktiver als der Versuch, eine Bedeutung aus einer Auslassdatei zu extrahieren, die von einem Datenbankingenieur mit der Nummer 0 erstellt wurde Ausbildung in ML.
Wenn Sie beispielsweise erfahren, dass eine bestimmte numerische Spalte überhaupt keine numerische Spalte, sondern eine Postleitzahl ist, können Sie Daten aus Datenquellen von Drittanbietern wie der US-Volkszählung abrufen, um Ihre Daten zu erweitern. Oder wenn Sie einen Termin haben, geben Sie möglicherweise den Schlusskurs des S & P 500 für diesen Tag an. Solche externen Erweiterungsstrategien erfordern detaillierte Kenntnisse des spezifischen Datensatzes und signifikante Domänenkenntnisse, haben jedoch gewöhnlich die viel größeren Gewinne als reine algorithmische Verbesserungen.
Der erste große Unterschied zwischen der Industrie und Kaggle besteht darin, dass in der Industrie Features (im Sinne von Eingabedaten) verhandelbar sind.
Eine zweite Klasse von Unterschieden ist die Leistung. Häufig werden Modelle auf zwei Arten für die Produktion bereitgestellt: 1) Modellvorhersagen werden für jede Zeile in einer sehr großen Datenbanktabelle vorberechnet, oder 2) eine Anwendung oder Website übergibt dem Modell eine einzelne Datenzeile und brauche eine Vorhersage in Echtzeit zurückgegeben. Beide Anwendungsfälle erfordern eine gute Leistung. Aus diesen Gründen sieht man nicht oft Modelle, die sich nur langsam vorhersagen lassen oder die viel Speicher belegen, wie z. B. K-Nearest-Neighbours oder Extra Random Forests. Im Gegensatz dazu kann eine logistische Regression oder ein neuronales Netzwerk eine Reihe von Datensätzen mit wenigen Matrixmultiplikationen erzielen, und die Matrixmultiplikation kann mit den richtigen Bibliotheken in hohem Maße optimiert werden .Auch wenn ich möglicherweise +0.001 AUC erzielen könnte, wenn ich ein weiteres nicht parametrisches Modell aufbaue, würde ich dies nicht tun, da der Vorhersagedurchsatz und die Latenz zu stark sinken würden.
Dies hat auch eine Zuverlässigkeitsdimension: Wenn Sie vier verschiedene hochmoderne Bibliotheken von Drittanbietern stapeln , z. B. LightGBM , xgboost , catboost und Tensorflow ( natürlich auf GPUs ), können Sie die MSE um 0,01% reduzieren gewinnt Kaggle-Wettbewerbe, aber es sind vier verschiedene Bibliotheken zum Installieren, Bereitstellen und Debuggen, wenn etwas schief geht. Es ist großartig, wenn Sie all das auf Ihrem Laptop zum Laufen bringen können, aber es ist eine ganz andere Geschichte, wenn es in einem Docker-Container läuft, der unter AWS läuft. Die meisten Unternehmen möchten kein kleines Entwicklerteam stellen, nur um diese Art von Bereitstellungsproblemen zu lösen.
Das heißt, das Stapeln an sich ist nicht unbedingt eine große Sache. In der Tat ist es eine gute Möglichkeit, ein paar verschiedene Modelle zu stapeln, die alle gleich gut funktionieren, aber sehr unterschiedliche Entscheidungsgrenzen haben. Werfen Sie einfach nicht so viele Küchenspülen in Ihr heterogenes Ensemble, dass Sie anfangen, Probleme mit der Bereitstellung zu haben.