2
$\begingroup$

I am building CNN and SVM models which take in MFCC features as input. The MFCC matrices shape is (13, n). The 13 rows are coefficients and n columns represent n time frames. So each row in the matrix is a representation of the value of the particular coefficient over different time frames. I am not sure how to normalise this matrix. Should it be rowwise (normalize a single coefficient over all the time frames) or columnwise (normalize all the coefficients in a single time frame).

[
  [1.08,  8.97, 78.7, ........],
  [1.08,  8.97, 78.7, ........],
  [1.08,  8.97, 78.7, ........],
   .
   .
   .
  [19.8,  7.65, 76.5, ........]
]

Currently I am using Normalize from sklearn, but I am not sure if its the right thing to do.

$\endgroup$
4
  • $\begingroup$ I think the usual representation of time series data is the following: Rows representing time step and columns represent features. $\endgroup$
    – shepan6
    Sep 7, 2020 at 8:36
  • $\begingroup$ True, so do I normalise across timesteps or across features? Each row in my data set ia a 2d matrix as stated above. $\endgroup$
    – user75252
    Sep 10, 2020 at 18:13
  • $\begingroup$ I would normalise over the features because you want to reduce the overall range of feature values. $\endgroup$
    – shepan6
    Sep 10, 2020 at 18:32
  • $\begingroup$ It makes sense in a normal data setting. But here if we normalise the features over a single timeframe, we may lose information regarding how each feature changes over time. Example, lets say feature 2 changes from value 1 to value 2 in 2 consecutive timeframes, after normalising the features in each timeframe, the new values maybe 0.75 and 0.5 (since the new values of this feature depend on the max and min values of other features in their corresponding timeframe). $\endgroup$
    – user75252
    Sep 10, 2020 at 18:47

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.