반응형
Keras로 다중 클래스 모델을 구축하고 있습니다.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, callbacks=[checkpoint], validation_data=(X_test, y_test)) # starts training
내 테스트 데이터는 다음과 같습니다 (텍스트 데이터).
X_test
Out[25]:
array([[621, 139, 549, ..., 0, 0, 0],
[621, 139, 543, ..., 0, 0, 0]])
y_test
Out[26]:
array([[0, 0, 1],
[0, 1, 0]])
예측 생성 후 ...
predictions = model.predict(X_test)
predictions
Out[27]:
array([[ 0.29071924, 0.2483743 , 0.46090645],
[ 0.29566404, 0.45295066, 0.25138539]], dtype=float32)
혼란 매트릭스를 얻기 위해 다음을 수행했습니다.
y_pred = (predictions > 0.5)
confusion_matrix(y_test, y_pred)
Traceback (most recent call last):
File "<ipython-input-38-430e012b2078>", line 1, in <module>
confusion_matrix(y_test, y_pred)
File "/Users/abrahammathew/anaconda3/lib/python3.6/site-packages/sklearn/metrics/classification.py", line 252, in confusion_matrix
raise ValueError("%s is not supported" % y_type)
ValueError: multilabel-indicator is not supported
그러나 위의 오류가 발생합니다.
Keras에서 다중 클래스 신경망을 수행 할 때 어떻게 혼동 행렬을 얻을 수 있습니까?
해결 방법
confusion_matrix
에 대한 입력은 핫 인코딩이 아닌 int의 배열이어야합니다.
matrix = metrics.confusion_matrix(y_test.argmax(axis=1), y_pred.argmax(axis=1))
참조 페이지 https://stackoverflow.com/questions/50920908
반응형
'파이썬' 카테고리의 다른 글
파이썬 timeit.Timer ()를 사용할 때 함수의 매개 변수를 전달하는 방법 (0) | 2020.10.11 |
---|---|
파이썬 Python 버전을 업데이트하는 방법은 무엇입니까? (0) | 2020.10.11 |
파이썬 Pytesseract : "TesseractNotFound 오류 : tesseract가 설치되지 않았거나 경로에 없습니다.", 어떻게 해결합니까? (0) | 2020.10.11 |
파이썬 Python OpenCV-imshow는 BGR에서 RGB로 변환 할 필요가 없습니다. (0) | 2020.10.11 |
파이썬 Spyder에 Pip 설치 (0) | 2020.10.11 |
댓글