假设我有一个带有列(“类”,“ x”,“ y”,“ z”,“标签”)的数据框,并且我想训练多个SVM,“类”中每个不同的值对应一个”列。实现此目的的一种方法是:
df.select("class").
distinct.
rdd.
collect().
map(x=>x(0)).
map(x=>train(df.where(col("class")===lit(x))))
火车的功能是:
org.apache.spark.mllib.regression.LabeledPoint
使用(“ x”,“ y”,“ z”)
作为功能,“标签”作为SVM标签。org.apache.spark.mllib.classification.SVMWithSGD
训练SVM 问题在于,在这种方法下,Spark会按顺序训练SVM。但是,由于类之间没有数据重叠,因此我想并行地训练它们。有什么办法可以做到这一点?