初始化spark中svm的权重



我正试图为spark中的SVM初始化分配自己的权重。但是在训练模型之后,我得到了错误的预测值。如果我使用默认的,即不提供初始权向量,我得到一个很好的预测模型。

我检查了代码在github,但无法弄清楚如何初始化是完成的,以防我们不传递任何东西。https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/mllib/classification/SVM.scala。

有什么建议吗?

编辑:我没有scala的经验

SVMWithSGD继承了GeneralizedLinearAlgorithmrun方法。如果未提供权重向量,则使用0向量对其进行初始化:

val initialWeights = {
  if (numOfLinearPredictor == 1) {
    Vectors.zeros(numFeatures)
  } else if (addIntercept) {
    Vectors.zeros((numFeatures + 1) * numOfLinearPredictor)
  } else {
    Vectors.zeros(numFeatures * numOfLinearPredictor)
  }
}

最新更新