Data Analysis <Data Processing>

cheonbi·2022년 2월 18일
0

Data Analysis

목록 보기
2/4

본 게시물은 코드프레소의 code.PRESS-UP 체험단 과정을 담은 게시물입니다.

해당 게시물 수강강좌 :

파이썬으로 시작하는 통계 데이터 분석

파이썬 라이브러리를 사용하여 통계 데이터 분석 시작하기

https://www.codepresso.kr/course/57

이번 포스팅은 데이터 전처리에 대해 알아보겠습니다.
전처리에 대한 내용이 많다보니 코드프레소 강의에서는 Part.1 / Part.2로 나누어서 강의를 진행 중입니다.

1. 데이터 전처리란?

  • 데이터 분석 과정에서 데이터 전처리는 반드시 거쳐야 하는 과정
  • 전처리 결과가 분석 결과에 직접적인 영향을 주고 있어서 반복적으로 수행함
  • 데이터 분석의 단계 중 가장 많은 시간이 소요됨
  • 데이터 정제 ➡ 결측값 처리 ➡ 이상값 처리➡ 분석변수처리 순서로 진행

2. 데이터 전처리 - 데이터 정제(Cleansing)

  • 데이터 정제는 결측값을 채우거나 이상값을 제거하는 과정을 통해 데이터의 신뢰도를 높이는 작업

2-1. 데이터 정제 절차

  1. 데이터 오류 원인 분석

    • 데이터 오류는 원천 데이터의 오류로 인해서 발생하거나 빅데이터 플로우의 문제로부터 발생함

      결측값(Missing Value)
      필수적인 데이터가 입력되지 않고 누락된 값
      📊 평균값, 중앙값, 최빈값 같은 중심 경향값 넣기
      📊 랜덤에 의하여 자주 나타나는 값을 넣는 분포기반 처리

      노이즈(Noise)
      실제는 입력되지 않았지만 입력되었다고 잘못 판단된 값
      📊 일정 간격으로 이동하면서 주변보다 높거나 낮으면 평균값 대체
      📊 일정 범위 중간값 대체

      이상값(Outlier)
      데이터의 범위에서 많이벗어난아주 작은 값이나 아주 큰 값
      📊 하한보다 낮으면 하한값 대체
      📊 상한보다 높으면 상한값 대체

  2. 데이터 정제 대상 선정

    • 모든 데이터를 대상으로 정제 활동을 하는것이 기본
    • 특별히 데이터 품질 저하의위험이 있는 데이터에 대해서는 더 많은 정제 활동을 수행해야 함
    • 원천 데이터의 위치를 기준으로 분류한다면 내부 데이터보다 외부 데이터가 품질 저하 위협에 많이 노출되어 있으며, 정형 데이터보다는 비정형과 반정형 데이터가 품질 저하 위협에 많이 노출되어 있음
  3. 데이터 정제 방법 결정

    • 데이터 정제는 오류 데이터 값을 정확한 데이터로 수정하거나 삭제하는 과정
    • 정제 여부의 점검은 정제 규칙을 이용하여 위반되는 데이터를 검색하는 방법을 사용
    • 노이즈와 이상값은 특히 비정형 데이터에서 자주 발생하므로 데이터 특성에 맞는 정제 규칙을 수립하여 점검
    • 데이터 정제 방법은 아래와 같음
    1. 삭제
      • 오류 데이터에 대해 전체 또는 부분삭제
      • 무작위적인 삭제는 데이터 활용에 문제를 일으킬 수 있음
    2. 대체
      • 오류 데이터를 평균값, 최빈값, 중앙값으로 대체
      • 오류 데이터가 수집된 다른 데이터와 관계가 있는 경우 유용할 수 있으나 그렇지 않은 경우에는 왜곡이 발생
    3. 예측값
      • 회귀식 등을 이용한 예측값을 생성하여 삽입
      • 예측값을 적용하기 위해서는 정상 데이터 구간에 대해서도 회귀식이 잘 성립되어야 함

