기본 콘텐츠로 건너뛰기

방송대 방통대 오픈소스기반데이터분석 6강 - 데이터 전처리 1 - 요약 노트 시험족보 예상문제 - 올에이클래스

오픈소스기반데이터분석 6강 - 데이터 전처리 (1)


오픈소스기반데이터분석 6강 - 데이터 전처리 (1)

분석 결과의 품질을 좌우하는 데이터 전처리의 필요성과 주요 작업을 학습한다. 측정·정제·통합·축소·변환의 차이를 구분하고, Pandas의 기술통계 지표와 describe() 메소드로 데이터의 구조와 분포를 파악하는 방법을 정리한다.

1. 데이터 전처리가 필요한 이유

GIGO: 입력 품질이 결과 품질을 결정한다

GIGO(Garbage In, Garbage Out)는 잘못되거나 부정확한 데이터를 입력하면 아무리 정교한 분석 기법을 적용하더라도 잘못된 결과가 나온다는 원칙이다. 분석 알고리즘이 스스로 잘못된 입력을 모두 바로잡아 주는 것은 아니므로, 데이터의 품질을 먼저 높여야 분석 결과의 품질도 향상될 수 있다.

예를 들어 판매 데이터에 가격이 비어 있거나 문자로 된 오류 값이 들어 있고, 판매 수량에 음수가 기록되거나 광고 여부가 누락되어 있다면 그대로 분석하기 어렵다. 데이터가 어떤 구조인지 파악하고 결측치, 이상치, 불일치 값을 찾아 적절히 처리하는 작업이 선행되어야 한다.

핵심 원리: 입력 데이터의 품질이 분석 결과의 품질을 좌우한다. 전처리는 분석 기법을 적용하기 전에 데이터의 정확성과 신뢰성을 확보하는 필수 과정이다.

데이터 환경의 변화

최근에는 분석에 사용되는 데이터의 규모가 계속 증가하고, 신기술의 대중화로 수치뿐 아니라 텍스트, 이미지, 로그 등 새롭고 다양한 유형의 데이터가 수집된다. 또한 여러 이질적인 저장소와 출처에서 데이터를 모으기 때문에 형식이나 값의 기준이 서로 다를 수 있다.

이 과정에서 불필요한 데이터, 불일치 데이터, 중복 데이터, 결측치, 이상치가 포함되기 쉽다. 따라서 데이터 정제, 통합, 축소, 변환을 통해 데이터의 정확성과 일관성을 높여야 한다.

많은 시간과 노력이 드는 단계

강의에서는 2021년 Forbes가 데이터 과학자 80명을 대상으로 조사한 내용을 제시하며, 데이터 전처리가 분석 업무에서 많은 시간이 들고 어려움이 큰 단계임을 보여 준다. 이는 전처리가 단순한 형식 변경이 아니라 데이터를 반복적으로 확인하고 상황에 맞게 판단하는 작업이기 때문이다.

전처리에 시간이 많이 든다는 것은 부수적인 작업이라는 뜻이 아니다. 오히려 분석 결과의 신뢰성을 확보하기 위해 충분한 검토가 필요한 핵심 단계라는 의미이다.

2. 데이터 전처리의 정의와 특징

전처리의 정의

데이터 전처리(data preprocessing)는 데이터 분석에 앞서 원시 데이터(raw data)를 정제하고 변환하여 분석에 적합한 형태로 만드는 일련의 작업이다. 데이터 분석의 전 단계에서 수행되며, 데이터의 정확성과 신뢰성을 확보하는 데 목적이 있다.

전처리는 한 번 수행하고 끝나는 직선형 절차가 아니다. 각 단계에서 발견한 문제를 확인하고 앞 단계로 돌아가 보완할 수 있으므로 지속적이고 반복적으로 수행된다.

전처리의 다섯 작업

작업핵심 목적대표 내용
측정구조와 특징을 파악하고 필요 여부 판단형태, 분포, 대표값 등 확인
정제정합성을 확보하고 오류 수정결측치·잡음·이상치·불일치 처리
통합하나의 일관된 데이터셋 구성여러 데이터셋 결합, 중복과 불일치 제거
축소중요 정보를 보존하며 크기 감소샘플링, 특징 추출, 차원 축소, 요약
변환분석에 적합하도록 구조나 값 변경정규화, 이산화 등

