< 10주차 머신러닝 기초 04 >
패키지 소개
1. scikit-learn
: 다양한 머신러닝 알고리즘이 구현되어 있는 오픈 소스 패키지
-> 내부 작동 과정 모두 확인 가능
=> 데이터 처리, 파이프라인, 알고리즘, 전후처리 등 다양한 기능 제공
- 여러 알고리즘에 메서드 제공
Estimator (추정기)
: fit() 메소드를 통해 학습 진행
Predictor (예측기)
: predict() 메소드 활용. 학습된 모델을 사용해 새로운 데이터에 대한 예측 수행
Transformer (변환기)
: transform()로 데이터를 새로운 형태로 변환
Model (모델)
: score(). 모델의 학습 적합도 확인
파이프라인, Pipeline
: 머신러닝 워크플로우의 여러 단계를 하나의 수준으로 연결하는 작업
-> 데이터 전처리부터 모델 학습과 예측까지 원하는 범위의 작업을 하나로 묶을 수 있음
- make_pipeline() 함수 사용 가능 or key/value 형태로 제공
- 가장 마지막을 제외하고는 모두 변환기(transformer)여야함
2. 기타 패키지
Numpy
: 다차원 배열, 행렬 연산, 고수준의 수학함수 등과 같은 과학적인 계산 지원
특히, scikit-learn에서 사용하는 기본 데이터 구조가 Numpy array
Pandas
: 데이터 분석 기능 제공, 다양한 파일에서 데이터를 읽어올 수 있음
Matplotlib
: 다양한 그래프 시각화
코랩에서는 '%matplotlib inline' 이용
지도학습의 개념과 대표 알고리즘
지도학습
: 정답 레이블 정보를 활용해 알고리즘을 학습하는 학습 방법론
-> 데이터와 정답 사이의 관계 파악
회귀 문제(Regression)
: 출력이 연속적인 숫자값. 정확한 숫자 형태의 결과 예측 (실수 범위)
분류 문제(Classifiaction)
: 어떤 범주(class)에 속하는지 판별
학습/검증/평가 데이터
- 학습 데이터(train data)
: 전체 80% 학습에 사용되는 데이터
- 검증 데이터(validation data)
: 학습 중간에 어느 정도 학습되었는지를 주기적으로 확인하는데 사용하는 데이터(10%)
- 평가 데이터(test data)
: 학습 종료 후, 학습한 모델의 최종 성능을 평가하기 위해 사용되는 데이터(10%)
학습 과정에서 절대 사용되지 않음
과적합, Overfitting
: 특정 훈련 데이터에 지나치게 학습되어 새로운 데이터나 테스트에 잘 작동하지 않는 상태
=> 일반화 능력이 떨어진 상태
즉, 특정 패턴, 디테일, 작은 노이즈까지 학습된 경우 발생
<방지방법>
- 데이터 양 늘리기
- 모델의 복잡도 줄이기
- 정규화 기법 사용
손실함수(Loss function)
: 모델이 얼마나 잘하고 있는지 못하고 있는지를 수치화한 손실(Loss)를 구하는 함수
즉, 모델의 예측값과 실제 정답 사이의 차이를 측정하는 지표
손실이 작을수록 모델의 성능이 좋음
손실함수는 해결하고자 하는 문제에 따라 다름
- 회귀 : 평균제곱오차(MSE)
- 분류 : 교차 엔트로피(Cross Entropy)
- 이진분류 : 로그 손실(Log Loss)
파라미터(parameter)와 최적화(optimization)
파라미터란, 모델이 내부적으로 갖고 있는 변수를 의미
-> 파라미터의 구조와 조합은 모델마다 다르며, 적절한 구조의 파라미터를 찾는 것이 필요!!
최적화란 모델의 성능을 최대화하거나 오류를 최소화하기 위해
모델의 파라미터를 조절하는 과정
즉, Loss가 최소가 되는 파라미터를 찾는 것
대표 알고리즘
분류 문제
- 로지스틱 회귀 : 이진분류 문제 해결
- 결정 트리 분류기 : 데이터를 분할하는 결정트리로 분류 수행
- 랜덤 포레스트 : 여러 트리의 결합. 앙상블 기법. 정확도 높으며, 과적합 문제 방지
- 서포트 벡터 머신(SVM) : 데이터의 결정 경계를 찾는데 강력. 비선형 계산 가능
회귀 문제
- 선형 회귀(Linear Regression) : 가장 기본적인 회귀 알고리즘
- 라쏘 회귀 & 릿지 회귀(Lasso & Ridge) : 규제 기법을 이용해 과적합 방지, 일반화 성능 향상
- 결정 트리 회귀 : 결정 트리를 회귀 문제에 적용
- 서포트 벡터 회귀 : SVM을 회귀에 적용
- K-최근접 이웃 회귀 : 가장 가까운 K개의 이웃 데이터의 평균으로 예측값 결정. 데이터 자체만을 활용한 추정(비모수적) 가능
'STUDY > DevCourse' 카테고리의 다른 글
[데브코스][데이터 분석] 데이터 EDA와 머신러닝 소개 (0) | 2024.04.29 |
---|---|
[데브코스][데이터 분석] 선형 회귀와 선형 분류 (2) | 2024.04.26 |
[데브코스][데이터 분석] 머신러닝 기초와 수학적 배경 (0) | 2024.04.23 |
[데브코스][데이터 분석] 회귀분석과 데이터 모델링 (2) (0) | 2024.04.05 |
[데브코스][데이터 분석] 회귀분석과 데이터 모델링 (1) (1) | 2024.04.05 |