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%的准确率。我应该改变所有参数以获得良好的准确度?
答案 0 :(得分:2)
正如有些人所说的那样,这个问题过于宽泛,没有更多细节就无法回答,但有些建议(与使用的模型/算法或实施它们的工具和库无关)将是:
不一定按此顺序,但这可以帮助您确定是否有欠装,过度拟合,如果您需要更多的训练数据,添加或删除功能,添加正则化等等。总之,执行机器学习调试。
希望有所帮助,您可以在Andrew Ngs系列视频中找到更多有关此内容的详细信息,从此开始: https://www.youtube.com/watch?v=qIfLZAa32H0