Help in implementing self organizing map for quantizing time series based on a paper

by Srishti M   Last Updated April 18, 2018 01:19 AM

Chapter titled, Self Organized Partitioning of Chaotic Attractors for Control in Lecture Notes in Computer Science in book: Artificial Neural Networks — ICANN 2001, pp.851-856

uses multiple self organizing map to quantize time series. The Authors then use the codebook to assign symbols. A codebook of k prototypes, best representing the data, is first designed. I am having difficulties in implementing the self organizing map as I do not understand how the quantization is being performed -- specifically what is the input to the SOM and how the output is used to assign symbols.

For my case, the data consists of N sensor variables (electrodes) : X = {x_i(t)} for i =1:N and t = 1:T number of time series. Then a new time series is compared / matched using the symbols representation. COuld somebody please explain illustrating with only a single SOM map and then I can apply it to multiple SOM maps.

An explanation with a code would be really helpful. My understanding is that the input to SOM would be X and after training using LBG the codebook is assigned. The codebook for SOM is the weight. Any toy example would be very useful to understand the concept. Thank you.

Answers 1

Looking through that paper, it does not seem clear what features they are using as input. However, a related paper gives some indication of a technique they used with multi SOM. They implemented 19 different frequency domain, time domain, or phase space transformations, then used some method to narrow it down to a subset of those features that were used. They described their approach to feature engineering more specifically than the paper listed in the question, but I think it leaves plenty of questions.

Scherbart, A. and Goerke, N. Unsupervised System for Discovering Patterns in Time-Series

If you have moved past the feature engineering issue already, then the question must be a general one about SOM. I'd say the usual approach is to use time windows, so you may use the features from each time window as the input vectors. The codebook that you're creating is in the same feature space as the input. The codebook is made of codebook entries, one for each cell. If you compare any input to the codebook, the codebook entry that most closely matches the input is the winner. To label the map, you can show a set of inputs with known labels, then see which labels are mapped to which cell, i.e. the labels that correspond to the winning data for each cell.

Tom Anderson
Tom Anderson
November 26, 2016 06:41 AM

Related Questions

Differences between t-SNE and SOM

Updated November 23, 2018 13:19 PM