As highlighted in the AlkEthOH example above, the stochastic removal of decorators could cause potential problems when trying to make generally applicable SMIRKS patterns. A first step to improve this over training would be to split clusters into training and test groups. The Reducer could be used multiple times on the training set, but only the final sets of SMIRKS which also kept appropriate clustering in the test set would be considered for further use. An approach that would require an overhaul of the Reducer code would be to take a more deterministic approach where decorators are compared between the levels of the hierarchy. This would be simple especially for the and'd decorators, if the same are used in multiple levels at the top of the hierarchy then they are not helping to distinguish those levels. A deterministic approach for the or'd decorators would require comparing multiple sets of decorators and is less obvious. We could also consider untagged atoms more carefully. If they are the same for multiple clusters then they can be removed. When ChemPer adds a layer it adds all atoms in that layer, however we may only require one of those atoms to identify the important chemistry in a cluster of fragments. For example, consider the hydrogen Lennard-Jones parameters which are affected by the number of electron withdrawing groups attached to their carbon atom. When we want the cluster with only one electron withdrawing group, the other untagged atoms attached to the carbon are not necessary for separating this group from the others. The untagged atoms not representing the electron withdrawing group can be removed. We should be able to automatically detect that these are not the distinguishing features between clusters.