Denoising

고은서·2023년 12월 17일
0

Data Preprocessing

목록 보기
4/10

6. 노이즈 처리

6.1 노이즈

  • 측정된 변수에 무작위의 오류(random error) 또는 분산(variance)이 존재하는 것
  • 데이터의 품질을 향상시키고 분석의 정확도를 높이기 위해서 노이즈를 제거할 필요가 잇음

6.1.1 정형데이터의 노이즈

  • 정형 데이터에서 노이즈는 분산(variance)으로 나타남

    • 분산은 데이터의 무작위 변동을 의미
      • 분산은 데이터들이 평균값으로 부터 얼마나 멀리 퍼져있는지를 측정하는 지표
      • 높은 분산은 노이즈가 많다는 것을 의미함
    • 이상치는 데이터의 무작위 변동을 초과하는 특정한 값으로 별도로 처리함
      • 이상치: 데이터 세트에서 일반적인 범위를 벗어난 극단적인 값
      • 이상치를 식별하고 적절히 처리해야함
  • 통계 모형에서는 오차항으로 나타남

    • 오차항은 모형에서 설명하지 못하는 무작위 변동을 의미
    • 예를 들어 단순선형회귀모형에서 오차항 ϵi 가 노이즈임
      • 오차항은 모델이 예측하지 못하는 부분

6.1.4 텍스트 데이터의 노이즈

  • 일반적으로 철자 오류, 약어, 비표준 단어, 반복, 구두점 누락, 대소 문자 정보 누락, “음” 및 “어”와 같은 의성어 등
    • 반복: 단어나 구문의 불필요한 반복
    • 의성어: '음', '어'와 같은 표현이 문맥에 따라 다른 의미를 가질 수 있음
  • 텍스트 데이터의 노이즈는 자연어 처리의 성능을 저하시키는 중요한 요인
  • 자동 음성 인식, 광학 문자 인식, 기계 번역, Web Scraping 등으로 수집한 데이터에 노이즈가 많음

6.1.5 Defact(결함) vs Fault(불량) vs. Artifact(아티팩트) vs. Noise(잡음, 노이즈)

  • Defact, Fault, Artifact, Noise는 혼재되어 사용되나 의미는 명확히 구분됨

(1) Defact(결함) / Fault (불량)

  • Defact는 전체 데이터에 존재하는 일부 오류(error) 데이터
    • 범위에서 벗어난 이상치(outlier)가 아니라 잘못된(error) 데이터
    • 주로 생산이나 제조 분야에서 사용하는 용어(아래의 사진은 반도체 결함)
      • Defact가 제품/설비의 기능에 손상을 야기하면 제품/설비가 Fault(불량/기능이상)이 됨
      • 모든 defect가 fault를 야기하지는 않음

(2) Artifact(아티팩트)

  • Defact와 동일한 의미를 갖는 용어
  • 주로 과학기술 분야에서 사용하는 용어, 특히, 이미지의 defect를 지칭
    • 과학적 실험이나 측정에서 발생할 수 있는 인위적인 오류나 왜곡을 의미하기도 함

(3) Noise(잡음, 노이즈)

  • Noise는 일반적으로 그 원인을 알 수 없는 무작위 변동을 의미
    • 무작위(ramdom)가 발생하는 기전(mechanism)을 알 수 없다는 의미임
    • 발생 기전을 알게되면, random 중 수학적 모형을 통하여 반영된 것을 제외한 것이 random이 됨
  • 주로 신호처리(signal processing) 분야에서 사용하는 용어임
  • 데이터 과학에서는 데이터의 무작위 변동을 의미
  • 동작 기전을 모르므로 제거는 불가하고 이를 저감(Denoising)하여야 함
    • 디노이징 기법은 기본적으로 평활화(smoothing, 구간평균), 구간화(binning, 구간집계), 필터링(filtering, 주파성분 저감)기법을 사용
      • 평활화(Smoothing): 구간별 평균을 취해 데이터를 부드럽게 만드는 방법
      • 구간화(Binning): 데이터를 구간별로 나누어 집계하는 방법
      • 필터링(Filtering): 데이터의 주파수 성분을 조정하여 노이즈를 줄이는 방법

6.2 디노이징

6.2.1 정형 데이터의 디노이징

1) 구간화(Binning)

  • 정렬된 데이터 값들을 몇 개의 bin(혹은 bucket)으로 분할
  • 데이터 포인트들을 각 구간의 대표값(평균, 중앙값 등) 으로 대체
    • 연속형 변수를 범주형 변수로 변환할 때 사용
    • 데이터의 복잡도를 줄이고 중요한 경향을 강조하기 좋다.

2) 군집화(clustering)

  • 유사한 값들을 하나의 군집으로 처리
  • 중심점(centroid)을 대표값으로 대체
    • 데이터 내에 숨겨진 패턴이나 그룹을 발견하는데에 사용
    • 이상치 탐지, 고객 세분화, 데이터 요약 등 다양한 분야에 적용

6.2.1.1 구간화

(1) 구간설정 방법

  1. 동일 간격(equal-distance) 구간화
    → pandas의 'cut()' 사용

    • 동일한 간격으로 구간을 설정
    • 단점: 데이터가 한쪽으로 치우쳐 있을 때(skewed data), 특정 구간에 데이터가 과도하게 집중될 수 있다
  2. 동일 빈도(eual-frequency) 구간화
    → pandas의 'qcut()' 사용

    • 동일한 개수의 데이터를 가지는 구간으로 설정
    • 데이터가 한쪽으로 치우친 경우에도 각 구간에 균등한 데이터가 위치하도록 함

  • pandas.cut 함수: cut 함수는 데이터를 동일한 길이를 가진 구간으로 나눠준다.
  • pandas.cut(x, bins, labels=None, ...)
    • x: 구간화할 데이터.
    • bins: 구간의 개수 혹은 구간의 경계값 리스트.
    • labels: 구간의 라벨.
  • pandas.qcut() 함수: 데이터를 동일한 개수의 데이터를 포함하는 구간으로 나눠준다.
  • pandas.qcut(x, q, labels=None, ...)
    • x: 구간화할 데이터.
    • q: 구간의 개수.
    • labels: 구간의 라벨.
profile
cities and data

0개의 댓글

관련 채용 정보