长时间离线Spark(MLlib)模型训练后,实时预测的程序是什么?

时间:2016-06-17 01:58:01

标签: apache-spark apache-spark-mllib

例如,如果我使用MLlib逻辑回归来训练数据集,并且每个数据都有超过100,000,000个特征,经过数小时的训练后我们得到模型,如何使用该模型进行“实时”预测例如,网页是否以200毫秒的预测结果响应用户? 只需使用model.predict(...)

1 个答案:

答案 0 :(得分:1)

对于Spark 2.0 Logistic回归仅支持二进制分类。 OP表示回归..所以我们需要跟进...

在使用Logistic Regressiob的二进制分类的任何情况下,为预测完成的工作几乎是微不足道的:

BLAS.dot(features, coefficients) + intercept

所以Spark只需要获取经过训练的权重("系数")和输入行的DOT产品。

要记住的一件事是:单行必须适合单个计算机的内存。此外,向量中的元素数量==要素数量必须保持< = 2 ^ 31。

Spark 2.0中的

进一步更新 Regression MLlib通过GeneralizedLinearRegression类处理,该类支持以下"系列":

  • 高斯
  • 二项式
  • 泊松
  • 伽玛

计算由WeightedLeastSquares执行,类似于LogisticRegression

BLAS.dot(features, coefficients) + intercept

因此预测的复杂度 - 所以预测应该尽快完成加载观察预测到Spark 所需的速度,而不管它是什么尺寸。它只需要适合一台机器的内存。