Clustering hetrogeneous data types: ordinal, interval Say I have data that I'd like to cluster that has different dimensions that are of different data types. For example:


*

*ordinal: You mood today: Very happy, happy, neutral, sad, very sad

*Ratio: Age: ...

*Interval: Weight: 100-120, 121-180, 181-200, 201-600


Is there an accepted step wise procedure to normalizing the data before I can cluster it.
Thanks.
 A: Handling mixed type of data is unfortunately not well supported in tools.
There are two common approaches:
A) encode the data numerically. E.g. red -> (1,0,0), blue -> (0,1,0), green -> (0,0,1)
B) use a method that can work with arbitrary distance functions (e.g. hierarchical clustering, DBSCAN, OPTICS), and use a distance function that supports mixed type of data, such as Gower's similarity coefficient
I'm not convinced of either approach. There is also
C) carefully evaluate how to measure similarity. Define a custom similarity well tailored to your problem (this may involve user input on what is "more similar" than other - see metric learning!)
this supposedly will give you the best results, but is much more difficult, and cannot be automated well.
A: For most cluster algorithms you have to use a proper metric that cover your data. It does not matter the type of the data if you have an appropriate metric.
Something you can do is to represent each feature as a real number and then use the L2 metric, but you have to calibrate if you want a linear progression or not. 
For example: 


*

*For mood, use 0=very sad, 1=sad, ..., 3=happy, 5=very happy

*Age: use the age in years

*Interval: use the mean of each interval.


And then you can normalise everything (that will make it irrelevant if you have used a step of 1 or 10 for your mood scale) and use a cluster algorithm with a L2 metric (for example k-Means). 
