Скажем, проблема, которую я решаю, состоит в том, чтобы предсказать доктора (ярлык) для пациента (особенности) конкретной клиники. У нас есть несколько моделей DNN для разных клиник, которые выполняют эту работу, но это не является экономически эффективным - за каждую модель нам нужно платить отдельно в AWS SageMaker.
Главный вопрос: как объединить модели для разных клиник в одну модель, чтобы они все еще продолжали работать с независимой точностью?
Я попытался добавить дополнительную функцию «клиника», которая должна помочь модели DNN понять контекст клиники. Я также определил другие функции как перекрестные столбцы «клиники» с определением функций ванили (предыдущее).
# adding clinic as additional feature
column = tf.feature_column.categorical_column_with_hash_bucket("clinicId", 20)
# defining columns as cross-column with clinic feature
column = tf.feature_column.crossed_column(["clinicId", column], 200)
У меня есть функция «проверки», которую я могу выполнить в любое время на данных испытаний для конкретной клиники (она аналогична действию «оценить»).
После того, как я тренирую модель с данными 1-й клиники, я измеряю точность (проверяю), и она составляет 90%.
В качестве следующего шага я продолжаю тренировать ту же модель по данным 2-й клиники и измеряю точность.
Ожидаемый результат: это все еще 90% (я пытаюсь сделать модели независимыми во время обучения).
Фактический результат: точность комбинированной модели для 1-й клиники падает до 10%.