일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- java #자바 #생활코딩
- css #생활코딩 #웹
- css #웹 #생활코딩
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 알고리즘
- 백준
- dp
- 파이썬
- BFS
- 다익스트라
- java #자바
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- 프로그래머스
- 백트랙킹
- 백준 #알고리즘 #파이썬 #코딩테스트
- Dijkstra
- java #자바 #동빈나
- 투포인터
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- java #자바 #나동빈
- DFS
- 재귀
- react #리액트 #동빈나
- 파이썬 #백준 #알고리즘 #코딩테스트
- 백준 #파이썬 #알고리즘 #코딩테스트
- 다이나믹프로그래밍
- 코딩테스트
- react #리액트 #동빈나 #나동빈 #유튜브강의
- PYTHON
- 자바 #java
- Today
- Total
목록
728x90
프로젝트/NBA 선수 은퇴나이 추청
728x90
(11)
커리까지
워낙 데이터가 많아서 한 번 실행하면 2시간 정도 소요된다. 전체 소스코드 import pandas as pd from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from selenium.webdriver.common.by import By options = webdriver.ChromeOptions() service = ChromeService(executable_path='./chromedriver.exe') driver = webdriver.Chrome(service=service, options=options) def craw(start, end): pa..
우선 리액트로 구조를 잡았으니 api를 먼저 구축하여 데이터를 가져오려고 한다. 작업 순서는 아래와 같이 진행하려고 한다. 모델 생성하기 api 생성하기 선수들 이미지 사진 저장 테스트 케이스 생성 깃허브 액션 자동화 pythonanywhere연동 기타 추가 사항 중간에 삽입 1. models 생성하기 TimeStampedModel는 created_at, updated_at을 사용하지 않아도 알아서 기록하는 모듈이다. 매우 유용하다. Player에는 선수의 이름과 유니폼 번호를 담았다. Predict Image에는 선수의 정보를 외래키로 잡고, 이미지 경로를 담았다. from django.db import models from model_utils.models import TimeStampedModel ..
거의 1년 만에 다시 시작한다. 그동안 회사가 바쁘거나 이직 준비로 여건이 안 됐는데 이제야 조금 안정화가 되어서 다시 시작하려고 한다. 예전에 작업하던 피그마를 기반으로 좀 더 구체적으로 디자인을 잡고 다시 시작하려고 한다. 최종은 리액트 + DRF로 연동하여 작업할 예정이다. antd로 디자인 했던 것을 바꾸고 atomize으로 하려고한다. atomize를 설치하는 과정에서 자꾸 오류가 나서 원래대로 antd로 작업하려고 한다. 메인화면 만들고 나니 사진이 너무 커서 반으로 줄이고 검색창을 걸치게 만드려고 한다. 사진을 먼저 배치하려니 다른 div들이 깨질 것 같아 우선 사진을 제외하고 작업하기로 하였다. 아래 아쿠아블루가 있는 쪽이 메인이고 그 안에 검색창을 두어서 한 눈에 보이도록 만들었다. co..
C:\react-nba>yarn global add create-react-app react-nba폴더를 생성하고 yarn 명령어로 creact-react-app을 설치했다. C:\react-nba>create-react-app nba-predict nba-predict 이름으로 app을 생성하였다. 성공적으로 리액트가 켜진다. 피그마 우선 피그마로 페이지 디자인 하는게 우선이라 피그마로 레이아웃을 잡기로 하였다. 다음과 같이 우선 첫 화면을 디자인 하였다. 현재는 한 화면에 모든 정보를 담는 걸로 생각하고 있다. 검색 화면은 이렇게 구성하였다. 이제 선수를 클랙했을 떄 나오는 화면을 구성할 차례다. antd를 사용하여 전반적인 페이지를 구성하려고 한다. 우선 네비바부터 만들기로 했다. NavBar.js..
클래스 만들기 아킬레스, 십자인대 df 만들기 class AclAndAchilles: def __init__(self, df): self.df = df self.yes_no_df() self.seasonout_df() self.yes_no2_df() self.one_or_zero_df() # 우선은 ACL과 아킬레스가 들어간 선수 구분 @staticmethod def yes_no(x): words = x.split(' ') print(words) for word in words: if word.upper() in ['ACL', 'PCL', 'ACHILLES']: return True break def yes_no_df(self): self.df[&..
예측이라는 단어는 정확하게 맞추기 어렵다하여 추청으로 바꿔서 진행하려고 한다. model = keras.Sequential([ layers.Dense(50, activation='relu', input_shape=[len(train_set.keys()) +1]), layers.Dense(50, activation='relu'), layers.Dense(1) ]) optimizer = tf.keras.optimizers.RMSprop() model.compile(loss='mse', optimizer = optimizer, metrics=['mae', 'mse']) model.summary()xxxxxxxxxx layers.Dense(..

포지션 인코딩 하기 from sklearn.preprocessing import LabelEncoder encoder = LabelEncoder() encoder.fit(df_merge['position']) digit = encoder.transform(df_merge['position']) df_merge['position_label'] = digit 포지션이 영어라서 회귀분석 시 인식이 안되기 때문에 인코딩하여 숫자로 바꾼 후 새로운 컬럼으로 넣어준다. 다중회귀분석 X = df_merge.drop(['age','Relinquished','position'],axis=1) y = df_merge['age..

지금까지 했던건 이진분류가 계속 정확도가 낮은 것으로 예측하기보다 우선 변수를 추가하기로 했다. 십자인대, 아킬레스 부상이 대표적으로 선수들의 은퇴를 앞당기는 부상이다. 그래서 십자인대, 아킬레스로 컬럼을 만들어 해당 부상을 당했으면 1, 아니면 0으로 부여하려고 한다. 십자인대 부상 종류 출처 : ROOKIE(http://www.rookie.co.kr) ACL Injury 전방십자인대 부상 PCL Injury 후방십자인대 부상 MCL Injury 내측측부인대 부상 LCL Injury 외측측부인대 부상 부상내역중에 4개의 단어가 들어가면 십자인대로 아킬레스는 Achilles Tendon Rupture가 들어가면 카운트하기로 결정하였다. 그리고 out for season도 따로 컬럼으로 만들어서 넣기로 하..

포지션 크롤링 nba-api에서 포지션을 뽑아오려고 했는데 아무리 찾아봐도 안 보여서 그냥 홈페이지에서 크롤링하기로 하였다. position_name = list(nba_injury_merge['name']) position_name 우선 선수이름을 리스트로 만든다. position_dic = {} for name in position_name: position_dic[name] = 0 position_dic 그 다음에 딕셔너리로 만들어서 관리한다. driver.get('https://www.nba.com/players') page = driver.find_elements_by_css_selector('.Toggle_slider__hCMQQ')[0].click(..

의사결정나무 예측 필요한 패키지 import from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split, KFold, cross_val_score, cross_validate, GridSearchCV from sklearn.metrics import accuracy_score from sklearn.preprocessing import StandardScaler import sklearn print(sklearn.__version__) 데이터 준비 nba_label = nba_injury_merge['age&..