Given that I have a very sparse data matrix with continuous features, like this dataframe for example
Feature_A Feature_B Feature_C....Feature_Z
0.3 0 0.1 0
0.5 0.5 0 0
0 0 1.0 0
1.0 0 0 0
0.7 0 0 0
1.0 0 0 0
0.1 0 0.22 0.43
what is the best way to perform unsupervised anomaly detection on this kind of data? my initial idea was to perform some kind of dimensionality reduction first (e.g SVD or NMF) then do a simple anomaly detection technique on the resultant dense matrix (e.g Isolation Forest) but I'm not sure this is the best way to go.