Players, Positions, and Probability in the NBA -번역

NBA의 선수, 위치 및 확률

지도 머신 러닝을 사용하여 NBA 위치 분류기 구축

Kobe Bryant shoots a free throw during a game against the Sacramento Kings. Photo by Ramiro Pianarosa on Unsplash

중요한 질문으로이 블로그를 시작하겠습니다. NBA 선수를 위치별로 분류하기 위해 기계 학습을 사용해야하는 이유는 무엇입니까?평범한 농구 팬이라면 어느 선수가 어떤 포지션을하는지 식별 할만큼 충분히 농구를봤을 것입니다.게임에 대한 지식이없는 사람이라도 각 위치가하는 일을 이해하기 위해 역대 최고의 유튜브 클립을 찾을 수 있습니다.그렇다면 기계 학습 알고리즘이 그 사용을 정당화하는 추가 정보를 제공 할 수 있습니까?

글쎄, 올 때o 분류 작업에서 기계 학습 알고리즘은 예측 된 확률을 사용하여 그룹에 속하는지 여부를 결정합니다. NBA 포지션의 경우 머신 러닝 알고리즘은 플레이어가 포인트 가드, 슈팅 가드, 스몰 포워드, 파워 포워드 또는 센터 일 확률을 예측합니다. 알고리즘은 주어진 플레이어의 각 위치에 대한 확률을 제공합니다. NBA 분석가 간의 토론이나 프론트 오피스에 유용 할 수있는 것은 바로 이러한 확률입니다. 새로운 세대의 NBA 재능이있을 때마다 선수들의 스킬 세트와 관련하여 더 많은 하이브리드 화를 보았습니다. 센터는 더 이상 화면을 설정하기 위해 3 포인트 라인에만 오는 바스켓에 엄격하게 가까운 로우 포스트 플레이어가 아닙니다. 현대 센터는 3 점 선으로 이동하여 3 점을 가져오고 일부는 빠른 휴식을 효과적으로 실행하는 데 필요한 기술을 갖추고 있습니다. 플레이어에게 할당 된 위치 확률을 통해 플레이어의 다양성을 이해하기 시작할 수 있습니다. 팀 내 각 선수의 위치 확률을 알고 있다면 자신의 팀이나 상대의 라인업 분석에 사용할 수 있습니다.

이러한 위치 확률에 대한 또 다른 용도를 고려해 보겠습니다.매년 스포츠 작가와 방송인 패널이 가장 가치있는 선수, 올해의 수비 선수, 모든 NBA 팀과 같은 다양한 상을 위해 투표합니다.당hoopsrumors.com에서 플레이어는 다음 기준을 충족하는 경우 슈퍼 맥스 계약 (팀 연봉 한도의 30 %)을받을 수 있습니다.

  • 이전 시즌 또는 이전 시즌 3 개 중 2 개에서 All-NBA 팀을 구성합니다.
  • 이전 시즌 또는 이전 시즌 3 개 중 2 개에서 올해의 수비 선수로 선정
  • 이전 세 시즌 중 최소 한 번에 가장 가치있는 선수로 선정

이러한 미디어 회원의 투표가 플레이어의 향후 수익에 영향을 미칠 수 있다는 점을 감안할 때 플레이어를 평가하고 비교할 때 공평한 메트릭을 갖는 것이 무엇보다 중요합니다.NBA 위치 분류 알고리즘에 대한 입력은 플레이어의 성능과 게임에 미치는 영향을 설명하는 기록 된 통계 그룹입니다.그런 다음 알고리즘은 이러한 입력을 받아 어떤 종류의 수학을 수행하고 위치 확률을 제공합니다.입력으로 올바른 가정을하고 모델을 적절하게 훈련한다고 가정하면 다음과 같은 것을 생성 할 수 있습니다.

2015 ~ 2016 시즌 동안 르브론 제임스의 위치 확률.(작가 별 이미지)

두 명의 잠재적 MVP 후보 중에서 결정하는 경우 수상 유권자는 위에 표시된 것과 같은 도구를 사용하여 위치 다양성이 더 큰 플레이어와 함께 가기로 결정할 수 있습니다.

데이터 수집

위에 표시된 확률을 생성 할 수있는 모델을 만들려면 먼저 각 플레이어에 대한 데이터를 수집해야합니다.소유 통계 100 개당고급 통계basketball-reference.com에서 수집되었습니다.플레이어 추적 데이터는 stats.nba.com에서nba_stats_trackingPython 용 라이브러리.이 라이브러리에 대한 문서를 찾을 수 있습니다.여기. 2015–16에서 2018–19 시즌의 선수 데이터 만 사용되었습니다. COVID-19로 인한 갑작스러운 정지와 플레이 한 정규 시즌 총 횟수가 일치하지 않아 2019-20 플레이어 데이터를 사용하지 않기로 결정했습니다. NBA 웹 사이트의 선수 추적 데이터는 2013–2014 시즌으로 거슬러 올라갑니다. 곧 보게 되겠지만 NBA는 샷 선택에있어서 약간의 발전을 거쳤습니다. NBA의 모든 팀에서 시도하고 만든 3 개의 포인터 수가 크게 증가했습니다. 3 포인트 시대에 해당하는 4 시즌의 데이터를 사용하여 해마다 통계적 차이로 인해 모델이 플레이어에 대해 잘못된 가정을하는 것을 방지하는 것이 제 목표였습니다. 정규 시즌 데이터 만 사용되었습니다. 다른 소스는 플레이어 이름과 시즌을 사용하여 단일 Pandas 데이터 프레임으로 결합되었습니다. 각 플레이어는 단일 관찰로 취급되었습니다 (예 : 2015–16 LeBron James는 2017–18 LeBron James와 다릅니다). 나는 세 가지 이유로 각 플레이어를 단일 관찰로 취급하기로 결정했습니다.

  1. 모델 학습 및 테스트에 충분한 데이터가 있는지 확인하려면
  2. 명단은 해마다 거의 동일하지 않습니다.드래프트, 트레이드 또는 자유 에이전시 출신이든 새로운 선수를 소개하면 코치가 라인업을 조정해야 할 수 있으며 선수들은 팀 성공을 위해 자신의 플레이를 변경할 수 있습니다.
  3. 다른 모든 사람들과 마찬가지로 NBA 선수는 매년 나이가 들어갑니다.나이 때문이든 부상 때문이든 시간은 플레이어의 플레이 방식에 영향을 미칩니다.큰 부상을 입은 폭발성 포인트 가드는 회복 후 점프 슈팅에 더 의존하는 것처럼 보일 수 있으며 다른 플레이어가 공격을 실행하도록하는 동안 슈팅 가드로 더 적합합니다.

데이터 탐색

최종 모델을 만들기 위해 각 플레이어에 대해 51 개의 변수를 사용했습니다.분명히 각 통계를 생성하고 분석하는 데 엄청난 시간이 걸리므로이 블로그에는 몇 가지만 포함하겠습니다.더 많은 분석 및 시각화를 볼 수있는 내 Github 저장소에 대한 링크를 아래에 남겨 두겠습니다.

3 점 슈팅이 오늘날 NBA에서 점점 더 중요한 스킬이되었다고 간략히 말씀 드렸습니다.위치별로 4 시즌에 걸친 3 점 슈팅을 살펴 보겠습니다.

3 점 촬영 비율 및 위치 별 시도 횟수 (작가 이미지)

각 포지션은 지난 4 시즌 동안 100 포지션 당 3 개의 포인터를 증가 시켰으며, 파워 포워드와 센터의 비율이 시간이 지남에 따라 향상되었음을 알 수 있습니다.파워 포워드와 센터는 주변 위치와 같은 비율로 3 점을 얻지 못하지만 이는 플레이어의 재능 수준이 증가함에 따라

2 포인트 촬영 비율 및 위치 별 시도 횟수 (작성자 별 이미지)

3 점 시도 횟수가 증가할수록 2 점 시도 횟수를 줄여야한다는 사실을 알 수 있습니다.모든 포지션에 걸쳐 전체적으로 긍정적 인 경향이 있습니다.전년 대비 2 포인트 퍼센트 증가는 미드 레인지 샷이 아닌 바스켓 근처에서 2 포인트 샷의 빈도가 높기 때문일 가능성이 높습니다.여기NBA에서 수년간 샷 선택이 어떻게 바뀌 었는지 알 수있는 좋은 기사입니다.

또한 소유 시간과 같은 플레이어 추적 메트릭을 살펴 보겠습니다.

직위 별 평균 보유 시간 (저자별 이미지)

여기서 주목할 점은 누가 가장 많이 공을 잡았는지에 대한 명확한 순서가있는 것 같다는 것입니다.통계를 통해 직위 간의 명확한 묘사가 분류 모델의 성능을 향상시키는 데 도움이 될뿐임을 알 수있었습니다.소유 시간과 유사하게, 100 개의 소유물 당 3 점 시도 횟수 또는 100 개의 소유물 당 2 점 비율을 보면 약간의 차이가 있습니다.

