Pretty useful project you have here, I haven't read the
clustering algorithms yet but have used it (with
ecological similarity indexes among samples!).
Hierarchical clustering makes that a LOT more useful,
so thank you very much :)
This patch adds a topological output to
Cluster(.topology()) and a respective method to
BaseClusterMethod(.topo()). It also changes .data()
behavior to avoid the .data() idiom.
Feeding the output of .topo() to
8 -----+ |
# --+ |
w --+ | |
Regarding the .data() change:
* I think it'd be better to keep two different
datasets (.raw and .data?), because both states (flat
and clustered) are pretty different beasts.
* Perhaps having .data() "contents" stored as
.data would make things easier (in a "why call a method
with no parameters, that returns an object" way :)).
Making .data a property would keep current behavior and
require less ()s :)
I'm working on an advanced version of the topological
view and on a derivative of that printing recipe for my
own needs, but will forward them here when done.