데이터 구성과 품질 점검
개요
표의 구조·품질·분포를 코드와 그래프로 확인하고 해석한다.
먼저 Python·노트북 환경과 재실행, 결측·이상·중복·데이터 권리, 통계·시각화·인과의 한계의 핵심 개념을 확인하세요.
세부 학습 목표
- 행·열·자료형·타깃·예측 시점과 누출 열을 확인한다.
- 결측·중복·이상값·그룹 분포를 코드로 집계하고 해석한다.
- 질문에 맞는 그래프를 고르고 관찰과 인과 추정을 구별한다.
핵심 개요
데이터 탐색은 행의 단위·열 의미·자료형·타깃·분포를 확인하는 작업입니다. 숫자로 저장된 ID를 연속 특성처럼 쓰거나 정답 뒤에 생긴 열을 예측 입력에 넣지 않습니다.
결측·중복·이상값을 집계하되 제거는 업무 의미를 확인한 뒤 결정합니다. 정리 전후 행 수와 타깃 비율을 남기면 실수로 특정 집단을 지운 일을 찾기 쉽습니다.
필요한 용어
- 타깃: 모델이 예측할 정답 열
- 탐색적 분석: 자료 구조·분포·관계를 검토해 문제를 파악하는 과정
작동 과정
- 행·열·타깃·시점과 단위를 확인합니다.
- 자료형·결측·중복·분포를 집계합니다.
- 변환·제외 규칙과 영향 건수를 기록합니다.
처음 읽은 표에서 확인할 코드
- 행의 단위와 예측할 타깃을 먼저 정합니다. 주문 한 건인지 고객 한 명인지 모르면 중복과 결측 처리의 의미도 정하기 어렵습니다.
import pandas as pd
df = pd.DataFrame({
"id": [1, 2, 3, 3],
"age": [20, None, 40, 40],
"city": ["서울", "부산", "서울", "서울"],
"target": [0, 1, 1, 1],
})
print(df.shape) # (4, 4)
print(df.isna().sum().to_dict()) # age에 결측 1개
print(int(df.duplicated().sum())) # 완전히 같은 행 1개
print(df.groupby("city")["target"].mean())-
dtypes/info는 자료형·비어 있지 않은 값, describe는 수치 요약, value_counts는 범주 빈도를 살피는 출발점입니다. ID가 숫자여도 연속량으로 평균낼 이유가 생기지는 않습니다.
위 표는 서울의 양성 비율이 2/3, 부산은 1입니다. 부산이 한 행뿐이므로 지역이 원인이라고 결론낼 수 없습니다. 중복 제거 전후 행 수와 비율도 기록합니다.
pandas: Introductory tutorials · pandas: Summary statistics
그래프를 분석 질문에 연결하기
| 확인할 질문 | 후보 그래프 | 해석할 때 주의 |
|---|---|---|
| 수치 분포는 치우쳤는가? | 히스토그램·상자그림 | 구간·표본 수·이상값의 업무 의미 |
| 범주 수가 불균형한가? | 빈도 막대 | 비율과 실제 건수를 함께 확인 |
| 두 수치가 함께 변하는가? | 산점도 | 상관이 인과의 증거는 아님 |
| 시간에 따라 달라지는가? | 시간 순서 선 | 누락 기간·동일한 집계 단위 |
- 예측 이후에 생성된 해지일·최종 처리 결과는 입력 누출 후보입니다. 그래프가 잘 분리돼 보여도 실제 예측 시점에 알 수 있는 열인지 먼저 확인합니다. 변환·선택 기준은 학습 자료에서 정하고 최종 시험 자료는 선택에 반복 사용하지 않습니다.
AICE Associate official overview · pandas: Introductory tutorials · scikit-learn: Common pitfalls
풀이 예제
아래 입력과 기록은 직접 만든 교육용 가상 자료입니다.
입력·조건
해지 예측 표에는 고객 ID, 나이, 가입 기간, 해지일, 현재 해지 여부가 있습니다.
판단·결과
예측 기준일을 정하고 이후 해지일·사후 상태를 입력에서 제외합니다.
이렇게 판단한 이유
목표를 직접 알려주는 열은 성능을 높여도 실제 예측에 쓸 수 없는 누출입니다.
실습 자료
흔한 실패와 복구
상관이 높다는 이유로 모든 열을 입력에 포함하지 않습니다. 예측 시점에 얻을 수 있는지 확인합니다.
확인 문제
해지 예측에서 사후 해지일 열의 위험은?
- 항상 가장 좋은 합법적 입력이다
- 숫자 열이 아니므로 자동으로 무시된다
- 예측 시점에 없는 정답 관련 정보가 누출된다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: C. 예측 시점에 없는 정답 관련 정보가 누출된다
예측 시점에 없는 정답 관련 정보가 누출된다 상관이 높다는 이유로 모든 열을 입력에 포함하지 않습니다. 예측 시점에 얻을 수 있는지 확인합니다.
부산 표본 1건의 양성 비율이 100%라면?
- 건수·중복·시점·다른 조건을 확인하고 원인을 단정하지 않는다
- 부산 거주가 양성의 원인임이 입증됐다
- 비율이 100%면 표본 수는 상관없다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: A. 건수·중복·시점·다른 조건을 확인하고 원인을 단정하지 않는다
관찰된 비율과 인과관계는 다릅니다. 작은 표본·중복이 비교를 크게 바꿀 수 있습니다.
참고 자료
- AICE Associate official overview — 공식 렌더링 화면에서 데이터 분석·전처리·AI 모델링의 세부 범위 및 30·30·40점 확인. 패키지 버전·개별 알고리즘의 필수 출제 여부는 확정하지 않음.
- pandas: Introductory tutorials — 표 읽기·선택·집계·조인.
- scikit-learn: Common pitfalls — 분할 전후 전처리와 데이터 누출.
- pandas: Summary statistics — 집계·그룹별 통계와 해석.
자료 확인: 2026-10-25. 사례·문항·실습은 자체 제작했습니다. 외부 서비스 호출과 실제 모델 품질 측정은 학습자가 별도 환경에서 수행합니다.
직접 적용하기
교육용 가상 상황
위 가상 표에서 결측·중복과 도시별 양성 비율을 계산하세요. id별 한 고객이라는 계약일 때 중복 제거 전후 건수·양성 비율을 비교하고 지역이 원인인지 판단하세요.
선택·계산·진단의 근거를 조건과 연결하고, 확인할 결과를 적으세요.
답안 저장 기능을 불러오는 중…
검증 기준과 해설 보기
- 결측 1·완전 중복 1 및 4행을 확인한다
- 제거 후 3행과 양성 비율 2/3을 계산한다
- 서울 1/2·부산 1/1의 작은 표본과 인과 한계를 설명한다
원본은 4행·양성 3/4이고 age 결측은 1개, 완전 중복은 1행입니다. id별 한 고객이며 동일 기록 중복이라는 조건에서 제거하면 3행·양성 2/3입니다. 서울은 1/2, 부산은 1/1이며 표본이 작습니다. 지역별 관찰의 차이를 원인으로 확정할 근거는 없습니다.
복습하기
- 탐색에서 먼저 정할 것은?
- 숫자 ID는 연속 특성인가요?
- 정리 뒤 무엇을 비교하나요?
- 부산 표본 1건의 양성 비율이 100%라면?
답변 확인 기준
- 탐색에서 먼저 정할 것은?
행 단위·타깃·예측 시점·열 의미입니다.
- 숫자 ID는 연속 특성인가요?
업무 식별자일 수 있으므로 의미를 확인해야 합니다.
- 정리 뒤 무엇을 비교하나요?
행 수·키·결측·타깃·집단 분포입니다.
- 부산 표본 1건의 양성 비율이 100%라면?
건수·중복·시점·다른 조건을 확인하고 원인을 단정하지 않는다. 관찰된 비율과 인과관계는 다릅니다. 작은 표본·중복이 비교를 크게 바꿀 수 있습니다.