[네부캠] Week3 - 시계열 데이터, 이미지 와 텍스트
학습 정리
시계열 데이터란?
- 시간에 따른 데이터를 이야기한다.
- 하나의 변수를 시간의 흐름에 따라서 여러번 관측한 데이터이다.
- 가격, 매출, 온도, 성장 등 변화 예측과 반복되는 패턴에 대한 정보 추출을 목표로한다.
시계열 데이터 특징
- 추세 (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의 순서
- Target 중심 - 분포 위주의 초기 비교가 이루어진다. (정형 데이터 해석)
- 범주 또는 값의 분포가 균등하지 않고 편향되어 있는 경우
- 특정 범주의 이미지가 지나치게 적은 경우
- 전체 이미지 개수가 적은 경우
- Input 중심
- 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)
- 노이즈 삽입 (Noise)
- 사이즈 조정 (Resizing)
- 아핀 변환 (Affine Transformation)
- 특성 추출 (Feature Extraction)
이미지 데이터 전처리 도구
- OpenCV
- 효율적인 처리를 할 수 있지만, 사용법이 복잡하다
- BGR 순서로 데이터를 저장하며, Height x Width로 저장된다.
- PIL (Python Image Library ==> Pillow)
- 쉬운 이미지 전처리 기능을 모두 제공한다.
- RGB 순서로 데이터를 저장하고, Width x Height로 저장한다.
- scikit-image
- SciPy 기반 이미지 처리
- scikit-learn과 유사한 포맷으로 사용하기에 쉽다.
- albumentations
- 이미지 전처리용 라이브러리이다.
- 일반적으로 데이터 증강 등에 많이 활용되며, 대부분의 augmentation 작업시에 활용되고 있다.
- torchvision
- SciPy
- 대부분의 기능적 요소 탑재되어 있다.
- but, 사용성이 다른 라이브러리에 비해 아쉽다.
텍스트
- 텍스트 데이터가 까다로운 이유는 여러가지가 있다.
- 언어는 구조에 따라 의미가 변경될 수 있다.
- 구조가 달라도 의미가 같을 수 있다.
- 언어에 따라 구조가 다르다. 등등
- 텍스트 데이터의 전처리 예시
- 짧은 단어, 표현에 대한 전처리
- 텍스트 패턴 (정규 표현식)
- 텍스트 토큰화
- 소문자 변환
- 불용어 제거 (의미없는 단어)
- 철자 교정
- 문단 등에 대한 전처리
- 문장 토큰화
- 띄어쓰기 교정
- 문장 구조 분석
- 문맥적 의미 분석
텍스트 전처리 과정
- 선택적 전처리 (cleansing)
- 문단 / 문장 토큰화
- 단어 토큰화
- 서브워드 토큰화
- 불용어 제거 (stopword)
- 어간 추출 및 표제어 추출 (stemming & lemmatization)
- 표제어 : 언어의 원형 (are, is -> be)
- 어간 추출 : 형태학적 언어에서 어간 추출 (beginning => begin)