I am playing with features (input data) to improve my model's accuracy.

If I have a raw time-series dataframe, does feature engineering mean extracting properties or characteristics of my raw data and feed it as input? Or will the algorithm learn these from the time-series itself?

In other words, should I create a column that is comprised of the moving average, or will the algorithm pick up on moving average from the raw data?

Is feature engineering just the munging of independent variables? Or is it extracting features that are dependent on other raw data?

Here's another question: If I have a categorical feature, would it be better to have it as a one-hot vector (say, 5 binary inputs), or to have it as one input with range [0,4]?

How does one intuitively know the answer to these questions??

  • $\begingroup$ Your second question looks interesting, I suggest you ask that as a separate question. $\endgroup$
    – akilat90
    Aug 9, 2017 at 12:24

1 Answer 1


I'd say the distinction between engineering and learning is subjective. This is how I differentiate them,

Feature Engineering:

Handcrafting new variables from the existing ones.

eg: BMI, when the weight and the height are available

Feature Learning:

Letting your system figure out what are the best features for the problem at hand.

The wikipedia page is a good resource to read more. There's a huge interest in the field of ML to automatically learn new features and ICLR is a one conference that you may find many directions.


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.