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. Измените обслуживание, чтобы объединить выходные данные нескольких алгоритмов" в этом документе в качестве примера.