[
https://issues.apache.org/jira/browse/FLINK-2157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14618317#comment-14618317
]
ASF GitHub Bot commented on FLINK-2157:
---------------------------------------
Github user tillrohrmann commented on a diff in the pull request:
https://github.com/apache/flink/pull/871#discussion_r34132336
--- Diff:
flink-staging/flink-ml/src/main/scala/org/apache/flink/ml/pipeline/Predictor.scala
---
@@ -172,9 +198,42 @@ object Predictor {
}
}
}
+
+ /** [[EvaluateDataSetOperation]] which takes a [[PredictOperation]] to
calculate a tuple
+ * of true label value and predicted label value, when provided with a
DataSet of
+ * [[LabeledVector]].
+ *
+ * @param predictOperation An implicit PredictOperation that takes a
Flink Vector and returns
+ * a Double
+ * @tparam Instance The [[Predictor]] instance that calls the function
+ * @tparam Model The model that the calling [[Predictor]] uses for
predictions
+ * @return An EvaluateDataSetOperation for LabeledVector
+ */
+ implicit def LabeledVectorEvaluateDataSetOperation[
+ Instance <: Predictor[Instance],
+ Model](
+ implicit predictOperation: PredictOperation[Instance, Model,
FlinkVector, Double])
+ : EvaluateDataSetOperation[Instance, LabeledVector, Double] = {
+ new EvaluateDataSetOperation[Instance, LabeledVector, Double] {
+ override def evaluateDataSet(
+ instance: Instance,
+ evaluateParameters: ParameterMap,
+ testing: DataSet[LabeledVector])
+ : DataSet[(Double, Double)] = {
+ val resultingParameters = instance.parameters ++ evaluateParameters
+ val model = predictOperation.getModel(instance,
resultingParameters)
+
+ testing.mapWithBcVariable(model){
+ (element, model) => {
+ (element.label, predictOperation.predict(element.vector,
model))
+ }
+ }
+ }
+ }
+ }
}
-/** Type class for the predict operation of [[Predictor]]. This predict
operation works on DataSets.
+/** Trait for the predict operation of [[Predictor]]. This predict
operation works on DataSets.
--- End diff --
It is still a type class even though it's using Scala's `trait`.
> Create evaluation framework for ML library
> ------------------------------------------
>
> Key: FLINK-2157
> URL: https://issues.apache.org/jira/browse/FLINK-2157
> Project: Flink
> Issue Type: New Feature
> Components: Machine Learning Library
> Reporter: Till Rohrmann
> Assignee: Theodore Vasiloudis
> Labels: ML
> Fix For: 0.10
>
>
> Currently, FlinkML lacks means to evaluate the performance of trained models.
> It would be great to add some {{Evaluators}} which can calculate some score
> based on the information about true and predicted labels. This could also be
> used for the cross validation to choose the right hyper parameters.
> Possible scores could be F score [1], zero-one-loss score, etc.
> Resources
> [1] [http://en.wikipedia.org/wiki/F1_score]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)