Objective: Multiclass classification with supervised learning, small dataset (25h)

Context: My dataset is composed of mobile network data collected with a smartphone. The labels correspond to the activity of the user (Stationary, Walk, Subway, Train, Car). My features are calculated based on 3 fields: timestamp, ID, and signal strength (SS). All have different overlapping size windows: 15s, 30s, 602, 90s, 120s. So, I have 3 features based on ID and 16 statistical features based on SS for each window size with a total of 95 features.

My Question: Which feature selection should I use? Am I correct saying the features are not independent?

(I'm using python).

  • $\begingroup$ "Am i correct saying the features are not independent" did you run any tests for independence? When you used your domain knowledge to decide which data to collect, did you consider any dependence of features? Run a feature selection algorithm such as decision tree and see what happens $\endgroup$ Commented Jul 18, 2019 at 18:25

1 Answer 1


My guess would be that the features are highly correlated. Check this. Regarding feature selection, I suggest starting with Logit and Lasso (L1 regulation). This method (Lasso, l1) can „shrink“ features to zero (so kick them out basically). This happens automatically based on feature importance.

Many methods (e.g. Boosting, Neural Nets) allow you to use L1 regularization. So there may be no need to „manually“ select features.

If you want to do that manually, you may use stepwise feature selection, as e.g. described in Introduction to Statistical Learning, Chapter 6.

Here is some Python code from the chapter: https://github.com/JWarmenhoven/ISLR-python

You may also have a quick look at this post related to Lasso: https://datascience.stackexchange.com/a/55702/71442

  • $\begingroup$ I will check it later, ty. Atm i have a Correlation Matrix with Heatmap (towardsdatascience.com/…) and yes, they are very correlated in general. With the correlation to my label > +0.4 for 21 features only. $\endgroup$
    – rmdcunha
    Commented Jul 18, 2019 at 19:23
  • $\begingroup$ Still L1 could handle this. However, my guess would be that you should give Boosting a try. Cheers and happy coding! $\endgroup$
    – Peter
    Commented Jul 18, 2019 at 19:29

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.