I am using SVM regressor models to fit some chemical data related to spectroscopy (I cannot say exactly what data because it is an ongoing research in my group). To combat overfitting, I have used 5-fold cross validation to optimise the hyperparameters with SVM (and other models). The best result is given by SVM.
However, if you look at the plot of SVM predictions vs true values, it looks suspiciously like a case of overfitting.
The hyperparameters that I got after optimizing the average 5-fold cross-validation error are C=1000
and gamma=0.0001
for SVM (I am using scikit-learn). From what I can understand, high value of C and low value of gamma means SVM is going to learn every minute detail from the dataset.
I also had an additional holdout test set (apart from the cross-validation) where I got slightly higher error.
I have two related questions:
- Does this look like a case of overfitting? Are there additional tests I can do to check?
- Can overfitting happen even with using cross-validation for hyperparameter optimisation?