순서와 반복성: 측정 → 정제 → 통합 → 축소 → 변환의 흐름으로 이해할 수 있지만, 실제 전처리는 결과를 검토하면서 필요한 단계를 되풀이하는 반복적 과정이다.

데이터 전처리가 어려운 이유

어려움설명
방대한 데이터 양과 다양한 형식수치형 데이터뿐 아니라 텍스트, 이미지, 로그 파일 등 여러 형식이 존재한다.
주관적 판단의 개입정해진 하나의 정답이 없으며 분석 목적과 상황에 맞는 결정을 내려야 한다.
다양한 처리 방법처리 방법이 고정되어 있지 않고 같은 문제에도 여러 접근법이 존재한다.
시간과 노력 소모여러 단계를 반복적으로 확인하고 검토해야 한다.

3. 데이터 측정과 정제

데이터 측정

데이터 측정은 다양한 측정 요소를 이용하여 데이터의 구조와 특징을 정량적으로 파악하는 과정이다. 데이터의 형태, 값의 분포, 평균이나 중앙값 같은 대표값을 확인하면 어떤 전처리가 필요한지, 이후 분석을 어떤 방향으로 진행할지 결정할 수 있다.

측정 기준은 데이터 전체, 개별 레코드, 그룹별 측정으로 나눌 수 있다. 요약 통계 지표로 데이터의 특징을 간단히 정리하고, 기타 통계 지표로 분포와 경계를 더 구체적으로 파악한다.

데이터 정제

데이터 정제(data cleaning)는 데이터의 불완전성을 보완하고, 이상치를 탐지하고 완화하며, 데이터 사이의 불일치를 수정하는 일련의 과정이다. 데이터 품질을 떨어뜨리는 요인을 찾아 분석에 적합한 상태로 만드는 데 초점을 둔다.

결측치 처리

결측치(missing values)는 데이터셋 안에서 특정 관측값이 누락된 상태이다. 판매 데이터에서 가격이나 판매 수량, 광고 여부가 비어 있는 경우가 이에 해당한다. 개수나 기술통계를 확인할 때 결측치가 제외되는지 주의해야 한다.

이상치 처리

이상치(outlier)는 데이터에 포함된 불규칙한 변동이나 오류를 의미한다. 일반적인 범위와 크게 다른 값이 모두 무조건 오류인 것은 아니므로, 분석 목적과 데이터의 맥락을 확인하여 탐지하고 완화해야 한다.

결측치는 값이 빠진 상태이고, 이상치는 다른 값과 비교해 불규칙한 변동이나 오류로 의심되는 값이다. 두 문제는 원인과 처리 방식이 다르므로 구분해야 한다.

4. 데이터 통합·축소·변환

데이터 통합

데이터 통합(data integration)은 서로 다른 데이터 저장소의 데이터를 결합하여 하나의 일관된 데이터 집합을 구축하는 작업이다. 서로 다른 출처에서 같은 대상을 중복 기록했거나 값의 표현 방식이 다를 수 있으므로, 통합 과정에서는 중복과 불일치를 함께 제거해야 한다.

데이터 축소

데이터 축소(data reduction)는 방대한 데이터를 효율적으로 처리하기 위해 데이터의 크기를 줄이면서도 중요한 정보를 보존하는 과정이다. 강의에서는 샘플링, 특징 추출, 차원 축소, 데이터 압축과 요약을 대표적인 방법으로 제시한다. 단순히 데이터를 삭제하는 것이 아니라 분석에 필요한 핵심 정보를 유지하는 것이 중요하다.

데이터 변환

데이터 변환(data transformation)은 데이터의 구조나 값을 일정한 규칙에 따라 바꾸어 분석이 효율적으로 수행되도록 지원하는 작업이다. 정규화나 이산화처럼 값의 표현 방식을 조정하거나 분석에 적합한 형태로 변형하는 방법이 포함된다.

구분처리 대상핵심 결과
통합서로 다른 저장소와 데이터셋일관된 하나의 데이터 집합
축소데이터의 양·차원·특징중요 정보를 보존한 작은 데이터
변환데이터의 구조나 값분석에 효율적인 표현 형식

