파이썬: 머신러닝
FIFA 비디오 게임에서 선수의 종합 능력치를 평가해보자.
머신러닝은 컴퓨터가 명확한 지시 없이도 사물을 인식하고, 결정을 내리며, 심지어 결과를 예측할 수 있도록 해주는 알고리즘과 모델을 연구하는 기술입니다. 예를 들어, 여러분이 시리(Siri)나 코타나(Cortana)와 같은 휴대폰 음성 비서에게 말할 때, 머신러닝은 음성을 텍스트로 변환하고, 요청한 내용을 이해하는 데 도움을 줍니다. 놀랍지 않나요?
오늘 우리는 축구 선수의 종합 능력치(overall ratings)를 선수의 속성에 따라 평가하는 방법을 단계별로 배워볼 것입니다.
배경 설명
EA 스포츠(피파 2019의 개발사)에 축구 선수의 종합 능력치를 계산하는 공식이 있다고 가정해봅시다. 이 공식을 알면 게임에 등장하는 선수 든 등장하지 않는 선수 든, 모든 선수의 종합 능력치를 쉽게 계산할 수 있습니다. 문제는 이 공식이 정확히 어떤 식으로 구성됐는지 모른다는 것입니다.
이때 선수의 속성(입력 데이터)과 종합 능력치(출력 데이터)만을 알고 있다고 합시다. 이를 바탕으로, 우리는 회귀(regression)라는 방법을 사용하여 이 공식을 추정할 수 있습니다.
오늘은 선형 회귀(Linear Regression)라는 간단한 모델을 사용할 것입니다. 예를 들어 축구 선수의 종합 능력치 ( y = f(x)) 를 계산하는 공식이 [ f(x) = ax + b ] 와 같다고 가정해봅시다. 형 회귀의 목적은 이 식에서 a와 b를 찾아내는 것입니다. 이 공식( f(x) )을 머신러닝에서는 모델(model)이라고 부르며, 모델을 해결하거나 추정하는 과정을 모델 훈련이라고 합니다. 모델을 훈련한 후에는 새로운 데이터에 대해 목표값(y)을 예측할 수 있습니다.
다시 선수의 종합 능력치를 계산하는 공식에 관한 이야기로 넘어가 봅시다. 만일 변수가 하나일 경우(x가 하나일 때)에는 공식을 추정하기는 쉽습니다. 종이와 펜만 있으면 누구나 만들 수 있죠. 하지만 축구 선수의 속성들이 속도, 힘, 패스, 태클처럼 여러 개일 때는 상황이 복잡해집니다. 이 경우 공식은 다음과 같이 바뀌어야 합니다. [ f(x_1, x_2, …, x_n) = a_1 * x_1 + a_2 * x_2 + … + a_n * x_n + b ] 이 공식을 게임 회사에서 실제로 사용하고 있는 공식에 최대한 가깝게 만들기 위해서는 고품질의 수많은 데이터를 입력해야 합니다.
자, 시작해봅시다!