You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Chen Tao (Jira)" <ji...@apache.org> on 2020/03/09 17:39:00 UTC
[jira] [Updated] (MATH-1520) A interface to implements various of
clusters internal measurers
[ https://issues.apache.org/jira/browse/MATH-1520?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chen Tao updated MATH-1520:
---------------------------
Description:
There are many clusters evaluation algorithm:
[scikit-learn clustering-performance-evaluation|https://scikit-learn.org/stable/modules/clustering.html#clustering-performance-evaluation]
They can be divided into 2 categories: “External Measurers” and "Internal Measurers".
The "ClusterEvaluator" declaration is much fit "Internal Measurers", but it is a abstract class and have some useless default properties and methods.
The "ClusterRanking" is design with "The higer rank the better", disobey the origin reference paper(e.g. "Davies-Bouldin Index"), what may mislead who want to compare the score between different ML libraries.
As opposed to “External Measurers”, the "Internal Measurers" may be:
{code:java}
public interface ClusterInternalEvaluator {
/**
* @param cList List of clusters.
* @return the score attributed by the evaluator.
*/
<T extends Clusterable> double score(List<? extends Cluster<T>> cList);
/**
* @param a Score computed by this evaluator.
* @param b Score computed by this evaluator.
* @return true if the evaluator considers score {@code a} is
* considered better than score {@code b}.
*/
boolean isBetterScore(double a, double b);
{code}
was:
There are many clusters evaluation algorithm:
[scikit-learn clustering-performance-evaluation|https://scikit-learn.org/stable/modules/clustering.html#clustering-performance-evaluation]
They can be divided into 2 categories: “External Measurers” and "Internal Measurers".
The "ClusterEvaluator" declaration is much fit "Internal Measurers", but it is a abstract class and have some useless default properties and methods.
The "ClusterRanking" is design with "The higer rank the better", disobey the origin reference paper(e.g. "Davies-Bouldin Index"), what may mislead who want to compare the score between different ML libraries.
As opposed to “External Measurers”, the "Internal Measurers" may be:
{code:java}
public interface ClusterEvaluator {
/**
* @param cList List of clusters.
* @return the score attributed by the evaluator.
*/
<T extends Clusterable> double score(List<? extends Cluster<T>> cList);
/**
* @param a Score computed by this evaluator.
* @param b Score computed by this evaluator.
* @return true if the evaluator considers score {@code a} is
* considered better than score {@code b}.
*/
boolean isBetterScore(double a, double b);
{code}
> A interface to implements various of clusters internal measurers
> ----------------------------------------------------------------
>
> Key: MATH-1520
> URL: https://issues.apache.org/jira/browse/MATH-1520
> Project: Commons Math
> Issue Type: New Feature
> Reporter: Chen Tao
> Priority: Critical
>
> There are many clusters evaluation algorithm:
> [scikit-learn clustering-performance-evaluation|https://scikit-learn.org/stable/modules/clustering.html#clustering-performance-evaluation]
> They can be divided into 2 categories: “External Measurers” and "Internal Measurers".
> The "ClusterEvaluator" declaration is much fit "Internal Measurers", but it is a abstract class and have some useless default properties and methods.
> The "ClusterRanking" is design with "The higer rank the better", disobey the origin reference paper(e.g. "Davies-Bouldin Index"), what may mislead who want to compare the score between different ML libraries.
> As opposed to “External Measurers”, the "Internal Measurers" may be:
> {code:java}
> public interface ClusterInternalEvaluator {
> /**
> * @param cList List of clusters.
> * @return the score attributed by the evaluator.
> */
> <T extends Clusterable> double score(List<? extends Cluster<T>> cList);
> /**
> * @param a Score computed by this evaluator.
> * @param b Score computed by this evaluator.
> * @return true if the evaluator considers score {@code a} is
> * considered better than score {@code b}.
> */
> boolean isBetterScore(double a, double b);
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)