【发布时间】:2016-11-22 08:39:11
【问题描述】:
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,"/home/.../neural.txt").toDF()
val splits = data.randomSplit(Array(0.6, 0.4), seed = 1234L)
val train = splits(0)
val test = splits(1)
val layers = Array[Int](4, 5, 4, 4)
val trainer = new MultilayerPerceptronClassifier().setLayers(layers).setBlockSize(128).setSeed(1234L).setMaxIter(100)
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))
我正在使用 MultilayerPerceptronClassifier 在 Spark 中构建神经网络。我得到了 62.5% 的准确率。为了获得良好的准确性,我应该更改哪些所有参数?
【问题讨论】:
-
...一些代码,到目前为止你尝试了什么,你的设置是什么?
-
我已编辑帖子。请检查
-
这个问题太笼统了:我们不知道数据,我们不知道你在做什么。请再写一遍,补充一些细节
-
我建议您参加一些有关神经网络的课程,以了解参数调整的含义以及您应该如何解释准确性。如果您需要一些帮助,您需要定义数据集中的内容、您希望实现的目标、您使用的哪些机器学习算法导致您不得不使用神经网络等。
标签: apache-spark machine-learning neural-network precision apache-spark-mllib