2017-12-11 9 views
-1

다른 사람이 만든 스팸 및 햄으로 분류 된 스팸 예측이 표시됩니다.Tensorflow에서 정확도 대신 정확도 및 회수율을 얻을 수있는 방법

[소스 코드] https://github.com/nfmcclure/tensorflow_cookbook/blob/master/09_Recurrent_Neural_Networks/02_Implementing_RNN_for_Spam_Prediction/02_implementing_rnn.py

프로그램은 다음과 같은 값을 생성한다. (손실, 정확성)이 코드에서

Veiw Result Screenshot

는, 결과는

내가 정확도가 의미가 없다고 생각, 유일한 손실, 정확성이다. Precision, Recall 값이 필요합니다 (F1 측정시)

그러나 내 코드 분석이 제대로 작동하지 않기 때문에 정밀도 및 리콜을 알고 있습니다. 하지만이 코드에서 Precision 및 Recall을 계산하는 방법을 (코드 포함) 모르겠습니다.

+0

귀하의 질문이 무엇인지 이해할 수 없습니다. 다시 말하십시오. –

+0

죄송합니다. 왜냐하면 나는 영어에 능숙하지 않기 때문이다. 당신의 의견에 감사드립니다. 나는 시정을했으나 그 질문이 이해할 수 있는지는 모른다. 결론적으로 필자가 원하는 것은 Precision이나 Recall을 출력 할 수있는 코드입니다. –

+1

편집이 좋습니다. -1 제거됨. –

답변

4

나는 스스로 성공했다. 여기

코드입니다 : 내가 GitHub의 혼란 매트릭스 오픈 소스를보고 당신에게 @Mistobaan 감사

actuals = tf.cast(y_output, tf.int64) 
predictions = tf.argmax(logits_out, 1) 

ones_like_actuals = tf.ones_like(actuals) 
zeros_like_actuals = tf.zeros_like(actuals) 
ones_like_predictions = tf.ones_like(predictions) 
zeros_like_predictions = tf.zeros_like(predictions) 

tp_op = tf.reduce_sum(
    tf.cast(
     tf.logical_and(
     tf.equal(actuals, ones_like_actuals), 
     tf.equal(predictions, ones_like_predictions) 
    ), 
     "float" 
    ) 
) 

tn_op = tf.reduce_sum(
    tf.cast(
     tf.logical_and(
     tf.equal(actuals, zeros_like_actuals), 
     tf.equal(predictions, zeros_like_predictions) 
    ), 
     "float" 
    ) 
) 

fp_op = tf.reduce_sum(
    tf.cast(
     tf.logical_and(
     tf.equal(actuals, zeros_like_actuals), 
     tf.equal(predictions, ones_like_predictions) 
    ), 
     "float" 
    ) 
) 

fn_op = tf.reduce_sum(
    tf.cast(
     tf.logical_and(
     tf.equal(actuals, ones_like_actuals), 
     tf.equal(predictions, zeros_like_predictions) 
    ), 
     "float" 
    ) 
) 

! https://gist.github.com/Mistobaan/337222ac3acbfc00bdac

+0

첫 번째 질문에 답하고 게시판에 링크를 게시하는 대신 코드를 게시하는 것이 좋습니다. 당신도 자신의 대답을 받아 들여야합니다. (반대로 이것에 대해서는 아무런 잘못이 없습니다.) (https://stackoverflow.com/help/self-answer) – desertnaut