Normalisation of circular statistics, such as wind direction in degrees, for clustering I have a set of data points each representing a day and a number of features associated with it: temperature, wind speed, wind direction, humidity... etc. Before the analysis, I am meant to normalise the data, however I have trouble dealing with the "wind direction" feature as it is expressed in degrees. Winds blowing at 1° and 359° are almost identical, yet on a graph they are very far apart from each other.
Could anyone suggest a method to overcome this problem? I was thinking of transforming the "degree" feature to a two dimensional feature of "cos(θ)" and "sin(θ)", however that would mean I would have a 2 dimensional vector instead of 1. Any other suggestions would be appreciated. Thanks!
 A: If you only have wind direction, leave your features as angles and model them using a circular distribution such as the von Mises distribution. If you have wind speed as well, why not model the vector of the wind speed and direction?
What is normalizing meant to fix in this case?
A: Interesting question. This is just a off-the-cuff thought, I don't have specific experience that would support it, so take my advice without warranty. But my first thought in approaching the problem might be to convert it into a more course grained 1-of-K encoding of features. 
For example:
feature 1 = 1 if wind is N  (0 otherwise)
feature 2 = 1 if wind is NE (0 otherwise)
feature 3 = 1 if wind is E  (0 otherwise)
And so on...

I could envision maybe 8 features, if you think fine tuned wind direction is important I could envision upping that to 12 or 16 features. 
At least intuitively this makes sense, a warm southerly wind might have different properties than a cold westerly, and this approach would make that distinction easy to learn, and be linearly separable. 
The interaction between sin and cos doesn't give me a warm and fuzzy feeling about how well an algorithm might learn from it.
Some concerns about this approach to think about: it might be increasing the dimensionality of the problem causing some unwanted side effects in learning (especially if you have a small data set). It might also eliminate the finer details that are perhaps important to the problem. 
Make sure to play with some different approaches. Find a decent learning algorithm and hold that static while you play with your input features and see what improves things or otherwise.
Post back here after you do some analysis and let us know what ended up working or not.
