Я пытаюсь измерить время обучения и прогнозирования алгоритмов классификации 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