기출 7회 작업형3 문제1-3 질문
model = logit('gender ~ weight', data=train).fit()
pred = model.predict(test)
from sklearn.metrics import accuracy_score
score = accuracy_score(pred, test['gender'])
print(1-score)이 코드를 실행하면 ValueError: Classification metrics can't handle a mix of continuous and binary targets 이렇게 연속된 값과 이진분류를 혼용했다는 오류가 뜨는데,
model = LogisticRegression()
model.fit(X_train, y_train)
# 3) 테스트 데이터를 사용해 예측
pred = model.predict(X_test)
# 4) 실제 값과 예측값을 사용하여 정확도 계산
acc = accuracy_score(y_test, pred)
# 5) 오류율 계산
print(round(1 - acc, 3))강사님의 두번째 풀이 코드(위 코드)를 실행하면 아무런 문제가 없어서, 두 코드 전부 accuracy_score에 실제 값과 예측값을 넣어주었음에도 실행 결과가 차이가 나는 이유가 궁금합니다.
혹시 LogisticRegression()으로 모델을 생성하면 결과가 0,1의 이진값으로 나오고, logit()으로 모델을 생성하면 결과가 0과 1 사이의 확률값으로 나와서, 모델 생성에 logit()을 사용했다면 accuracy score를 구해야 하는 경우 확률값이 0.5보다 큰지 작은지를 구분하는 후처리를 해줘야 하는 것인 걸까요?
감사합니다.
답변 2
0
model = logit('gender ~ weight', data=train).fit()
pred = model.predict(test)의 결과는 확률값입니다.
사이킷런의 LogisticRegression 결과는 0또는 1이에요
만약 로짓으로 만들려고 한다면
수동으로 확률 값을 0또는 1로 변경해줘야 합니다.
pred = model.predict(test) > 0.5
0
안녕하세요, 인프런 AI 인턴입니다. Jin님,
질문해 주신 내용은 로지스틱 회귀 분석에서 모델의 결과값 처리 방법에 대한 이야기인데요, 이를 이해하면 머신러닝 모델의 결과를 해석하는 데 큰 도움이 됩니다. 아래에서 두 가지 코드를 분석해 드리겠습니다.
logit함수 사용:model = logit('gender ~ weight', data=train).fit() pred = model.predict(test)logit함수는statsmodels패키지에서 제공하는 함수로, 로지스틱 회귀 모델을 통해 예측값을 확률로 반환합니다.
- 따라서
pred에는 각 관측치가 특정 클래스(여기서는 ‘1’에 해당할 가능성이 있는 클래스)일 확률이 담깁니다.
- 이 때, 혼동 행렬이나 성능 측정 지표를 계산할 때는 이 확률값을 0과 1의 이진 분류 예측값으로 변환해야 합니다. 일반적으로 0.5를 기준으로 이러한 변환을 수행하는데, 코드 상에서 이를 생략하여 오류가 발생하는 것입니다.
LogisticRegression클래스 사용:model = LogisticRegression() model.fit(X_train, y_train) pred = model.predict(X_test)LogisticRegression은scikit-learn패키지의 클래스이며,predict메소드를 통해 바로 이진 분류 결과(0 또는 1)를 반환합니다.
- 따라서
accuracy_score에 바로 사용할 수 있는 형태가 되고, 후처리가 필요하지 않기 때문에 혼동되지 않습니다.
두 코드 간의 차이점은 바로 이 ‘예측값의 형태 차이’에 있습니다. logit의 결과는 확률이므로 0.5를 기준으로 0과 1로 변환하는 단계가 필요하며, 이는 보통 다음과 같이 코드를 수정하여 처리합니다.
pred = model.predict(test) > 0.5
위와 같이 수정하시면 에러 없이 accuracy_score를 사용할 수 있으며, 모델 생성 방식에 따라 예측값을 다르게 처리해야 하는 점을 기억하시면 좋습니다.
위와 관련하여 도움이 될 만한 유사한 질문들입니다:
- 로지스틱 회귀 모형 문제에서 질문 드립니다.
- 작업형3 로지스틱 회귀
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
수강 연장 문의드립니다.
0
32
2
강의 연장 문의
0
34
2
수강 신청 연장 문의드립니다.
0
49
2
작업형 1번문제... 환경관련
0
32
2
12회 기출은 언제 업데이트 될까요??
0
40
2
8/6 작성한 연장문의 질문글에 대한 재요청
0
39
2
수강기간 연장 문의
0
41
2
수강기간 연장문의
0
37
2
수강기간 연장 요청 문의드립니다
0
38
2
수강 기간 연장 문의
0
47
2
수강연장 가능 문의 (기간 약 한달반)
0
60
2
수강기간 연장 가능할까요 선생님
0
74
2
Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.
0
56
3
수강연장요청 문의
0
92
2
아무래도 다음 시험 연장은 어렵겠죠?
0
110
2
빅분기 12회 결과 관련 문의
0
114
1
책이랑 강의랑 순서나 예제가 다른것 같네요
0
83
2
수강연장 문의
0
107
2
재검토 요청 방법 좀 알려주셔요...-.-;;
0
108
2
12회 실기 질문(작업형 2)
0
94
2
뒤로가기 버튼 같은 것이 있나요?
0
67
1
강의 연장 문의
0
100
2
출력값 질문
0
74
2
수업노트가 어디에 있나요?
0
64
1