모델 선택

이 프로젝트에 사용한 최종 모델에 도달하기 전에 먼저 시도한 다른 모델 중 일부에 대해 논의하고 적합하지 않은 이유에 대해 논의하겠습니다.

로지스틱 회귀

적합하지 않은 이유 : 로지스틱 회귀 분석에서는 변수가 서로 독립적이어야합니다.

앞서 언급했듯이 각 플레이어의 위치를 결정하기 위해 51 개의 입력 변수가 있습니다.예를 들어, 전체 3 점 시도뿐만 아니라 캐치 앤슈 3 점 시도도 포함하도록 선택했습니다.캐치 앤슈 3 점 시도가 증가함에 따라 3 점 시도 횟수도 증가합니다.나는 그들의 위치를 예측하려고 할 때 3 개의 포인터를 잡아서 쏘는 숫자가 중요한 척도라고 주장 할 것이다.우리는 중앙에 비해 사격 경비원의 비율이 더 높을 것으로 예상 할 수 있습니다.

K 가까운 이웃

적합하지 않은 이유 : 정확도 점수는 기껏해야 평범했습니다.

3 개의 이웃으로 시작하여 모델 정확도는 64.5 %에 불과했습니다.더 많은 이웃으로 프로세스를 반복하면 정확도가 점진적으로 증가 할뿐입니다.11 개의 이웃은 68.8 %의 모델 정확도를 가져 왔습니다.정확성이 계속 향상되기를 바라면서 이웃 수를 계속 늘릴 수 있지만 위험 할 수 있습니다.

왜 위험한가요?두 명의 NBA 플레이어를 사용하여 K Nearest Neighbor 알고리즘이 작동하는 방식을 요약 해 보겠습니다.

게임당 어시스트 수와 게임당 리바운드로 플레이어를 분류하려고한다고 상상해보십시오.각 선수 (x 축은 어시스트, y 축은 리바운드)를 플로팅하면 어시스트 및 리바운드 수치가 높은 플레이어가 함께 클러스터링되고 어시스트 및 리바운드 수치가 낮은 플레이어가 함께 클러스터링됩니다.LeBron James는 평균 경기당 7.4 어시스트 (APG)와 경기당 7.4 리바운드 (RPG)를 기록했으며 Russell Westbrook은 경기당 평균 8.3 어시스트와 7.1 리바운드를 기록했으며 Jason Kidd는 평균 8.7APG와 6.3RPG를 기록했습니다.Russell Westbrook과 Jason Kidd는 포인트 가드이며 LeBron James (적어도 그의 커리어 대부분)는 스몰 포워드입니다.이 경우 가장 가까운 이웃 알고리즘은 LeBron을 포인트 가드로 분류하기 위해 선택합니다.분명히 우리는 LeBron이 포인트 가드 (또는 더 좋기는하지만 포인트 포워드)가되는 경우를 만들 수 있지만 이는 약간 다른 논의입니다.

랜덤 포레스트

적합하지 않은 이유 : 과적 합에 심각한 문제가 있습니다.

랜덤 포레스트와 XGBoost를 모두 사용하여 각각 78.2 %와 83.8 %의 훈련 정확도를 얻을 수있었습니다. 불행히도 테스트 세트의 모델 정확도는 각각 68.6 %와 69.5 %에 불과했습니다. 분명히 정확도의 차이로 인해 랜덤 포레스트 알고리즘이이 문제에 적합하지 않습니다. 랜덤 포레스트가 작동하는 방식을 생각할 때이 알고리즘이이 데이터에 대해 작동하지 않는 이유에 대한 직관을 개발할 수 있습니다. 본질적으로 랜덤 포레스트는 의사 결정 트리 그룹 일 뿐이며 각 의사 결정 트리는 데이터를 그룹으로 분할하는 임계 값을 설정합니다. 랜덤 포레스트의 의사 결정 트리 중 하나가 평균이 최소 5 PPG, 5 APG 및 5 RPG 인 모든 플레이어가 스몰 포워드 인 임계 값을 생성 한 경우 특히 해당 의사 결정 트리가 매우 자주 잘못 될 수 있음을 금방 알 수 있습니다. 이 평균을 충족하거나 초과 한 모든 포지션에 걸쳐 확실히 많은 플레이어가 있습니다. 위에서 설명한 것과 같은 의사 결정 트리가 보이지 않는 테스트 세트에 적용된 임의 포리스트가있는 경우 해당 임계 값이 적용되지 않을 수 있습니다.

