레이블 인코딩의 문제는 범주 간에 어떤 종류의 관계도 없을 때 레이블 인코딩을 하면 뜻하지 않게 관계가 만들어질 수 있다. 예를 들어 남자. 여자로 나눌 때 남자를 1로 하고 여자를 2로 하면 여자의 숫자가 더 크므로 여자의 데이터가 더 중요하게 받아들여질 수 있다.
하지만 초등학교졸업, 중학교졸업, 고등학교졸업, 대학교졸업 이라는 숫자를 레이블 인코딩으로 한다면 초등학교 졸업은 1, 중학교 졸업은 2, 고등학교 졸업은 3, 대학교 졸업은 4로 줘서 학력에 따른 레이블을 숫자로 주어서 인코딩 하면 데이터를 분석하는데 더 도움이 된다. LabelEncoder를 쓰면 이 순서가 뒤죽박죽이 될 수 있으므로 map을 통해서 인코딩을 해보겠다.
education_level_map = {
'Primary School' : 0,
'High School' : 1,
'Graduate' : 2,
'Masters' : 3,
'Phd' : 4
}
df['education_level'] = df['education_level'].map(education_level_map)
df 안에 education_level 안에 학력의 종류가 나타나있다. 각각의 점수를 준 다음 해당 컬럼을 map 하면 컬럼에 맞게 바뀐다.
'머신러닝' 카테고리의 다른 글
머신러닝 분류 Classification 중 Decision Tree(결정 트리) (0) | 2021.02.24 |
---|---|
GridSearchCV의 Check the list of available parameters with `estimator.get_params().keys()` 에러 발생시 해결법 (0) | 2021.02.24 |
[파이썬 머신러닝]Pipeline 파이프라인 구축하기 (1) | 2021.02.24 |
머신러닝 이진분류의 Evaluation 평가에 대해 알아보자(Accuracy, Precision, Recall, F1_Score, ROC_AUC) (1) | 2021.02.19 |
머신러닝 GridSearchCV 로 하이퍼 파라미터 학습과 최적화 (1) | 2021.02.19 |