{"cells":[{"metadata":{},"cell_type":"markdown","source":"**I found a python script and translated to R**"},{"metadata":{"trusted":true},"cell_type":"code","source":"library(keras)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"051d70d956493feee0c6d64651c6a088724dca2a","_execution_state":"idle","trusted":true},"cell_type":"code","source":"aucMetric <- function(y_true,y_pred){\n  \n  true<- k_flatten(y_true)\n  pred<- k_flatten(y_pred)\n \n  totalCount <- k_shape(true)[1]\n  x<- tf$nn$top_k(pred,k= totalCount); \n\n  values<- x[0] ;  indices<-x [1]\n  sortedTrue = k_gather(true, indices)\n  \n    negatives = 1 - sortedTrue\n  \n    TPCurve =k_cumsum(sortedTrue)\n    auc = k_sum(TPCurve * negatives)\n  \n    totalCount = k_cast(totalCount, k_floatx())\n    positiveCount = k_sum(true)\n    negativeCount = totalCount - positiveCount\n    totalArea = positiveCount * negativeCount\n    return  (auc / totalArea)\n  \n  \n}\nkauc<- custom_metric(\"kauc\", function(y_true, y_pred){\n cc<- aucMetric(y_true, y_pred)\n return(cc)\n  \n})","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"3.6.3"}},"nbformat":4,"nbformat_minor":4}