2-2. 데이터 정제 기술

  1. 데이터 일관성 유지를 위한 정제기법
    변환(Transform)
    📍 다양한 형태로 표현된 값을 일관된 형태로 변환하는 작업
    📍 코드, 형식 변환

    파싱(Parsing)
    📍 데이터를 정제 규칙을 적용하기 위한 유의미한 최소 단위로 분할하는 과정
    📍 주민등록번호를 생년월일, 성별로 분할

    보강(Enhancement)
    📍 변환, 파싱, 수정, 표주화 등을 통한 추가 정보를 반영하는 작업
    📍 주민등록번호를 통해 성별을 추출한 후 추가 정보 반영

  2. 데이터 정제 기술
    ETL
    📍 수집 대상 데이터를 추출, 가공(변환, 정제)하여 데이터 웨어하우스 및 데이터마트에 저장하는 기술

    맵리듀스
    📍 구글에서 대용량 데이터 세트를 분산, 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크
    📍 모든 데이터를 키-값 쌍으로 구성하여 데이터를 분류
    📍 데이터를 추출하는 맵(Map) 기술과 추출한 데이터를 중복 없게 처리하는 리듀스(Reduce) 기술로 구성
    📍 배치(Batch) 형태 처리 방식으로 많은 데이터를 처리 할 때 성능이 느림

    스파크/스톰(Spartk/Storm)
    📍 In-Memory 기반 데이터 처리 방식
    📍 스파크는 맵리듀스를 기반으로 성능을 개선한 것으로 실시간,배치 처리 모두 가능하며, 기계 학습과 라이브러리도 지원 가능

    CEP(Complex Event Processing)
    📍 실시간으로 발생하는 이벤트 처리에 대한 결괏값을 수집하고 처리하는 기술
    📍 IoT 센싱 데이터, 로그, 음성데이터 등 실시간 데이터의 처리 기술

    피그(Pig)
    📍 대용량 데이터 집합을 분석하기 위한 플랫폼
    📍 하둡을 이용하여 맵리듀스를 사용하기 위한 높은 수준의 스크립트 언어인 피그라틴(Pig Latin)을 제공

    플럼(Flume)
    📍 로그 데이터를 수집하고 처리하는 기법
    📍 실시간에 근접하게 데이터를 전처리하고 수집하는 기술

2-3. 데이터 세분화(Data Segmentation)

📍 데이터를 기준에 따라 나누고, 선택한 매개변수를 기반으로 유사한 데이터를 그룹화하여 효율적으로 사용할 수 있는 프로세스
📍 사전에 군집 수를 정하지 않고 단계적으로 단계별 군집결과를 산출하는 계층적 방법과 군집을 위한 소집단의 개수를 정해놓고 각 객체 중 하나의 소집단으로 배정하는 비 계층적 방법이 있음

🏸 1. 계층적 방법

  • 응집분석법
    각 객체를 하나의 소집단으로 간주하고 단계적으로 유사한 소집단들을 합쳐 새로운 소집단을 구성해가는기법

  • 분할분석법
    전체 집단으로부터 시작하여 유사성이 떨어지는 객체들을 분리해가는 방법

🏸 2. 비 계층적 방법

  • 인공신경망 모델
    기계 학습에서 생물학의 신경망으로부터 영감을 얻은 통계학적 학습모델

  • K-평균 군집화
    K개 소집단의 중심좌표를 이용하여 각 객체와 중심좌표간의 거리를 산출하고, 가장 근접한 소집단에 배정한 후 해당 소집단의 중심좌표를 업데이트하는 방식으로 군집화 하는 방식

내용이 어마어마합니다.
코드프레소 강의에서는 간단하게만 설명을 한것도 있고 자세하게 한것도 있고
안한 부분도 있지만 개인적으로 또 찾으며 정리하다 보니

데이터를 다루는것은 쉽지 않습니다.

다음 포스팅도 데이터 전처리 중 결측값을 어떻게 처리하는지에 대해 알아보겠습니다.
코드프레소와 함께

profile
༼ つ ◕_◕ ༽つ

0개의 댓글