My data is a set of about 1 million training examples, where each example is represented by about 2000 boolean features. Examples aren't labelled - it wouldn't really have any meaning in this domain. The features fully define the example. My goal is to learn a generative model that I can use to generate more examples. I would like to capture some of the dependencies between the features (e.g. if feature 10 is on, feature 14, 15, and 16 are usually on).
I don't have much background in ML, so I'm not sure what a simple way to do this would be (both algorithms and software packages). My initial thought was to find a structure learning package to learn a Bayesian network and then sample from it, but I figured I'd ask here to see if anyone had any recommendations.