열정가득한 개발자의 이야기/한땀 한땀 공부 내용 TIL

AI 네이버 부스트 캠프 1주차 (machine learning)

가문비나무 위의 독수리 2024. 5. 4. 22:00

AI로 전향할 생각은 없지만 기본적으로 알아야 할 것 같아서 네이버 부스트 캠프를 시작했다.

저번주가 1주차인데... 시험이 있어서 1주 차를 이제야 듣는다ㅜㅜ

 

 

EDA 탐색적 데이터 분석

데이터를 탐색하고 가설을 세우고 증명하는 과정

: 데이터를 이해하고 특징을 찾아내는 과정

최대한 많은 가설을 세우고 진행

 

Numpy -> 수치 분석 및 시뮬레이션, 다차원 배열 객체에 강점

Pandas -> 다양한 데이터 원본과 작업에 강점, 데이터 분석, 데이터 정리 또는 시각화

: 넘피는 대량의 데이터에 대한 수치 연산에서 더 효율적, 판다스는 데이터 조작 및 분석 작업에 더 적합

 

데이터 전처리 : 

머신러닝 모델에 데이터를 입력하기 위해 데이터를 처리하는 과정 -> EDA와 비슷


연속형, 범주형 처리

연속형 : 

-> 방법 : scaling 

Min max scaling

Standard scaling

Robust scaling -> 이상치에 영향 덜 받음

 

범주형 : 대부분 문자로 함, 그래서 수치형으로 인코딩이 필요 

One hot encoding : 0과 1로 변환 / 예로 존재의 유무 확인 가능

-> 변수나 종의 개수가 많을 땐, 차원의 저주 문제가 생겨 메모리 성능이 안 좋음

Label encoding: 종마다 다른 번호 부여

Frequency encoding : 빈도수에 맞게 값 부여

Target encoding : 평균값 구하는 것

: one hot, label 은 임의의 숫자 부여, 

frequency encoding은 의미 있는 숫자 부여 (빈도수가 얼마나 되는지 표시)

Target encoding은 타깃변수와 얼마나 연관이 되어있는지 확인

 

 

결측치 처리

 

이상치

일반적인 데이터와 크게 다른 것

탐색 방법 : Z-score, IQR

 

 

머신러닝

Underfitting 

fit이란 데이터를 잘 설명한다는 것

under는 설명 못하는 거,

over는 과도하게 설명

 목표 : 샘플데이터로 전체 데이터를 잘 설명하는 것(샘플 데이터 셋을 사용)

Trade-off : 최적의 과정을 찾는 것

  • 원본 데이터는 수정하면 안 됨

 

Regulatization : overfitting을 제어할 수 있는 방법  -> noisy data에 민감하게 반응하지 않도록 규제하는 방법 

  • Data augmentation : 데이터를 의도적으로 증강시켜 머신러닝 모델에게 다양한 경험할 수 있게 하는 것 (비정형분석에서 사용)
  • 정형분석은 smote방식 사용 : 균형이 깨진 데이터를 선택하여 기준으로 설정 -> 기준 데이터의 근처의 데이터를 선택 -> 그 주변에 데이터 생성
  • Drop out 나무 가지치기하는 것과 같음(deep leaning) 정형분석에서는 trimming이라고 함

 

Validation strategy

Data set 종류 : 

  1. Test data set : 프로젝트 결과물과 직결되는 데이터 셋, 최대한 전체 데이터 셋을 대표하는 것
  2. Validation data set : 머신러닝에 test data set을 적용하기 전에 먼저 적용해 보는 임시 데이터 셋 -> 최대한 test data set과 유사하게 구성하는 게 좋음
  3. Train data set : 머신러닝이 보고 학습하는 데이터

 

Hold-out validation :

Train + validation 

 

Cross validation :

여러 개의 train + test 

 

머신러닝의 랜덤성 때문에 데이터가 매번 바뀌게 되면 모델 성능을 측정했을 때, 모델의 픽처나 전처리 방법의 효과 확인 어려움

-> 랜덤성 낮추는 방법 : fix seed 

 

Machine learning workflow

 

 

 

트리모델

Decision tree model (가장 기본 모델)

 

Bagging(bootstrap(데이터를 여러 번 샘플링) + aggregation(종합)) : random forest는 bagging의 대표모델

-> 데이터 셋을 샘플링하여 모델을 만들어 나가는 것이 특징 

 

 

모든 내용은 아니지만.. 오늘은 여기까지..