1. 데이터 구조 분석
판다스 기본 매서드/어트리뷰트를 활용한 데이터 구조 분석 ⇾ 결측값, 중복값, 카디널리티, 노이즈, 데이터 타입 등 확인
- shape , info() , head() : 데이터의 크기, 데이터의 타입, 데이터의 내용을 확인합니다.
- df.isna().sum(), df.isna().mean() : 결측치의 갯수와 결측치의 비율을 확인합니다.
- df.duplicated().sum() : 중복되는 행의 갯수를 확인합니다.
- df.describe() : 수치형 데이터의 컬럼별 갯수, mean, std, min, max, 4분위수를 확인합니다.
- df.nunique(): 데이터의 컬럼별 고유값의 갯수를 확인합니다.
2. 데이터 정제
- object 타입의 경우 대/소문자의 의미 차이가 없는 경우 모두 소문자로 통일해 줍니다. ⇾ apply()
이때, 'id'와 같이 고유값 컬럼의 경우 건드리지 않습니다.
- 정규표현식을 활용하여 데이터의 노이즈를 제거해줍니다. ⇾ re.sub(r'[^a-zA-Z,]', '', data))
- 빈칸 제거하기 ⇾ strip()
- 결측값 채우기 ⇾ 방법론에 대한 다양한 고민이 필요했습니다.
apply, df.sub(남길것 정규표현식, 대체할 내용, 대상), split(), strip(), replace()
방법론
: 결측값을 대체할 대체값을 찾을 때, 결측치를 채워야 하는 A컬럼에 대한 다른 컬럼값의 편차의 평균을 구해봅니다.
편차가 적은 경우 해당 컬럼을 기준으로 대체값을 설정했을때 오차가 줄어든다는 아이디어 입니다.
A컬럼에 대해 다른 컬럼을 참조할 때, 참조하는 컬럼의 갯수를 1개에서 그치지 않고, 2개까지 참조해볼 수 있습니다.
⇾ 2개의 컬럼을 참조할 때 표준편차가 가장 작은 경우를 1순위
⇾ 2개의 컬럼을 참조할 때 표준편차가 두번째로 작은 경우를 2순위
⇾ 1개의 컬럼을 참조할 때 표준편차가 첫번째로 작은 경우를 3순위
3. 데이터의 모델 피딩을 통해 데이터 특성 파악하기
- 1차로 정제된 데이터를 모델에 피딩하여 성능 확인하기
- 성능 확인 :
⇾ cv = StratifiedKFold(n_splits=n_splits, random_state=42, shuffle=True)
⇾ cross_val_score(creg, X, y, cv = cv, scoring = make_scorer(rmse))
: 성능지표 = rmse / cross-validation = StratifiedKFold
- feature importance 확인
⇾ get_feature_importance()
3. 결론 도출
- feature importance가 높은 data 확인 ⇾ 추가적인 EDA 필요성 확인, EDA 필요 부분 확인
- 데이터 특성 상어떤 모델을 사용하는 것이 강점이 있을지 확인
'ML&DL' 카테고리의 다른 글
| [성능 최적화]_개요 (0) | 2023.04.18 |
|---|