인프런 커뮤니티 질문&답변
이산적인(discrete) 데이터에 관한 질문
작성
·
277
0
안녕하세요. 혼자 선형회귀를 돌려보려다가 제 데이터셋에 이산적인 데이터가 너무 많은 걸 깨달았습니다.
한 피쳐에 값이 4개 정도의 숫자로 이루어져 있는데, 이러한 피쳐가 굉장히 많이 있네요.
처음엔 그냥 continuous 데이터와 마찬가지로 표준화를 하고 학습을 시켰습니다. 그러고 생각을 해보니 원핫인코딩을 해야할 거 같기도 하고.. 원핫 인코딩을 한다면 10개정도의 numerical 데이터가 있는 피쳐도 똑같이 원핫 인코딩을 해야하는건지...
이 데이터를 어떻게 처리하는게 좋을까요?
이렇게 이산적인 데이터 피쳐가 많다면 선형회귀가 힘들까요?? 원래는 continuous해야하는 데이터지만 데이터 수집에 한계를 느껴서 같은 값을 입력한 row가 많습니다
답변 1
0
안녕하십니까,
선형 회귀에 이산 데이터를 반드시 원핫 인코딩 하실 필요 없습니다. 다만 영향이 있을 수 있기에 원핫 인코딩을 권장 드리는 것입니다. 먼저 레이블 인코딩 한 후 학습/예측 수행해 보시고, 다음번에는 이산 데이터 만 골라서 pd.get_dummies()를 적용해 원-핫 인코딩 해보십시요. 그런 다음 좋은 걸 선택하면 됩니다.
그리고 numerical 데이터를 별도 인코딩 해줄 필요는 없습니다. 단 이 numerical 데이터가 이산값과 비슷한 코드성 값이라면 아예 아무 처리를 해주지 않거나(이미 레이블 인코딩 되어 있는 것과 동일하기 때문에) 아니면 위에서와 같이 실험적으로 원-핫 인코딩 해주십시요.
원-핫 인코딩의 문제는 피처갯수가 너무 많이 늘어날 수 있다는 것인데, 이 또한 테스트 해서 결과가 좋으면 수용할 수 있습니다.
크게 고민하지 마시고 먼저 어떤것이든 구현해 보시고 비교/선택해보시는게 좋을것 같습니다.
감사합니다.





