Implementing the joining of iSAX indexes
For the implementation of the iSAX index join, we are going to assume that we have two iSAX indexes ready to be used saved in two separate Python variables, and continue from there. We are going to need a Python function that accepts two iSAX indexes and returns a list of Euclidean distances, which are the nearest neighbors of all subsequences in both time series. Keep in mind that if a node from one of the iSAX indexes does not match the other iSAX index, then that node, and as a consequence its subsequences, is not going to get processed. Therefore, the list of Euclidean distances might be a little shorter than expected. That is the main reason why we must not use unnecessarily big iSAX parameters. Put simply, do not use 16 segments when 4 segments can do the job.
Additionally, keep in mind that the real nearest neighbor of a subsequence might not be located in the terminal node with the same SAX representation – this is the price...