[ https://issues.apache.org/jira/browse/FLINK-2379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15046608#comment-15046608 ]
ASF GitHub Bot commented on FLINK-2379: --------------------------------------- Github user chiwanpark commented on the pull request: https://github.com/apache/flink/pull/1032#issuecomment-162821875 How about base class with declaration of the both statistics values and child class with the implementation of that values? ```scala abstract class FieldStats { // statistics values for discrete fields def entropy: Double = throw NonImplementedError("entropy cannot be accessed for continuous fields") def gini: Double = throw NonImplementedError("gini cannot be accessed for continuous fields") def categoryCounts: Map[Double, Int] = throw NonImplementedError("categoryCounts cannot be accessed for continuous fields") // statistics values for continuous fields def max: Double = throw NonImplementedError("max cannot be accessed for discrete fields") def min: Double = throw NonImplementedError("min cannot be accessed for discrete fields") def mean: Double = throw NonImplementedError("mean cannot be accessed for discrete fields") def variance: Double = throw NonImplementedError("variance cannot be accessed for discrete fields") } class DiscreteFieldStats( private val counts: Map[Double, Int] ) extends FieldStats { override lazy val entropy = // calculation of entropy override lazy val gini = // calculation of gini override lazy val categoryCounts = // calculation of categoryCounts override def toString = // implementation of toString } class ContinuousFieldStats( override val max: Double, override val min: Double, override val mean: Double, override val variance: Double ) extends FieldStats { override def toString = // implementation of toString } ``` If a user calls some non-implemented methods in the derived classes, `scala.NotImplementedError` will be raised. Additionally, we can calculate all values (including gini and entropy) once in constructor with this approach. > Add methods to evaluate field wise statistics over DataSet of vectors. > ---------------------------------------------------------------------- > > Key: FLINK-2379 > URL: https://issues.apache.org/jira/browse/FLINK-2379 > Project: Flink > Issue Type: New Feature > Components: Machine Learning Library > Reporter: Sachin Goel > Assignee: Sachin Goel > > Design methods to evaluate statistics over dataset of vectors. > For continuous fields, Minimum, maximum, mean, variance. > For discrete fields, Class counts, Entropy, Gini Impurity. > Further statistical measures can also be supported. For example, correlation > between two series, computing the covariance matrix, etc. > [These are currently the things Spark supports.] -- This message was sent by Atlassian JIRA (v6.3.4#6332)