首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何分类新的培训例子后,模型培训的apache火花?

如何分类新的培训例子后,模型培训的apache火花?
EN

Stack Overflow用户
提问于 2016-03-14 22:01:46
回答 1查看 1.1K关注 0票数 2

阅读https://spark.apache.org/docs/1.5.2/ml-ann.html的src:

代码语言:javascript
复制
import org.apache.spark.ml.classification.MultilayerPerceptronClassifier
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.sql.Row

// Load training data
val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_multiclass_classification_data.txt").toDF()
// Split the data into train and test
val splits = data.randomSplit(Array(0.6, 0.4), seed = 1234L)
val train = splits(0)
val test = splits(1)
// specify layers for the neural network: 
// input layer of size 4 (features), two intermediate of size 5 and 4 and output of size 3 (classes)
val layers = Array[Int](4, 5, 4, 3)
// create the trainer and set its parameters
val trainer = new MultilayerPerceptronClassifier()
  .setLayers(layers)
  .setBlockSize(128)
  .setSeed(1234L)
  .setMaxIter(100)
// train the model
val model = trainer.fit(train)
// compute precision on the test set
val result = model.transform(test)
val predictionAndLabels = result.select("prediction", "label")
val evaluator = new MulticlassClassificationEvaluator()
  .setMetricName("precision")
println("Precision:" + evaluator.evaluate(predictionAndLabels))

一旦对模型进行了培训,如何对一个新的培训示例进行分类?

如果没有设置标签,并且分类器将尝试根据培训数据对此培训示例进行分类,那么可以将一个新的培训示例添加到model中吗?

为什么要求dataframe标签类型为Double?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-14 23:22:56

首先,向模型添加另一个观察的唯一方法是将该数据点合并到培训数据中,在这种情况下,将其添加到train变量中。为了实现这一点,您可以将该点转换为DataFrame (显然只有一条记录),然后使用unionAll方法。不过,您必须使用这个新的数据集重新培训模型。

但是,要使用模型对观测数据进行分类,您必须将未分类的数据转换为具有与培训数据相同结构的DataFrame。然后使用模型的transform方法。顺便说一句,请注意模型有这个方法,因为它们是Transformer的子类。

最后,您必须使用Double,因为这是定义LabeledPoint类的方式。它接收Double作为标签,SparseVectorDenseVector作为特性。我不知道确切的动机,但根据我自己的经验(并不广泛),所有的classification回归算法都与浮点numbers.Furthermore、梯度下降算法(广泛用于拟合大多数模型)一起工作,在每次迭代中使用数字而不是字母或类来计算误差。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35998935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档