머신러닝 5

야구 분석/Python
메이저리그 선수들의 WAR 예측하기 5

메이저리그 선수들의 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()능선 회귀 모델의 계수를 확인하여 각 예측 변수가 모델에 얼마나 영향을 미치는지 확인할 수 있습니다. 능선 회구 모델은 이것이 모델의 계수이고, 무슨 일이 일어나고 있는지 좀 더 쉽게..

야구 분석/Python
메이저리그 선수들의 WAR 예측하기 4

메이저리그 선수들의 WAR 예측하기 32024.07.03 - [취미] - 메이저리그 선수들의 WAR 예측하기 2 메이저리그 선수들의 WAR 예측하기 22024.06.30 - [취미] - 메이저리그 선수들의 WAR 예측하기 1 메이저리그 선수들의 WAR 예측하기 1주제메이저bbdiary03.tistory.com저번에 메이저리그 선수들의 WAR을 머신러닝으로 예측을 해보았습니다. 이번에는 모델의 성능을 향상하기 위한 몇 가지 방법을 시도해 보겠습니다. 정확도 향상시키기def player_history(df): df = df.sort_values("Season") df["player_season"] = range(0, df.shape[0]) df["war_corr"] = list..

야구 분석/Python
메이저리그 선수들의 WAR 예측하기 3

메이저리그 선수들의 WAR 예측하기 22024.06.30 - [취미] - 메이저리그 선수들의 WAR 예측하기 1 메이저리그 선수들의 WAR 예측하기 1주제메이저리그 선수들의 과거 데이터를 바탕으로 향후 선수 데이터를 예측하는 방법을 알아보겠습니bbdiary03.tistory.com이제 예측을 위한 데이터가 모두 준비되었고 예측을 해보겠습니다. 머신러닝으로 예측하기def backtest(data, model, predictors, start=5, step=1): all_predictions = [] years = sorted(data["Season"].unique()) for i in range(start, len(years), step): current_year..

야구 분석/Python
메이저리그 선수들의 WAR 예측하기 2

메이저리그 선수들의 WAR 예측하기 1주제메이저리그 선수들의 과거 데이터를 바탕으로 향후 선수 데이터를 예측하는 방법을 알아보겠습니다. 이 선수가 팀 승리에 얼마나 공헌하였는지를 종합하여 표현하는 스탯인 WAR을 이용하여bbdiary03.tistory.com저번에 데이터를 가져왔다면 이번에는 머신 러닝 모델을 위해 준비를 마쳐주도록 하겠습니다. 데이터 중 유용한 특성 선택하기저번에 만든 데이터를 보면 총 132개의 열이 있는데 이 132개를 모두 입력하고 싶지는 않습니다. 이러한 열 중 일부는 모델이 과적합되거나 다중 공선성 같은 다른 문제를 일으킬 수 있습니다. 그래서 실제로 모델 최적화에 도움이 되는 특성의 하위 집합을 선택할 수 있는 특성 선택기를 실행하려고 합니다. 정확도가 괜찮으므로, 먼저 특성..

야구 분석/Python
메이저리그 선수들의 WAR 예측하기 1

주제메이저리그 선수들의 과거 데이터를 바탕으로 향후 선수 데이터를 예측하는 방법을 알아보겠습니다. 이 선수가 팀 승리에 얼마나 공헌하였는지를 종합하여 표현하는 스탯인 WAR을 이용하여 해 보겠습니다. 선수 데이터 가져오기import osimport pandas as pdimport numpy as npfrom pybaseball import batting_statsSTART = 2003END = 2023 다양한 웹사이트에서 야구 데이터를 다운로드할 수 있는 pybaseball을 이용해서 2003년부터 2023년 사이의 선수들의 데이터를 가져오겠습니다.batting = batting_stats(START, END, qual=200)batting.to_csv("batting.csv") 2003년부터 2023..