지도학습 알아보기

2024. 1. 30. 14:36TIL

패키지 소개

 scikit-learn이란 다양한 머신러닝 알고리즘이 구현되어 있는 오픈 소스 패키지이다. 내부 작동 과정을 하나하나 확인할 수 있으며 데이터 처리, 파이프라인, 여러 학습 알고리즘, 전/후처리 등 다양한 기능을 제공한다. scikit-learn에서는 아래의 주요 기능을 갖는 객체를 제공한다. 이는 통일된 API 호출 시스템을 구성해 사용자가 손쉽게 사용할 수 있는 인터페이스를 제공하기 위함이다.

  • Estimator (추정기)
    • fit() 메서드를 활용하여 학습을 진행
    • 데이터로부터 패턴을 학습하고 결과로 모델 내부 파라미터를 조정
  • Predictor (예측기)
    • predict() 메서드를 활용
    • 학습된 모델을 사용해 새로운 데이터에 대한 예측을 수행
  • Transformer (변환기)
    • 데이터를 새로운 형태로 변환하기 위해 transform() 메서드 활용
    • 군집화, PCA 차원 축소 등의 과정을 위해 fit_transform() 메서드를 활용
  • Model (모델)
    • 모델의 학습 적합도를 확인할 수 있도록 score() 메서드를 제공
    • 학습된 모델의 성능을 평가할 수 있음

 파이프라인은 머신러닝 워크플로우의 여러 단계를 하나의 수준으로 연결하는 작업이다. 데이터 전처리부터 모델 학습과 예측까지 원하는 범위의 작업을 하나로 묶을 수 있다. 효율적으로 코드를 작성하고 관리할 수 있다. 파이프라인은 이름과 추정기 객체가 (key, value) 쌍으로 구성되어야 한다. 파이프라인의 가장 마지막을 제외하고는 다음 과정으로 데이터를 넘겨주어야 하므로 모두 변환기여야 한다. 마지막은 추정기, 예측기, 변환기가 올 수 있다. 마지막 단계의 컴포넌트는 파이프라인의 최종 메서드에 영향을 미친다. 

Scikit-learn의 Learning Map

 

 

  Numpy는 Python에서 다차원 배열 연산, 행렬 연산, 고수준의 수학 함수, 난수 생성과 같은 과학적인 계산을 위한 패키지이며 데이터 분석, 머신러닝의 기반이 되는 필수 라이브러리이다. 특히, scikit-learn에서 사용하는 기본 데이터 구조가 Numpy의 배열(array)이다. 

 

 Pandas는 데이터 분석 기능을 제공하는 Python 패키지이다. 엑셀, CSV, 데이터베이스와 같은 다양한 파일에서 데이터를 읽어 들일 수 있는 기능을 제공한다. DataFrame이라는 데이터 구조를 기반으로 SQL처럼 테이블에 Query 명령을 수행할 수 있다.

 

 Matplotlib은 Python에서 사용하는 과학 계산용 그래프 시각화 오픈소스 라이브러리이다. 데이터를 바탕으로 선 그래프, 히스토그램, 산점도 등의 다양한 그래프를 시각화한다. Colab과 같이 웹 상황에서 Matplotlib을 사용하면 ʻ%matplotlib inlineʼ 매직 명령어를 사용해야 한다.

 

