AI(6) ≡ 우리나라 배구 분석

Acrylic·2024년 6월 11일

우리나라 배구 분석

본주제는 여자 배구 선수가 우리나라와 겨루었을 때의 나라별 승률을 통한 우리나라 승률 분석이다.

분석 계기

스포츠를 최근에 자주 보는 편이 아니라 어떤 종목이 경기력이 좋은지 몰랐고 최근에 체육 대회로 빅발리볼을 하다 보니까 배구에 대해 관심이 가게 되었다.

그래서 우리나라 배구 현황은 어떤지 궁금해서 찾아보게 되었다.

분석 방법

전지전능한 ChatGPT가 자료를 찾아줘서 분석해 보았다.

아, 물론 내용물만 내가 직접 복사해서 ChatGPT에게 분석해 달라고 요청했다.
근데 요 녀석이 자꾸 1 - 3 이런 거에 집착해서 그냥 직접 이긴 부분과 진 부분은 코드를 짜기로 하였다.

data = [
    ["Jun 2, 2024", "KOR", 101.07, 286.89, "CAN", "0 - 3", -1.85],
    ["Jun 1, 2024", "KOR", 101.5, 385.28, "TUR", "0 - 3", -0.43],
    ["May 30, 2024", "KOR", 102.14, 362.6, "POL", "0 - 3", -0.64],
    ["May 29, 2024", "KOR", 104.59, 150.17, "BUL", "2 - 3", -2.45],
    ["May 19, 2024", "THA", 213.59, 90.9, "KOR", "1 - 3", 13.69],
    ["May 18, 2024", "KOR", 92.18, 305.61, "DOM", "0 - 3", -1.28],
    ["May 16, 2024", "BRA", 355.4, 92.8, "KOR", "3 - 0", -0.61],
    ["May 14, 2024", "CHN", 329.65, 93.72, "KOR", "3 - 0", -0.93],
    ["Sep 24, 2023", "KOR", 100.83, 134.18, "SLO", "0 - 3", -7.1],
    ["Sep 23, 2023", "THA", 214.84, 104.6, "KOR", "3 - 0", -3.78],
    ["Sep 22, 2023", "COL", 156.53, 106.54, "KOR", "3 - 2", -1.93],
    ["Sep 20, 2023", "USA", 360.97, 106.55, "KOR", "3 - 1", -0.01],
    ["Sep 19, 2023", "GER", 233.84, 106.56, "KOR", "3 - 2", -0.01],
    ["Sep 17, 2023", "POL", 317.31, 106.57, "KOR", "3 - 1", -0.01],
    ["Sep 16, 2023", "ITA", 345.16, 107.36, "KOR", "3 - 0", -0.79],
    ["Sep 6, 2023", "KAZ", 101.75, 116.86, "KOR", "3 - 0", -9.5],
    ["Sep 5, 2023", "KOR", 111.51, 40.47, "IND", "3 - 0", 5.35],
    ["Sep 4, 2023", "AUS", 57.62, 105.09, "KOR", "0 - 3", 6.42],
    ["Sep 3, 2023", "THA", 183.24, 110.36, "KOR", "3 - 0", -5.27],
    ["Sep 1, 2023", "UZB", 26.72, 105.33, "KOR", "0 - 3", 5.02],
    ["Aug 31, 2023", "KOR", 102.26, 76.14, "TPE", "3 - 2", 3.08],
    ["Aug 30, 2023", "KOR", 108.46, 71.52, "VIE", "2 - 3", -6.2],
    ["Jul 2, 2023", "POL", 309.71, 110, "KOR", "3 - 0", -1.55],
    ["Jul 1, 2023", "KOR", 110.01, 327.44, "CHN", "1 - 3", -0.01],
    ["Jun 29, 2023", "DOM", 246.21, 113.45, "KOR", "3 - 0", -3.44],
    ["Jun 27, 2023", "BUL", 173.36, 117.87, "KOR", "3 - 1", -4.42],
    ["Jun 18, 2023", "GER", 246.66, 118.99, "KOR", "3 - 1", -1.12],
    ["Jun 16, 2023", "KOR", 129.32, 123.53, "CRO", "0 - 3", -10.33],
    ["Jun 15, 2023", "JPN", 313.49, 131.26, "KOR", "3 - 0", -1.94],
    ["Jun 14, 2023", "BRA", 378.94, 132.05, "KOR", "3 - 0", -0.79],
    ["Jun 4, 2023", "THA", 210.55, 138.1, "KOR", "3 - 0", -6.05],
    ["Jun 3, 2023", "USA", 366.96, 139.14, "KOR", "3 - 0", -1.05],
    ["Jun 2, 2023", "CAN", 197.82, 146.27, "KOR", "3 - 0", -7.13],
    ["May 31, 2023", "KOR", 149.12, 299.14, "TUR", "0 - 3", -2.85],
    ["Oct 1, 2022", "KOR", 140.27, 146.57, "CRO", "3 - 1", 8.84],
    ["Sep 29, 2022", "KOR", 147.48, 212.89, "THA", "0 - 3", -7.21],
    ["Sep 28, 2022", "POL", 230.21, 154.08, "KOR", "3 - 0", -6.6],
    ["Sep 27, 2022", "TUR", 297.89, 157.65, "KOR", "3 - 0", -3.57],
    ["Sep 24, 2022", "DOM", 273.36, 162.47, "KOR", "3 - 0", -4.82],
    ["Jul 3, 2022", "CHN", 345.4, 162.48, "KOR", "3 - 1", -0.01],
    ["Jul 1, 2022", "ITA", 331.88, 162.49, "KOR", "3 - 1", -0.01],
    ["Jun 30, 2022", "KOR", 163.85, 373.14, "BRA", "0 - 3", -1.36],
    ["Jun 29, 2022", "THA", 205.25, 171.97, "KOR", "3 - 0", -8.12],
    ["Jun 19, 2022", "TUR", 329.82, 172.08, "KOR", "3 - 1", -0.11],
    ["Jun 18, 2022", "NED", 229.05, 179.3, "KOR", "3 - 0", -7.22],
    ["Jun 16, 2022", "SRB", 296.25, 183.51, "KOR", "3 - 0", -4.21]
]

