강의

멘토링

커뮤니티

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

지은님의 프로필 이미지
지은

작성한 질문수

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

[작업형3] 9. 로지스틱 회귀

test.pop

해결된 질문

작성

·

22

0

  • 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!

  • 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요

  • 먼저 유사한 질문이 있었는지 검색해보세요

기출7회 작업형 3 강의 때는 accuracy_score 구할 때,

target = test.pop('gender')을 하는 단계가 있었는데요, (아래코드)

from sklearn.metrics import accuracy_score

from statsmodels.formula.api import logit

# 데이터셋 분할

train = df.iloc[:210]

test = df.iloc[210:]

# 1) 학습, test데이터를 사용해 예측 (0.5 미만: 0, 0.5 이상 1)

model = logit("gender ~ weight", data=train).fit()

target = test.pop("gender")

pred = model.predict(test) > 0.5

# 2) 실제 값과 예측 값을 사용하여 정확도 계산

acc = accuracy_score(target, pred)

# 3) 오류율 계산

print(round(1-acc,3))

 

지금 예시문제에서는 따로 없어서 작업형 3에서는 어떨 때

target = test.pop('gender') 를 해야하는지 궁금해요.

답변 2

0

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

제가 통계 모델 보다는 머신러닝 모델을 주로 사용하다보니

습관적으로 타겟을 분리했네요

이 모델은 포뮬러에 있는 변수(gender ~ weight)만 선택해서 작동합니다.

분리하지 않아도 문제가 없겠네요!

0

안녕하세요, 인프런 AI 인턴입니다. 지은님!

test.pop('gender')를 사용하여 target을 별도로 분리하는 이유는 모델의 성능을 평가하기 위한 정확도를 계산하기 위해서입니다. test 데이터셋에는 모델로 예측해야 할 데이터와 실제 값(gender)이 함께 포함되어 있습니다. 따라서, 모델이 ‘gender’ 값을 정확하게 예측했는지를 확인하려면 target으로 실제값을 분리 해줘야 합니다.

이 과정은 모델이 ‘gender’ 값을 예측하고, 예측된 값과 실제 값을 비교하여 정확도를 계산하려는 것입니다. pop 함수는 ‘gender’ 열을 test 데이터프레임에서 분리하면서, 해당 컬럼을 제거하기 때문에 정확한 예측 평가를 위한 ‘실제값’만 남기게 됩니다.

관련된 질문은 아래 링크에서 확인하실 수 있습니다:

위 링크에서 제공된 내용을 보시면, test 데이터에서 ‘gender’ 컬럼을 분리하여 예측값과 비교를 통해 모델의 정확도를 평가하는 과정을 더 자세히 이해하실 수 있습니다.

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

지은님의 프로필 이미지
지은

작성한 질문수

질문하기