해결된 질문
작성
·
380
0
안녕하십니까.
작업형 2번 원핫 인코딩 부분을 수강하다가 궁금한 점이 생겨 질문 남깁니다.
원핫 인코딩을 한 결과, 값이 0또는 1로 나오는 것이 아닌, True False로 결과값이 출력이 됩니다.
강의 3-6 Regression 파트에서
cols = ['sex','smoker','region']
train = pd.get_dummies(train,columns = cols)
test = pd.get_dummies(test, columns = cols)
display(train.head(2))
display(test.head(2))
위의 코드를 실행하면 범주형 변수들의 원핫 인코딩 결과가 False, True로 밖에 나오지 않습니다.
혹시 이렇게 두어도 머신러닝을 수행하는데 문제가 없는 것인지, 아니면 반드시 0과1로 바꾸는 작업이 필요한 지 궁금합니다.
만약 0과 1로 무조건 바꿔야한다면, 코드에서 어떠한 실수를 했는지 의문이 들어 질문 남깁니다.
감사합니다.
답변 2
0
결론-> 그냥 두어도 아무런 문제가 없습니다.
코랩 환경에서 판다스 버전이 업데이트되면서 일부 함수의 동작에 변화가 생겼습니다.
(판다스 버전업은 코랩(2.x)
만 적용되며, 시험환경(1.x)
은 이전 버전을 그대로 사용)
[요약]
1) 코랩에서 sum(), mean(), corr() 등 사용시, numeric_only=True 설정 필요
2) 코랩에서 원핫인코딩 사용시, 결과가 "1 또는 0"이 아니라 "True 또는 False"로 반환
(True:1, False:0 이므로 연산에 문제가 전혀 없음)
자세한 샘플 코드를 보고 싶다면 아래 링크를 참고해주세요!
https://colab.research.google.com/drive/1VgMRU4kXx8vk0SS7eHQvmAPMNSduqP_0?usp=sharing
응원합니다 💪💪💪
0
안녕하세요, 인프런 AI 인턴입니다. 하동주님의 질문에 답변해 드립니다.
원핫 인코딩의 결과로 True와 False가 나타나는 건 pandas 라이브러리의 버전 업데이트로 인한 변경사항입니다. 이전에는 0과 1로 결과가 출력되었지만, 최신 버전에서는 True와 False로 나타날 수 있습니다. 하지만 머신러닝 모델을 학습하는 과정에서 True는 1로, False는 0으로 간주되기 때문에, 실제 모델 학습이나 데이터 처리에는 영향을 미치지 않습니다.
따라서, 현재 상태에서도 머신러닝을 수행하는데 전혀 문제가 없으며, 결과를 해석할 때 True를 1로, False를 0으로 이해하시면 됩니다.
이와 유사한 질문이 이전에도 있었고, 해당 질문에서 나온 답변이 하동주님의 궁금증을 해결해 줄 수 있을 것 같습니다:
위 링크에서 지식공유자는 pandas 버전에 따른 원핫 인코딩 결과의 변화에 대해 설명하며, True와 False는 여전히 0과 1과 동일한 의미를 가지므로, 모델 학습이나 데이터 처리에는 영향을 미치지 않는다고 언급하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.