Soccer Elo Ratings
1.0.0
これは、サッカーの試合に特に調整されたELO評価計算機です。
さまざまなシーズン/リーグに広がる試合の履歴に基づいて特定のチーム評価を計算し、チームAチームBの可能性を与え、データをインポートおよびエクスポートし、JSONファイルをインポートおよびエクスポートし、アルゴリズムをパーソナライズします。
ウィキペディアから:
ELOレーティングシステムは、Chessなどの競合他社と競争相手のゲームにおけるプレーヤーの相対的なスキルレベルを計算する方法です。ハンガリー生まれのアメリカ人物理学教授であるクリエイターのアルパッド・エロにちなんで名付けられました。
この実装には、サッカーの試合に合わせて調整するためのいくつかの微調整があります。特に、目標の違いに応じて特定のマッチでポイントを変更する変数の追加があります。
式ともう少しの理論の詳細については、ウィキペディアのページをご覧ください。
初期評価値は1500ポイント、デフォルトのkは20です(ただし、簡単に変更できます)。
また、各シーズンの後、すべてのチームのポイントを1/3までに退行させて、回帰変数をTrueに設定することができます。これは、新しいシーズンごとに多くの転送と新しいプレーヤーが登場する競争力のあるリーグで特に役立ちます(デフォルトは真)。
ランキングチームの上位は引き続き有利になりますが、より競争が激しくなります。
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 ();保存することができます(後でロードされるため、再計算する必要はありません)。
try {
calculator . saveTeamsJSONFile ( "C: \ Soccer \ Ratings_Jan_2017.json" );
} catch ( IOException ex ) {
Logger . getLogger ( MainClass . class . getName ()). log ( Level . SEVERE , null , ex );
}または、データを直接取得できます。この例では、評価は下降順序でのみ印刷します。
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
}
]将来のために私が念頭に置いているいくつかのこと...
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.