I've read some papers that employ machine learning methods to analyse
gene expression network.
Don't pay attention to them - they may each produce meaningless results.
As always, what one must remember is that network analyses are [mostly] fundamentally based on correlation. Correlation is not necessarily representative of underlying biology. Correlation is also affected by numerous factors pertaining to your data's distribution and any transformations applied to it.
Other methods may be based on Euclidean [or other] distances between your entities being analysed, but in this sense they are just as good as hierarchical clustering. Community / module detection algorithms may then just merely 'walk' along the tree structure and identify modules in this way. Most networks are therefore alternate representations of dendrograms. If you want to add 'machine learning' to this, then just bootstrap the clustering and/or module detection part and then slap the 'machine learning' label onto it.
WGCNA is common; however, other network analysis tools exist at which you could look include STRINGdb, iGraph, and CytoScape. You may also be interested in CGBayesNets, developed by a colleague of mine.
Finally, you could read this interesting manuscript: Gene co-expression analysis for functional classification and gene–disease predictions.