The Hierarchical Cluster Assigner node cannot update the number of clusters without having to re-run the entire component?

Hello everybody,

I’m trying to create a component to perform hierarchical clustering. My idea is to perform the hierarchical clustering once and then use the interactive view to adjust the number of clusters without recomputing the clustering (that is the main idea behind the development of the Hierarchical Cluster Assigner node).

Currently there are 2 nodes to apply the hierarchical clustering:

  • The “Hierarchical Cluster Assigner” (contained in KNIME JavaScript Views (Labs))
  • The “Hierarchical Cluster Assigner (local)” (contained in KNIME Distance Matrix)

Hierarchical Cluster Assigner

First I have tried to use “Hierarchical Cluster Assigner” as it has the advantage of providing the dendrogram in the interactive view and it has a specific option to change the number of clusters directly from the interactive view. Anyway it seems that it cannot be used for the above mentioned purpose.

  1. If I use the the specific option to change the number of clusters directly on the interactive view, the result is that the whole component is re-run, including the Hierarchical Cluster (DistMatrix) node that can be very time consuming.
  2. If I use a refresh button from the interactive view to re-run only the portion of the component workflow after the Hierarchical Cluster (DistMatrix) node, the result is that somehow the Hierarchical Cluster Assigner doesn’t update the number of clusters, even if the variable on which it relies is updated (“number_of_clusters_to_apply”). (please see attached example workflow)

Hierarchical Cluster Assigner (local)

I also tried to use also the “Hierarchical Cluster Assigner (local)” and in this case the refresh button option works well but unfortunately this nodes does not show the dendrogram in the interactive view.


Is this a current limitation of the Hierarchical Cluster Assigner node or am I missing something?
This case can be tested in the attached example workflow.

Any feedback on this is welcome.
Best,
Gio

non-local_cluster_assigner_refresh_button_problem.knar.knwf (104.0 KB)

1 Like

Hi @gcincilla

I’m facing the following problem in both components with the workflow you have posted:

I cannot completely run it because the last -GroupBy- node fails. When I open it, it is really bizarre: it doesn’t show any columns whereas if I take a fresh -GroupBy- node from the node repository, it does show all the columns. The problem is that given this issue, I cannot proceed further within the execution.

Could you please advise or show us (snapshots) the -GroupBy- configuration to amend the workflow and proceed further?

Best,
Ael

Hi @aworker,
Thanks for your answer. That’s strange. Does it happens also in the second component? Meaning the one including the Hierarchical Cluster Assigner (local) node?
Anyway, the only thing the GroupBy node does is to group by “Cluster number”. It’s just a dummy example to show the number of clusters cannot be updated from the interactive view.
Anyway, here you have the configuration:

@aworker, thanks again for your help.
(I had already thought about splitting the component in 2 but that it’s not my point here. I have to correct about what you say respect the Refresh button, as it is specifically designed to re-run only the node connected to it and their downstream nodes, but not the upstream ones! You can see this in my second component “my clustering (using LOCAL cluster assign)”. There the refresh button work as expected.)


My point in the “my clustering (using NON-LOCAL cluster assign)” component is that even if the component is re-run upon changing the number of cluster from the interactive view, the new number of clusters is not applied by the “Hierarchical Cluster Assigner” (the non-local one) as it happens for the “Hierarchical Cluster Assigner (local)” node.
I don’t know if this is a bug or the expected behaviour of that node (that it’s still on “Labs” repo) but I want the KNIME developers to be aware of this and eventually get their feedback.
Cheers,
Gio