Appropriate clustering techniques for temporal data? I have temporal data of activity frequencies. I want to identify clusters in the data that indicate distinct periods of time with similar activity levels. Ideally I want to identify the clusters without specifying the number of clusters a priori.
What are appropriate clustering techniques? If my question does not contain enough information to answer, what are the pieces of information that I need to supply to determine appropriate clustering techniques?
Below is an illustration of the kind of data/clustering I am imagining: 
 A: From my own research it seems that Gaussian Hidden Markov Models might be a good fit:
http://scikit-learn.org/stable/auto_examples/plot_hmm_stock_analysis.html#example-plot-hmm-stock-analysis-py
It definitely seems to find distinct episodes of activity.

A: Your problem sound similar to one I'm looking at and this question, which is similar, but less well explained.
Their answer links to a good summary on Change Detection.  For possible solutions, a quick google search found found a Change Point Analysis package on Google code.  R also has some tools for doing this.  The bcp package is pretty powerful and really easy to use. If you want to do it on the fly as data comes in, the paper "On-line changepoint detection and parameter estimation with application to genomic data" describes a really sophisticated approach, though be warned that it's slightly challenging.  There's also the strucchange package, but this has worked less well for me.
A: Wavelets could help you identify periods with different properties. However I'm not sure if there are methods that would divide your timeseries into discrete periods for you. And it seems like there's a lot of theory to wade through, which I'm only at the start of. I look forward to reading other suggestions.. 
A free introductory book chapter on wavelets.
An R package for significance testing with wavelets.
A: Have you seen this page: UCR Time Series Classification/Clustering Page? 
There you can find both: the datasets to practice on and published results - to compare performance of your own implementation (there is a link on known performance of well known machine learning techniques too). In addition, this page is citing a critical mass of papers from which you could go further on with research for the best approach which suits your problem, data, or needs.
Also, there is another way to do that (potentially) by application of sequitur http:// sequitur.info. If you will be able to normalize/approximate your data well, it will give your grammar of those "distinct periods of time with similar activity levels" see this paper and search for another one, cause I am unable to add more links...
A: I think you may use Dynamic Time Wrapping to look for similarities between different time series. In order to do that, you may need to discretize your wavelet into collections, like an array. But the granularity would be a problem and if you have a great number of time series, the computation cost will be pretty big to calculate the DTM distance for every pair of them. So you might need some preselection to work as labels.
Check this out. I m also working on some task like yours and this page helped me some.