그래서 어떤 모델이 작동 했습니까?

이 데이터에 대해 가장 성능이 좋은 모델은 서포트 벡터 머신이었습니다.교차 검증 된 훈련 정확도 74 %와 테스트 정확도 73 %를 얻을 수있었습니다.이 두 정확도 점수는 NBA 선수를 위치별로 분류 할 수있는 일반화 된 모델이 있다는 결론을 내릴 수있을만큼 충분히 가깝습니다.참고로 아래는이 모델에 대한 최적의 매개 변수입니다.GridSearchCV:

{ 'svc__C': 1,
'svc_gamma': '스케일',
'svc_kernel': '선형',
'svc_proability : True}

NBA에는 여러 직책을 맡을 수있을만큼 재능있는 선수가 많다는 것을 알고 있습니다.이것은 우리가 모델의 오 분류를 가지고 살 수 있음을 의미합니다.모델의 성능을 더 잘 이해하기 위해 몇 가지 숫자에 대해 논의하고 혼동 행렬을 살펴 보겠습니다.다중 클래스 혼동 행렬을 해석하는 방법을 이해하기 위해).

위치 예측을위한 혼동 행렬 (저자별 이미지)

위의 혼동 매트릭스를 살펴보면 파워 포워드의 24 %가 센터로, 스몰 포워드의 22 %가 슈팅 가드로, 슈팅 가드의 20 %가 스몰 포워드로 분류되었습니다.이러한 위치는 플레이어 (및 팀)에 따라 서로 바뀔 수 있다는 점을 고려할 때 특정 플레이어 분류가 허용되는지 여부를 이해하기 위해 특정 플레이어의 오 분류를 살펴볼 필요가 있습니다.

위의 최악의 오 분류는 스몰 포워드로 예측 된 센터 1 개와 파워 포워드로 예측 된 두 명의 슈팅 가드 일 가능성이 높습니다.또한 스몰 포워드로 잘못 분류 된 14 개의 파워 포워드 그룹을 볼 수도 있습니다.그 파워 포워드 중 일부가 스몰 포워드 포지션을 플레이하는 데 필요한 슈팅 능력과 볼 핸들링 스킬을 갖추었다면 오늘날 NBA에서 놀라운 일은 아닐 것입니다.

2016 NBA 결승에 대한 빠른 회상

플레이어의 위치 확률을 확인하기 위해 플레이어 메서드가 호출 된 클래스.position_breakdown () 이를 통해 모델이 각 플레이어를 어떻게 보는지 쉽게 시각화 할 수 있습니다.편리하게basketball-reference.com플레이어의 특정 위치에서 보낸 시간의 백분율을 추정하는 유사한 기능이 있습니다.이러한 추정치는 모델이 예측하는 위치 확률에 대한 벤치 마크를 제공 할 수 있습니다.

플레이어 개체를 인스턴스화하고 .position_breakdown () 앞에서 본 파이 플롯을 생성하려면 다음과 같이 메서드를 사용하십시오.

LeBron = Player('LeBron', 'James', '15-16')LeBron.position_breakdown()

소개에서 언급했듯이 위치 확률을 사용하여 다양한 라인업을 평가하고 해당 라인업이 상대방과 경쟁 할 때 어떤 장단점이 있는지 이해하기를 바랍니다.

먼저 2015–2016 Cleveland Cavaliers :

2015 ~ 2016 년 시작 Cavs 라인업에 대한 위치 확률 (작성자 별 이미지)

2015–2016 Golden State Warriors :

2015 ~ 2016 년에 시작하는 Warriors 라인업의 위치 확률 (작성자 별 이미지)

Andrew Bogut를 제외하고 2016 NBA 파이널의 선발 선수가 둘 이상의 포지션을 플레이 할 수 있다고 가정하는 것이 합리적입니다.게임 영화 및 스카우팅 보고서와 함께 사용할 때 클리블랜드 코칭 스태프는 이러한 위치 확률을 사용하여 공격시 Andrew Bogut를 더 작은 모바일 플레이어로 전환하고 그 불일치를 활용하도록 강요 할 수 있습니다.코칭 스태프는 트리스탄 톰슨의 윙 플레이어로 서브를 선택하고 케빈 러브가 센터로 이동하고 르브론이 파워 포워드로 이동하도록 할 수 있습니다.Kevin Love의 3 점슛 능력은 Bogut를 페인트에서 빼내고 Cavaliers가 LeBron이 바스켓에 더 명확한 차선을 가지고있는 플레이를 실행할 수 있도록합니다.

