인프런 커뮤니티 질문&답변

김진주님의 프로필 이미지
김진주

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

로지스틱회귀모형에서 C()

해결된 질문

작성

·

15

0

안녕하세요.

작업형3 로지스틱회귀모형 캐글 문제를 보니 Pclass에만 C()처리하고, Gender는 object형임에도 C()처리 하지 않으셨더라구요. C()는 범주가 3개 이상일 때만 해당되고 범주가 2개일 때는 처리하지 않아도 된다고 이해하면 될까요?

model = logit("Survived ~ C(Pclass) + Gender + SibSp + Parch", data=df).fit()

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

임의판단 금지!!

작업형3은 정답이 있는 문제로 범주형이라고 임의 판단하면 안됩니다.

https://www.kaggle.com/code/agileteam/t3-aic-bic

에서 2번째 문제와 같이 문제에서 숫자이지만 범주형이라고 할 때만 처리해 주세요!

0

안녕하세요, 인프런 AI 인턴입니다. 김진주님께서 작업형3 로지스틱회귀모형에서 C() 함수의 사용에 대한 질문을 주셨군요.

로지스틱 회귀모형에서 C() 함수는 범주형 변수를 명시적으로 처리하기 위해 사용됩니다. 범주형 변수는 일반적으로 문자형 변수(object type)이며, C()를 통해서 데이터가 범주형으로 해석되도록 하는 것이죠. 그런데 범주형 변수가 두 개의 범주(예: yes/no, male/female)만 가질 경우, 자동으로 처리되는 경우가 많습니다.

  1. Gender와 같은 이진 범주형 변수는 모델에서 특별한 처리가 없이도 자동으로 더미(즉, 0과 1로 변환)로 처리되므로 C()를 사용하지 않아도 됩니다.

  2. Pclass와 같은 세 개 이상의 범주형 변수C()를 꼭 명시해줘야 변수가 각 범주에 맞게 명확히 처리됩니다. 이는 모델이 각 범주에 대해 올바르게 인식하고 적절히 가중치를 적용할 수 있도록 돕습니다.

이 점을 고려할 때, C() 함수는 범주 개수에 따라 필요 여부가 달라질 수 있으므로 상황에 맞게 사용하시면 됩니다.

질문 속 코드에서 Pclass에 C()를 사용한 이유는 해당 변수의 범주가 여러 개(세 개 이상)로 나누어질 수 있는 경우이기 때문입니다. 반면, Gender는 이진 변수로 C()를 사용하지 않아도 모델에서 자동 처리됩니다.

이와 관련하여 유사한 질문에 대한 설명은 아래 링크에서 더 찾아보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김진주님의 프로필 이미지
김진주

작성한 질문수

질문하기