[PYTHON] Kaggle Zusammenfassung: BOSCH (Gewinner)

Einführung

Wir werden die Informationen von Kaggle aktualisieren, der in der Vergangenheit teilgenommen hat. Hier fassen wir die von den Vorgesetzten von [BOSCH] veröffentlichten Informationen zusammen (https://www.kaggle.com/c/bosch-production-line-performance). Für den Überblick über den Wettbewerb und den Kernel Kaggle-Zusammenfassung: BOSCH (Intro + Forum-Diskussion), [Kaggle-Zusammenfassung: BOSCH (Kernel)](http: // qiita Es ist in .com / TomHortons / items / 359f8e39b9cd424c2360) zusammengefasst, und hier konzentrieren wir uns auf Diskussionen über Analyseergebnisse und -techniken.

logo

Dieser Artikel verwendet Python 2.7, Numpy 1.11, Scipy 0.17, Scikit-Learn 0.18, Matplotlib 1.5, Seaborn 0.7, Pandas 0.17. Es wurde bestätigt, dass es an einem Jupiter-Notebook funktioniert. (Bitte ändern Sie% matplotlib inline entsprechend)

1st place solution Beluga beschreibt den Ansatz. Dieses Mal enthielten die Rohdaten keine ausreichende Menge an Informationen, so dass anscheinend eine ziemlich gründliche Generierung der Merkmalsmenge basierend auf den Datumsinformationen durchgeführt wurde. (Verwenden Sie xgboost als Kriterium) Darüber hinaus verwendet das Ensemble-Lernen bis zu L3. Deep Learning hat nicht funktioniert, wahrscheinlich wegen Überlernen, und es scheint, dass ich den häufig verwendeten ExtraTreeRegressor doch nicht verwendet habe. Es war ein Wettbewerb, bei dem XGBoost von Anfang bis Ende eine aktive Rolle spielte.

Bei diesem Wettbewerb ging es darum, wie aus den drei Bedingungen des Zustandsübergangs zwischen Stationen, der Korrelation zwischen Stationsdaten und anonymisierten Zeitstempeln neue Merkmalsmengen generiert werden können. Sicherlich sind die Daten selbst groß, aber ich bin der Meinung, dass eine große Computerumgebung nicht unbedingt erforderlich ist.

Datenanalyse

Screen Shot 2016-11-21 at 2.02.33.png

Zunächst werden wir uns zwei Wochen lang mit den Daten befassen. Durch die Darstellung numerischer Daten, die statistische Analyse, den Wahrscheinlichkeitsübergang zwischen Stationen und die Korrelationsmatrix jeder Station erhalten wir ein Gesamtbild der anonymisierten Daten. StationFeaturSimilarity.png

Der Speicher kann mit normalen 16 GB betrieben werden, dies erfordert jedoch einige Anstrengungen. Der Dezimalpunkt ist ein int-Typ, indem er mit einem numerischen Wert entsprechend der Zahl nach dem Dezimalpunkt multipliziert wird. Die Datumsinformationen sind der Mindestwert für jede Station. Der fehlende Wert selbst fungiert als Merkmalsmenge.

Feature-Generierung

Screen Shot 2016-11-21 at 2.07.50.png

Ich habe Magic-Funktionen verwendet. Ash bemerkte, dass aufeinanderfolgende Zeilen doppelte und der Antwort entsprechende Merkmale enthielten. Aus diesem Grund haben wir Feature-Mengen generiert, die sich auf die Reihenfolge der ID von StartStation und StartTime konzentrieren. Weitere Informationen finden Sie unter Kaggle-Zusammenfassung: BOSCH (Kernel).

Screen Shot 2016-11-21 at 2.10.33.png

Bei der Untersuchung des Autokorrelationskoeffizienten wie in Kerneln wurde festgestellt, dass die Zeit von 0,01 6 Minuten beträgt. Mit anderen Worten, wir analysieren Fertigungsdaten für zwei Jahre. Diese Tatsache trug nicht direkt zur Verbesserung der Genauigkeit bei, trug jedoch dazu bei, einige datumsbasierte Funktionen zu generieren.

Ich habe die Datumsinformationen selbst nicht vollständig genutzt, aber soweit ich sehen kann, scheint es ziemlich nützlich zu sein. Wenn ich über Informationen wie den Unterschied, die Anzahl der nicht fehlenden / fehlenden Werte sowie den Beginn und das Ende der Woche nachdenke, sollte dies das Auftreten fehlerhafter Produkte beeinflussen.

Screen Shot 2016-11-21 at 2.11.05.png

Die verwendeten numerischen Informationen lauten wie folgt

Die folgende Abbildung zeigt Mit R geschriebenes gerichtetes Diagramm. Durch die Zusammenfassung der Beziehung zwischen dem Zeitstempel und dem nicht fehlenden Wert können wir den Fluss von der Produktionslinie zum fehlerhaften Produkt sehen. Ich bin der Meinung, dass es darum ging, ob dieser Fluss erfolgreich für die Erzeugung von Merkmalsmengen genutzt werden kann oder nicht. __results___1_6.png Es gab eine bemerkenswerte Ähnlichkeit in der Wahrscheinlichkeitsübergangsmatrix von S0 - S11, S12 - S23. An diesen ähnlichen Stationen können wir die Korrelation der numerischen Daten sehen. Aus diesem Grund haben wir die Funktionen der einzelnen Funktionen kombiniert. (z. B. L0_S0_F0 + L0_S12_F330 usw.)

Es wäre schön, wenn die Rohdaten so verwendet werden könnten, wie sie sind, aber ich denke, es wäre schwierig für einen normalen PC. Es scheint jedoch, dass dieser Bereich erheblich verwaltet werden kann, indem Verarbeitungen hinzugefügt werden, z. B. die Auswahl von Feature-Mengen, die für die XGBoost-Vorhersage nützlich sind, und das Löschen doppelter Daten. Darüber hinaus sind Addition, Subtraktion und Integration von Daten mit Korrelationen zur Verbesserung der Genauigkeit nicht hilfreich. Die Z-Skala verarbeitet in der Regel alle Proben auf einmal. Ist es jedoch möglich, die "Abnormalität in einer Woche" wöchentlich auszudrücken? Es ist sehr interessant.

Screen Shot 2016-11-21 at 2.11.44.png

Es scheint, dass der Gewinner die Kategoriedaten auch nicht verwendet hat. Es scheint jedoch, dass die Informationen nur für die Stationen [24, 25, 26, 27, 28, 29, 32, 44, 47] verwendet wurden, wobei nur darauf geachtet wurde, ob es sich um "T1" handelte oder nicht. Wenn die Offenlegung von Informationen auf der BOSCH-Seite für die Kategoriedaten solide war, wurde sie möglicherweise etwas häufiger verwendet.

Bewertung, Bilanzanpassung, Ergebnisse

Screen Shot 2016-11-21 at 2.12.11.png

Wir begannen mit einer 5-fachen Kreuzvalidierung und entschieden uns schließlich für eine 4-fache. Schicht 1 des Ensemble-Lernens wurde unter Verwendung von drei verschiedenen Samen gelernt. Duplikate und Auslassungen zwischen Daten wurden unverändert verwendet. Stattdessen reduzierte das Downsampling von 50% auf 90% die Rechenkosten. Die Geschichte der Genauigkeitsverbesserung ist wie folgt.

results.png

Andere Kommentare

Über das verwendete Ensemble Es scheint, dass er versucht hat, ExtraTreesRegressor zu integrieren, aber er hat sich für ein Ensemble entschieden, das nur mehrere XGBoosts mit unterschiedlichen Parametern verwendet. Ein Beispiel für die Parameter ist wie folgt.

early_stopping alpha booster colsample_bytree min_child_weight subsample eta objective max_depth lambda
auc 0 gbtree 0.6 5 0.9 0.03 binary:logistic 14 4

Unter diesen repräsentiert eta die Reduktionsbreite der Schrittgröße, und durch Reduzieren dieser wird die Boosting-Leistung verbessert. Diesmal war es jedoch eine seltsame Situation, dass selbst wenn eta kleiner gemacht wurde, dies nicht zur Verbesserung der Genauigkeit beitrug.

Screen Shot 2016-11-21 at 4.09.53.png

Schließlich fasst Ash das detaillierte Ensemble zusammen. Wie ich zuvor erklärt habe, werde ich es hier fließen lassen.

Recommended Posts

Kaggle Zusammenfassung: BOSCH (Gewinner)
Kaggle Zusammenfassung: BOSCH (Kernel)
Kaggle Zusammenfassung: BOSCH (Intro + Forumsdiskussion)
Kaggle Zusammenfassung: Outbrain # 2
Kaggle Zusammenfassung: Outbrain # 1
Kaggle verwandte Zusammenfassung
Kaggle Zusammenfassung: Redhat (Teil 1)
Kaggle Zusammenfassung: Redhat (Teil 2)
Zusammenfassung der Kaggle-Kernel-Methode [Bild]
Kaggle Zusammenfassung: Instacart Market Basket Analyse
[Umfrage] Kaggle --Quora 3. Platz Lösungszusammenfassung
[Umfrage] Kaggle --Quora 5. Platz Lösungszusammenfassung
[Umfrage] Kaggle --Quora 4. Platz Lösungszusammenfassung
[Umfrage] Kaggle --Quora 2. Platz Lösungszusammenfassung