지도학습의 개념과 대표 알고리즘

 지도 학습은 정답 레이블 정보를 활용해 알고리즘을 학습하는 학습 방법론으로 데이터와 정답인 레이블 사이의 관계를 파악하는 목적을 갖고 있다. 문제(Task)란 머신 러닝 기법을 활용해 해결하고자 하는 대상으로 데이터를 통해 얻고자 하는 특정 목표나 결과를 의미한다. 지도 학습에서 흔히 다루는 대표적인 문제는 회귀 문제(Regression problem)와 분류 문제 (Classification problem)가 있다. 회귀 문제는 입력 데이터를 바탕으로 정확한 숫자 형태(정수, 실수)의 결과를 예측하는 문제이다(예: 주식가격, 몸무게). 분류 문제는 입력으로 주어지는 데이터를 정해진 보기(클래스) 중 하나로 분류하는 문제이다. 주어진 클래스의 수와 모델이 결과로 출력하는 수 등에 따라 분류 문제를 세분화 한다(이진 분류 문제, 다중 클래스 문제). 

 

 머신 러닝 모델을 이론지, 모의고사, 시험으로 비유하여 설명할 수 있다. 시험을 보는 학생은 이론지로 학습하여 정보를 습득하고 이해한다. 모의고사로 습득한 정보를 연습하고 중간 학습 상태를 확인한다. 모의고사를 통해 최적의 공부 상태를 만들고 시험을 진행한다. 이때 이론지는 학습 데이터(train data), 모의고사는 검증 데이터(validation data), 시험은 평가 데이터(test data)이다. 학습 데이터는 순수하게 학습을 하는 과정에서 사용하는 데이터로 갖고 있는 데이터 중 가장 많은 비율을 차지한다. 검증 데이터는 학습을 진행하는 중간 과정에서 머신 러닝 모델이 어느 정도 학습되었는지 주기적으로 확인하는데 사용하는 데이터이다. 평가 데이터는 최후의 딥러닝 모델이 생성된 후, 학습한 모델의 최종 성능을 평가하기 위해 사용되는 데이터이다. 평가 데이터는 학습 과정에서는 절대 사용되지 않는다. 

 

 과적합(Overfitting)은 머신 러닝 모델이 특정 훈련 데이터에 지나치게 학습되어 새로운 데이터나 테스트 데이터에서 잘 작동되지 않는 상태를 의미한다. 이런 상태를 일반화 능력(generalization)이 떨어진 상태라고 표현한다. 학습 데이터에 포함된 특정 패턴이나 디테일 그리고 작은 노이즈까지 학습하기 때문이다. 

 

 손실 함수(Loss Function)은 머신 러닝 모델이 얼마나 잘하고 있는지 또는 못하고 있는지를 수치화한 손실을 구하는 함수이다. 다시 말해, 모델의 예측값과 실제 정답 사이의 차이를 측정하는 지표이다. 일반적으로 손실이 작을수록 모델의 성능이 좋다고 볼 수 있다. 따라서 머신 러닝 모델을 학습하는 과정은 손실을 줄이는 과정으로 진행된다. 손실 함수의 종류는 해결하고자 하는 문제의 유형에 따라 다른데 회귀 문제는 평균 제곱 오차(Mean Squared Error), 분류 문제는 교차 엔트로피(Cross Entropy), 이진 분류 문제는 로그 손실(Log Loss)이다. 

 

 파라미터(Parameter)란 해당 모델이 내부적으로 갖고 있는 변수를 의미한다. 이 변수는 모델이 데이터로부터 학습하는 패턴 관계를 표현하며 모델의 예측 성능에 직접적인 영향을 미친다. 즉, 성능이 좋은 모델은 적절한 구조의 파라미터로 구성되며 파라미터의 구체적인 값은 데이터를 이용한 학습으로 찾게 된다. 최적화(Optimization)는 머신 러닝에서 모델의 성능을 최대화하거나, 오류를 최소화하기 위해 모델의 파라미터를 조절하는 과정이다. 즉, Loss값이 최소가 되는 파라미터를 찾는 것을 목표로 한다. 최적화 적용 과정은 최적의 해를 한 번에 구하는 경우나 점진적이고 반복적으로 해를 구하는 경우에 따라 다르다. 

 

 분류 문제의 대표 알고리즘이다.

  • 로지스틱 회귀 (Logistic Regression) 
    • 이진 분류 문제에 적합한 구조
    • 확률을 직접 예측하는 확률 추정 접근으로 결과를 예측
  • 결정 트리 분류기 (Decision Tree Classifier)
    • 데이터를 잘 분할하는 결정 트리를 사용하여 분류를 수행
    • 직관적이고 이해가 쉬움
  • 랜덤 포레스트 (Random Forest)
    • 여러 결정 트리의 결합으로 앙상블 기법에 해당
    • 높은 정확도를 보이면서도 과적합 문제를 방지함
  • 서포트 벡터 머신 (Support vector Machine, SVM)
    • 데이터를 최적으로 분리하는 결정 경계를 찾는데 강력한 알고리즘
    • 어려운 형태의 데이터라도 비선형 계산이 가능한 다양한 커널 트릭있어 해를 구할 수 있음

회귀 문제의 대표 알고리즘이다.

  • 선형 회귀 (Linear Regression) 
    • 기본적이고 널리 사용되는 회귀 알고리즘
    • 독립 변수와 종속 변수 간의 선형 관계를 모델링
  • 라쏘 회귀 혹은 릿지 회귀 (Lasso & Ridge Regression)
    • 규제 기법을 이용해 과적합을 방지하고 일반화 성능이 향상된 선형 모델
  • 결정 트리 회귀 (Decision Tree Regression)
    • 결정 트리를 이용해 회귀 문제에 적용
  • 서포트 벡터 회귀 (Support Vector Regression, SVR)
    • 분류 모델인 SVM을 회귀에 적용한 알고리즘
  • K-최근접 이웃 회귀 (K-Nearest Neighbors Regression)
    • 주어진 데이터 포인트에서 가장 가까운 K개의 이웃 데이터의 평균으로 예측값을 결정
    • 간단하면서도 데이터 자체만을 활용한 추정(비모수적 추정)이 가능

 

'TIL' 카테고리의 다른 글

SVD와 Decision Tree  (0) 2024.01.31
선형 회귀와 선형 분류  (1) 2024.01.30
머신러닝 기초와 수학적 배경  (1) 2024.01.29
5. Tableau소개와 대시보드 생성  (0) 2024.01.26
4. SuperSet 소개와 대시보드 생성  (1) 2024.01.25