해결된 질문
23.09.26 16:53 작성
·
325
0
데이터 전처리시
범주형(object)이면 라벨 or 원핫 인코딩
수치형(int or float) 이면 민맥스스켈러 or z스켈러
인데 타겟값이 범주형인가 수치형인가에 따라 전처리 방법을 다르게 하는건가요
아니면
타겟값과 상관 없이 문자형, 수치형 둘다 해보는건지 또는 문자형 or 수치형 중에 아무거나 해도
상관없는건지 궁금합니다! 또 어떠한 경우에 라벨, 원핫, 민맥스스켈러, z스켈러를 사용하는지도 궁금합니다!
ex) 작업형2번 모의문제 1번에서는 타겟 값이 수치형 이지만 전처리시 민맥스스켈러 혹은 z스켈러를
이용하지 않고 문자형컬럼을 제거하거나 라벨, 원한 인코딩을 한 이유가 있을까요?
타겟값이 범주형이기 때문에 그런건가요..ㅠㅠ
파이썬이 처음이라 개념이 잘 안잡혀 있어서 헷갈리네요 ㅜㅜ
답변 1
0
2023. 09. 26. 18:46
안녕하세요:)
1. 범주형, 수치형에 따라 전처리 방법을 다르게 하는 것 맞습니다.
범주형 -> (원핫/레이블) 인코딩
수치형 -> 스케일링
2. 범주형 데이터를 학습용으로 사용시 인코딩은 필수!! 입니다. 숫자로 반드시 변경을 해줘야 해요!
수치형 데이터는 이미 숫자기 때문에 변환(스케일링)이 필수는 아닙니다.
따라서
a. 극단의 심플한 전처리는 범주형 제거하거 수치형만 남기는 것이고
b. 심플한 전처리는 범주형 데이터를 인코딩 하는 것입니다.
c. 그리고 여유가 있다면 스케일링을 할 수 있어요!
c(스케일링)는 꼭 하지 않아도 됩니다! 따라서 작업형2 풀이에서 적용하지 않고 생략한 부분도 있습니다.
(실제로 랜덤포레스트와 같은 트리모델에는 성능향상이 미미 하기도 해요)
아직 정리가 안되고 궁금증이 생기는 것이 정상입니다 :) 다음 영상을 보면서 따라하다보면 머리속에 구조화가 될거에요~!!
응원하겠습니다.💪💪💪💪💪