How to perform data augmentation with traditional machine learning algorithms? I am currently working on a multi-class image classification project, in which I have to use traditional machine learning and feature extraction methods (no convolutional neural networks).
I know data augmentation is basic step for CNNs, allowing the network to generalize as, at each batch, images are loaded with different transformations (as flipping, rotation, zooming, etc.). However, I am having troubles to imaging it applied to traditional ML algorithms such as SVM or KNN, as they receive all the training examples at once, so these data are in a certain way "static".
Let's say I have 1000 training images.
At this point, I have doubled my training dataset, training my model on both original and flipped images (for a total of 2000 images). What should I do if I also want to use more augmentation techniques, e.g. rotations? Should I further duplicate training images with random rotation (reaching size 3000 or higher), or instead rotate the ones I already have (keeping size 2000), always avoiding overfitting?
Thanks in advance.

Lets have a look at wikipedia.

Data augmentation in data analysis are techniques used to increase the amount of data by adding slightly modified copies of already existing data or newly created synthetic data from existing data.

If you were only to modify your data instead of combining your orginal data with the modified one, you would not be augmenting your dataset. Instead you would merely be preprocessing images.
If you wish to augment your dataset, which often makes sense with images (after all, a car is a car even if sligtly moved to the right), then do combine them.
Further, I do not see how such augmentation should be limited to neural networks.
Note that you can even stack modifications. Given a single image, you could then have:

*

*the original

*the flipped original

*the rotated orginal

*the flipped rotated orginal

*the rotated flipped original

But be aware that some of the augmentation methods do not make any, depending on the dataset (example: rotate a 6 in the EMNIST dataset to become a 9)