KMeans를 이용한 전처리 예

강의의 예제는 나이와 소득 데이터를 Pandas 데이터프레임으로 만든 뒤, Scikit-learn의 KMeans를 사용하여 세 개 군집으로 구분하고 그 결과를 새로운 군집 열에 저장한다. random_state=42는 실행 결과를 일정하게 재현하기 위해 지정하며, fit_predict()는 나이와 소득을 이용해 군집을 학습하고 각 행의 군집 번호를 반환한다.

import pandas as pd
from sklearn.cluster import KMeans

data = {
    '나이': [25, 30, 22, 35, 40, 50, 28, 33, 45, 55],
    '소득': [3000, 4000, 2800, 5000, 6000, 7000,
            3200, 4500, 6200, 7200]
}

df = pd.DataFrame(data)
kmeans = KMeans(n_clusters=3, random_state=42)
df['군집'] = kmeans.fit_predict(df[['나이', '소득']])

print(df)

예제의 핵심은 원래의 나이·소득 데이터를 활용하여 각 레코드의 군집이라는 새로운 정보를 생성하고 데이터프레임에 추가하는 흐름이다.

5. Pandas를 이용한 데이터 측정

Pandas의 역할

Pandas는 데이터를 저장하고 다룰 뿐 아니라 평균, 분산, 최솟값, 최댓값 등 다양한 통계량을 계산하는 기능을 제공한다. describe()info() 메소드를 사용하면 데이터의 상태와 구조를 요약하여 파악할 수 있다.

데이터 측정은 데이터의 형태, 값의 분포, 대표값을 확인하는 과정이며, 그 결과를 토대로 전처리와 분석의 방향을 정한다. 전체 데이터를 한꺼번에 측정할 수도 있고, 레코드 또는 특정 그룹을 기준으로 측정할 수도 있다.

중심 경향 지표

지표의미특징
평균모든 값을 더한 뒤 개수로 나눈 값대표성을 나타내지만 이상치에 민감하다.
중앙값정렬한 데이터의 한가운데 값이상치의 영향을 평균보다 덜 받는다.
최빈값가장 자주 출현하는 값범주형 데이터 분석에 유용하다.

분산 정도를 나타내는 지표

지표의미
분산각 값이 평균에서 떨어진 정도를 제곱하여 평균 낸 값
표준편차분산의 제곱근으로, 흩어진 정도를 원래 단위로 표현
범위최댓값에서 최솟값을 뺀 값으로 전체 분포 폭을 표현
사분위수Q1은 하위 25%, Q2는 50%인 중앙값, Q3은 하위 75% 위치값
사분위 범위(IQR)Q3-Q1로 계산하며 중앙 50% 구간의 범위를 나타내고 이상치 탐지에 활용

분산과 표준편차는 모두 값의 흩어진 정도를 나타낸다. 표준편차는 분산의 제곱근이므로 원래 데이터와 같은 단위로 해석할 수 있다는 점이 특징이다.

6. 기타 통계 지표와 분포의 이해

데이터의 규모와 경계

합계는 모든 데이터 값을 더한 값으로 데이터의 총합을 빠르게 확인할 때 사용한다. 개수는 데이터 항목 수를 나타내며, 결측치 여부와 데이터 완전성을 점검하는 데 유용하다. 최댓값최솟값은 각각 데이터의 상한과 하한 경계를 확인하는 데 도움을 준다.

왜도와 첨도

왜도는 데이터 분포가 평균을 중심으로 대칭적인지 또는 한쪽으로 치우쳤는지를 나타내는 지표이다. 첨도는 데이터 분포가 얼마나 뾰족한지를 측정하며 이상치의 빈도를 파악하는 데 유용하다.

지표파악할 수 있는 내용
합계전체 값의 총량
개수항목 수와 결측치 여부, 데이터 완전성
최댓값·최솟값데이터의 상한과 하한 경계
왜도분포의 대칭성과 한쪽 치우침
첨도분포의 뾰족한 정도와 이상치 빈도

7. describe() 메소드의 이해와 활용

수치형 데이터의 출력 통계량

