Discussion of article "Gradient Boosting (CatBoost) in the development of trading systems. A naive approach" - page 2
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
It's better to ask the developers
I don't like videos, because to get an answer to a specific question you have to listen to a lot of nonsense, and it's not certain that the answer will actually be found. Of course, I read the textual introductory documentation of the developers, but this very nuance on the choice of breakdown based on the histogram they elegantly "jumped", although everything else is quite thorough.
Trees are constructed independently of each other, and then counting is done in leaves (enumerating over the detrended predictors) in such a way that the gradient error is reduced.
When selecting predictors for tree construction and tree splits, random coefficients are used, which makes it possible, in theory, to increase completeness (Recall) and prevent overtraining.
None of this answers the question in any way.
For example, there is a page - https://catboost.ai/news/catboost-enables-fast-gradient-boosting-on-decision-trees-using-gpus
On it is the phrase:
The search for the best split now is just a computation of histograms, shown in figure 6.
This is where the question arises: the computation of histograms is clear, but how to get to the "best split" after it? In any terms: in general words, pseudocode, formula.
None of this answers the question in any way.
For example, there is a page - https://catboost.ai/news/catboost-enables-fast-gradient-boosting-on-decision-trees-using-gpus
It says:
This is where the question arises: the histogram calculation is clear, but how to get to the "best split" after it? In any terms: in general words, pseudocode, formula.
By splitting the data by column, we calculate how much the block on the right and left became cleaner from impurities of another class.
Of all the splits across all columns, the one that gives the best purity is chosen. (Sometimes called as impurity reduction.)
There are different cleanliness/impurity formulas, there is one that improves cleanliness in both blocks at once, there is one that looks for 1 block as clean as possible.
The cleanest division is when only examples of one class are left on the left and the other on the right.
How is random sampling better than a constant?
You can get different number of trades, different combinations of trades over time.
I originally did it for bruteforce.
That's funny, I thought if the expectation is so low, it's a tester grail. I ran it on Saber, on a custom symbol, almost the same result.
Checked 17, similar uptrend, it's draining.
Is it such a lucky piece of history or can you get such a picture for the past years too? I know it's losing on the test, but it was a completely different market there.
This is where the question arises: the histogram calculation is clear, but how to get to the "best split" after it? In any terms: in general words, pseudocode, formula.
I assume that we have a calculation for each split, and then there is a summation of ranges, and we get a matrix from which the largest value is selected - the split accuracy.
In general, their code is open, if you understand C++ well, you can tell the details to everyone interested!
Maxim, thanks for the article!
Does crossvalidation have an effect?
Have you tried to take different returns from a hundred different-period mashes?