해결된 질문
작성
·
294
0
아직 모든 강의를 다 들은 것은 아니여서, 혹시 뒤에 있는 강의 내용 중에 제 질문에 대한 답이 있을 지는 모르겠지만 우선 질문 드립니다.
피처엔지니어링 방법을 바꿔가면서 모델링 평가지표가 좋게 나오는 방향으로 선택해야한다는 것은 이해하였습니다.
제가 아직 공부를 많이하지는 않았지만 categorical 에는 (1) 적용안함 (2) 전부drop (3) 라벨인코딩, (4) 원핫인코딩 , numerical 에는 (1) 적용안함 (2) 민맥스 (3) 스탠다드 (4) 로버스트 스케일러가 있는 것으로 알고 있는데요.
[질문 1]
[질문 1-1] 데이터 타입 별로 그냥 한가지 피쳐엔지니어링 방법을 적용한다고 해도, 4 x 4 = 16 가지 조합이 나오는 것 같은데요, 시험 중에 16가지 조합을 전부 시도해보시는지 궁금합니다. 적용안하는 선택지를 제외하면 9가지 인데, 9가지 조합을 다 해봐야할까요?
[질문 1-2 ] 아니면 그냥 스케일러 같은 경우는 무조건 로버스트를 쓴다고 생각해버려도 될런지도 궁금합니다.
[질문 2]
필드 별 다르게 적용해야하는 문제도 나온적이 있나요? 예를 들어 A 컬럼도 numerical 이고 B 컬럼도 numerical 일 때, A 컬럼엔 민맥스 적용 B 컬럼엔 로버스트 적용 하는게 정답인 케이스 같은게 있나 해서요. 잘 몰라서 드리는 질문일수도 있습니다 ㅠ 이렇게까지 해야하는 문제는 안나온다고 생각해도 될까요?
[질문 3]
describe() 결과를 보고 어느 피쳐엔지니어링을 사용하면 좋겠다는 판단이 올수있을까요? 혹시 몇가지 판단요소나 꿀팁같은게 있는지 궁금합니다
답변 1
1
우선 인코딩은 필수 입니다. object 컬럼이 있다면 적용 안함은 없어요!
스케일링은 선택 입니다. 해도 되고 안 해도 됩니다.
더구나 트리계열 모델은(랜덤포레스트, xgboost, lightgbm)스케일링을 진행해도 대소관계에 변함이 없어 영향이 미미합니다. 선형회귀모델은 영향이 조금 있습니다.
질문1) 아니요~ 스케일링에는 시간 너무 투자하진 마세요! 여유가 있다면 인코딩만 2개 다 시도해보시죠!!
질문1-2) 네, 한 가지만 적용해도 좋아요!
질문2) 작업형2는 1,3과 달리 정답이 있는 문제가 아니에요. 컬럼별로 다른 데이터 변환을 요청한 내용은 문제에 출제된적 없습니다. 모델 성능향상을 위해 컬럼별 시도를 해볼 수는 있지만 빅데이터 분석기사 시험에서는 추천하지 않아요! 특히나 그게 스케일링이면 1-2처럼 하나만 적용해보시죠!!
질문3) 개인적으론 질문2처럼 카테고리가 대략 10개 이상 컬럼이면 레이블 인코딩을 사용하고 그 이하 컬럼이면 원핫인코딩을 사용하기도 하는데 이렇게까지 하면 더 복잡해질 것 같네요
데이터가 어떻게 나올지 몰라 데이터를 기준으로 설명하긴 어려울 것 같아요! 진행방식으로 설명 드리겠습니다.
진행방식을 처음부터 인코딩, 스케일링 적용하지 말고
1. 빠르게(인코딩 없이 드랍) 베이스라인을 만들고 (데이터 분할과 랜덤포레스트 모델 random_state값 고정) 검증 - 1차 제출
인코딩 후 검증 -> 점수 좋아졌다면 - 2차 제출
(결측치가 있다면) 결측치 처리 다양한 방식 시도 - 3차 제출
모델 튜닝(모의고사3에 설명) ->점수가 좋아졌다면 4차 제출
(시간적 여유가 있다면) 스케일링 후 검증 -> 점수 좋아졌다면 - 5차 제출 아니라면 패스
이런식으로 검증 평가 지표를 기준으로 전처리&피처엔지니어링 작업이 진행되어야 합니다.
응원하겠습니다 👍
신속한 답변 그리고 자세한 설명 정말 감사합니다~!