Измерить время предсказания алгоритмов классификации MLLIB. - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь измерить время обучения и прогнозирования алгоритмов классификации MLlib.

Сейчас я запускаю свой код для 11 000 000 записей, и время прогнозирования такое же, как и для 1000 записей (~ 20 мс). Работает ли метод преобразования в каком-нибудь ленивом режиме?

Код, который я использовал:

BenchmarkUtil.startTime()
val trainModel = pipeline.fit(trainingData)
val trainTime = BenchmarkUtil.getProcessingTime()
println(className + " Train time [ms]: " + trainTime)

// Make predictions.
BenchmarkUtil.startTime()
val predictions = trainModel.transform(testData)
val testTime = BenchmarkUtil.getProcessingTime()
println(className + " Prediction time [ms]: " + testTime)

Пример выходных данных для 11 000 000 записей - разбить 80% обучающих данных, 20% тестовых данных:

RandomForrestClassifierAlgorithm$ Train time [ms]: 2547637
RandomForrestClassifierAlgorithm$ Prediction time [ms]: 20

1 Ответ

0 голосов
/ 02 ноября 2018

Оказалось, что для преобразования нужно выполнить действие с преобразованными данными.

Когда я собираю преобразованные данные, все работает нормально. Код после изменения:

// Make predictions.
BenchmarkUtil.startTime()
val predictions = trainModel.transform(testData)
predictions.collect()
val testTime = BenchmarkUtil.getProcessingTime()
println(className + " Prediction time [ms]: " + testTime)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...