This is my first post and I am a beginner.

I am working on a dance recognition project, where I collected skeletal data from one dancer performing 5 different gestures. My goal is to detect any pre-trained gesture that take place during a long performance, so that i can instantly trigger corresponding visual effect.

My training+validation data consists of 5 labels (gestures), performed 20 times per gesture: 100 trials in total. Each trial is composed of 25 columns/features (e.g. angles between bones, distance between joints, etc.) and and each column is around 30 time samples long (each trial duration is around 1 sec. and kinect provides data at 30Hz). I am using Continuous HMM module of GRT (Gesture Recognition Toolkit).

My Goal is to reduce dimensionality by kicking out less significant features. I could manage to do correlation analysis, but would love to learn how to extract feature importance in case of a much more complex future scenario.

Any example that I found is instance-based; any row is an instance/observation/sample which have single value for each feature and a class label. In my case any single observation (trial as I previously named) consists of one class label and multiple 30 sample-long time-series.

Is there any similar example, or can anyone recommend an approach so that I can apply any of the methods RFE, RandomForest, XGBoost etc. to retrieve feature importances?


1 Answer 1


I don't know what language you are working with, but in R and Python sklearn you have a feature called 'Feature importance' that ranks the variables in you random forest models by importance. This also works for time series data Have might want to have look at that:




(another possibility would be to use Principal Component Analysis (PCA) but this is way more complicated and you loose the interpretability of your variables so I would stick to feature selection).

  • $\begingroup$ Thank you very much for your answer. I am aware of the scikit example and planning to use it! However, my question is indeed how to get my data (which is in the matrix form of 25x30 (25 skeletal angles x 30 instances/timestamps/samples) into a similar one row form. 'Vectorization' may be the word for it?! Does it make sense if i calculate the correlation matrices for each sample matrix, write the coefficients of the upper (or lower) half side by side as to be vectors and feed the scikit plot_forest_importances example with them? (sorry for the untidiness, android app is giving me a hard time : $\endgroup$
    – toprak
    Jul 21, 2018 at 16:28

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.