Dieser Artikel ist der 14. Tag des Adventskalenders 2019 auf dem Weg zum AI-Dojo "Kaggle" von Nikkei xTECH Business AI ① Adventskalender 2019.
Kaggle verfügt zusätzlich zu den Stufen Großmeister / Meister / Experte / Mitwirkender / Anfänger über ein Rangsystem, das sich nach der Farbe und Anzahl der gewonnenen Medaillen richtet. Es scheint, dass es im Vergleich zu Tier nicht so wichtig ist, aber ich werde erklären, wie es funktioniert. (* Nur Wettbewerb)
Kaggle notebook https://www.kaggle.com/d1348k/learn-aboout-competition-points
github https://github.com/uratatsu/kaggle_ranking
Neben Gold-, Silber- und Bronzemedaillen umfasst der Wettbewerb von Kaggle auch Wettbewerbspunkte, die den Teilnehmern Punkte geben, wenn die Rangliste des Wettbewerbs bestätigt wird. Punkte werden nach der folgenden Formel berechnet.
\Biggl[\frac{100000}{\sqrt{N_{teammates}}}\Biggl]\Bigl[Rank^{-0.75}\Bigl]\bigl[\log_{10} (1+\log_{10} (N_{teams})) \bigl]\biggl[e^{-t/500}\biggl]
Zunächst werden 100.000 Punkte als Basispunkte verteilt. Von hier aus wird abhängig von der Anzahl der teilnehmenden Teams, der Rangliste und der Anzahl der eigenen Teams ein Koeffizient von 0 bis 1 angewendet, um die endgültigen Punkte zu bestimmen, die verdient werden sollen.
\Bigl[Rank^{-0.75}\Bigl]
Es überrascht nicht, dass die Rangfolge des privaten Wettbewerbs die größte Auswirkung hat. Abhängig vom Rang nimmt der Koeffizient ab, wie in der obigen Grafik gezeigt.
Rangfolge | Koeffizient |
---|---|
1st | 1.0 |
2nd | 0.5946 |
3rd | 0.4387 |
10th | 0.1778 |
50th | 0.05318 |
100th | 0.03162 |
Der Unterschied zwischen dem 1. und 2. Platz ist sehr groß, und wenn Sie auf dem 2. Platz sind, erhalten Sie ungefähr 60% der auf dem 1. Platz verdienten Punkte. Sie können nur etwa 18% auf dem 10. Platz und 3% auf dem 100. Platz erhalten.
\bigl[\log_{10} (1+\log_{10} (N_{teams})) \bigl]
Dieser Abschnitt ändert sich abhängig von der Anzahl der am Wettbewerb teilnehmenden Teams. Je größer die Anzahl der teilnehmenden Teams ist, desto größer ist der Koeffizient, der multipliziert werden kann. Wie Sie jedoch aus der folgenden Grafik ersehen können, liegt der Wert selbst bei 10.000 Teilnehmern (der höchste Wert liegt bisher bei 8802 Teams) bei etwa 0,7. Wenn 1.000 Teams teilnehmen, sind es ungefähr 0,6. Selbst wenn sich die Teilnehmerzahl um das Zehnfache erhöht, erhöhen sich die Punkte nur um das 1,16-fache.
Kaggle Management Konzept ist auf dem offiziellen Blog geschrieben, aber 100 Teambeteiligungswettbewerb und 1.000 Teambeteiligung Es scheint, dass es auf der Idee basiert, dass sich die Fähigkeiten, die erforderlich sind, um im Wettbewerb zu gewinnen, nicht so sehr ändern werden. Ich habe früher log10 (x) verwendet, daher scheint es einen 1,5-fachen Unterschied zwischen 100 Teams und 1000 Teams zu geben.
\frac{1}{\sqrt{N_{teammates}}}
Die Anzahl der Teammitglieder wird mit dem nach der obigen Formel berechneten Koeffizienten multipliziert.
Zwei Leute nehmen sieben und vier Leute nehmen ungefähr die Hälfte. Ich habe den Eindruck, dass die Anzahl der Teammitglieder aufgrund der Anzahl der Teammitglieder geringer ist als erwartet.
Anzahl der Personen | Koeffizient |
---|---|
1 | 1.0 |
2 | 0.7071 |
3 | 0.5774 |
4 | 0.5 |
5 | 0.4472 |
8 | 0.3536 |
\biggl[e^{-t/500}\biggl]
Der letzte Term ist der Zerfall über die Anzahl der verstrichenen Tage.
Es wird in weniger als einem Jahr in 346 Tagen halbiert.
Von diesen können Sie nur die Anzahl und Rangfolge Ihrer Teamkollegen steuern. Obwohl die erzielten Punkte bei der Bildung eines Teams abnehmen, steigt die Rangfolge im Allgemeinen bei der Zusammenführung von Teams. Wenn also die Zunahme der verdienten Punkte aufgrund der höheren Rangfolge groß ist, wurde die endgültige Rangfolge durch die Bildung eines Teams erhöht. Sie können mehr Punkte bekommen. Es ist eine Heatmap der Beziehung zwischen dem Ranking und der Anzahl der Teammitglieder.
Wenn sich beispielsweise die Person auf dem 2. Platz mit jemandem zusammenschließt und den 1. Platz belegt, erhöhen sich die Punkte, weil 59,5% → 70,7%.
Nun, ich denke nicht, dass es normalerweise notwendig ist, weil es leer ist, Teams zusammenzuführen, während man darüber nachdenkt. .. Es kann wichtig sein für Kaggle Ranking Top 30 oder Super High Rank Leute.
def calculate_points(teammates, rank, teams, days):
points = 100000 * 1/np.sqrt(teammates) * np.power(rank, -0.75) * np.log10(1+np.log10(teams)) * np.exp(days/500)
return points
Wenn Sie versuchen, einige Fälle mit dieser Formel zu berechnen, erhalten Sie die folgenden Punkte.
Rangfolge | Anzahl der teilnehmenden Teams | Anzahl der Teamkollegen | Medaille | Verdiente Punkte |
---|---|---|---|---|
1 | 1000 | 1 | Gold | 60206 |
1 | 1000 | 5 | Gold | 26925 |
5 | 1000 | 1 | Gold | 18006 |
25 | 1000 | 1 | Silver | 5385 |
75 | 1000 | 1 | Bronze | 2362 |
100 | 1000 | 1 | Bronze | 1904 |
Die Wirkung des Solo-Gewinns ist enorm und einer von ihnen entspricht dem 32. Platz in der Rangliste der Kaggle-Wettbewerbe (* ab 14. Dezember 2019). Übrigens, im ersten Bild hat Mr. Bestfitting, der derzeit den 1. Platz in der Rangliste der Kaggle-Wettbewerbe belegt, 20 Solo-Goldmedaillen (!) Und 3 Solo-Gewinner (!!), was seinesgleichen sucht.
Ich wusste, dass es sich abhängig von der Anzahl der Teams und der Rangliste ändern würde, aber es war überraschend interessant, die Dämpfungsrate zu visualisieren. Ich denke, es gibt viele Möglichkeiten zu verstehen, wie man Punkte hinzufügt, aber ich hoffe, es hilft Ihnen, die Berechnungsmethode richtig zu verstehen.