We use the MD results for these 100,000 molecules as the ground truth for our data-derived density prediction model. For this, we pursue a DNN approach within a feature space of molecular descriptors. We build the DNN model using ChemML , our program suite for machine learning and informatics in chemical and materials research. In this work, ChemML employs the scikit-learn 0.18.2 library for the multi-layer perceptron regressor 1.17.1 and 197 descriptors from Dragon 7 . These descriptors include constitutional indices and functional group counts. If two descriptors are mutually correlated, they are not independent and thus redundant. In the cases where the Pearson correlation coefficient R is > 95%, Dragon removes one of them, i.e., the one that shows more correlation with the rest of the descriptors. (A detailed list of the descriptors is provided in the Supplementary Material.) We apply the grid search method for a coarse optimization of the DNN model hyperparameters. The hyperparameter search space includes a number of activation functions (identity, tanh, rectified linear unit, and logistic), L2 regularization parameters (0.1, 0.01, 0.001, 0.0001, and 0.00001), solvers for the optimization of the weights (sgd and adam), and learning rate types (constant, invscaling, and adaptive). The best model from the hyperparameter optimization features the rectified linear unit as the activation function, 'adam' solver, adaptive learning rate, and an L2 regularization parameter of 0.0001. The final DNN has two fully connected hidden layers with 100 neurons each. For the initial model evaluation, we randomly divide the 100,000molecule data set into 80% training and 20% test set. To assess the learning curve, we evaluate the model performance for incrementally increasing training set size from 0.05% to 100% of the entire data set (i.e., from 50 to 100,000 data points). We apply the bootstrapping method, i.e., for each training set size, we obtain the training set by randomly sampling the entire data set. The remaining data points serve as test set. For every training set size, we repeat the process (with replacement) 50 times, i.e., all 50 repetitions are independent of each other. We subsequently calculate statistics over the results of the 50 models that are based on these training sets for each training set size.