해결된 질문
작성
·
46
0
안녕하세요.
너무 좋은 강의 항상 잘 보고 있습니다.
궁금한 점은..
로지스틱 회귀 문제의 경우 결과가 분류로 나오는 것으로 알고 있습니다.
model = logit('gender ~ weight', data = train).fit()
weight를 독립변수로 하고 gende를 독립변수로 하는 로지스틱 회귀 모델을 만들고,
test 데이터의 gender를 예측하는 문제입니다.
pred = model.predict(test) > 0.5
>0.5 로 명시하지 않으면 1일 확률값이 나오기 때문에 true/false로 나타내도록 하라고 하셨습니다.
궁금한 점은 logit 함수를 만들 때 gender를 범주형으로 명시하지 않아도 되는지입니다.
C()로 gender를 묶어보니 에러가 나오더라구요. ㅎ
아직 모르는 게 많아 질문드리니 알려주시면 정말 감사하겠습니다.
답변 2
0
따뜻한 말씀 감사드리고, 좋은 질문 주셔서 정말 반갑습니다. 😊
종속변수(gender)는 C()로 묶지 않으셔도 됩니다.
또한 독립변수 역시 문제에서 명시적으로 요구하지 않는 이상 C()를 사용하지 않는 것이 좋습니다.
C()를 사용하면 결과가 달라질 수 있기 때문입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 김현영님,
로지스틱 회귀는 기본적으로 이진 분류 문제를 다루며, 결과가 클래스에 해당하는 0과 1로 나옵니다. 질문 주신 부분에 대해 몇 가지 설명 드리겠습니다.
로지스틱 회귀에 대한 이해:
model.predict()
는 확률 값을 반환합니다. 즉, 1일 확률을 반환하며, 이 확률이 기본적으로 0.5
이상일 때를 True
, 그렇지 않으면 False
로 변환하여 0과 1의 이진 분류로 사용합니다.C()로 범주형 변수 지정:
gender
가 이미 카테고리형으로 인식되고 있을 경우, C()
로 묶지 않아도 자동으로 처리될 수 있습니다. 데이터셋의 변수가 이미 범주형으로 인식되는 경우에는 추가적인 변환이 필요하지 않을 수 있습니다.C()
를 사용했을 때 에러가 발생하는 경우는, gender 변수가 object 타입이지만 실제로 내부에서 범주형으로 변환되었기 때문일 수 있습니다.많은 경우 C()
함수는 숫자형으로 인식되면서도 사실은 범주형으로 처리되어야 할 때 유용합니다. 그러나 이 경우처럼 이미 범주형으로 잘 처리되고 있는 변수를 별도로 C()
로 묶을 필요는 없습니다.
유사한 질문을 다루고 있는 게시물을 참고하시면 도움이 될 수 있습니다:
- 로지스틱회귀 질문: 로지스틱 회귀에서의 패키지 사용 차이에 대한 논의가 포함되어 있습니다.
- 로지스틱 회귀 모형 문제에서 질문 드립니다.: 로지스틱 회귀에서 범주형 변수 지정에 관한 이해를 높일 수 있는 정보가 제공됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.