Data augmentation techniques for general datasets? In many machine learning applications, the so called data augmentation methods have allowed building better models. For example, assume a training set of $100$ images of cats and dogs. By rotating, mirroring, adjusting contrast, etc. it is possible to generate additional images from the original ones.
In the case of images, the data augmentation is relatively straightforward. However, suppose (for example) that one has a training set of $100$ samples and few hundred continuous variables that represent different things. The data augmentation does not anymore seem so intuitive. What could be done in such case?
 A: I understand this question as involving both feature construction and dealing with the wealth of features you already have + will construct, relative to your observations (N << P).
Feature Construction
Expanding upon @yasin.yazici's comment, some possible ways to augment the data would be:


*

*PCA

*Auto-encoding

*Transform's such as log, powers, etc.

*Binning continuous variables into discrete categories (i.e., continuous variable is 1 SD above mean, 1 below mean, etc.)

*Composite variables (for example, see here)


I'm sure there are many more I'm missing.
Feature Selection / Dimensionality reduction
You may reduce dimensionality with techniques such as PCA (although perhaps not after augmenting your data with PCA variables).  Alternatively, you may use algorithms that perform feature selection for you, such as lasso, random forest, etc.
A: I faced a similar problem where in I wanted to augment unlabelled numeric data. I augmented data in the following way: (Say I have a data set of size 100*10.)


*

*Create a list by randomly sampling values from {0,1}, such that the number of zeros are less than the number of 1s,say the proportion of 0s is 20% in this case. So one will have a list of 0s and 1s of length 100.

*Use this list as a dependent variable and passed it into smote to generate more data points. (Here smote would generate points on the edges connecting the data points which correspond to 0s in the list generated).

*Repeat this process until data set of required size is obtained.