describe()는 데이터의 주요 기술통계량을 한 번에 요약한다. 수치형 데이터에 대해서는 결측치를 제외한 데이터 개수인 count, 평균인 mean, 표준편차인 std, 최솟값인 min, 제1·제2·제3사분위수인 25%·50%·75%, 최댓값인 max를 제공한다.

출력 항목의미
count결측치를 제외한 데이터 개수
mean평균
std표준편차
min최솟값
25%제1사분위수(Q1), 하위 25% 위치값
50%제2사분위수(Q2), 중앙값
75%제3사분위수(Q3), 하위 75% 위치값
max최댓값

범주형 데이터의 출력 통계량

범주형 데이터에 대해서는 count, 고유값 개수인 unique, 최빈값인 top, 최빈값의 빈도인 freq를 제공한다. 수치형과 범주형은 데이터의 성격이 다르므로 요약에 사용되는 항목도 다르다.

include 매개변수 활용

강의 예제는 이름, 나이, 도시, 점수 열로 데이터프레임을 구성하며 점수 열의 마지막 값에는 np.nan으로 결측치를 넣는다. 기본 df.describe()는 주로 수치형 열의 통계량을 보여 준다. include=[np.number]를 지정하면 수치형 데이터를 선택하고, include=['object']를 지정하면 객체형인 범주형 데이터를 선택하여 요약한다.

data = {
    'name': ['김민수', '이지영', '박준호', '최서연', '정도윤'],
    'age': [25, 30, 28, 22, 35],
    'city': ['서울', '부산', '인천', '서울', '대전'],
    'score': [90, 85, 95, 80, np.nan]
}
df = pd.DataFrame(data)

print(df.describe())
print(df.describe(include=[np.number]))
print(df.describe(include=['object']))

count는 결측치를 제외한다. 따라서 점수 열에 결측치가 하나 있다면 전체 행 수와 점수 열의 count가 다를 수 있으며, 이 차이는 데이터 완전성을 점검하는 단서가 된다.

핵심 개념 정리

6강 핵심 요약

  • GIGO는 잘못된 데이터를 입력하면 정교한 분석 기법을 사용해도 잘못된 결과가 나온다는 원칙이다.
  • 데이터 전처리는 원시 데이터를 정제하고 변환하여 분석에 적합한 형태로 만드는 과정이다.
  • 전처리는 데이터 분석에 앞서 수행하며 정확성과 신뢰성을 확보하기 위해 지속적·반복적으로 검토한다.
  • 데이터 측정은 구조, 형태, 분포, 대표값을 파악하여 전처리와 분석 방향을 정하는 기초 단계이다.
  • 데이터 정제는 결측치, 잡음, 이상치, 불일치 등을 처리해 데이터 품질을 높인다.
  • 데이터 통합은 여러 저장소의 데이터를 결합하여 중복과 불일치가 제거된 일관된 데이터셋을 만든다.
  • 데이터 축소는 중요한 정보를 보존하면서 차원 축소, 압축, 샘플링 등으로 처리 효율을 높인다.
  • 데이터 변환은 정규화, 이산화 등을 이용해 구조나 값을 분석에 적합하게 바꾼다.
  • 평균·중앙값·최빈값은 중심 경향을, 분산·표준편차·범위·사분위수·IQR은 분산 정도를 나타낸다.
  • describe()는 수치형 데이터와 범주형 데이터의 주요 기술통계량을 요약한다.
  • 수치형 데이터의 count는 결측치를 제외하며, 범주형 데이터는 unique, top, freq를 확인할 수 있다.

최종 정리: 데이터 전처리의 출발점은 데이터를 측정하여 현재 상태를 정확히 이해하는 것이다. 그 결과에 따라 결측치와 이상치를 정제하고, 여러 자료를 통합하며, 필요한 정보를 보존한 채 축소하고, 분석에 알맞게 변환한다. Pandas의 describe()는 이러한 판단에 필요한 대표값과 분포 정보를 빠르게 확인하는 핵심 도구이다.

예상문제 20선

1. GIGO 원칙에 대한 설명으로 가장 적절한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
GIGO는 부정확한 입력으로는 정교한 분석을 수행해도 신뢰할 수 있는 결과를 얻기 어렵다는 원칙이다.

2. 데이터 전처리의 정의로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
데이터 전처리는 분석 전에 원시 데이터의 문제를 정제하고 구조나 값을 변환하여 정확성과 신뢰성을 확보하는 과정이다.

