Best network structure for unsupervised learning
You are describing a problem that can be solved with Probabilistic Graphical Models (PGMs). PGMs use graphs to expresses the conditional dependence structure between random variables.  

pgmpy is a Python package for PGMs.