• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

로지스틱 회귀 (다중 분류)

22.03.21 16:06 작성 조회수 219

0

코드를 분명 똑같이 작성하고 오타도 여러 번 확인한 데다 처음부터 끝까지 코드를 다시 실행해 보기도 했으나,
 
소프트맥스 함수 사용 이전의 확률값과 사용 이후의 확률값이 다르게 나옵니다...
 
전 )
[[0.998 0.001 0. 0. 0. 0. 0.002]
[0. 0. 0.001 0.999 0. 0. 0. ]
[0. 0.002 0.051 0. 0.006 0.941 0. ]
[0. 0.001 0.86 0.001 0.135 0. 0.004]
[0.009 0.783 0.007 0. 0.187 0. 0.014]]
 
후)
[[0. 0.014 0.841 0. 0.136 0.007 0.003]
[0. 0.003 0.044 0. 0.007 0.946 0. ]
[0. 0. 0.034 0.935 0.015 0.016 0. ]
[0.011 0.034 0.306 0.007 0.567 0. 0.076]
[0. 0. 0.904 0.002 0.089 0.002 0.001]]
 
이외의 모든 출력값은 강의와 동일합니다. 왜 그런 걸까요?ㅜㅜ
 
+  predict_proba 함수로 출력되는 값 중에서 행, 즉 샘플들은 무엇을 의미하나요? 클래스가 7개의 생선 종류를 의미하는 건 알고 있습니다.
 
이전 강의에서 행은 샘플, 열은 샘플의 각 특성으로 구분된다고 하셔서,  행을 구하려는 종류, 열을 물고기의 크기나 무게라고 생각했는데 이와 반대인가요?

답변 3

·

답변을 작성해보세요.

0

안녕하세요.

소프트맥스 함수는 알고리즘 설명을 위해 사용했습니다. 190~192페이지를 참고해 주세요.

감사합니다!

0

soxxun님의 프로필

soxxun

질문자

2022.03.21

아 이 문제는 해결되었습니다..!

그런데 한 가지 더 의문인 게, 로지스틱 회귀 다중 분류할 때 소프트맥스 클래스로 합이 1이 되는 z값을 지수로 바꾸어 계산해서 확률값처럼 보일 수 있도록 만들어 주는 것은 이해했습니다.  그런데 소프트맥스 함수 사용 전의 예측값,

proba = lr.predict_proba(test_scaled[:5])

print(np.round(proba, decimals=3))

 

그리고, lr.decision_function()으로 z1~z7까지의 값을 구한 후 softmax로 확률을 계산한

 

proba = softmax(decision, axis=1
print(np.round(proba, decimals=3))
 
스코어값(lr.score)과 확률값(proba)이 둘이 동일한데 왜 굳이 소프트맥스 함수를 이용하나요?

 

0

안녕하세요. 소프트맥스 함수 사용 이전의 확률값이 무엇을 말씀하시는 건지 모르겠습니다. 몇 페이지의 출력인지 알려 주시면 답변 드리는데 도움이 될 것 같습니다.

행은 하나의 샘플에 해당되고 열은 샘플의 특성(크기, 무게 등)에 해당합니다(67페이지 그림을 참고하세요). 

감사합니다!