[
https://issues.apache.org/jira/browse/MATH-547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13015351#comment-13015351
]
Gilles commented on MATH-547:
-----------------------------
I'm not familiar with the code; so please go ahead with the changes if they are
satisfactory to you.
> KMeansPlusPlusClusterer should not call equals()
> ------------------------------------------------
>
> Key: MATH-547
> URL: https://issues.apache.org/jira/browse/MATH-547
> Project: Commons Math
> Issue Type: Improvement
> Affects Versions: 3.0
> Reporter: Nate Paymer
> Priority: Minor
> Attachments: MATH-547.patch
>
>
> In determining whether the clusters have changed between iterations, the
> KMeansPlusPlusClusterer currently calls equals to determine whether the
> cluster centers have changed. It would be better to avoid relying on equals
> by instead checking whether any points have moved between clusters.
> equals can be problematic because floating point operations are not strictly
> commutative or associative, so getCentroid may return slightly different
> values even when called with the same set of inputs. Additionally, the
> client may choose not to override equals at all, since it's not clear that
> it's required.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira