PredictionIO - один движок и несколько алгоритмов

Я застрял с одним движком и несколькими алгоритмами и мне нужна помощь в дальнейшем.

У меня есть один движок и 2 алгоритма, давайте назовем AL1 и AL2. В src/main/scala, имеющем 2 файла scala алгоритма, с именами AL1Algorithm.scala и AL2Algorithm.scala каждый алгоритм имеет свой собственный параметр и модель (AL1AlgorithmParams и AL1Model для AL1 и AL2AlgorithmParams и AL2Model для AL2). Следовательно, есть 2 функции поезда и 2 функции прогнозирования.

Я могу обучить 2 алгоритма, позвонив в поезд Пио. Когда я вызываю send_query для проверки, программа всегда возвращает результат алгоритма, который я положил в начало файла engine.json

Например, если я поставлю AL1Algorithm сверху, send_query запустит AL1Algorithm

"algorithms": [
    {
      "name": "AL1Algorithm",
      "params": {
        "n": 100
      }
    },
    {
      "name": "AL2Algorithm",
      "params": {
        "n": 100
      }
    }

если я поставлю AL2Algorithm сверху, send_query запустит AL2Algorithm'

"algorithms": [
    {
      "name": "AL2Algorithm",
      "params": {
        "n": 100
      }
    },
    {
      "name": "AL1Algorithm",
      "params": {
        "n": 100
      }
    }

Мой вопрос, могу ли я вызвать 2 алгоритма для одного send_query, как определить, какой алгоритм следует вызывать в send_query вместо engine.json. Здесь есть что-то странное, я думаю, что есть проблемы с моей конфигурацией. Будет ли Serving.scala выдавать результаты 2 алгоритмов одновременно. Можно ли разбить результаты каждого алгоритма на подачу.

большое спасибо

1 ответ

Вам также необходимо изменить функцию serve() в файле Serving.scala. функция serve() имеет 2 аргумента. увидеть ниже

def serve(query: Query,
   predictedResults: Seq[PredictedResult]): PredictedResult

Запрос отправляется обоим алгоритмам, и PredictedResult возвращаются оба алгоритма передаются serve() функционировать как Seq[PredictedResult], Seq[] порядок такой же, как порядок алгоритма, определенный в engine.json, Вы должны изменить это, чтобы использовать все PredictedResult вывод по алгоритму. Некоторые из примеров шаблонов по умолчанию принимают только 1-й результат (predictedResults.head)

См. Также "Шаг 4. Измените обслуживание, чтобы объединить выходные данные нескольких алгоритмов" в этом документе в качестве примера.

Другие вопросы по тегам