데이터 분석/머신러닝(19)
-
머신러닝과 기상 데이터를 이용해 홈런 갯수 예측해보기 (4) 머신러닝
우선 홈런 데이터를 확인해보자. import pandas as pd import os import matplotlib.pyplot as plt base_dir = 'C:/Users/Username/Desktop/' excel_file = "homeruns_weather.xlsx" excel_dir = os.path.join(base_dir, excel_file) df = pd.read_excel(excel_dir, encoding="EUC_KR") y = df.loc[:,"HR"] x = df.loc[:, ["TE", "RH", "PS"]] count_data = df.groupby('HR')['HR'].count() print("홈런 비율 : %.2f" % ((1-count_data[0]/sum(cou..
2020.05.10 -
머신러닝과 기상 데이터를 이용해 홈런 갯수 예측해보기 (3) 기상 데이터 가져오기
이제 각 구장 위치별 기상 데이터를 가져와야한다. 우선 어떤 구장들이 있는지 확인해보자. import pandas as pd import os base_dir = 'C:/Users/Username/Desktop/' excel_file = "homeruns.xlsx" excel_dir = os.path.join(base_dir, excel_file) df = pd.read_excel(excel_dir, encoding="EUC_KR") locations = df["STADIUM"].unique() print(locations) ['대구' '문학' '대전' '잠실' '목동' '광주' '사직' '청주' '마산' '제주' '군산' '포항' '울산' '수원' '고척' '창원'] 내가 사용할 정보는 종관기상관측 자..
2020.05.10 -
머신러닝과 기상 데이터를 이용해 홈런 갯수 예측해보기 (2) 홈런 데이터 가져오기
https://sports.news.naver.com/gameCenter/gameRecord.nhn?gameId=20200508SKLT02020&category=kbo 5월 8일 SK와 롯데의 경기 결과다. 저번 글의 코드를 이용해서 위의 주소를 자동으로 뽑아냈으니 이제 이 결과에서 홈런 수를 빼내야 한다. url = "https://sports.news.naver.com/gameCenter/gameRecord.nhn?gameId=20200508SKLT02020&category=kbo" req = requests.get(url) html = req.text print(html) (생략) DataClass = jindo.$Class({ _data : {"etcRecords":[{"result":"없음","..
2020.05.10 -
머신러닝과 기상 데이터를 이용해 홈런 갯수 예측해보기 (1) 소스 가져오기
야구가 기상의 영향을 받는다는 사실은 잘 알려져있다. 그 중에서도 기온이나 습도, 풍향/풍속 등에 가장 영향을 많이 받을 것이다. 그렇다면 이런 기상 정보와 홈런의 갯수에는 관계가 있지 않을까 하는 생각에서부터 이 머신러닝 만들기를 시작했다. 앞 부분은 전에 머신러닝으로 득/실점을 예측할 때랑 거의 같다. 한가지 다른 점은 한 팀만의 경우가 아닌 모든 경기의 결과를 수집해야한다는 점이다. import urllib.request from bs4 import BeautifulSoup import pandas as pd import os # url 가져오기 def geturl(date, teamname): (year, month) = ym(date) url = "https://sports.news.naver...
2020.05.10 -
머신러닝으로 야구 득/실점 예측해보기 (5) 머신러닝
나의 머신러닝 지식은 매우매우 초보단계다. 지금도 공부 중이다. 그러니 이 방법이 제일(그나마) 정확하다고 하기 힘들다. 그냥 재미로 봐주길 바란다. scikit learn 사이트에 어떤 머신러닝을 이용하면 좋은지 알려주는 맵이 있다. https://scikit-learn.org/stable/tutorial/machine_learning_map/ Choosing the right estimator — scikit-learn 0.22.2 documentation Choosing the right estimator Often the hardest part of solving a machine learning problem can be finding the right estimator for the job. ..
2020.05.05 -
머신러닝으로 야구 득/실점 예측해보기 (4) 데이터 저장
한 달의 결과만 가져올 것이 아니고 (필요시) 한 팀의 데이터만 가져올 것이 아니기 때문에 다음과 같은 함수를 만들었다. # url 가져오기 def geturl(date, teamname): (year, month) = ym(date) url = "https://sports.news.naver.com/kbaseball/schedule/index.nhn?&month="+str(month)+"&year="+str(year)+"&teamCode="+teamname return url # 날짜 자르기 def ym(date): year = str(date)[:4] month = str(date)[-2:] return (year, month) 이 이후 코드는 앞선 글들에서 확인할 수 있다. pandas를 이용해서 ..
2020.05.05 -
머신러닝으로 야구 득/실점 예측해보기 (3) 스코어 뽑아내기
[('9.1 (금)\n\n18:30', 'NC\n\n1:6\n\n롯데'), ('9.2 (토)\n\n17:00', '한화\n\n0:9\n\n롯데'), ('9.3 (일)\n\n14:00', '한화\n\n2:7\n\n롯데'), ('9.5 (화)\n\n18:30', '롯데\n\n2:6\n\nSK'), ('9.6 (수)\n\n18:30', '롯데\n\nVS\n\nSK\n경'), ('9.7 (목)\n\n18:30', '삼성\n\n6:5\n\n롯데'), ('9.8 (금)\n\n18:30', '삼성\n\n5:6\n\n롯데'), ('9.9 (토)\n\n17:00', '롯데\n\n2:3\n\nkt'), ('9.10 (일)\n\n14:00', '롯데\n\n7:5\n\nkt'), ('9.12 (화)\n\n18:30', '롯데..
2020.05.05 -
머신러닝으로 야구 득/실점 예측해보기 (2) string 정리하기
어떻게 하면 날짜 별로 나눌 수 있을까 생각해보았다. 저번 글을 보면 알 수 있지만 날짜 경기 시작시간 원정팀 스코어 홈팀 경기 장소 의 형식이 반복되고 있기 때문에 string의 처음~ 원정팀 전까지, 원정팀 ~ 홈팀 끝까지, 홈팀 이후~ 다음 원정팀 전까지 ... 로 자르면 어떨까 생각했다. def cutst(st): teamlist = ["SK", "삼성", "LG", "롯데", "KIA", "한화", "넥센", "키움", "KT", "NC", "두산", "kt"] tmp = [] while ("SK" in st) or ("삼성" in st) or ("LG" in st) or ("롯데" in st) or ("KIA" in st) \ or ("한화" in st) or ("넥센" in st) or ("..
2020.05.05 -
머신러닝으로 야구 득/실점 예측해보기 (1) 소스 가져오기
나는 개발자가 아닌 취미로 프로그램을 짜보는 일반인 겸 롯데 팬이다. 요즘에 머신러닝을 공부 중이고 야구 시즌도 개막하는 터라 득/실점을 머신러닝으로 예측할 수 없을까? 생각에 프로그램을 짜보았다. (롯데 팬이기 때문에 롯데 위주로 정리했습니다.) 우선 머신러닝을 위한 데이터를 모아야한다. 데이터는 1. KBO 공식 홈페이지 2. 네이버 스포츠 기록실 3. 스탯티즈 등 3군데에서 모을 수 있다. KBO 공식 홈페이지에서는 2001년 기록부터 확인할 수 있었다. KBO에서 자료를 수집하기 위해 소스보기를 해보았지만 점수 데이터는 들어있지 않았다. 다른 방법으로 데이터를 수집할 수 있겠지만... 초보자 입장에서는 무리였다. (python 언어 외에는 전혀 모르는 초짜다.) 그래서 네이버 스포츠 기록실을 확인..
2020.05.05