Footlab AI는 축구 경기 예측을 어떻게 계산하나요?
Footlab AI는 경기마다 팀별 기대 득점을 추정한 뒤, 이변량 푸아송 모델로 각 결과의 확률을 구합니다. 기대 득점에는 여섯 가지 정보가 결합됩니다: 최근 40경기로 측정한 두 팀의 최근 전력(6개월 전 경기는 최근 경기의 절반만 반영), 리그별로 고정한 세계 Elo 순위, 예상 선발 라인업, 확정된 결장자, 홈 이점, 그리고 2차전이나 휴식일 같은 경기 상황입니다. 해당 경기에 배당이 공개되어 있으면, 표시되는 승무패 확률은 이 추정치와 시장 합의를 결합하며, 기대 득점도 그 확률과 일관되도록 다시 보정됩니다. 모델 단독으로 주요 리그와 유럽 대항전에서 본 적 없는 경기를 테스트한 결과(2026년 7월 16일) 53.9%에서 올바른 결과를 맞혔습니다. 세 결과 중 무작위로 고르면 33.3%입니다. 모델과 배당을 결합한 실제 예측 카드는 북메이커와 같은 수준입니다.
모델 버전: 2026-10. 최근 기능 변경(2026년 10월 5일): 배당에서 북메이커 마진을 걷어 낼 때 이른바 ‘파워 방식’을 사용해, 큰 우세 팀을 더 이상 과소평가하지 않습니다. 또한 킥오프 직전에 배당을 한 번 더 수집합니다. 이전 변경(2026년 9월 25일): 기대 득점, 스코어, 파생 항목을 공개된 승무패 확률에 맞춰 다시 보정. 기준 백테스트: 2026년 7월 16일, 25,424경기.
모델은 한 경기에 대해 정확히 무엇을 내놓나요?
모델은 세 가지 결과(홈 승, 무승부, 원정 승) 각각의 확률, 가장 가능성 높은 스코어, 그리고 같은 스코어 행렬로 계산한 몇 가지 파생 항목의 확률을 내놓습니다.
- 승무패 확률. 구조상 합계는 항상 100%입니다.
- 가장 가능성 높은 정확한 스코어. 팀당 최대 8골로 제한한 행렬에서 읽습니다.
- 총 2.5골 초과 확률과 양 팀 모두 득점할 확률.
- 전반전 득점 확률. 전체 골의 44%가 전반에 나온다는 경험적 비율로 보정합니다.
승무패 확률에 왜 시장 배당을 반영하나요?
그 방식이 가장 정확한 것으로 확인되었기 때문입니다. 배당이 있는 전체 대회 19,583경기(2026년 10월 5일 측정)에서 모델 단독은 50.5%, 북메이커 우세 예상은 52.8%에서 올바른 결과를 맞혔습니다. 둘을 결합하면 시장과 대등해지며(52.7%, 98.5%의 경우 우세 예상과 같은 결과를 지목), 보정 상태도 모델 단독보다 확실히 좋습니다(브라이어 점수 0.583 대 0.602). 따라서 Footlab AI는 북메이커를 이기는 것이 아니라 북메이커와 나란히 섭니다. 베팅 수익률까지 포함한 전체 비교는 정확도 페이지에 공개되어 있습니다.
- 승무패 배당은 데이터 제공업체가 집계한 북메이커 배당입니다. 경기 약 하루 전에 한 번, 킥오프 90분 전부터 10분 전 사이에 다시 한 번 수집하며(예측 카드는 가장 최근 수집값을 사용), 평균을 낸 뒤 이른바 ‘파워 방식’으로 북메이커 마진을 제거합니다. 이 방식은 북메이커가 마진을 주로 얹는 약팀 쪽에서 마진을 많이 걷어 내므로, 큰 우세 팀이 더 이상 과소평가되지 않습니다(19,583경기 기준으로, 이전 방식에서 85%로 제시된 우세 팀은 실제로 92% 이겼고, 지금 방식에서는 87%로 제시된 우세 팀이 88% 이겼습니다).
- 표시되는 확률에서 배당이 차지하는 비중은 모델의 확신도에 따라 85%에서 95%까지이며, 모델이 망설일 때 95%입니다. 예측 카드가 북메이커의 승자를 그대로 따르도록 강제하는 규칙은 없습니다. 모델이 북메이커와 의견이 다를 때(경기의 18%)는 이 혼합만으로 결정되며, 모델이 충분히 확신하면 자신의 승자를 유지합니다.
- 그다음 기대 득점, 정확한 스코어, 득점 확률과 전반전 확률을 이 승무패 확률에 정확히 맞도록 다시 보정합니다. 16,630경기에서 측정한 결과, 정확한 스코어와 전반전 예측은 좋아졌고 나빠진 항목은 없었습니다.
- 공개된 배당이 없으면(먼 미래의 경기나 배당이 제공되지 않는 대회) 모델 단독의 예측입니다. 배당 자체는 절대 표시하지 않습니다.
팀의 전력은 어떻게 측정하나요?
팀의 전력은 최근 40경기를 바탕으로 추정하며, 180일마다 경기의 비중이 절반으로 줄도록 가중치를 둡니다. 여기에 상대한 팀의 수준과 해당 대회의 평균값으로 보정합니다.
- 득점과 실점은 80% 비율로 기대 득점과 섞습니다(제공업체가 공식 xG를 주면 그 값을, 아니면 유효 슈팅으로 추정한 값을 쓰며, 270,000경기에서 측정한 유효 슈팅당 0.3192골을 적용합니다).
- 최근 경기 수가 적은 팀은 세 경기에서 나온 극단적인 전력을 그대로 보여 주는 대신, 대회 평균 쪽으로 끌어당깁니다(5경기 기준의 축소 보정).
한 번도 맞붙지 않는 두 팀은 어떻게 비교하나요?
각국 리그는 거의 닫힌 풀이어서, 리그 내부 경기의 결과가 서로 상쇄됩니다. 보정하지 않으면 루마니아 최고 클럽과 우크라이나 최고 클럽의 Elo가 똑같아집니다. 그래서 Footlab AI는 클럽 Elo에 풀 앵커를 더하며, 이 앵커는 풀 간 경기로만 갱신됩니다.
- 클럽의 세계 레이팅은 클럽 Elo에 소속 리그의 앵커를 더한 값입니다.
- 리그 앵커는 유럽 대항전과 국제 경기에서만 움직이며, 계수는 24입니다. 이 프로젝트에서 측정된 단일 개선 가운데 가장 큰 효과를 냈습니다.
- 여자 클럽과 유소년 팀은 별도의 풀을 가지므로, 그 결과가 남자 리그의 앵커를 움직이지 않습니다.
- 순위 갱신에서 홈 이점은 Elo 60점입니다.
선발 라인업도 반영하나요?
네. 2026년 8월 9일부터 Footlab AI는 경기 전마다 웹에서 예상 라인업을 확인하고, 발표된 선발 11명과 그 경험, 선수 개인 평점을 바탕으로 예측을 수정합니다.
- 언론이 확인한 라인업을 최근 로테이션에서 추론한 라인업보다 우선합니다.
- 선발 11명의 경험과 선수 평점은 비교하기 전에 각자 리그의 척도로 환산합니다. 7.2라는 평점이 어디서나 같은 의미는 아니기 때문입니다.
- 확정된 결장(부상, 출장 정지)은 해당 팀의 예상 공격력을 낮춥니다.
서로 다른 리그 팀 간 경기는 왜 따로 다루나요?
국내 리그에서의 폼이 거의 옮겨 가지 않기 때문입니다. 백테스트로 측정하면 리그 간 경기에서는 원래 비중의 10%만 남습니다. 이 프로젝트에서 가장 값비싼 교훈이었고, 그대로 코드에 반영했습니다.
- 풀 간 경기에서는 국내 리그 최근 폼의 비중을 평소의 10%로 낮춥니다.
- 대신 세계 Elo 차이의 비중을 리그 경기보다 세 배 가까이 높입니다. 풀 앵커 덕분에 이 차이를 실제로 비교할 수 있게 되었기 때문입니다.
- 이 구간의 정확도는 예측 기록의 cross_pool 열을 이용해 따로, 지속적으로 측정합니다.
모델의 데이터는 얼마나 자주 갱신되나요?
경기 중 스코어는 분 단위로 추적하고, 순위표는 매시간 다시 계산하며, 부상 정보와 Elo 순위는 매일 다시 동기화합니다.
- 예측은 킥오프 전까지 계속 다시 계산됩니다. 마지막으로 제공된 버전이 기록되고 평가됩니다.
- 실제 결과와 예측의 대조는 빨라도 킥오프 3시간 뒤에 이루어집니다.
- 연기되거나 취소된 경기는 절대 오답으로 세지 않으며, 14일이 지나면 결과 없이 종료 처리합니다.
모델의 파라미터는 무엇인가요?
아래 아홉 개 파라미터가 예측에 가장 큰 영향을 줍니다. 각 값은 백테스트에서 여러 값을 차례로 시험해 정한 뒤, 모델이 본 적 없는 이후 표본으로 확인했습니다.
| 파라미터 | 값 | 역할 |
|---|---|---|
| 폼의 반감기 | 180일 | 6개월 전 경기는 최근 경기의 절반만 반영됩니다. |
| 축소 보정 | 5경기 | 관찰된 경기가 적은 팀을 대회 평균 쪽으로 끌어당깁니다. |
| 기대 득점 가중치 | 0.8 | 전력을 기대 득점 80%, 실제 득점 20%로 추정합니다. |
| 풀 앵커 계수 | 24 | 리그 전체가 세계 순위에서 오르내리는 속도입니다. |
| 홈 이점(Elo) | 60점 | 순위 갱신 때 홈 팀에 주는 가산점입니다. |
| 리그 간 감쇠 | 0.1 | 국내 폼은 자기 리그 밖에서 비중의 10%만 유지합니다. |
| 총득점 감쇠 | 0.8 | 총 2.5골 초과 확률이 극단적일 때 측정된 과신을 바로잡습니다. |
| 전반전 득점 비율 | 0.44 | 전반전 확률 계산의 기준입니다. |
| 승무패에서 시장 비중 | 0.85~0.95 | 배당이 공개된 경우, 표시 확률에서 배당 합의가 차지하는 비율입니다. 1이 되는 일은 없으며, 모델이 항상 반영됩니다. |
모델이 하지 않는 것은 무엇인가요?
이 목록은 앞의 목록만큼 중요합니다. 두 종류의 항목이 있습니다. Footlab AI가 원칙적으로 하지 않는 것, 그리고 구현하고 측정해 본 뒤 쓸모없다고 판단해 코드에서 0으로 둔 것입니다.
- 배당 표시 없음, 제휴 링크 없음, 추천 업체 없음. 공개된 배당은 승무패 계산의 입력값으로만 쓰이며(위 설명 참고), Footlab AI는 배당을 보여 주지 않고 어떤 북메이커로도 안내하지 않습니다.
- 날씨 데이터 없음. 기온, 비, 바람 모두 계산에 들어가지 않습니다.
- 동기나 공표된 목표에 대한 추정 없음. ‘승부에 걸린 것이 없는 경기’ 감점을 구현해 0.05부터 0.2까지 테스트했지만, 모든 가중치에서 기각되어 0으로 두었습니다.
- 결과나 득점에 대한 심판 효과 없음. 배정된 심판은 카드 수 확률에만 반영되며, 그것도 경기 전에 알려진 경우(약 3%의 경기)에 한합니다. 나머지 경기에서는 이 항목도 두 팀 데이터만으로 계산합니다.
- 골키퍼 단독 효과도, 수비수 결장 단독 효과도 없음. 둘 다 2026년 7월에 테스트했습니다. 앞의 것은 반영할수록 결과가 일관되게 나빠졌고, 뒤의 것은 잡음과 구별되지 않았습니다. 둘 다 0입니다.
- 경기 사이 휴식일을 넘어서는 일정 과밀 효과 없음. 테스트했지만 개선이 없었습니다.
- 리그별 무승부 비율 보정 없음. 테스트 결과 나빠지기만 했습니다. 무승부가 잦은 리그는 득점이 적은 리그이며, 대회 평균값이 이미 이를 반영합니다.
- 부상, 이적, 감독 결정에 대한 예측 없음.
Footlab AI 데이터를 바탕으로 한 통계 분석이에요(17,000경기 이상으로 보정한 푸아송 모델에, 공개된 배당이 있으면 그 시장 합의를 결합했어요). 베팅 조언이 아니에요.
Footlab AI(footlab.ai)는 독립적인 소프트웨어 제품이에요. 실내 축구장 프랜차이즈 FOOTLAB World와도, Footy Labs와도 아무 관련이 없어요.