[TIL] 2024-09-08 (ML/SQL)TIL/2024.092024. 9. 9. 00:35
Table of Contents
728x90
Today I Learned (2024-09-08)
목차
오늘 공부한 내용
1. 머신러닝
하이퍼 파라미터 튜닝 기법 이해하기
- 하이퍼 파라미터 튜닝
- 하이퍼 파라미터란(Hyper Parameter)?
- 모델 생성 시, 사용자가 직접 입력하는 변수
- 하이퍼 파라미터와 파라미터의 차이
- 파라미터는 머신러닝에서, 모델의 파라미터는 학습 과정에서 결정되는 변수
- 하이퍼 파라미터는 모델 생성시 사용자가 직접 입력해줘야 하는 변수
- 하이퍼 파라미터 튜닝이란?
- 사용자가 입력하는 변수값을 과연 어떤 값으로 넣어줘야 성능이 최적화 될지를 찾는 작업
- 하이퍼 파라미터란(Hyper Parameter)?
주요 하이퍼 파라미터 튜닝 기법
- 주로 Grid Search 와 Random Search 기법을 사용하며, 이외에 Bayesian Optimization 기법을 활용함
- Grid Search
- 최적의 하이퍼 파라미터 값 후보 리스트를 넣어주면, 각 후보 리스트를 모두 테스트해서, 가장 높은 성능을 내는 값을 도출
- Random Search
- 최적의 하이퍼 파라미터 값이 될 수 있는 범위를 넣어주면, 해당 범위 안에서 랜덤하게 값을 추출해서, 가장 높은 성능을 내는 값을 도출
- Bayesian Optimization
- 기존 테스트 결과를 사전 지식으로 활용하여, 최적의 파라미터 값을 탐색해 가는 방식
- 일부 파라미터 값을 x 로 놓고, 이를 적용해 실행해 얻은 정확도 값을 y 로 놓았을 때,
- 몇몇 파라미터 값과, 이로 인한 정확도 값을 기반으로 y = f(x) 즉 f(x) 를 추정할 수 있음
- 추정한 f(x) 를 기반으로 Gaussian Process 를 사용해서, 아직 실행해보지 못한 파라미터 값들과 정확도를 예측
- Gaussian Process 로 정규분포(Gaussian Distribution)를 사용해서 평균과 분산을 추정하여, f(x) 를 표현하 므로,
- Process 란 함수를 의미하며, Gaussian Process 는 평균함수와 공분산함수(공분산 함수를 통해 분산 계 산 가능) 로 정의됨
- Gaussian Process 로 정규분포(Gaussian Distribution)를 사용해서 평균과 분산을 추정하여, f(x) 를 표현하 므로,
- 정규분포를 이용한 최적화인듯
하이퍼 파라미터 튜닝 적용하기(SVC, Support Vector Classifier)
- SVC 는 결국 분류의 경계가 되는 경계선을 작성하여, 분류를 실행하는 모델
- 해당 경계선을 일직선으로 할지, 어느 정도 곡률을 가진 선으로 할지도 선정 가능
- 주요 하이퍼 파라미터
- C : regularization 파라미터
- gamma : 어느 정도 훈련 셋에 fit 하게 할지를 결정
RandomizedSearchCV + SVC
RandomizedSearchCV() 는 랜덤하게 파라미터 값을 설정하여, 테스트를 수행하므로,
보다 적합한 파라미터값을 도출하기 위해서는 수행횟수를 늘려야 함
따라서 머신러닝 모델의 수행능력에 따라, RandomizedSearchCV() 사용 시, 수행시간이 상당히 오래 걸릴 수 있으므로,
RandomizedSearchCV() 이해를 위해서만 일부 모델에서만 테스트를 진행하고
GridSearchCV() 을 주로 사용하기로 함
예시 코드
hyperparams = { "C" : stats.uniform(0,50) , "gamma" : stats.uniform(0,1) } gd = RandomizedSearchCV( estimator=SVC(random_state=1), param_distributions=hyperparams, n_iter=100, cv=5, scoring='accuracy', random_state=1, n_jobs=-1 ) gd.fit(train_importance,train_answer) print(gd.best_score_) print(gd.best_params_) df = pd.DataFrame(gd.cv_results_) print(df[['params','mean_test_score']])
결과
2. SQL
기본적인 SQL 예제 문제 풀기
- SELECT
- DISTINCT
- LIMIT
- AS
3. 메타코드 이커머스 데이터분석
데이터 분석가란?
- 고객의 문제를 정확히 이해
- 문제 해결을 위한 데이터 수집
- 분석 후 인사이트 발견
- 의사결정에 활용할 수 있도록 이해하기 쉬운 형태로 전달
데이터 분석가 역량 및 업무 FLOW
- 문제 정의
- 도메인 지식, 논리적 사고, 사용자 행동 분석 로그
- 데이터 준비
- SQL, Python, R..
- 데이터 분석
- 통계지식, 분석 방법론 모델링, 사용자 행동 분석 로그
- 리포팅
- 커뮤니케이션, BI TOOL, PPT/WORD...
역향 준비
- 커뮤니케이션, BI TOOL, PPT/WORD...
- 지원하고자 하는 회사의 채용공고에서 답 찾기
- 우선 쉬가 높은 역량부터 공부
SQL
- 프로그래머스
- solvsql
- HackerRank
- LeetCode
어려웠던 내용
- 머신러닝 기법 이해
궁금한 내용과 부족한 내용
- SQL
느낀 점
- 잘해보자!
- 꾸준히 열심히 성실히
'TIL > 2024.09' 카테고리의 다른 글
[TIL] 2024-09-10 (DL/DA/SQL) (1) | 2024.09.11 |
---|---|
[TIL] 2024-09-09 (DL/ML/SQL) (0) | 2024.09.10 |
[TIL] 2024-09-07 (ML) (0) | 2024.09.08 |
[TIL] 2024-09-06 (DL) (0) | 2024.09.07 |
[TIL] 2024-09-05 (ML/SQL) (1) | 2024.09.06 |
@maneDataLab :: 마네의 데이터랩
배움에 즐거움을 느끼는 마네의 데이터랩 이미지 출처 : https://www.instagram.com/hoseobiiiiiii._.0410/
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!