I am trying to implement biclustering with Genetic Algorithm. I have read few papers but they didn't mention how they implemented it. All they did just shown the experiments results. I know how to write genetic algorithm but I am stuck at some point where I can't decide what to do next. I have implemented the cheng and church algorithm in matlab and also i know how to write a genetic algorithm.
Now I have two options:
Either generate all the biclusters using cheng and church and then encode the clusters in the form of a string:
10010101010...
(N
+M
)Where string is
N
+M
(N
rowsM
cols of the given matrix) and it will form a single gene for me and then i will do with all the rest of the clusters and will create respective gene of it. Like if I get 100 bi-clusters from the cheng and church algorithm then I encode each bi cluster in the form of10101100101
(InN
rows if a particular row exists I will make it1
and the columnM
which do exists I will make it1
and rest of others as0
) and I will do it for all the biclusters which will form for me a population of 100 genes (or biclusters) withN
+M
(rows and columns in each gene). After doing this I will apply genetic algorithm on it and will evaluate each of the bi-cluster based on the fitness function. This will give me optimal bi-clusters in my set of bi-clustersThe second one is that I don't generate the bi-clusters from the very beginning but I generate it inside the genetic algorithm then evaluate it based on a objective function and if the objective function is met then I save it in the clusters else I reject it.
I am sort of mixed up in these situations that which should I follow. If someone has better and optimal technique or a strategy for doing bi-clustering with genetic algorithm please do share with me or guide me in productive way.