1
$\begingroup$

I'm building a neural network to analyze a business' sales. I'm normalizing all input values to the range {0,1}.

I'm struggling with the day of the week column. Business days are identified by a number ranging {1-5} (1=Monday). Normalizing these values to the range {0,1} is straightforward, but results in a major bias in the final output.

The reason is that the full range of normalized values for the business day column is explored with every week worth of data, whereas other price-related column explore their full range of normalized values infrequently.

The business day column ends up being the largest contributor to the final output.

How can I normalize it to make its contribution more in tune with the rest of the inputs?

$\endgroup$
1
$\begingroup$

It is possible that the other variables you're feeding into the NN are simply bad at predicting sales. Sell prediction is a notoriously hard problem.

Specifically the addressing of mapping a multi-state categorical variable to the NN's {0,1} input range: Another idea is to change that one, 5-state variable into five boolean variables. Rather than {0,0.25,0.5,0.75,1.0} on your one variable, make each of the five boolean variables represent a single day and make [1,0,0,0,0] equal Monday, [0,1,0,0,0] equal Tuesday, etc. I've personally had more success both with training good networks and introspecting the network itself when spreading out states of classes like that.

Other hacks you can try:
* Take out the the 'day' column all together and see if any of the other variables get used.
* Plot the distribution of spend as a function of day. Even if nothing else comes of this current model, it sounds like you've found one interesting insight already.
* Consider also trying different models.

$\endgroup$
2
  • $\begingroup$ Spreading the day column into 5 independent binary output columns is a good idea, thank you. I'm not sure I understand what you mean by plot the distribution of spend as a function of day. $\endgroup$ – bob dope Jan 7 '15 at 2:08
  • $\begingroup$ typo: binary input column. $\endgroup$ – bob dope Jan 7 '15 at 17:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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