나의개발일지(TIL)

[스파르타 내일배움캠프]8일차 -머신러닝

development-1 2024. 10. 14. 15:54
 

실무에 바로 쓰는 바닥부터 시작하는 머신러닝 1-4  [完]


 

 

 

 

머신러닝의 정의

컴퓨터가 명시적으로 프로그래밍 되지 않아도 데이터를 통해 학습하고 , 예측할 수 있도록 하는 기능

대량의 데이터를 알고리즘에 입력하여 학습과정을 통해 모델을 생성하고 예측을 수행.

  • 전통적이 프로그래밍
    -규칙과 논리를 프로그래머가 직접 정의
    -명시적 명령과 조건문을 통해 문제 해결
  • 머신러닝
    -데이터를 이용해 패턴과 규칙을 스스로 학습
    -예측 모델을 통해 새로운 데이터에 대한 결과 도출
    -프로그램이 아닌 모델이 중심

 

머신러닝의 구성요소

  • 데이터셋 : 모델을 학습시키기 위한 데이터 모음
    입력/출력 데이터로 구성되어 있고 
    입력데이터는 모델이 학습할수 있는 정보
    출력데이터(레이블)은 모델이 예측해야 하는 목표값으로 이루어져 있다.
  • 특징 : 데이터셋에서 모델이 학습할수 있는 개별 속성
    사과를 예시로 들경우 사과의 색깔 ,크기 , 원산지 등이 특징에 해당된다.
  • 레이블 : 예측하고자 하는 목표 변수 = 값 , 정답
  • 훈련 : 모델이 데이터를 통해 학습하는 과정
  • 테스트 : 학습된 모델의 성능을 평가하는 과정

 

머신러닝의 발전이유

  • 데이터의 폭발적 증가
  • 컴퓨팅 파워의 향상
  • 알고리즘의 발전
  • 오픈소스 커뮤니티와 생태계의 발전

머신러닝의 학습

 

  • 데이터 수집 :  모델을 학습시키기 위한 필요 데이터 수집
  • 데이터 전처리 : 결측값 처리 , 이상치 제거 , 정규화등
  • 특징선택 : 중요 특징을 선택하고 불필요한 특징을 제거하여 학습효율을 높임
  • 모델 선택 : 문제에 적합한 머신러닝 알고리즘을 선택
  • 모델 훈련 : 트레이닝 데이터셋을 사용해서 모델을 학습시킴
  • 모델 평가 : 테스트 데이터셋을 사용하여 모델 성능을 평가
  • 모델 배포 : 학습된 모델을 실제 환경에 배포하여 예측 수행

학습 방법

 

지도 학습 

레이블이 있는 데이터셋을 이용하여 모델을 학습시키는 방법

  • 회귀 : 연속적인 값을 예측하는 문제
    ex : 주택 가격 예측 , 주식 가격 예측
  • 분류 : 이산적인 값을 예측하는 문제
    ex : 이메일 스팸 필터링 , 이미지 분류

비지도 학습 

레이블이 없는 데이터셋을 이용하려 모델을 학습시키는 방법

  • 군집화 : 데이터를 유사한 그룹으로 묶는 문제
    ex : 고객 세분화 , 이미지 세그멘테이션
  • 차원축소 : 고차원 데이터를 저차원으로 변환
    ex : PCA , T-SNE

앙상블 학습

여러개의 머신러닝 모델을 결합하여 더 나은 성능을 얻는 방법

  • 배깅 : 여러 모델을 독립적으로 학습시키고  , 예측을 평균내거나 다수결 투표로 최종 예측
    ex : 랜덤 포레스트
  • 부스팅 : 여러 모델을 순차적으로 학습시키고 , 이전 모델의 오차를 보완하여 최종예측을 수행
    ex : 그래디언트 부스팅 , XGboost
  • 스태킹 : 여러모델을 학습시키고 예측결과를 새로운 데이터로 사용하여 메타 모델을 학습

 

과적합이란 ?

  • 과적합 : 모델이 훈련 데이터에 지나치게 적응하여 새로운 데이터에 대한 일반화 성능이 떨어지는 현상을 말한다.
                  모델이 너무 복잡하여 훈련 데이터의 노이즈까지 학습해버리는 경우 발생한다.
  • 방지 방법
    -더 많은 데이터 수집
    -교차 검증 사용
    -정규화 기법 적용
    -간단한 모델 사용