이것은 축구 경기를 위해 특별히 조정 된 ELO 등급 계산기입니다.
그것은 다른 계절/리그에 걸쳐 퍼져 나가는 경기의 기록을 기반으로 주어진 팀 등급을 계산할 수 있으며, 팀 A B 구타 팀 B, 수입 및 수출 데이터는 JSON 파일, 알고리즘을 개인화하고 더 많은 기능을 개인화 할 가능성을 제공합니다.
Wikipedia에서 :
ELO 등급 시스템은 체스와 같은 경쟁 업체 대용 기업 게임에서 플레이어의 상대 기술 수준을 계산하는 방법입니다. 그것은 헝가리 출신의 미국 물리학 교수 인 제작자 Arpad Elo의 이름을 따서 명명되었습니다.
이 구현에는 축구 경기에 적응하기위한 몇 가지 조정이 있습니다. 특히 목표 차이에 따라 주어진 경기에서 확산 된 점을 변경하는 변수를 추가합니다.
공식 및 이론에 대한 자세한 정보는 Wikipedia 페이지를 방문하십시오.
초기 등급 값은 1500 포인트이고 기본 k 는 20이지만 쉽게 변경할 수 있습니다.
또한 각 시즌 후에는 회귀 변수를 참으로 설정하여 모든 팀의 포인트를 평균으로 1/3으로 회귀 할 수 있습니다. 이것은 각 새로운 시즌을 구걸 할 때 많은 양도와 새로운 선수가있는 경쟁 리그에서 특히 유용합니다 (기본값은 사실입니다).
높은 순위 팀은 여전히 이점을 얻을 수 있지만 경쟁력이 높아질 것입니다.
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.