[
https://issues.apache.org/jira/browse/MATH-547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Luc Maisonobe resolved MATH-547.
--------------------------------
Resolution: Fixed
Fix Version/s: 3.0
Assignee: Luc Maisonobe
Fixed in subversion repository as of r1088702.
Thanks to Nate for identifying the problem and thanks to Thomas for providing
the patch
> 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
> Assignee: Luc Maisonobe
> Priority: Minor
> Fix For: 3.0
>
> 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