[네부캠] Week3 - 시계열 데이터, 이미지 와 텍스트

오홍석·2024년 8월 28일
0

네부캠

목록 보기
16/28

학습 정리


시계열 데이터란?

  • 시간에 따른 데이터를 이야기한다.
  • 하나의 변수를 시간의 흐름에 따라서 여러번 관측한 데이터이다.
  • 가격, 매출, 온도, 성장 등 변화 예측과 반복되는 패턴에 대한 정보 추출을 목표로한다.

시계열 데이터 특징

  • 추세 (trend)
    • 장기적인 증가 또는 감소
  • 계절성 (seasonality)
    • 특정 요일 / 계절에 따라 영향
  • 주기 (cycle)
    • 고정된 빈도가 아니지만 형태적으로 유사하게 나타나는 패턴
  • 노이즈 (noise)
    • 측정 오류, 내부 변동성 등 다양한 요인으로 생기는 왜곡

시계열 데이터 분석 방법

  • 성분 분석
    • 추세, 계절성, 주기, 노이즈를 통해 시계열 데이터를 분석한다.
    • 시계열 데이터 = 규칙성 데이터와 불규칙성 데이터가 혼합되어 있다.
  • 변동폭에 따른 모델의 종류
    • 가법 모델 (additive model)
      • 추세 + 계절성 + 주기 + 노이즈
    • 승법 모델 (multiplicative model)
      • 추세 계절성 주기 + 노이즈
  • 시간에 따라 변동폭이 비교적 일정하다면 가법 모델, 변동폭이 커진다면 승법 모델을 사용한다.

정상성과 비정상성

  • 일반적으로 시계열 데이터는 시간에 따라 통계적 특성이 변화한다.
  • 이는 관측 시간에 따라 결과에 큰 영향을 미친다는 의미이다.
  • 정상성은 시간에 따라 통계적 특성이 변하지 않는 것이다.
  • 비정상성은 시간에 따라 통계적 특성이 변하는 것이다.
  • 통계 모델에 사용하기 위해서는 이러한 비정상성을 제가할 필요가 있다.
    • 차분 (Differencing) : 이웃된 두 값의 차이값을 사용한다.
      • [1, 2, 4, 8, 16] -> [None, 1, 2, 4, 8]
      • 경우에 따라서 2차 차분도 가능하다.
      • 바로 직전 데이터가 아니라 계절성 주기에 따라 차분을 하는 계절성 차분도 존재한다.
    • 로그 연산
      • 로그 연산을 통해서 비정성상을 일부 제거하는 것이 가능하다.

시계열 데이터 전처리

평활 (Smooting)

  • 데이터의 불필요한 변동을 제거하여 쉬운 해석을 돕는다.
  • 목적
    • 추세 및 계절성 파악
      • 노이즈 감소로 추세와 계절성 파악이 용이하다.
    • 데이터 시각화 개선
      • 시각적 해석에 용이
  • 방법
    • 구간별 평균 / 통계를 사용한다.
      • 구간으로 나누어 통계값 사용
      • 데이터의 개수가 줄어들 수 있어 관찰하는 것에만 용이하다.
    • 이동 평균 (Moving Average)
      • 이전 데이터의 총 평균을 주기별로 움직이며 사용한다.
      • 급변하는 값에 대해서 추세를 보기 쉽다.
      • but, 구간 길이에 따라서 다르게 해석될 수 있으니 주의해야 한다.
    • 그 외 이동평균
      • 최신 데이터에 더 가중치를 두기 위한 방법
      • 가중 이동 평균(WMA) : 가중치 기반
      • 지수 이동 평균(EMA) : 지수 함수로 가중치 계산

이미지

  • 이미지 데이터를 처음 접하였을 경우에 문제 정의와 도메인에 대한 지식을 습득한 이후에 EDA의 순서
    1. Target 중심 - 분포 위주의 초기 비교가 이루어진다. (정형 데이터 해석)
      • 범주 또는 값의 분포가 균등하지 않고 편향되어 있는 경우
      • 특정 범주의 이미지가 지나치게 적은 경우
      • 전체 이미지 개수가 적은 경우
    2. Input 중심
      • 이미지 데이터의 개별 비교 (도메인 지식)
    3. Process 중심
      • 전처리 -> 모델 -> 결과해석을 반복한다.

Color Space

  • 아날로그 데이터인 이미지를 디지털화 하기 위해서 저장 방식이 필요하다.
  • 종류
    • RGB
      • 빛의 삼원색의 합으로 색을 표현한다. (컴퓨터 그래픽에 활용)
    • HSV
      • 인간의 색인자와 유사 (Hue, Saturation, Value = 색상, 채도, 명도)
    • CMY(K)
      • RGB의 보색으로 일반적으로 인쇄에 유용하다.
    • YCbCr
      • 발기 / 파랑에 대한 색차 / 빨강에 대한 색차로 구분하여 디지털 영상에 용이하다.

이미지 파일 형식

  • JPEG(Join Photographic Expert Group)
    • 손실 압축 방법론
    • 색상 공간을 YCbCr을 사용하여, 양자화를 통해 일부 손실 압축을 진행한다.
    • 사람의 색인지 자체가 밝기에 대해서 더 명확하기 때문에 YCbCr을 활용한다.
  • PNG(Portable Network Graphics)
    • 무손실 압축 방법
    • 투명도를 포함할 수 있다.
    • 투명도를 포함할 수 있어서 PNG파일은 4차원의 경우가 있다.
  • WebP
    • 구글이 만든 이미지 포맷
    • 위 둘의 방식을 포함할 수 있따.
  • SVG(Scalable Vector Graphics)
    • 벡터 이미지를 통한 저장
    • 방식과 크기에 무관한 저장 로고에 적합하다.

이미지 데이터 전처리

  • 고차원 데이터를 전처리 하는 이유는 크게 3가지이다.
    • 데이터 퀄리티 향상
      • 테크닉으로 접근
    • 데이터 양 증대
      • 테크닉으로 접근
    • 쉬운 검증(시각화를 통한 인지 개선)
      • 시각화로 접근
  • 이미지 전처리 방법
    • 색상 공간(Color Space)
      • RGB, YCbCr, Grayscale
    • 노이즈 삽입 (Noise)
    • 사이즈 조정 (Resizing)
      • Crop
      • Interpolation
    • 아핀 변환 (Affine Transformation)
      • 회전
      • 왜곡
      • 평행 이동 등
    • 특성 추출 (Feature Extraction)
      • SIFT
      • SURF
      • ORB
      • FAST 등

이미지 데이터 전처리 도구

  • OpenCV
    • 효율적인 처리를 할 수 있지만, 사용법이 복잡하다
    • BGR 순서로 데이터를 저장하며, Height x Width로 저장된다.
  • PIL (Python Image Library ==> Pillow)
    • 쉬운 이미지 전처리 기능을 모두 제공한다.
    • RGB 순서로 데이터를 저장하고, Width x Height로 저장한다.
  • scikit-image
    • SciPy 기반 이미지 처리
    • scikit-learn과 유사한 포맷으로 사용하기에 쉽다.
  • albumentations
    • 이미지 전처리용 라이브러리이다.
    • 일반적으로 데이터 증강 등에 많이 활용되며, 대부분의 augmentation 작업시에 활용되고 있다.
  • torchvision
    • torch 기반 이미지 전처리
  • SciPy
    • 대부분의 기능적 요소 탑재되어 있다.
    • but, 사용성이 다른 라이브러리에 비해 아쉽다.

텍스트

  • 텍스트 데이터가 까다로운 이유는 여러가지가 있다.
    • 언어는 구조에 따라 의미가 변경될 수 있다.
    • 구조가 달라도 의미가 같을 수 있다.
    • 언어에 따라 구조가 다르다. 등등
  • 텍스트 데이터의 전처리 예시
    • 짧은 단어, 표현에 대한 전처리
      • 텍스트 패턴 (정규 표현식)
      • 텍스트 토큰화
      • 소문자 변환
      • 불용어 제거 (의미없는 단어)
      • 철자 교정
    • 문단 등에 대한 전처리
      • 문장 토큰화
      • 띄어쓰기 교정
      • 문장 구조 분석
      • 문맥적 의미 분석

텍스트 전처리 과정

  1. 선택적 전처리 (cleansing)
    • 대소문자 통일
    • 불필요한 문자 제거
    • 철자 교정
  2. 문단 / 문장 토큰화
    • 마침표, 물음표 등 특수부호를 통한 구분
  3. 단어 토큰화
    • 공백, 쉼표 등을 통한 구분
  4. 서브워드 토큰화
    • 복합어 / 합성어 등의 구분
  5. 불용어 제거 (stopword)
    • 문맥적으로 의미없는 표현 제거
  6. 어간 추출 및 표제어 추출 (stemming & lemmatization)
    • 표제어 : 언어의 원형 (are, is -> be)
    • 어간 추출 : 형태학적 언어에서 어간 추출 (beginning => begin)
profile
기동코딩

0개의 댓글