-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
로지스틱 회귀 (다중 분류)
22.03.21 16:06 작성 조회수 223
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개의 생선 종류를 의미하는 건 알고 있습니다.
이전 강의에서 행은 샘플, 열은 샘플의 각 특성으로 구분된다고 하셔서, 행을 구하려는 종류, 열을 물고기의 크기나 무게라고 생각했는데 이와 반대인가요?
답변을 작성해보세요.
0
0
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
박해선
지식공유자2022.03.21
안녕하세요. 소프트맥스 함수 사용 이전의 확률값이 무엇을 말씀하시는 건지 모르겠습니다. 몇 페이지의 출력인지 알려 주시면 답변 드리는데 도움이 될 것 같습니다.
행은 하나의 샘플에 해당되고 열은 샘플의 특성(크기, 무게 등)에 해당합니다(67페이지 그림을 참고하세요).
감사합니다!
답변 3