3. 데이터 전처리의 특성으로 옳지 않은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
전처리는 정해진 하나의 정답이나 고정된 처리법이 없으며 데이터와 분석 목적에 따라 적절한 방법을 선택한다.

4. 데이터의 구조와 특징을 정량적으로 파악하여 전처리 방향을 정하는 작업은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
데이터 측정은 형태, 분포, 대표값 등 데이터의 구조와 특성을 파악하여 전처리와 분석 방향을 결정하는 기초 단계이다.

5. 결측치와 이상치에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
결측치는 특정 값이 빠진 상태이며, 이상치는 일반적 패턴과 다른 불규칙한 변동이나 오류로 의심되는 값이다.

6. 여러 저장소의 데이터를 결합하여 일관된 데이터 집합을 만드는 작업은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
데이터 통합은 서로 다른 데이터 저장소의 자료를 결합하고 중복과 불일치를 제거해 하나의 일관된 데이터셋을 구축한다.

7. 데이터 축소의 핵심 목적은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
데이터 축소는 샘플링, 특징 추출, 차원 축소, 압축 등을 통해 핵심 정보를 유지하면서 처리할 데이터의 크기를 줄인다.

8. 정규화와 이산화가 대표적으로 속하는 전처리 작업은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
데이터 변환은 정규화, 이산화 등으로 데이터의 구조나 값을 규칙에 따라 분석하기 좋은 형태로 바꾼다.

9. 평균과 중앙값의 비교로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
평균은 모든 값을 계산에 사용하므로 이상치에 민감하지만, 정렬했을 때 가운데 값인 중앙값은 그 영향을 상대적으로 덜 받는다.

10. 범주형 데이터에서 가장 자주 출현하는 값을 나타내는 지표는?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
최빈값은 데이터에서 가장 자주 나타나는 값으로, 범주형 데이터의 대표적인 중심 경향을 파악할 때 유용하다.

11. 표준편차에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
표준편차는 분산의 제곱근으로, 데이터가 평균 주위에 얼마나 흩어져 있는지를 원래 단위로 나타낸다.

12. 사분위 범위(IQR)를 계산하는 식은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
IQR은 제3사분위수에서 제1사분위수를 뺀 값이며 중앙 50% 데이터의 범위를 나타내고 이상치 탐지에 활용된다.

13. 데이터 분포가 평균을 중심으로 대칭인지 한쪽으로 치우쳤는지를 나타내는 지표는?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
왜도는 분포의 대칭성과 치우침을 나타내며, 첨도는 분포가 뾰족한 정도를 측정한다.

14. Pandas의 describe() 메소드가 수치형 데이터에 기본 제공하는 항목은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
수치형 데이터의 describe() 결과에는 개수, 평균, 표준편차, 최솟값, 세 사분위수, 최댓값이 포함된다.

15. describe()count에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
count는 결측치를 제외한 유효한 데이터의 개수이므로 열별 데이터 완전성을 비교하는 데 활용할 수 있다.

16. 범주형 데이터의 describe() 결과에서 최빈값을 뜻하는 항목은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
범주형 데이터에서 top은 최빈값, freq는 그 최빈값의 출현 빈도, unique는 고유값 개수이다.

17. df.describe(include=['object'])의 목적은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
include=['object']는 이름이나 도시처럼 객체형으로 저장된 범주형 열을 선택하여 count, unique, top, freq를 요약한다.

18. KMeans 예제에서 n_clusters=3이 의미하는 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
n_clusters=3은 KMeans가 나이와 소득의 패턴을 바탕으로 레코드를 세 개 군집으로 나누도록 지정한다.

19. 다음 중 데이터 전처리가 어려운 이유로 강의에서 제시하지 않은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
실제 데이터에는 결측치, 이상치, 불일치, 중복 등이 포함될 수 있다. 방대한 양, 다양한 형식과 방법, 주관적 판단, 반복 검토가 전처리를 어렵게 한다.

20. 데이터 측정과 전처리의 관계에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
데이터 측정은 구조, 분포, 대표값과 데이터 상태를 확인하는 기초 단계이며, 이를 바탕으로 어떤 전처리 작업이 필요한지 결정한다.

댓글