我尝试将xgboost4j与spark 2.0.1和Dataset API结合使用。到目前为止,我通过使用<代码>模型获得了以下格式的预测。转换(测试数据)
predictions.printSchema
root
|-- label: double (nullable = true)
|-- features: vector (nullable = true)
|-- probabilities: vector (nullable = true)
|-- prediction: double (nullable = true)
+-----+--------------------+--------------------+----------+
|label| features| probabilities|prediction|
+-----+--------------------+--------------------+----------+
| 0.0|[0.0,1.0,0.0,476....|[0.96766251325607...| 0.0|
| 0.0|[0.0,1.0,0.0,642....|[0.99599152803421...| 0.0|
但是现在我想生成评估指标。如何将预测映射到正确的格式?DMLC在Spark-1.6.1上的XGBost-4j提出了一个类似的问题,但我无法让它为我工作。
val metrics = new BinaryClassificationMetrics(predictions.select("prediction", "label").rdd)
would require RDD[(Double, Double)]
而不是预测。选择(“预测”,“标签”),如下所示
root
|-- label: double (nullable = true)
|-- prediction: double (nullable = true)
尝试将其映射到所需的元组,例如:
predictions.select("prediction", "label").map{case Row(_) => (_,_)}
也无法正常工作。
在sparks文档中阅读更多内容http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.ml.evaluation.BinaryClassificationEvaluator它支持ml而不是ml库,例如数据集。到目前为止,我无法成功地将xgboost4j集成到管道中。
这里有一个很好的例子https://github.com/dmlc/xgboost/blob/master/jvm-packages/xgboost4j-example/src/main/scala/ml/dmlc/xgboost4j/scala/example/spark/SparkModelTuningTool.scala如何在spark管道中使用xgboost4j。事实上,他们有一个XGBoostEstimator,它在管道中发挥了很好的作用。
我是java初学者,遇到过这个错误。 但是错误指向了+号,这是怎么了?上面写着发现:双倍。但我希望我的输出是双倍。但它说作为必需的int。
问题内容: 我的朋友正在尝试将某种计算作为上课的一项任务,但他遇到了一些麻烦…希望您能为他提供帮助。 问题在于他从用户那里得到了一个int的输入(这必须是任务的一部分)。他正在尝试在下面的代码中将其转换为double,但这是行不通的。无论如何结果都是int。 如果您需要更多说明,我会请他提供。提前致谢! 问题答案: 您必须将一个(或两个)参数传递给除法运算符: 由于您两次执行相同的计算,因此建议您
我在尝试从txt文件中读取字符串和Double时遇到了一些麻烦。这是我的txt文件: 下面是我用来阅读它们的代码: 每当我运行此代码时,线程“main”java.util.InputMisMatchException中会出现
问题内容: 我创建游戏的目的很有趣,但是我仍然想认真对待它,它是一个托管各种测试的网站。通过这些测试,我希望收集统计数据。 其中一些数据将包括测试定时完成的百分比。我可以轻松计算出测试的百分比,但是当我存储有关测试完成的各种不同值时,我希望返回真实数据。 大多数值都是PHP浮点数,所以我的问题是,如果我想要真实的统计数据,应该将它们以FLOAT,DOUBLE或DECIMAL的形式存储在MYSQL中
问题内容: 码: 忽略字符串中的其他内容(最小,最大和范围),但对于此行, 我收到一个错误: 必需:double [] 找到:无参数 为什么会出现此错误,我应该更改什么? 问题答案: 您以这种方式调用方法calculateAverage :,不带任何参数。但是方法是这样声明的: 因此,它需要一个type类型的参数,但是您什么也不传递。
描述 (Description) C库函数double fmod(double x, double y)返回x的余数除以y 。 声明 (Declaration) 以下是fmod()函数的声明。 double fmod(double x, double y) 参数 (Parameters) x - 这是具有除法分子iex的浮点值 y - 这是具有除法分母iey的浮点值 返回值 (Return Va