I am working on an unsupervised problem: to take a set of transactional data, and identify anomalous transactions. I am using h2o's auto encoder to train a model which then scores transactions based on MSE / reconstruction error. I am able to achieve good results, in terms of the highest scoring transactions being genuinely anomalous in a business context. However, I think I can do more on the feature engineering side. Are there any general principles which apply to feature engineering on this kind of problem as opposed to a more conventional supervised machine learning problem?
Feature engineering requires domain knowledge. The important general principle is to control for overfitting - if the number of features you are considering is large compared to the dataset then this is a real risk.
There is an alternative to designing features, which is to design a Mercer kernel. That is a function that measures the similarity between two data points (in your case, two transactions). Then you can use a kernel-based learning method, for example a Support Vector Classifier. This is equivalent to learning in a large feature space by Mercer's Theorem, but you don't have to design the features.