데이터 전처리 과정편
살펴본 데이터들 중 전처리가 필요한 데이터들에 대한 작업 과정이다.
코드만 보면 무척 간단해보이는 과정이기는 하지만, 전처리 과정은 EDA만큼 중요한 부분이라 생각한다.
X = pd.get_dummies(df.drop(['ParentschoolSatisfaction','Class','Class_value'], axis = 1),
columns = ['gender', 'NationalITy', 'PlaceofBirth',
'StageID', 'GradeID', 'SectionID', 'Topic',
'Semester', 'Relation', 'ParentAnsweringSurvey',
'StudentAbsenceDays'],
drop_first = True)
y = df['Class']
get_dummies를 통해 범주형 데이터를 one-hot 벡터로 변환하였다.
위 문장을 조금 더 자세히 풀어서 설명하자면
범주형 데이터를 가지고 있는 컬럼을 이진화로 바꾸는 의미라고 할 수 있다. 예로, gender의 경우 Male, Female 두 가지 값을 가지고 있는데, 이를 get_dummies로 변환하게 되면, gender_male (0, 1), gender_female (0, 1) 의 2개의 컬럼을 생성하는 의미이다.
이를 가지고 one-hot 벡터라고도 부르고, 더미 변수라고도 부르는데
이러한 더미 변수를 충분한 고려 없이 추가하게 되면 분석에 악영향을 끼칠 수 있다.
why? 기존 변수들에 비해 더미 변수는 컬럼이 증가하고, 증가된 컬럼은 결국 기존보다 많아진 차원에 대한 분석으로 이어지기 때문이다.
이러한 문제를 방지하기 위한 방법 중 하나가 drop_first = True 옵션 설정이다.
drop_fisrt = True 옵션에 대해...
위에서 설명한 것처럼 get_dummies() 함수는 범주형 변수를 One-Hot 벡터로 변환해주는 함수이다.
이 때, drop_first=True 옵션을 설정하면, 첫 번째 카테고리의 값은 제외하고 더미 변수화를 진행한다.
예를 들어, gender 컬럼의 경우 값으로 male, female이 있을 경우, get_dummies() 함수를 사용하면 gender 열을 male과 female 두 개의 열로 변환해준다. 이 때 drop_first=True 옵션을 사용하면, male 열은 생성하지 않고 female 열만 생성하는 방식이다.
왜 하는가? 강의에서는 아주 잠깐 언급만 했던 다중공선성(multicollinearity)이 발생할 수 있기 때문이다.
위에서 예로 든 gender에 대해 좀 더 설명하자면 male, female은 정확히 상반된 값을 지닐 수 밖에 없는 컬럼이다.
단순 상관관계만 살펴본다 하더라도 gender_male, gender_female의 Corr 값은 -1이 된다.
따라서 모델 성능을 높이기 위해 변수의 수를 줄이는 것이 적절할 수 있고,
비단 gender와 같이 값이 binary형태인 컬럼 외에 카테고리 성 데이터의 경우에도 첫번째 카테고리를 제외한 나머지 카테고리들을 생성하여 분석을 진행하게 된다.
무튼 이러한 이유를 고려하여 진행한 전처리였으며,
이 때 X 컬럼의 예시는 아래와 같은 형태가 된다.
코드로는 무척 간단한 몇 줄짜리 였지만,
의미와 중요도로는 다른 과정들만큼 중요한 내용이었다.
컬럼별 수치형 변환 작업에 대한 내 생각은 이보다 조금 더 나아가는 것이었는데
우선은 강의 내용대로 더미 변수화를 통한 모델링 결과까지 따라가보도록 해야겠다.
판단은 나중에...
http://bit.ly/3Y34pE0
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Analytics > Study' 카테고리의 다른 글
실전#3 데이터로 알아보는 리그 오브 레전드의 승리 공식(1) (0) | 2023.03.05 |
---|---|
실전#2 데이터로 살펴보는 우리 아이 학습 성공/실패 요소(5) (0) | 2023.03.04 |
실전#2 데이터로 살펴보는 우리 아이 학습 성공/실패 요소(3) (0) | 2023.03.02 |
실전#2 데이터로 살펴보는 우리 아이 학습 성공/실패 요소(2) (0) | 2023.03.01 |
실전#2 데이터로 살펴보는 우리 아이 학습 성공/실패 요소(1) (0) | 2023.02.28 |