# unsupervised anomaly detection on sparse data

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.