Ini adalah kalkulator peringkat ELO yang secara khusus diubah untuk pertandingan sepak bola.
Ini dapat menghitung peringkat tim yang diberikan berdasarkan sejarah pertandingan yang tersebar di berbagai musim/liga, memberi Anda kemungkinan tim pemukulan tim B, data impor dan ekspor melakukan file JSON, mempersonalisasi algoritma, dan banyak lagi fitur.
Dari Wikipedia:
Sistem peringkat ELO adalah metode untuk menghitung tingkat keterampilan relatif pemain dalam game pesaing-versus-kompetitor seperti catur. Dinamai sesuai dengan penciptanya Arpad Elo, seorang profesor fisika Amerika kelahiran Hongaria.
Implementasi ini memiliki beberapa penyesuaian untuk menyesuaikan diri dengan pertandingan sepak bola, lebih dari itu, penambahan variabel yang mengubah poin yang tersebar dalam pertandingan yang diberikan sesuai dengan perbedaan gol.
Untuk informasi terperinci tentang rumus dan sedikit lebih banyak teori, silakan kunjungi halaman Wikipedia.
Nilai peringkat awal adalah 1500 poin, sedangkan K default adalah 20 (tapi mudah diubah).
Juga, setelah setiap musim, Anda dapat mundur poin dari semua tim dengan 1/3 ke Mean dengan menetapkan benar variabel regresstomean . Ini sangat berguna di liga kompetitif di mana ada banyak transfer dan pemain baru di pengemis setiap musim baru (default benar).
Tim peringkat yang lebih tinggi masih akan mendapatkan keuntungan, tetapi akan lebih kompetitif.
EloCalculator calculator = new EloCalculator ();
try {
calculator = new EloCalculator . Builder ()
. setK ( 20 )
. setLeagues ( "C: \ Soccer \ Data.json" )
. setRegressTowardMean ( true )
. build ();
} catch ( IOException ex ) {
Logger . getLogger ( MainClass . class . getName ()). log ( Level . SEVERE , null , ex );
} calculator . calculateRatings ();Anda dapat menyimpannya (dan memuatnya nanti, jadi Anda tidak perlu menghitung ulang).
try {
calculator . saveTeamsJSONFile ( "C: \ Soccer \ Ratings_Jan_2017.json" );
} catch ( IOException ex ) {
Logger . getLogger ( MainClass . class . getName ()). log ( Level . SEVERE , null , ex );
}Atau Anda bisa mendapatkan data Anda secara langsung. Dalam contoh ini, kami hanya mencetak peringkat dalam urutan menurun.
System . out . println ( "Ranking: " );
List < Team > teams = calculator . getTeams ( true );
for ( Team t : teams )
System . out . println ((( int ) t . getLastRating (). getRating ()) + " " + t . getName ()); [
{
"champion" : " Palmeiras " ,
"name" : " Campeonato Brasileiro 2016 " ,
"matches" : [
{
"home" : " Vitória " ,
"away" : " Palmeiras " ,
"homeGoals" : 1 ,
"awayGoals" : 2 ,
"date" : " Dec 11, 2016 12:00:00 AM "
},
{
"home" : " Palmeiras " ,
"away" : " Atlético-PR " ,
"homeGoals" : 4 ,
"awayGoals" : 0 ,
"date" : " May 14, 2016 12:00:00 AM "
}
],
"year" : 2016
}
]Beberapa hal yang saya pikirkan untuk masa depan ...
The MIT License (MIT)
Copyright (c) 2016 Victor Santiago
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.