이거는 복사해서 ChatGPT가 가공해 준 거고

df = pd.DataFrame(data, columns=["날짜", "팀1", "포인트1", "포인트2", "팀2", "결과", "점수"])

win = {}
lose = {}

for row in df.iloc:
  country = ""
  country = row['팀2'] if row['팀1'] == "KOR" else row['팀1']

  if country not in lose:
      win[country] = 0
      lose[country] = 0

  if row['점수'] > 0:
    win[country] += 1
  else:
    lose[country] += 1

여기까진 내가 직접 짰다.

기본적인 분석

이긴 횟수, 진 횟수, 승률은 직접 짜려고 했으나...
세상에 for val in win까지 썼는데 Colab이 알아서 코드 다 쳐 줬다.

totwin = 0

for val in win:
  totwin += win[val]

print("이긴 횟수:", totwin)

totlose = 0

for val in lose:
  totlose += lose[val]

print("진 횟수:", totlose)

win_rate = totwin / (totwin + totlose) * 100
print("승률: {:.2f}%".format(win_rate))

승률... 처참하다.

국가별 승률 현황

우리나라랑 다른 나라랑 각 국가마다 붙었을 때 그 나라와의 승률도 구해 보려고 준비했으나... 또 Colab이 print 내용만 보고 알아서 짜 줬다.

print("국가별 승률 현황")
for country in win:
  win_rate = win[country] / (win[country] + lose[country]) * 100
  print("{}: {:.2f}%".format(country, win_rate))

이렇게 보니까 더 처참하다.

이길 가능성이라도 있는 국가 리스트

print("이길 가능성이라도 있는 국가 리스트")
for country in win:
  win_rate = win[country] / (win[country] + lose[country]) * 100
  if win_rate > 0:
    print("{}: {:.2f}%".format(country, win_rate), end=' ')

... 이것도 짜 줬다. 솔직히 저 정도 승률이라면 이긴 게 있기라도 하는지 봐야 할 것 같아서 저렇게 짜 줬다.

그 와중에 50% 아래도 하나밖에 없네

결론

자료가 부족하긴 하지만... 자료랑 같이 보았을 때 대체로 태국을 제외하면
순위에 없는 나라비슷한 나라 이길 수 있는 것을 알 수 있다.
(여자는 우리나라가 전세계적으로 배구를 그렇게 잘하진 않는다)
(사실 남자도 전적 보니까 비슷비슷했다)

태국은 랭킹 13위이니 그나마 상위권을 못 이긴다 정도는 아니라 볼 수 있을 것 같다.
1-3으로 이겼으니까.

이유를 찾아보니 김연경 선수나 그런 주요 인물이 다 은퇴해서 전적이 나락 갔다고 한다.
(필자는 김연경 선수 아직도 활동하는 줄 알았다)

profile
프런트엔드 개발자 지망생

0개의 댓글