预测 R /SparkR 中的新值和准确性

Predict new Value in R /SparkR and accuracy

我正在使用 SparkR ,我需要知道如何预测它们的新值和准确性。

这是输入,sample of data.csv

Classes ‘data.table’ and 'data.frame':  100 obs. of  8 variables:
 $ LINESET     : chr  "DG1000420" "DG1000420" "DG1000420" "DG1000420" ...
 $ TIMEINTERVAL: int  1383378600 1383394800 1383556800 1383679200 1383695400 1383718800 1383857400 1383873600 1383996000 1384269600 ...
 $ SmsIn       : num  77.4 76.6 99.2 63.7 10.7 ...
 $ SmsOut      : num  47.74 48.56 26.08 62.39 9.43 ...
 $ CallIn      : num  19.602 31.509 38.003 23.206 0.707 ...
 $ CallOut     : num  22.93 34.97 71.64 37.23 1.61 ...
 $ Internet    : num  435 502 363 465 295 ...
 $ ValueAmp    : num  39.8 32.9 81.4 94.3 54.2 ...

我的模特是

glm(ValueAmp~SmsIn+SmsOut+CallIn+CallOut+Internet+TIMEINTERVAL,data=Consumi,family="gaussian")

我想知道 ValueAmp 的新值及其准确度是多少。

正如数据块所说,我试图做这样的事情,但我认为这不是我想要的,在错误中我得到的值是 -30 / +40 是不是很准确?

training<-createDataFrame(sqlContext,Consumi)
model <- glm(ValueAmp ~SmsIn+SmsOut+CallIn+CallOut+Internet,
             family = "gaussian", data =training)
summary(model)
preds<- predict(model,training)
errors <- select(
    preds, preds$label, preds$prediction, preds$LINESET,
    alias(preds$label - preds$prediction, "error"))

所以在 R 或 SparkR 中(最好)有一种方法可以很好地估计新值?

首先,您了解了 Spark(R) 线性模型与 R 等工具提供的局部线性模型之间的区别。一般来说,这是近似值(通常使用 [=10= 的某些变体实现)之间的区别]) 与精确解析解。虽然进一步的保证了最佳解决方案,但在大型数据集上使用通常会很昂贵。前者扩展性很好,但仅提供较弱的保证,并且高度依赖于输入参数。

一般情况下,当你使用梯度下降时,你必须调整模型参数。在 SparkR 和线性回归(高斯模型)的情况下,这些是:

  • alpha - 弹性网混合参数
  • lambda - 正则化参数
  • 求解器 - 用于训练模型的精确算法

选择求解器后,还需要调整其余参数,通常使用 hyperparameter optimization 的一些变体。不幸的是,没有通用的方法,很大程度上取决于特定的数据集。

另请参阅: