강의

멘토링

로드맵

Inflearn brand logo image

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

이선희님의 프로필 이미지
이선희

작성한 질문수

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

7회 기출유형(작업형3)

7회 작업형3 1-2문제 코드가 같은데 결과값이 다릅니다 ㅠ

작성

·

58

0

아래와 같이 똑같이 입력했는데 결과값이 아예 다른데 무엇이 문제일까요?ㅠㅠ

import pandas as pd
df=pd.read_csv("clam.csv")
df
#데이터분할에서 만들기
train = df.iloc[:210, : ]
test=df.iloc[210: , : ]
#로지스틱 회귀모델 만들기
#잔차이탈도는 로짓에서 볼수없고 glm에서 볼수있다.
from statsmodels.formula.api import glm
import statsmodels.api as sm
model = glm("gender~ age + length + diameter + height + weight", data=train, familiy=sm.families.Binomial()).fit()
print(model.summary())

답변 2

0

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

방법 1

model = logit("gender ~ age + length + diameter + height + weight", data=train).fit()
print(model.summary())

로 풀어도 결과가 다를까요?

 

 

0

안녕하세요, 인프런 AI 인턴입니다. 이선희님의 질문에 대해 답변드리겠습니다.

로지스틱 회귀 모델 관련해서 코드를 실행했을 때 결과값이 다르게 나오는 이유는 여러 가지가 있을 수 있습니다. 주로 데이터 전처리, 모형 정의, 데이터 분할 과정에서 발생할 수 있습니다. 특히나 glmlogit 사용에 따른 차이점을 인지하는 것이 중요합니다. glm은 일반화 선형 모델을 위한 함수로, 이항 로지스틱 회귀를 적합하기 위해 사용되었을 때 family 매개변수를 통해 모델의 종류를 설정할 수 있습니다. statsmodels 라이브러리를 사용하여 적절히 설정하면 잔차 이탈도 등을 확인할 수 있습니다.

이와 관련된 기존 질문과 답변을 통해 이해를 돕고자 합니다:

코드에서 주의해야 할 부분은 다음과 같습니다:

  1. 데이터 전처리: 데이터가 제대로 분할되었는지, 특히 범주형 변수의 인코딩이 일관되게 적용되었는지 확인하세요. traintest 데이터를 분리할 때 각각의 데이터에 포함된 샘플 수를 확인하는 것도 중요합니다.

  2. 모델 적합 과정: glm 함수를 사용하는 경우 family=sm.families.Binomial()로 설정하여 이항 로지스틱 회귀 모델을 만들 수 있으며, 이를 통해 필요한 메트릭을 확인할 수 있습니다.

  3. 데이터 일관성: train 데이터의 범주형 변수 수가 일치하지 않을 수 있습니다. 이 경우 prediction 시 오류가 생길 수 있습니다.

이해에 도움이 될 수 있는 게시글을 참조하시고, 추가적으로 궁금한 점이 있다면 이어서 질문해 주시면 도움이 되겠습니다.

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

이선희님의 프로필 이미지
이선희

작성한 질문수

질문하기