title: Neural Network Ordinal Classification for Age
body: <p>I have created a simple neural network (Python, Theano) to estimate a persons age based on their spending history from a selection of different stores. Unfortunately, it is not particularly accurate.</p>
  
  <p>The accuracy might be hurt by the fact that the network has no knowledge of ordinality. For the network there is no relationship between the age classifications. It is currently selecting the age with the highest probability from the softmax output layer.</p>
  
  <p>I have considered changing the output classification to an average of the weighted probability for each age.</p>
  
  <p>E.g Given age probabilities: (Age 10 : 20%, Age 20 : 20%, Age 30: 60%)</p>
  
  <pre><code>Rather than output: Age 30 (Highest probability)
  Weighted Average: Age 24 (10*0.2+20*0.2+30*0.6 weighted average)
  </code></pre>
  
  <p>This solution feels sub optimal. Is there a better was to implement ordinal classification in neural networks, or is there a better machine learning method that can be implemented? (E.g logistic regression)</p>