야구 분석/Python 17

야구 분석/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..

야구 분석/Python
삼성 라이온즈 성적 크롤링하기

주제저번에 삼성 라이온즈의 관중 수를 크롤링해 보면서 관중수가 얼마나 많은지 알아보았습니다. 이번에는 삼성 라이온즈의 2022년부터 2024년 5월까지의 성적을 크롤링해 보겠습니다. 다음번에는 두 개를 합쳐서 연패중일 때는 관중 수가 어떻게 변하는 지를 확인 해 볼 것입니다. 성적 크롤링 하기삼성 라이온즈의 성적은 KBO 공식 사이트에서 확인할  수 있습니다. 공식 홈페이지를 들어가면 현재 날자의 팀 순위가 나옵니다. 2022 시즌 부터의 성적을 원하기 때문에 2022 시즌 시작일인 2022년 4월 2일로 이동을 해야 합니다.현재 날자 옆에 있는 달력을 눌러서 2022년 4월 2일로 이동을 하고 다음 날자 버튼을 눌러 다음 날로 이동을 해 삼성의 성적을 크롤링해 오면 됩니다. 사이트 구조 확인하기팀 순위..

야구 분석/Python
삼성 라이온즈 관중 수 시각화

주제 삼성 라이온즈 관중 수 크롤링주제저번에 KBO 공식 사이트에서 2024 시즌 관중 수 크롤링을 해 보았습니다.2024.05.29 - [취미] - 24시즌 KBO 관중 수 시각화 24시즌 KBO 관중 수 시각화시각화 주제2024 KBO 리그가 10개 구단 체재 출범 이bbdiary03.tistory.com저번에 삼성 라이온즈의 2022 시즌부터 2024 시즌 5월까지의 관중 수 데이터를 크롤링해 보았습니다. 이번에는 크롤링 한 데이터를 시각화해 보도록 하겠습니다. 시각화필요한 패키지 임포트import pandas as pdimport plotly.express as pximport plotly.graph_objects as go 데이터 불러오기# CSV 파일 불러오기data_2022 = pd.read..

야구 분석/Python
삼성 라이온즈 관중 수 크롤링

주제저번에 KBO 공식 사이트에서 2024 시즌 관중 수 크롤링을 해 보았습니다. 24시즌 KBO 관중 수 시각화시각화 주제2024 KBO 리그가 10개 구단 체재 출범 이후 최다 매진 경기 신기록을 세울 정도로 많은 팬분들이 야구장을 향하고 있습니다.  올해 프로야구의 열기는 개막전 모든 경기가 매진되면서bbdiary03.tistory.com이번에는 KBO 관중 수 중 삼성 라이온즈 관중 수만 크롤링해보겠습니다. 크롤링필요한 패키지 임포트import pandas as pdimport matplotlib.pyplot as pltimport matplotlib as mlpimport seaborn as snsimport requestsfrom bs4 import BeautifulSoupfrom seleni..

야구 분석/Python
24시즌 KBO 관중 수 시각화

시각화 주제2024 KBO 리그가 10개 구단 체재 출범 이후 최다 매진 경기 신기록을 세울 정도로 많은 팬분들이 야구장을 향하고 있습니다.  올해 프로야구의 열기는 개막전 모든 경기가 매진되면서부터 알 수 있었습니다. 2024 시즌이 개막한 3월 23일부터 5월 26일까지 얼마나 많은 팬들이 야구장을 왔는지 확인해 보겠습니다. 관중 수 크롤링 하기KBO의 관중 수는 KBO 공식 사이트에서 확인할 수 있습니다.  시각화필요한 패키지 임포트import pandas as pdimport matplotlib.pyplot as pltimport matplotlib as mlpimport seaborn as snsimport requestsfrom bs4 import BeautifulSoupimport plotl..

야구 분석/Python
타율이 높은 선수는 홈런도 많이 칠까? 2023 시즌 데이터로 본 상관관계

시각화 주제KBO를 보다가 MLB를 보게 되면 신기한 장면들을 많이 볼 수 있습니다. 투수들은 100마일이 넘는 강속구를 던지고 타자들은 그 공을 잘 쳐내는 모습들을 볼 수 있습니다. 또한, 2할이 채 되지 않는 타자인데 출루율은 4할이 넘거나 홈런을 30개 이상씩 치며 KBO만 본 사람한테는 이해할 수 없는 지표를 기록하는 선수들이 많이 나옵니다. 그래서 한국 야구처럼 타율이 높은 선수는 홈런도 많이 치는지 궁금해져 23 시즌 메이저리그 선수들의 홈런과 타율의 상관관계를 보도록 하겠습니다.  데이터 출처메이저리그에서 제공하는 공식 API인 MLB Stats API를 이용하였습니다. 이 API를 통해 실시간 경기 결과, 선수 통계, 팀 정보, 시즌 데이터, 경기 일정 등 다양한 데이터를 가져올 수 있습니..

야구 분석/Python
히트 스프레이 차트에 야구장 사진 넣어보기

시각화 주제 히트 스프레이 차트 만들어보기시각화 주제KBO나 MLB의 선수 기록을 확인하는 사이트인 스탯티즈나 베이스볼 서번트에서 타자의 기록을 확인할 때마다 나오는 히트 스프레이 차트가 있습니다. 타자의 안타, 2루타, 3루타, 홈런bbdiary03.tistory.com 저번에 만들어 놓은 히트 스프레이 차트의 배경에 야구장 이미지를 넣어보겠습니다. 데이터 출처메이저리그 데이터를 분석하기 위해 개발된 오픈 소스 라이브러리인 pybaseball을 사용했습니다. 이 라이브러리는 주로 여러 공개 데이터 소스에서 정보를 수집하며, 이 데이터는 Retrosheet, Baseball Savant, Fangraphs 등과 같은 웹사이트에서 제공됩니다. 시각화패키지 임포트import base64from pathlib..

야구 분석/Python
히트 스프레이 차트 만들어보기

시각화 주제KBO나 MLB의 선수 기록을 확인하는 사이트인 스탯티즈나 베이스볼 서번트에서 타자의 기록을 확인할 때마다 나오는 히트 스프레이 차트가 있습니다. 타자의 안타, 2루타, 3루타, 홈런을 각각 다른 색의 점으로 표현해 공이 야구장의 어느 곳으로 떨어졌는지 알 수 있습니다. 그래서 이걸 직접 만들어 볼 수 있을까 궁금해서 한번 시도해 보았습니다.  데이터 출처메이저리그 데이터를 분석하기 위해 개발된 오픈 소스 라이브러리인 pybaseball을 사용했습니다. 이 라이브러리는 주로 여러 공개 데이터 소스에서 정보를 수집하며, 이 데이터는 Retrosheet, Baseball Savant, Fangraphs 등과 같은 웹사이트에서 제공됩니다. 데이터 시각화패키지 설치 및 임포트!pip install p..