Codestates AI 부트캠프 (44) 썸네일형 리스트형 [데이터 엔지니어링] 1-3 SQL(2) 1. HAVING group by 상태에서 출력 조건을 입력하고 싶다면 HAVING을 써야한다 2. INSERT # 생성된 테이블에 데이터 추가하기 INSERT INTO VALUES(1, 'C100', 50); # 원하는 컬럼에만 값을 넣고자 하는 경우 INSERT INTO (컬럼2, 컬럼5) VALUES (40, 100); 3. DROP # 생성된 테이블을 삭제하기 DROP TABLE Teacher 4. SQL 실행순서 ① FROM ② WHERE ③ GROUP BY ④ HAVING ⑤ SELECT ⑥ ORDER BY 5. 집계함수 COUNT() SUM() AVG() MAX() MIN() **그외 RANK() OVER (ORDER BY 컬럼명) → 을 기준으로 랭킹을 매겨줘 RANK() OVER (PAR.. [데이터 엔지니어링] 1-2 SQL 1. SQL이란? Structured Query Langage. 관계형 데이터베이스에 "이러이러한 데이터를 줘"라고 날리는 일종의 '질의문'. *관계형 데이터베이스 : 구조화된 데이터를 의미하는 것으로 테이블이 서로 관계성을 가질 수 있다 통상 .json 파일, 문자열을 데이터로 가진다. 2. 활용 예시 * 사용한 데이터는 chinook.db (첨부) - Customer_Package 테이블을 생성합니다 CREATE TABLE Customer_Package( cp_id INTEGER PRIMARY KEY NOT NULL, customer_id INTEGER, package_id INTEGER, FOREIGN KEY (customer_id) REFERENCES Customer(customer_id), FO.. [데이터 엔지니어링] 1-1 (2) 터미널 / 가상환경 / Git & Github 1. 터미널 터미널은 컴퓨터에 글자 기반 명령을 전달하는 어플리케이션. 이처럼 컴퓨터와 글자 기반으로 명령하는 것을 CLI(Command Line Interface)라고 한다. 그와 반대로 우리가 평소에 컴퓨터를 쓸 때처럼 그래픽 기반으로 명령하는 것은 GUI(Graphical User Interface) 라고 한다. a. 기본 명령어 - pwd : 현재 경로 반환 - ls : 현재 디렉터리 내 파일명들 반환 - mkdir : 디렉터리 생성 - cd : 해당 디렉터리로 이동 * shell과 terminal의 차이 shell은 명령어를 실행시키는 역할을 하고, 터미널은 우리가 명령어를 입력하고 결과를 확인하는 창. - shell : anaconda prompt, git bash - terminal : Wi.. [데이터 엔지니어링] 1-1 (1) 개발 환경 구축 지금부터 구축하는 개발 환경은 현재 내 부트캠프에서 안내한 것들이다. 가장 인기가 많다거나 흔한 것은 아닐 수 있으며 온전히 학습 기록을 남기기 위해 메모한 것이다. 1. 프로그램 git bash - 컴퓨터와 소통하는 '터미널'. git으로 작업을 관리하고 github로 작업물을 보낼 수 있다. 아나콘다에서 생성한 가상환경도 이용할 수 있다. VS Code - 파이참과 같은 .py 파일 편집기 Anaconda - 데이터를 다루는 직무를 위한 기능들을 모아놓은 tool kit. 가상환경을 구축하고 이용할 때 썼다. Docker - 프로젝트 시 구축한 가상환경을 docker file로 만들어 다른 사람이나 다른 기기에 넘겨줄 수 있다. 서비스 배포할 때도 아주 편리하다. DBeaver - 데이터베이스 관리 .. Section2 Machine Learning을 마치며! 1. What I Learned 이번 달 주제는 머신러닝이었다. 회귀-분류로 문제를 정의하고 그에 맞는 여러가지 모델을 배웠다. 선형 회귀, 로지스틱 회귀, 랜덤 포레스트, XG 부스트 등의 모델과 작동 원리. 그리고 각 문제에 맞는 평가지표와 하이퍼파라미터 튜닝까지. 지금까지 왜 내가 원하는 직무명에 '데이터 사이언티스트' 즉 '과학자'라는 워딩이 들어가는 지 궁금했는데 이제 이해하게 됐다. 자료를 정제하고 모델을 선정하고 결과를 비교하는 과정이 과학자의 실험과 닮았기 때문이다. 저번 달에도 그랬듯 공부량이 많아서 도전적인 하루하루였다. 하지만 공들여 데이터를 정제하는 일도, 단계를 밟으며 모델의 성능을 향상시키고 완성하는 일까지 내게는 더할나위 없이 잘 맞고 재밌었다. 이쪽 세계로 발을 들인 결정에 .. [머신러닝] 3-4 Class Imbalance 타겟값에서 클래스의 비율이 다를 때 학습에 문제가 생길 수 있다. 예를 들어 0과 1의 비율이 2:8이라면, 모델은 class1은 충분히 학습하지만 class0에 대한 학습은 놓친다. 그래서 precision이나 recall 값이 클래스 별로 차이가 생길 수 있다. 그래서 이 비율을 해결하여 학습하는 것이 중요하다. 해결 방안에는 물리적으로 데이터 수를 맞추는 Resamping과 계산적으로 가중치를 부여하는 Class Weight 조절법이 있다. 1. Resampling ① Down Sampling 다수 class를 줄여 데이터 수를 맞추는 방법. 다수 class에서 랜덤으로 데이터를 뽑아 데이터 수를 줄임. 데이터 손실 위험 ② Over Sampling 소수 class를 늘려 데이터 수를 맞추는 방법... [머신러닝] 3-3 ML Problem Framing 1. 문제 정의 ML을 통해 해결하고자 하는 비즈니스 문제가 무엇인가? target 설정 target을 설명하는 feature 확보 적절한 데이터 양 확보 2. target 설정 문제 해결을 위해 어떻게 target을 설정할 것인가 (회귀인가 분류인가) 3. Data Leakage 문제 별다른 작업 없이도 100%에 가까운 성능을 얻는 경우 '데이터 누수'를 의심해보아야 한다. 2가지의 경우로 나눌 수 있다. ① 학습 시 사용하면 안되는 feature 포함 ex) 주식의 종가를 예측하는 데이터에 하루치 거래량이 있는 건 말이 안된다. 왜냐하면 내일의 거래량을 모르는 상태에서 내일의 종가를 예측해야하기 때문이다 ② 학습 과정에서 평가 데이터의 정보가 활용된 경우 모델로 하여금 test set을 학습하도록 .. [머신러닝] 3-2 모델 해석 (분석 단위 기준) 이전 시간에는 특성을 기준으로 모델을 해석했다. 이번에는 한 케이스에 대한 정보만을 포함하는 행(분석단위, 데이터포인트)을 기준으로 본다. 1. Individual Conditional Expectation(ICE) plot 특정 분석단위에서 하나의 특정 특성이 변하면 예측값은 어떻게 달라질까? 그 양상을 확인하는 것이 ICE plot이다. 예를 들어 한 사람의 나이, 학력, 국가, 직업에 대한 특성이 있고 그 사람의 연봉을 기록한 타겟이 있다. 이때 나이가 적어지거나 많아지면 연봉의 예측값이 달라질 것이다. # 확인하고자 하는 분석단위 가져오기 one_datapoint = X_val_encoded.iloc[[3]].copy() # age 변화 범위 정하기 age_test_range = range(X_v.. 이전 1 2 3 4 5 6 다음