• 범주형 데이터 : 명확한 그룹 등으로 구분 - 순서형 / 명목형
  • 수치형 데이터 : 수로 나타남 - 이산형 / 연속형

순서형인지 수치형인지가 고민된다면 산술연산의 의미를 두면 된다.

(별점 4점은 별점 2점보다 2배 좋은건가?)
경우에 따라 순서형도 수치형처럼 치환하여 계산해볼 수 있다. (평균 별점)





범주형 데이터

명목형 데이터

  • 순서가 상관없이 항목으로 구분되는 데이터
  • 데이터 분석에 있어서는 집단 간 분석에 용이 / 범주 별 관계 분석에도 용이 (추천 알고리즘)

순서형 데이터에서는 오히려 적합할 수 있으나, 일반적으로 선형적인 연산이 들어가는 대부분 모델에서는 모델에 좋지 않은 영향


명목형 데이터 전처리

  • Label Encoding
    • 숫자로 1 대 1로 매핑
    • 없는 레이블에 대해서 미리 전처리 필요 (기본값 -1로 설정한다거나)
    • 다음의 2개 이상에서 [0,1,2]등으로 레이블링을 한다면 자체적인 순서 존재
  • One-Hot Encoding
    • 순서 정보를 모델에 주입하지 않기 위한 방법
    • 추가로 다수 범주가 동시에 포함될 수 있는 경우에도 효과적인 인코딩
    • 변수에 따라 데이터가 커질 수 있음.오히려 학습 속도와 퀄리티에 악영향
  • Binary Encoding
    • 범주가 너무 많다면(모델 학습 시간 또는 메모리 문제 등)
    1. 레이블링을 우선한다.(0,1,2,3…)
    2. 이를 이진수로 변환한다 (000,001,010,…111)
    3. 이를 컬럼 데이터로 변환한다 [0,0,0][0,0,1]
      → 범주의 개수가 k개일 때 k<2^N을 만족하는 최소 N만큼의 컬럼 생성
    • 순서 정보를 없애며, 개수가 많은 범주에 효과적
    • 범주의 의미가 거의 사라진다
  • Embedding
    • 자연어 처리에 있어 적절한 임베딩 모델을 사용하는 것도 하나의 방법
  • Hashing
    • 랜덤 해시 값으로 순서정보를 없앨 수도 있음

순서형 데이터

각 값이 우위 등의 순서가 존재하는 데이터


순환형 데이터

  • 순서는 있지만 해당 값이 순환되는 경우 존재 (범주형/수치형 모두 포함)
    • 월, 요일, 각도 등
  • 삼각함수 등 값의 크기에 따라 순환되는 값을 사용할 수도 있음 (시계열 등에서도 사용 가능)
    • sin(2pii/n), cos(2pii/n)등
    • NeRF에서는 각도 값의 표현력을 넓히기 위해 한 값을 여러 개의 Sin,Cos값으로 치환해서 사용





수치형 데이터

  • 이산형 데이터(Discrete) : 정수 형태 → 인구 수, 횟수 등
  • 연속형 데이터(Continuous) : 실수 형태 → 키, 몸무게, 온도 등
  • 구간형 데이터 : 구간의 값이 중요 → 온도, 시간 등
  • 비율형 데이터 : 원점과의 거리가 중요 → 인구 수, 횟수, 밀도 등





정형 데이터 피쳐 엔지니어링

결측치 missing value

  • 데이터셋에 누락된 값 (Null, NA)
  • 대다수 모델에는 공백으로 값을 받지 않기 때문에 제외, 혹은 예측으로 처리함

결측치가 얼마나 있는가?

  1. 결측치가 과반수인 경우
    • 결측치 유무만 사용
    • 결측치 데이터 포함 열 제외
  2. 결측치가 유의미하게(>5%) 많은 경우
    • 결측치 정보가 유의미한 정보임을 우선 파악
    • 결측치를 채우기 위한 대푯값 전략
  3. 결측치의 개수가 매우 적은 경우
    • 결측치가 포함된 행의 값을 미포함하는 경우도 고려 가능
    • 결측치를 위한 대푯값 계산 필요

결측치를 채우기 위한 방법

  1. 규칙 기반
    • 도메인 지식이나 논리적 추론에 의한 방법
    • 지나치게 복잡하거나 단순한 경우 잘못된 편향이 반영될 수 있음
  2. 집단 대푯값
    • 특정 집단의 대푯값(평균, 중앙값, 최빈값) 등 사용
    • 집단 설계가 중요하고 이상치에 민감할 수 있음
  3. 모델 기반
    • 회귀모델을 포함한 다양한 모델을 통해 예측
    • 복잡한 패턴을 예측할 수 있으나 과적합 이슈 발생 가능



이상치 Outlier

  • 관측된 데이터의 범위에서 과하게 벗어난 값을 의미함
  • 사분위수(IQR), 표준편차, z-score 등의 기준이 대표적
  • DBSCAN, Isolation Forest 등의 방법론 존재

IQR(Inter Quantile Range)

  • IQR = 3분위수와 1분위수의 차이
    • 1분위수 : 1.5 * IQR 이상
    • 3분위수 ­: 1.5 * IQR 이상



피쳐 엔지니어링

  • 보다 나은 특성을 통해 좋은 모델을 만들고, 해석에 용이하게 만드는 과정
  • 특성 추출(Feature Extraction), 특성 선택(Feature Selection)



클러스터링 Clustering

  • 클러스터링(Clustering)이란 유사한 성격을 가진 데이터를 그룹으로 분류하는 것
  • 클러스터링 방법론
    • K-Mean : 그룹을 K개로 그룹화하여, 각 클러스터의 중심점을 기준으로 데이터 분리
    • Hierarchical Clustering : 데이터를 점진적으로 분류하는 방법
    • DBSCAN : 밀도기반 클러스터링
    • GMM : 가우시안 분포가 혼합된 것으로 모델링



차원 축소

  • 차원 축소(dimensionreduction)란 특성 추출 방법 중 하나로 데이터의 특성(feature)N개를 M개로 줄이는 방법을 통칭
    • 데이터의 복잡성 감소 : 고차원 데이터에서
    • 시각화 : 패턴 발견에 용이 =>클러스터링과 매우 밀접한 관련
    • 모델 성능 향상
  • 차원 축소 방법
    • 정보를 최대한 보유하고, 왜곡을 최소화해야 함.
      • 가까운 데이터는 최대한 가깝게, 먼 데이터는 최대한 멀게
    • PCA : 데이터의 공분산을 계산하여 고유 벡터를 찾아 투영
    • t-SNE : 데이터 포인트 간 유사성 모델링하여, 저차원 공간에서 재현
    • UMAP : 위상 구조의 정보를 최대화하여 저차원 공간에 재현
    • LDA : 클래스간 분산을 최대화하고, 클래스 내 분산을 최소화하는 방식
    • Isomap : 고차원에서 최단 경로 거리에 대한 정보를 저장
    • Autoencoder : 인코더/디코더 구조로 고차원 데이터의 정보를 최대한 저장한 저차원 공간

특정 벡터들이 하나의 평면에 새롭게 투영된 것 → 많이 왜곡된 것

→ 차원 축소는 정답이 될 수는 없다?