안녕하세요. Moneyball입니다.
오늘 공유드릴 내용은 1979-80 시즌 이후 각 시즌 MVP 수상자들과 MVP 후보 및 탈락자들(최소 1표 이상 받은 선수들)의 스탯과 팀성적을 분석하여, 분류 트리(Classification Tree)란 방법으로 이번 시즌 MVP 컨텐터들에게 적용해보는 모델입니다.
Classification Tree는 데이터 마이닝에서 일반적으로 사용되는 방법론으로,
몇몇 입력 변수(여기서는 각 선수별 시즌 성적 데이터)를 바탕으로, 제가 알고자 하는 목표 변수(MVP 수상 여부)가 나올 수 있는 입력 변수의 기준점(예: 경기 당 득점 몇 점 이상은 MVP가 됨)을 분류해주는 방법입니다.
저번에 시즌 우승팀 예측 모델을 만들 때와 마찬가지로, http://www.basketball-reference.com
에서 다운받은 Raw Data를 조합하여 학습할 데이터(Training Set)와 검증할 데이터(Validation Set)를 아래와 같이 나눴습니다.
Data에 추가적으로 작업한 것(위의 테이블 붉은 색 항목)은 "소속팀의 시즌 성적"과 "주요 항목별 Leaders(득점, 리바운드, 어시스트, 윈셰어)"을 각 선수의 시즌 데이터에 추가시킨 것인데요. 추가한 이유는 MVP는 개인 성적도 중요하지만 팀 성적이 특히 중요한 점, 각 주요 분야별 타이틀이 가지는 상징성이 MVP 수상에 영향을 미치는 점을 고려하였습니다. 참고로, 각 선수별 소속팀 시즌 성적 중 시즌 도중 트레이드가 있었던 경우는 더 많은 경기를 뛴 팀의 성적을 반영하였습니다.
(예: 1993-94 시즌 도미니크 윌킨스의 경우 ATL → LAC로 이적하였는데,
ATL에서 49 경기를 뛰었기 때문에 ATL 성적을 반영하였습니다.)
아래 보시는 그림이
Best Pruned Tree라고 해서 가장 최적화된 모델이 나왔습니다.

