-
머신러닝/딥러닝 : 데이터 파악sk루키즈/생성형AI 활용을 위한 머신러닝&딥러닝 2026. 3. 21. 01:51
데이터 분석과 머신러닝의 성패는 모델의 성능이 아니라 데이터의 품질에 달려 있다. 쓰레기를 넣으면 쓰레기가 나온다(Garbage In, Garbage Out)는 철칙은 언제나 유효하다. 따라서 본격적인 데이터 전처리(결측치 대체, 이상치 제거, 정규화 등)에 들어가기 앞서, 어떤 열(Column)에 어떤 수술이 필요한지 진단하는 과정이 반드시 선행되어야 한다.
이미 파이썬(Python) 환경에서 판다스(Pandas) 라이브러리를 통해 데이터프레임(df)을 불러왔다는 가정하에, 전처리가 필요한 타겟을 색출하는 핵심 5단계 탐색 기법을 정리한다.
1. 숲의 뼈대 파악하기: `df.info()`
가장 먼저 실행해야 하는 메서드는 info()다. 데이터의 전반적인 구조와 타입, 그리고 겉으로 드러난 빈칸을 1초 만에 스캔할 수 있다.
df.info()- 진단 포인트 1 (데이터 타입 - Dtype): 숫자가 들어가야 할 열에 object(문자열) 타입이 지정되어 있다면 주의해야 한다. 데이터 내부에 숫자가 아닌 문자(예: '-', '?', 'N/A' 등)가 섞여 있거나, 문자열로 취급되는 숫자가 있다는 뜻이다. 이는 반드시 숫자형으로 변환하는 전처리가 필요하다.
- 진단 포인트 2 (결측치 - Non-Null Count): 전체 행(Row)의 개수와 각 열의 Non-Null Count(비어있지 않은 데이터 수)를 비교한다. 전체 행 수보다 Non-Null Count가 적은 열은 명백하게 NaN(결측치)을 포함하고 있으므로 결측치 처리 대상이 된다.
2. 숨겨진 지뢰 찾기: `df.describe()`
`info()`가 겉모습을 본다면, `describe()`는 데이터의 수학적 민낯을 까발리는 과정이다. 모든 숫자형 열의 기술 통계량(개수, 평균, 표준편차, 최솟값, 사분위수, 최댓값)을 한눈에 보여준다.
df.describe()`
- 진단 포인트 1 (가짜 결측치 탐색 - min): 최솟값(min)을 유심히 봐야 한다. 예를 들어 '혈압'이나 '나이' 같은 열의 최솟값이 0이라면 이는 상식적으로 불가능하다. 즉, 누군가 비어있는 값(NaN)을 대충 0으로 채워 넣은 '가짜 0'일 확률이 높다. 이 열들은 0을 다시 결측치로 되돌린 후 처리해야 한다.
- 진단 포인트 2 (스케일 차이 - mean, max): 열마다 데이터의 단위(Scale)가 얼마나 다른지 확인한다. 어떤 열은 평균이 0.5인데, 어떤 열은 평균이 1,000 단위에서 논다면, 추후 머신러닝 모델이 큰 숫자에 압도당할 수 있다. 이 열들은 모두 정규화(Normalization)나 표준화(Standardization) 대상이다.
- 진단 포인트 3 (이상치 냄새 맡기 - 75% vs max): 3사분위수(75% 지점)의 값과 최댓값(max)의 격차를 비교한다. 75%의 사람들은 수치가 40 이하인데 최댓값이 800이라면, 상위 25% 구간에 엄청난 크기의 이상치(Outlier)가 숨어있다는 뜻이다.
3. 결측치 개수 정확히 세기: `df.isnull().sum()`
# 각 열별 결측치(NaN) 총개수 출력 print(df.isnull().sum())- 진단 포인트: 결측치의 비율에 따라 전처리 전략이 달라진다. 결측치가 전체 데이터의 1~5% 미만이라면 해당 행을 삭제(dropna)해도 타격이 적지만, 결측치가 20~30%를 넘어간다면 삭제 대신 평균, 중앙값, 혹은 최빈값으로 대체(fillna)하는 수술을 해야 한다.
4. 쌍둥이 데이터 찾아내기: `df.duplicated().sum()`
시스템 오류나 데이터 수집 과정의 실수로 완전히 똑같은 행이 중복으로 들어간 경우가 있다.
# 중복된 행의 총개수 확인 print(df.duplicated().sum())진단 포인트: 중복 데이터는 모델이 특정 패턴을 과대적합(Overfitting)하게 만드는 주범이다. 중복값이 1개라도 튀어나온다면 df.drop_duplicates()를 통해 제거해야 할 1순위 타겟이 된다.
5. 시각화 하기 (Boxplot)
숫자만으로는 감이 오지 않는 비대칭성이나 극단적인 이상치의 정확한 분포는 결국 그래프로 그려봐야 안다. 특히 Boxplot은 이상치를 색출하는 가장 강력한 무기다.'sk루키즈 > 생성형AI 활용을 위한 머신러닝&딥러닝' 카테고리의 다른 글
머신러닝/딥러닝 비지도학습 주요 알고리즘 (0) 2026.03.23 머신러닝/딥러닝 지도학습(Supervised Learning) (1) 2026.03.22 머신러닝/딥러닝 데이터 전처리 (0) 2026.03.19 머신러닝/딥러닝의 시작: 인공지능이 학습하는 데이터의 종류 (1) 2026.03.18