Пользовательская функция потерь в тензорном потоке, использующая список как штраф - PullRequest
0 голосов
/ 16 декабря 2018

Я новичок в tenorflow и у меня проблемы с определением пользовательской функции потерь для проблемы оттока клиентов, которая включает в себя список значений в качестве штрафа.

До сих пор я реплицировал функцию среднеквадратичной ошибки, которая штрафует неправильнопредсказания с целым числом.

def rfm_penalty(y_true, y_pred):
    penalty = # Integer value, to be replaced by list
    loss = tf.where(tf.less(y_true * y_pred, 0),
                penalty * tf.square(y_true - y_pred), # penalize negat. (wrong) preds 
                tf.square(y_true - y_pred)) # no penalty for pos. preds
    return tf.reduce_mean(loss, axis=-1)

Этот работает, но я хотел бы изменить его: ранее я рассчитал метрику, которая измеряет ценность клиента, называемую RFM (для недавности, частоты и денежной стоимости прошлых покупок),Эта метрика представляет собой целочисленное значение от 3 до 12, которое суммирует три метрики R, F и M. Оно хранится в столбце функций моего df_train.

df_train['RFM_Score'] = [3,6,5,9,11,12,4,...,4] # same dimensions as y_true

Я хотел бы использовать этот столбец функций(или перечислить) в качестве штрафа, тем самым штрафуя неправильные прогнозы выше для очень ценных клиентов.Я был бы рад за любую идею сделать это, даже лучше с сигмовидной функцией, так как это случай двоичной классификации.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...