해결된 질문
작성
·
24
0
안녕하세요, 강의와 교재로 공부하고 있습니다.
교재 작업형2 ch4 회귀 부분에서
트레인 테스트 데이터를 합친 후
범주형 데이터를 레이블 인코딩 한 후 다시 트레인 테스트로 쪼개고
결측치를 채우는 최솟값, 최빈값으로 채우는 과정으로 진행이 되는데요,
레이블 인코딩 과정에서 범주형데이터의 결측치가 하나의 값으로 인코딩이 되어서
결측치가 존재하지 않아 중앙값으로 결측치를 대체하는 과정이 불필요한 것 같은데 맞을까요?
또한 원핫 인코딩을 사용하려는 경우 결측치를 먼저 대체한 후에 인코딩을 해야 오류가 안나는게 맞을까요?
일반적으로 결측치 처리를 인코딩 후에 하는지 전에 하는지 궁금합니다.
감사합니다.
답변 3
0
문자는 인코딩과정을 거치면서 결측치가 하나의 값으로 처리 되지만
숫자는 별도 처리가 필요합니다.
일반적으로 결측치 처리 후 인코딩 합니다.
결측치가 별도로 처리하는 방법이 있고, 최빈값을 처리 하는 방법이 있는데
우선 자동처리로 베이스라인을 만들고
최빈값으로 대채한 후 베이스라인과 비교하면 좋을 것 같아요!
다만 아직까지 작업형2유형에서 결측치가 출제된 적 없습니다.
0
추가로 혹시 lightgbm에서 verbose = -1을 했는데도
/usr/local/lib/python3.10/dist-packages/dask/dataframe/__init__.py:42: FutureWarning: Dask dataframe query planning is disabled because dask-expr is not installed. You can install it with pip install dask[dataframe] or conda install dask. This will raise in a future version. warnings.warn(msg, FutureWarning)
이런 워닝이 나오는데 괜찮은건가요?
0
안녕하세요, 인프런 AI 인턴입니다.
위잉님께서 교재 내용을 통해 실습 중 결측치와 인코딩 처리 관련하여 궁금증을 가지고 계시네요. 범주형 데이터를 인코딩하는 과정에서 결측치 처리와 연관된 부분은 특히 새로운 학습자들에게 혼란스러울 수 있습니다. 관련된 질문을 통해 보다 구체적인 이해를 도모할 수 있을 것 같습니다.
레이블 인코딩을 사용하는 경우, 결측치도 하나의 범주로 취급되어 특정 숫자로 대체될 수 있습니다. 이런 상황에서는 결측치가 ‘존재하지 않는 것처럼’ 보일 수 있기 때문에 중앙값이나 최빈값으로 결측치를 대체하는 과정이 불필요할 수 있습니다. 다만, 실질적으로 결측치를 남겨두어야 하는 경우, 레이블 인코딩 전 결측치를 처리하는 것이 바람직할 수 있습니다.
원핫 인코딩을 적용하려는 경우에는 일반적으로 결측치 처리를 먼저 하고 인코딩을 진행하는 것이 권장됩니다. 결측치를 적절히 처리하지 않고 원핫 인코딩을 실행하면, NaN 값이 하나의 별도 카테고리로 인코딩될 수 있으며, 이는 데이터의 해석을 더 복잡하게 만들 수 있습니다. 따라서, 오류를 방지하고자 한다면 결측치를 미리 대체한 후 원핫 인코딩을 진행하는 것이 좋습니다.
결론적으로, 인코딩 전에 결측치를 처리하는 것이 일반적이며, 이는 데이터 처리 과정에서 일관성을 유지하고 예기치 않은 인코딩 결과를 방지하는 데 도움이 될 수 있습니다. 더 구체적인 사례 및 설명은 아래의 링크를 참고하시면 좋을 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
네, FutureWarning은 무시해도 됩니다.