Discussing the article: "Time series clustering in causal inference"

 

Check out the new article: Time series clustering in causal inference.

Clustering algorithms in machine learning are important unsupervised learning algorithms that can divide the original data into groups with similar observations. By using these groups, you can analyze the market for a specific cluster, search for the most stable clusters using new data, and make causal inferences. The article proposes an original method for time series clustering in Python.

Clustering is a machine learning technique that divides a dataset into groups of objects (clusters) so that objects within the same cluster are similar to each other, and objects from different clusters are different. Clustering can help in revealing the data structure, identifying hidden patterns and grouping objects based on their similarity.

Clustering can be used in causal inference. One way to apply clustering in this context is to identify groups of similar objects or events that can be associated with a particular cause. Once data is clustered, relationships between clusters and causes can be analyzed to identify potential cause-and-effect relationships.

In addition, clustering can help identify groups of objects that may be subject to the same effects or have common causes, which can also be useful in analyzing cause-and-effect relationships.

Author: Maxim Dmitrievsky

 

I read before "Matching of deals using clustering" and after - and what is the difference - I did not understand.

From the article it is not clear if there is any effect from clustering, as there is too much randomisation, which makes it impossible to compare results. Why can't you fix seed, or save the sample before clustering, and then run the creation procedure with fixed seed for samples with and without pre-clustering?

I haven't looked at the code - in ONNX all types of clustering can be saved and in MQL5 the generated feature vector will be treated as a cluster without any problems?

 
Aleksey Vyazmikin #:

I read before "Matching of deals by means of clustering" and after - and what is the difference - I didn't understand. The same thing is described, but in slightly different words.

From the article it is not clear if there is any effect from clustering, as there is too much randomisation, which makes it impossible to compare results. Why can't you fix seed, or save the sample before clustering, and then run the creation procedure with fixed seed for samples with and without pre-clustering?

I haven't looked at the code - in ONNX all types of clustering can be saved and in MQL5 the generated vector with features will refer to clusters without problems?

In the first case, the modes are clustered and the bot trades on the selected cluster. In the second case, the bot trades on all clusters, but trades from each cluster are assigned a certain weight.

There is an effect from clustering because the training is better/worse on different clusters.

I don't know about exporting clustering to onnx, I'll have to read about it.

 
Maxim Dmitrievsky #:
In the first case, modes are clustered and the bot trades on the selected cluster. In the second case, the bot trades on all clusters, but trades from each cluster are assigned certain weights.

For some reason I thought that in the first case a separate model for each cluster is created. Then how is the cluster selected?

For the second case I understand - I have not read the previous articles - if briefly - how is the weighting done?

Maxim Dmitrievsky #:
Clustering has an effect because different clusters have better/worse learning.

Well, there are different samples there, in fact....

 
Aleksey Vyazmikin #:

For some reason I thought that in the first case a separate model is created for each cluster. How is the cluster selected then?

In the second case I understand - I haven't read the previous articles - in brief, how is the weighting done?

Well, there are different samples there, in fact....

In the first case, the model is trained for each cluster, yes. The cluster is selected based on the results of trading on the test.

In the second case, clusters are used to filter out bad trades. First the sample is grouped into n clusters, then for each cluster the incorrectly predicted examples are counted and marked as bad. Because the average of the bad examples over several cross-training folds is used, the averages for each cluster are different. So there is a difference between filtering on the whole dataset (as in previous articles) and filtering on each cluster, the difference is in the averages!

 
Aleksey Vyazmikin #:

Well, it's a different sample, basically...

Different samples = different market regimes in terms of volatility. The model is more stable in some than in others. That's for the first case.

In the second case, getting rid of bad trades and trading on all modes.

Since the learning process is automated and randomised, I am not interested in the cluster number and its peculiarities. I am interested in a ready-made TS at the output, which can be chosen from a bunch of different TSs.
 
Maxim Dmitrievsky #:
Because the average of bad examples across multiple cross-training folds is used, the averages for each cluster are different.

Different from the fact that the smaller the sample, the more likely an example is to be resampled?

Maxim Dmitrievsky #:
Different samples = different market modes in terms of volatility. The model works more robustly on some than on others. This is for the first case.

With the first case it is kind of clear - what you have trained on is good and what you have left.

Maxim Dmitrievsky #:
Since the training process is automated and randomised, I am not interested in the cluster number and its peculiarities. I am interested in a ready TC at the output, which can be chosen from a bunch of different TCs.

Selection is always good, but is there a pattern, criteria to detect a relationship between the selected output and real performance outside of the training samples?

 
Aleksey Vyazmikin #:

Different from the fact that the smaller the sample, the more likely an example is to be resampled?

In the first case, it is kind of clear - what we learnt well, we left it at that.

Selection is always a good thing, but is there a pattern, criteria that allow us to find a correlation between the selected result and real indicators outside the training samples?

The criterion of truth is practice )

There is another interesting effect obtained. Both models in the first case are trained with an accuracy of 0.99. This opens the way to calibrating the models and deriving "true probabilities". What I wanted to consider in another article maybe.
 
Maxim Dmitrievsky #:

The criterion of truth is practice )

There is one more interesting effect obtained. Both models in the first case are trained with accuracy 0.99. This opens the way to calibrating the models and deriving "true probabilities". What I wanted to consider in another article maybe.

Write of course, but it is better to be more detailed, because it was difficult to understand without explanations.