[PYTHON] Signate 2nd _Beginner Limited Competition Review

Einführung

Teilnahme am Schulter-Einbruch-Wettbewerb nur für Anfänger (https://signate.jp/competitions/293) für die zweite Amtszeit von AIQuest ab Oktober 2020. Der Wettbewerb, an dem ich teilgenommen habe, um an AIQuest teilzunehmen, war nicht so gut, aber ich habe es geschafft, mich zu engagieren. Ich dachte, ich könnte so wie es war keine Ergebnisse erzielen, und ich konnte einige Zeit damit verbringen, an diesem Wettbewerb teilzunehmen, obwohl es ab der zweiten Septemberhälfte war.

Dieser Wettbewerb war klar, wenn eine bestimmte Punktzahl vergeben wurde, und das Ranking war nicht sehr aussagekräftig, aber ich bemühte mich, das Ranking "zum Lernen" und "um Vertrauen zu gewinnen" zu erhöhen. Infolgedessen hatte ich das Glück, den ersten Platz zu belegen, und möchte daher vorstellen, was ich diesmal getan habe.

Überblick über den Wettbewerb

Dieses Mal werden Blutdaten, Alter und Geschlecht verwendet, um zu bestimmen, ob die Krankheit eine Lebererkrankung ist oder nicht. Die Auswertungsfunktion verwendet AUC. Die Löschbedingung muss AUC = 0,92 überschreiten.

Umgebung

Die Umgebung ist Google Colaboratory

Einführung

Wir werden aufgreifen, was üblicherweise bei der Analyse von Tabellendaten getan wird.

  1. Daten anzeigen

Überprüfen Sie, was die einzelnen Daten bedeuten, welchen Datentyp sie haben und ob Werte fehlen. Lassen Sie uns danach visualisieren, wie viel Voreingenommenheit es gibt.

  1. Sehen Sie sich feature_importance an

Versuchen Sie zu lernen, ohne etwas zu erfinden, und sehen Sie, was wichtig ist. Diese Arbeit scheint wichtig zu sein, um ein Bild für Annahmen zu machen, selbst wenn nur wenige Eindrücke vermittelt werden. (Je nachdem, wie Sie darüber denken, kann der Eindruck, den Sie hier bekommen, ein Fessel sein.)

  1. Lernen Sie mit verschiedenen Modellen und sehen Sie die Partitur Es wird auch in Kaggles berühmter Titanic-Note ausgeführt, aber ich werde versuchen, mit verschiedenen Modellen zu punkten. Was ich diesmal versucht habe Support Vector Machines, KNN, Logistic Regression, Random Forest, Naive Bayes, Perceptron, Stochastic Gradient Decent, Linear SVC, Decision Tree,catboost

Ich habe "Catboost" adoptiert. Da diesmal keine Werte fehlten, erzielte ich mit verschiedenen Modellen, ohne an irgendetwas zu denken, und das mit dem besten Ergebnis wurde als first_commit festgelegt. Ich denke, das Ergebnis lag bei 0,8

Das zum Löschen erforderliche Minimum

In ↑ war es 0,8, was weit von der Clearing-Bedingung entfernt ist, also konnte ich es nicht ohne Einfallsreichtum löschen. In meinem Fall konnte ich die Clearing-Bedingungen erfüllen, indem ich die folgenden zwei Ideen ausführte (möglicherweise nicht).

  1. Löschen Sie die Spalten Geschlecht und Alter

Auf den ersten Blick scheint es etwas damit zu tun zu haben, ob es sich um eine Lebererkrankung handelt oder nicht (tatsächlich war die Korrelation hoch), aber das Entfernen verbesserte die Genauigkeit. Ich wollte es wirklich aus irgendeinem Grund löschen, aber ich konnte es nicht erfassen und sagte: "Ich habe versucht, es mechanisch zu löschen, und es hat funktioniert." Bis Sie hier ankommen --Versuchen Sie TargetEncoding

  1. Machen Sie das Inferenzergebnis zu einer probabilistischen Notation Diese Art von Argumentation hatte nur ein Gehirn, das 1 oder 0 ausgibt, daher dauerte es einige Zeit, bis es gefunden wurde, aber dies verbesserte die Punktzahl dramatisch.

assessment.py


#Ausgabe mit 0 oder 1
model.predict(pred)

#Wahrscheinlichkeitsnotation
model.predict_proba(pred)[:, 1]

Dies erreichte die Passlinie von 0,83 ⇒ 0,92.

Was wir getan haben, um die Genauigkeit weiter zu verbessern

Der Wettbewerb war für die Rangliste irrelevant, aber ich war motiviert und habe versucht, die Genauigkeit zu verbessern. Das Folgende ist, was die Punktzahl gestiegen ist.

  1. Es wurde die Merkmalsmenge hinzugefügt, ob sie aus medizinischer Sicht im Bereich des normalen Blutwerts liegt. Obwohl es möglich ist, nach dem Wert zu beurteilen, ist es schwierig, eine umfassende Beurteilung vorzunehmen, da alle Einheiten unterschiedlich sind, und ich wollte, dass ein Merkmalsbetrag nur danach beurteilt wird, "ob er innerhalb des normalen Wertebereichs liegt", also habe ich ihn übernommen. Tatsächlich war diese Methode sehr nützlich, und nur dadurch konnte ich meine Platzierung unter den Top 10 verbessern.

  2. Entfernen Sie unregelmäßige Daten von Trainingsdaten mit den in ↑ erworbenen Kenntnissen

"Daten, die als normal beurteilt werden, obwohl die meisten numerischen Werte Ausreißer sind", die nicht durch einfaches Löschen der Daten mit prominenten Daten mechanisch gefunden werden konnten, wurden entfernt. Die Inferenz von 1 oder 0 hat möglicherweise keine große Wirkung, aber da es sich um eine probabilistische Notation handelt, ist es durch Löschen der Daten, die genau das Gegenteil der Tendenz sind, möglich, herausragende weiße und schwarze Daten mit 1 oder 0 so weit wie möglich auszudrücken. Dann? Dies wurde unter der Annahme gemacht. Dies war der entscheidende Treffer, der auf den 1. Platz klettern konnte.

Zusammenfassung

Es ist ein subtiler Punkt, dass ich froh bin, dass der Wettbewerb auf Anfänger beschränkt ist und die Rangliste keine Rolle spielt, aber ich bin zuversichtlich, dass ich froh bin, daran gearbeitet zu haben.

Ich habe das Gefühl, dass ich mit dieser Art von schlampiger Datenanalyse das praktische Niveau nicht aushalten kann, deshalb möchte ich in der Lage sein, härter zu arbeiten.

Recommended Posts

Signate 2nd _Beginner Limited Competition Review
SIGNATE [1st _Beginner Limited Competition] Teilnahme am Bankkunden-Targeting
SIGNATE [1st _Beginner Limited Competition] Lösen von Bankkunden-Targeting
AtCoder Anfängerwettbewerb 152 Rückblick
AtCoder Beginner Contest 160 Bewertung
AtCoder Anfängerwettbewerb 178 Bewertung
AtCoder Anfängerwettbewerb 166 Bewertung
AtCoder Anfängerwettbewerb 167 Bewertung
AtCoder Beginner Contest 169 Bewertung
AtCoder Beginner Contest 181 Bewertung
AtCoder Beginner Contest 171 Bewertung
AtCoder Beginner Contest 182 Bewertung
AtCoder Beginner Contest 180 Bewertung
AtCoder Anfängerwettbewerb 177 Rückblick
AtCoder Anfängerwettbewerb 168 Bewertung
AtCoder Beginner Contest 179 Bewertung
AtCoder Beginner Contest 172 Bewertung
AtCoder Anfängerwettbewerb 176 Bewertung
AtCoder Anfängerwettbewerb 174 Bewertung
AtCoder Beginner Contest 153 Bewertung
AtCoder Beginner Contest 161 Bewertung
AtCoder Beginner Contest 170 Bewertung
AtCoder Beginner Contest 165 Bewertung
AtCoder Beginner Contest 173 Bewertung
AtCoder Anfängerwettbewerb 155 Bewertung
AtCoder Beginner Contest 162 Bewertung