Я работаю с Keras Under Rstudio.
Целевой набор данных представляет собой матрицу 1e6 * 1e2 со значениями в {-1,0, + 1}. Записи представляют собой матрицу 1e6 * 1e3, сгенерированную такими функциями косинуса и синуса:
n1<- 1:1e6
i<- 1:1e3
fcos=function(i) cos(i*n1)
fsin=function(i) sin(i*n1)
Я использовал эту метрику c:
K <- backend()
options(tensorflow.extract.one_based = FALSE)
metric_acc <- custom_metric("accu", function(y_true, y_pred) {
y_pred=k_round(y_pred)
acc=k_all(k_equal(y_true,y_pred),axis = -1)
acc=k_cast(acc,'float32')
acc=k_sum(acc)
acc=acc/k_cast(k_shape(y_true)[0],'float32')
return(acc)
})
Он тестирует строку за строкой. Он работает хорошо.
Моя проблема: это показатель c, и он должен быть максимальным для выполнения. Но как metri c, keras минимизирует его.
В Python с sklearn.metri c есть простая функция make_scorer(greater_is_better = TRUE)
, которая максимизирует, но я не получил ее в R.
Кто-нибудь может помочь мне решить эту проблему?
Спасибо