목차

  1. 머신러닝이란?
    1. 머신러닝 특징
    2. 구성요소
      1. 데이터셋
      2. 특성(Feacture)
      3. 레이블(Label)
      4. 모델
      5. 학습
  2. 머신러닝의 학습 과정
    1. 데이터 수집
    2. 데이터 전처리
    3. 특징 선택
    4. 모델 선택
    5. 모델 훈련
    6. 모델 평가
    7. 모델 배포
  3. 학습 방법
    1. 지도 학습(Supervised Learning)
    2. 비지도 학습(Unsupervised Learning)
    3. 앙상블 학습(Ensemble Learning)
  4. 데이터셋 불러오기
    1. CSV 불러오기
    2. 엑셀 불러오기
    3. 기본 정보 확인
  5. 데이터 전처리(Data cleaning)
    1. 정의
    2. 장점
    3. 주요 기법 
      1. 결측치 처리(Handling Missing Data)
      2. 이상치 처리(Handing Outliers)
      3. 데이터 정규화(Normalization)
      4. 데이터 표준화(Standardization)
      5. 특성 공학(Feacture Engineering)
      6. 데이터 인코딩(Data Encoding)
      7. 데이터 분할(Data Splitting)

1. 머신러닝이란?

1.1. 정의

  • 컴퓨터가 명시적으로 프로그래밍이 되지 않아도 데이터를 통해 학습하고, 예측할 수 있도록 하는 기능
  • 대량의 데이터를 알고리즘에 입력하여 학습 과정을 통해 모델을 생성하고 예측을 수행

1.2. 특징

  • 데이터를 통해 패턴과 규칙을 스스로 학습함
  • 예측 모델을 통해 새로운 데이터에 대한 결과를 도출함
  • 프로그램이 아닌 모델이 중심임

1.3. 구성요소

1.3.1. 데이터셋

  • 정의 : 머신러닝은 데이터셋을 통해서 학습하며, 일반적으로 데이터셋은 입/출력 데이터로 구성됨
    1. 입력 데이터 : 모델이 학습할 수 있는 정보
    2. 출력 데이터(레이블) : 모델이 예측해야 하는 목푯 값

1.3.2. 특징(Feacture)

  • 정의 : 데이터에서 모델이 학습할 수 있는 개별 속성
  • 예 : 주택 가격 예측 - 주택의 크기, 위치, 방의 개수 등이 특징이 됨

1.3.3. 레이블(Label)

  • 정의
    • 예측하고자 하는 목표 변수
    • 지도학습 모델에서는 레이블이 있는 데이터셋을 이용하여 모델을 학습 시킴

1.3.4. 모델

  • 정의
    • 데이터의 특징으로부터 레이블(정답)을 예측할 수 있는 지식을 학습할 수 있는 프로그램 또는 함수
    • 입력 데이터와 출력 데이터간의 관계를 학습하여 새로운 데이터에 대한 예측 수행

1.3.5. 학습

  • 정의
    • 모델이 데이터를 통해서 패턴을 인식하고, 이를 기반으로 예측을 수행할 수 있도록 함수 내의 가중치를 조정하는 과정

2. 머신러닝의 학습 과정

2.1. 데이터 수집

  • 정의
    • 모델을 학습시키기 위한 필요 데이터를 수집하는 단계

2.2. 데이터 전처리

  • 정의
    • 결측값 처리, 이상치 제거, 정규화 등등을 하는 단계

2.3. 특징 선택

  • 정의
    • 중요 특징(feacture)을 선택하고 불필요한 피쳐를 제거하여 학습 효율을 높이는 단계

2.4. 모델 선택

  • 정의
    • 문제에 적합한 머신러닝 알고리즘을 선택하는 단계

2.5. 모델 훈련

  • 정의
    • 트레이닝 데이터셋을 사용해서 모델을 학습시키는 단계

2.6. 모델 평가

  • 정의
    • 테스트 데이터셋을 사용하여 모델 성능을 평가하는 단계

2.7. 모델 배포

  • 정의
    • 학습된 모델을 실제 환경에 배포하여 예측을 수행하는 단계

3. 학습 방법

3.1. 지도 학습(Supervised Learning)

  • 정의
    • 레이블이 있는 데이터셋을 이용하여 모델을 학습시키는 방법
      1. 회귀(Regression) : 연속적인 값을 예측하는 문제
        • 예) 주택 가격 예측, 주식 가격 예측
      2. 분류(Classification) : 이산적인 값을 예측하는 문제
        • 예) 이메일 스팸 필터링, 이미지 분류

3.2. 비지도 학습(Unsupervised Learning)

  • 정의
    • 레이블이 없는 데이터셋을 이용하여 모델을 학습시키는 방법
      1. 군집화(Clustering) : 데이터를 유사한 그룹으로 묶는 문제
        • 예) 고객 세분화, 이미지 세그멘테이션
      2. 차원 축소(Dimensionality Reduction) : 고차원 데이터를 저차원으로 변환
        • 예) PCA, t-SNE

