데이터 이해와 전처리
Data · Preprocessing · Visualization
기계학습으로 넘어가기 전에 데이터를 읽고 정리하는 과정을 충분히 다루었다. 단순히 전처리 함수를 사용하는 것보다, 어떤 데이터를 남기고 어떤 데이터를 제외해야 하는지를 판단하는 데 초점을 두었다.
CSV 데이터 다루기
| 활동 | 수업에서 확인한 내용 |
|---|---|
| 파일 불러오기 | pandas와 Colab 파일 업로드를 이용해 CSV 데이터를 DataFrame으로 불러오기 |
| 중복 데이터 | 중복 여부를 확인하고 기준 열을 정해 중복 행 제거 |
| 범주 값 통일 | 서로 다르게 표현된 값을 같은 기준으로 바꾸어 분석 가능한 형태로 정리 |
| 불필요한 속성 | 분석 목적과 관련이 적거나 학습에 방해가 되는 열을 선택하여 제거 |
| 이상값 탐색 | 상자 그림 등을 이용해 데이터 분포와 이상값 확인 |
건강검진 데이터 전처리 실습
국민건강보험공단 건강검진 데이터를 이용하여 실제 규모의 데이터에서 필요한 속성만 남기고 분포와 상관관계를 확인하였다.
| 실습 단계 | 활동 내용 |
|---|---|
| 데이터 구조 확인 | head(), info(), isnull().sum()으로 데이터와 결측값 확인 |
| 속성 정리 | 분석 목적과 관련이 적은 식별·검진 관련 열을 선택해 제거 |
| 이상값 확인 | 연령대 데이터를 상자 그림으로 확인하고 분석 범위에 맞게 조건을 적용 |
| 상관관계 분석 | 수치형 속성의 상관계수를 계산하고 혈색소와 관계가 큰 속성을 정렬해 확인 |
실습에서 사용한 핵심 코드
df.info()
df.isnull().sum()
df = df.drop('불필요한_속성', axis=1)
plt.boxplot(df['연령대코드(5세단위)'])
plt.show()
corr = df.corr(numeric_only=True)
corr_sorted = corr['혈색소'].sort_values(ascending=False)
전체 코드를 외워 작성하는 것이 아니라, 각 코드가 데이터 정리와 분석 과정에서 어떤 역할을 하는지 확인하는 방식으로 진행하였다.
아이리스 데이터
아이리스 데이터에서는 꽃받침과 꽃잎의 길이·너비, 품종 정보를 이용해 데이터의 구조를 확인하고 전처리와 시각화를 연결하였다.
산점도를 통해 두 속성 사이의 관계를 관찰하고, 품종별 데이터를 나누어 표시하면서 어떤 속성이 분류에 도움이 될 수 있는지 생각해 보았다. 이후 품종 값을 숫자로 변환하는 과정도 모델 학습을 위한 데이터 표현의 한 사례로 다루었다.
데이터에서 질문 만들기
전처리 과정에서는 “이 열을 삭제하는 코드가 무엇인가?”보다 “왜 이 열을 빼는가?”, “이 속성이 예측에 어떤 관계가 있을까?”를 더 중요하게 다루었다. 이후 수행평가의 독립변수·종속변수 선택과도 이 판단 과정이 연결되었다.
전처리는 데이터를 단순히 깨끗하게 만드는 작업이 아니라, 어떤 정보가 문제 해결에 필요한지를 판단하여 모델이 학습할 데이터를 구성하는 과정으로 다루었다.