메이저리그 선수들의 WAR 예측하기 4
메이저리그 선수들의 WAR 예측하기 32024.07.03 - [취미] - 메이저리그 선수들의 WAR 예측하기 2 메이저리그 선수들의 WAR 예측하기 22024.06.30 - [취미] - 메이저리그 선수들의 WAR 예측하기 1 메이저리그
bbdiary03.tistory.com
이제 마지막으로 여태까지 만든 모델의 문제가 있는지 확인해보고 데이터를 확인해 보면서 마무리하겠습니다.
모델의 문제 진단
pd.Series(rr.coef_, index=new_predictors).sort_values()

능선 회귀 모델의 계수를 확인하여 각 예측 변수가 모델에 얼마나 영향을 미치는지 확인할 수 있습니다. 능선 회구 모델은 이것이 모델의 계수이고, 무슨 일이 일어나고 있는지 좀 더 쉽게 알 수 있도록 예측 변수와 함께 정렬해 줍니다.
계수가 큰 변수일수록 모델에 더 큰 영향을 미치게 됩니다. 이 정보를 바탕으로, 모델의 성능을 분석하고 필요하다면 예측 변수를 조정할 수 있습니다. 특히 'war_season'의 계수가 가장 크며, 이는 플레이어의 시즌 경험이 증가할수록 WAR이 증가하는 경향이 있다는 것을 나타냅니다.
diff = predictions["actual"] - predictions["prediction"]
diff

우리가 할 수 있는 다른 진단은 실제 값과 예측 사이의 차이를 보는 것입니다. 실제 값에서 예측을 빼면 차이가 생기고 원하는 경우 이것을 보고 좀 더 좋은 방법으로 실제로 데이터 프레임을 병합하여 플레이어에 대한 다른 모든 통계와 함께 차이점을 볼 수 있습니다.
merged = predictions.merge(batting, left_index=True, right_index=True)
merged["diff"] = (predictions["actual"] - predictions["prediction"]).abs()
merged

우선 'left_index=True'와 'right_index=True'를 사용하여 두 데이터프레임의 인덱스를 기준으로 병합합니다. 그다음 예측 값과 실제 값의 차이의 절댓값을 계산하여 'diff'열로 추가합니다. 차이에만 관심이 있기 때문에 'abs()'를 사용해서 절댓값으로 계산을 하여 음수 값을 제거합니다.
이렇게 하면, 예측 값과 실제 값의 차이와 플레이어의 다른 모든 통계를 포함하는 데이터프레임을 생성할 수 있습니다. 이를 통해 각 플레이어에 대한 더 자세한 분석이 가능합니다.
merged[["IDfg", "Season", "Name", "WAR", "Next_WAR", "diff"]].sort_values(["diff"])

병합 한 데이터 프레임 중 중요한 열만 선택해 주었습니다. IDfg, Season, Name, WAR, Next_WAR, diff 열을 통해 예측 성능이 가장 좋았던 플레이어와 가장 좋지 않았던 플레이어를 식별할 수 있습니다.
데이터프레임을 통해 우리는 예측 성능이 가장 좋았던 플레이어와 그렇지 않았던 플레이어를 식별할 수 있습니다. 예측 차이(diff)가 작은 플레이어는 모델이 정확하게 예측한 경우이며, 차이가 큰 플레이어는 그렇지 않은 경우입니다. 특히 차이가 큰 플레이어는 부상으로 인해 성적이 급변했거나 신인 시즌을 맞이한 경우일 수 있습니다.
모델의 예측 성능을 개선하기 위해 부상이나 신인 시즌과 같은 특수 상황을 고려할 필요가 있습니다. 이를 통해 부상 후 복귀한 선수나 첫 시즌을 맞이한 선수의 성적을 더 정확하게 예측할 수 있습니다. 예를 들어, 부상으로 인해 타석 수가 적은 선수의 데이터를 처리할 수 있는 방법을 모색하거나, 마이너 리그 데이터를 추가하여 신인 시즌을 더 정확하게 예측할 수 있습니다.
이번 포스팅에서는 데이터를 수집하고, 머신 러닝 모델을 구축하여 예측 성능을 평가했습니다. 모델 성능을 분석한 결과, 일부 플레이어의 성적을 정확하게 예측하지 못한 경우가 있었습니다. 이를 개선하기 위해 부상이나 신인 시즌과 같은 특수 상황을 고려하거나, 더 나은 데이터를 추가하는 방법을 제안했습니다. 또한, 순차적 특성 선택을 사용하여 모델에 가장 적합한 특성을 선택하고, 예측 오류를 평가하는 시스템을 구축했습니다. 앞으로는 더 나은 데이터와 특성 엔지니어링을 통해 모델의 성능을 더욱 향상할 수 있을 것입니다.
'야구 분석 > Python' 카테고리의 다른 글
메이저리그 선수들의 WAR 예측하기 4 (0) | 2024.07.10 |
---|---|
메이저리그 선수들의 WAR 예측하기 3 (0) | 2024.07.07 |
메이저리그 선수들의 WAR 예측하기 2 (1) | 2024.07.03 |
메이저리그 선수들의 WAR 예측하기 1 (0) | 2024.06.30 |
삼성 라이온즈 성적 크롤링하기 (1) | 2024.06.09 |