해석은 단순합니다. 트리 제일 위 파란 원을 기준으로, 오른 쪽으로 내려가는 나무 가지는 파란 원안의 값보다 큰 경우(Yes)이고, 왼쪽으로 내려가는 가지는 파란 원의 값보다 작은 경우(No)라고 이해하시면 됩니다. 초록 박스 안의 1은 긍정, 0은 부정입니다. 즉, 1이면 MVP, 0이면 MVP가 아닙니다. 예를 들면,
“1) 윈셰어 타이틀이 있느냐? Yes → 오른쪽 가지를 타고 다음 단계로 가서, 2) 소속팀의 시즌 승리수가
57.5승(반올림하면 58승) 이상이냐? Yes인 경우 →
MVP 수상, No인 경우 → MVP 탈락”입니다.
이 모델의 기준으로 돌려봣을 때, MVP를 맞출 확률은
66.67%로 레포트가 나왔습니다. 많은 변수를 넣었음에도 생각보다 너무 단순하게 윈셰어랑 팀 승수만 나오네요. 윈셰어라는 게 팀 성적과 그에 대한 선수의 공헌도에 대한 2차 스탯이기 때문에, 득점이나 리바운드 같은 단순 1차 스탯보다 좀 더 확실한 MVP의 판단 기준이 되는 것 같습니다.
(윈셰어 계산 방법은 다음의 링크에 상세히 나와있습니다. http://www.basketball-reference.com/about/ws.html) 아무튼 제가 빌드업한 모델 기준으로만 보면, 제임스 하든이 현재 이번 시즌 윈셰어 리더이고 팀 승수도 58승 달성이 가능하기 때문에 유력한 MVP 후보라고 할 수 있겠습니다. 정확히 어떤 변수가 들어가서 산정되는 방식인지 모르겠지만, Basketball-reference.com에서도 아래 표와 같이 하든을 가장 유력한 MVP 후보로 꼽고 있네요.

그런데 최적화되긴 했지만 너무 단순화된 (위에 소개한) 트리는 재미가 없어 보여서, 에러율은 다소 올라가더라도 다양한 변수로 MVP를 판단할 수 있게끔, 나무 가지를 좀 더 모델을 추가로 만들어 봤습니다. (Decision Tree를 인위적으로
9개로 세팅했습니다.)
해석은 비슷합니다. 예를 들면, 제일 위 파란 원부터 “1) 윈셰어 타이틀이 있느냐?
No →
2) 소속팀의 시즌 승리수가 61.5승 이상이냐?
Yes →
3) 경기당 득점이
23.35점 이상이냐?
No →
MVP 탈락” 이런 식으로 보시면 됩니다. 여기서도 윈셰어 타이틀이 중요한데, 윈셰어 리더가 못 되면 팀 승수가
62승은 되어 줘야지 MVP 수상 가능성이 생긴다고 나오네요.
다음은 이 모델의 한계인데요.
이 놈이 사람처럼 논리적으로 생각하지는 않기 때문에, 저희가 이해하기 힘든 예측이 나오기도 합니다. 예를 들면,
“1) 윈셰어 타이틀이 있느냐? Yes → 2)
소속팀의 시즌 승리수가 57.5승 이상이냐?
No →
3) 뛴 경기 수가 68 게임 이상이냐?
No →
MVP 수상”과 같은 저희로서는 약간 이해하기 힘든 결과를 예측하기도 합니다.
이 모델은 과거의 숫자만 가지고 판단하기 때문에, 과거 MVP 수상자들이 기록한 숫자가 그러하다면, 이 모델은 사람처럼 사고하지 않고 그냥 그 숫자에 기반해서 결과를 예측합니다. 특히 두 번 째 소개한 분류 트리는 가장 최적화된 트리가 아니고 인위적으로 Decision Tree 개수를 9개로 늘렸기 때문에,
저희가 볼 때 이해할 수 없는 분류 기준 더 나오는 것 같습니다. 또 하나는, 이번 시즌처럼 MVP 컨텐더들의 스탯이 기존 시즌 대비 센세이셜하게 나올 때는,
이 모델의 예측 가능성이 다소 떨어질 수 있겠다는 생각이 듭니다. 1979-80 시즌 이래로 하든의
29-8-11이나 러셀 웨스트브룩의 31-11-10 같은 스탯은 나온 적이 없기 때문에, 이런 부분은 올 시즌 최종 데이터와 MVP를 결과를 학습해야, 다음 시즌에 대한 예측 가능성을 더 높일 수 있는 모델이 만들어질 수 있을 것 같습니다. 마지막으로, 이 모델은 과거의 MVP 컨텐더들만으로 빌드업한 모델이기 때문에, 팀성적이 중요한 지표가 될 수 밖에 없다. 즉, 이 모델이 학습한 데이터의 개인별 1차 스탯들은 다 좋을 것 이기 때문에, MVP를 예측하는데 있어 차별화되는 부분은 팀 성적이나 윈셰어 같은 것이 될 수 밖에 없다는 한계가 있을 것 같습니다.
아무튼 정말 재미로 봐주시면 좋을 것 같고요. 앞으로 저도 좀 더 내공을 쌓아서, 좀 더 흥미롭고 예측 가능성이 높은 모델들을 공유해볼 수 있도록 하겠습니다.
첫댓글 매우 흥미롭네요 감사합니다. 레퍼런스 닷컴의 MVP tracker도 비슷한 모델을 쓴다는 말씀이시죠?
제가 볼 때 레퍼런스 닷컴은 기자단 투표를 얼마나 받을 거냐에 영향을 주는 변수를 계수화해서 Voting Share를 예측하는 모델인 것 같습니다. 저는 수상 여부를 1과 0으로 놓고 예측하도록 돌렸고요. 저도 레퍼런스 닷컴에서 하는 걸로 보이는 방식도 시도를 해봤는데, 에러율이 생각보다 높게 나와서 이번에는 공유를 하지 않았습니다. :-)
역시 미래는 이과에? ㅎㅎㅎ 문과라 죄송합니다
헛 저도 문과예요 ㅎㅎㅎ 저도 수학 엄청 싫어합니다.
삭제된 댓글 입니다.
글을 쉽게 쓰는 능력을 더 키워야겠어요. 약간 수정은 했는데 도움이 되실지 모르겠네요.