추가 모델 튜닝을 통해 플러스 / 마이너스 통계와 함께 이러한 위치 확률을 확인하여 다양한 라인업의 생산을 평가할 수 있습니다.

생각을위한 음식 : 해마다 변화하는 변화

여기 내가 관심이 있다고 생각했던 플레이어 포지션 분석이 더 있습니다!농구는 팀 게임이며 코트에서의 역할 / 위치는 코트에있는 다른 사람의 영향을받습니다.

다음은 2015 ~ 16 년 오클라호마 시티 썬더의 Kevin Durant와 2016 ~ 17 년 Golden State Warriors의 Kevin Durant의 모습입니다.

Kevin Durant 위치 확률의 연도 별 비교 (작성자 별 이미지)

같은 해에 Russell Westbrook의 위치 확률은 다음과 같습니다.

Russell Westbrook 위치 확률의 연도 별 비교 (저자 이미지).2016-17 년 Russell Westbrook은 Oscar Roberston이 1962 년에 위업을 달성 한 이래 처음으로 평균 트리플 더블을 기록했습니다. Westbrook은 그해 NBA MVP이기도했습니다.

다음 단계 및 향후 고려 사항

이제 위치 확률을 예측할 수있는 기준 모델이 있으므로 확실히 개선하고 싶을 것입니다!모델을 개선 할 수있는 한 가지 가능한 방법은 주성분 분석을 사용하여 예측에 필요한 기능의 수를 줄이고 줄이는 것입니다.위에서 설명한 지원 벡터 머신은 51 개의 서로 다른 변수를 사용했으며 중요하지 않은 변수를 제거함으로써 모델 정확도를 향상시킬 수 있습니다.비 기술적 이해 관계자 (예 : 코치, 스카우트 또는 프론트 오피스)에게 모델 성능과 다양한 통계의 중요성을 설명 할 때 변수가 적을수록 더 도움이됩니다.

미래의 NBA 포지션 분류자는 대학 초안 유망주 나 서명되지 않은 FA를 평가하는 데에도 유용 할 수 있습니다.특정 대학 선수는 대학 팀에 비해 NBA 팀의 다른 위치에 더 잘 맞을 수 있습니다.안타깝게도 다른 국가의 대학이나 농구 리그에서는 선수 추적 데이터를 쉽게 사용할 수 없습니다.WNBA와 여자 대학 농구를 위해 동일한 모델을 만드는 것도 도움이 될 것이라고 생각하지만플레이어 추적 시스템의 채택이 뒤쳐지고 있습니다.여자 농구에서.

NBA 포지션 분류기를 구축하는 것도 또 다른 중요한 질문을 제기합니다.73 % 정확도의 모델을 사용하는 경우 기존의 5 가지 위치가 다양한 플레이 스타일을 설명하는 데 여전히 충분합니까?5 개 위치 중 3 개 위치에서 해당 플레이어 중 25 % 이상이 잘못 분류 된 것을 확인했습니다.나는 그 선수들 중 일부가 전혀 잘못 분류되지 않았고 오히려 5 개의 전통적인 위치 중 하나에 맞지 않는 다재다능한 기술을 가지고 있다고 주장합니다.콤보 가드, 3 & amp; D, 스트레치 4 또는 포인트 포워드와 같은 용어를 들어 보셨을 것입니다.이것은 새로운 용어가 아니며 이러한 유형의 선수들이 NBA 농구의 초기 시대로 거슬러 올라간다는 증거가 있지만 NBA 어휘에서는 더 자주 사용되는 용어가되었습니다.다행히 NBA 명단에서 선수의 다양한 역할을 더 잘 설명하기위한 연구와 분석이 이미 있습니다.(위의 내용이 흥미 롭다면이 기사를 반드시 읽으십시오).

여기까지왔다면 읽어 주셔서 감사합니다!조금 길었지만 농구 팬과 데이터 과학자 모두에게 통찰력있는 블로그를 작성하고 싶었습니다.언제나 그렇듯이 모든 피드백을 환영합니다.내 프로젝트 전체를 내Github.

언제든지 문의하십시오.LinkedIn또는트위터데이터 과학이나 농구 분석에 대해 더 많이 논의하고 싶다면!

Leave a Comment