Kmeans and ANN integration

Hi,

I want to create a workflow using kmeans results as one of the imputs of an ANN learner node. Is this possible in knime?

Best Regards

Hi,

Sure thing, just connect the k-means cluster output to the ANN learner input and try to predict the clusters. :)

-E

Hi francefabi,

the simple answer is, yes it is possible, but it remains to be seen whether it makes sense.
An ANN usually requires numerical input features and the kmeans outputs for each row to which cluster it belongs (which is a String and therefore nominal and not numeric).
In order to use those outputs in the ANN learner You will have to encode them as numerical features.
This is usually done via dummy variables, which means that for each possible cluster You have a separate feature that is 1 if the row belongs to the cluster and 0 otherwise.

Note that if the ANN learner accepts nominal inputs, it almost certainly performs the same kind of encoding via dummy variables internally.

Cheers,

nemad

Good point about the dummies, thanks! :)

E

Thanks for your help Nemad. I have one more question. I would like to know if there is another ANN Learner node besides Rprop algorithm.

Best regards

Another possibility is to use a soft clustering algorithm (gmm, …), which produces for each observation a sort of probability per cluster. Now you have your numeric target feature, you only need to choose which cluster you want to set as target.

For semi-supervised learning, you can also use a hard clustering algorithm such as kmeans followed by a decision tree - you’ll need to dummy code the cluster variable and choose your cluster to be explained by the decision tree. The decision tree will tell you what differentiates the cluster from all the others, a nice compliment to a descriptive analysis of the cluster.

Hi francefabi,

there is actually a complete plugin dedicated to deep learning in KNIME, which gives you way more flexibility in training your neural networks. I would recommend to check out https://tech.knime.org/deeplearning4j for more information.

Cheers,

nemad