3.3. 앙상블 학습(Ensemble Learning)

  • 정의
    • 여러개의 머신러닝 모델을 결합하여 더 나은 성능을 얻는 방법
      1. 배깅(Bagging) : 여러 모델을 독립적으로 학습시키고, 예측을 평균내거나 다수결 투표로 최종 예측
        • 예) 랜덤 포레스트
      2. 부스팅(Boosting) : 여러 모델을 순차적으로 학습시키고, 이전 모델의 오차를 보완하여 최종 예측
        • 예) 그랜디언트 부스팅, XGboost
      3. 스태킹(Stacking) : 여러 모델을 학습시키고 예측 결과를 새로운 데이터로 사용하여 메타 모델을 학습

4. 데이터셋 불러오기

4.1. CSV 불러오기

Pandas의 read_csv 함수를 사용하여 CSV 파일을 불러올 수 있다

import pandas as pd

# CSV 파일 불러오기
df = pd.read_csv('data.csv')

# 데이터 프레임의 첫 5행 출력
print(df.head())

 

4.2. 엑셀 불러오기

Pandas의 read_excel 함수를 사용하여 엑셀 파일을 불러올 수 있다

import pandas as pd

# 엑셀 파일 불러오기
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 데이터 프레임의 첫 5행 출력
print(df.head())

 

4.3. 기본 정보 확인

함수 설명
print(df.shape) 데이터 프레임의 크기 (행, 열) 확인
print(df.columns) 데이터 프레임의 컬럼명 확인
print(df.dtypes) 데이터 프레임의 데이터 타입 확인
print(df.describe()) 데이터 프레임의 요약 통계량 확인
print(df.info()) 데이터 프레임의 정보 확인(null 값, 데이터 타입 등)

5. 데이터 전처리(Data cleaning)

5.1. 정의

  • 데이터 분석 및 머신러닝 모델링을 위해 데이터를 준비하는 과정
  • 데이터의 품질을 높이고, 분석 결과의 신뢰성을 확보하기 위한 필수 과정

5.2. 장점

  1. 데이터 품질 향상
    • 결측치, 이상치, 중복 데이터를 처리하여 데이터의 품질을 높임
  2. 모델 성능 향상
    • 적절한 스케일링, 정규화를 통해 모델의 학습 속도와 성능을 개선할 수 있음
  3. 데이터 일관성 확보
    • 서로 다른 출처에서 수집된 데이터를 일관된 형식으로 변환함
  4. 특성 공학
    • 유용한 특성을 생성하거나 변환하여 모델의 예측 능력을 향상함

 

5.3. 주요 기법

5.3.1. 결측치 처리(Handling Missing Data)

  • 누락된 값을 처리함
  • 삭제 : 결측치가 있는 행이나 열을 삭제
    • 데이터 손실이 발생할 수 있음
  • 대체 : 평균, 중앙값, 최빈값 등으로 결측치를 대체
  • 예측 : 다른 특성을 사용하여 결측치를 예측하고 채움

5.3.2. 이상치 처리(Handing Outliers)

  • 비정상적으로 크거나 작은 값을 처리함
  • 제거 : 이상치를 데이터셋에서 제거
  • 변환 : 이상치를 다른 값으로 변환
    • 예) 상한선이나 하한선으로 대체
  • IQR 방법 : IQR(InterQuartile Range)을 사용하여 이상치를 탐지하고 처리함

 

5.3.3. 데이터 정규화(Normalization)

  • 일정한 범위로 스케일링하는 과정. [0,1] 단위로 변환함
  • Min-Max 정규화 : 최솟값을 0, 최댓값을 1로 변환

 

5.3.4. 데이터 표준화(Standardization)

  • 평균 0, 분산 1로 변환하는 과정
  • Z-점수 표준화

 

5.3.5. 특성 공학(Feacture Engineering)

  • 새로운 유용한 특성을 생성하는 과정
  • 특성 생성 : 기준 데이터를 기반으로 새로운 특성을 생성함
    • 예) 날짜 데이터를 사용하여 요일 특성 생성
  • 특성 선택 : 모델 성능에 중요한 특성을 선택하고, 중요하지 않은 특성을 제거함

 

5.3.6. 데이터 인코딩(Data Encoding)

  • 비정형 데이터를 모델이 이해할 수 있는 형태로 변환
  • 레이블 인코딩 : 범주형 데이터를 숫자로 변환
  • 원_핫 인코딩 : 범주형 데이터를 이진 벡터로 변환

 

5.3.7. 데이터 분할(Data Splitting)

  • 데이터를 학습용(train), 검증용(validation), 테스트용(test)으로 분할함
  • 이를 통해 모델의 일반화 성능을 평가할 수 있음
  • 학습 데이터(Training Data) : 모델 학습에 사용되는 데이터
  • 검증 데이터(Validation Data) : 모델 튜닝 및 성능 검증에 사용되는 데이터
  • 테스트 데이터(Test Data) : 최종 모델 평가에 사용되는 데이터

 

'공부 > 머신러닝 공부' 카테고리의 다른 글

[머신러닝] 데이터 전처리  (0) 2024.12.23

+ Recent posts