Конвертация 7 функций из кода C++ в MQL5

MQL5 Lo demás Conversión C++

Tarea técnica

Необходимо конвертировать функции из кода C++ по этой ссылке в MQL5.

Требуется только математика.

Список функций:

THolder<IBinarizer> MakeBinarizer(const EBorderSelectionType type) {
switch (type) {
case EBorderSelectionType::UniformAndQuantiles:
return MakeHolder<TMedianPlusUniformBinarizer>();
case EBorderSelectionType::GreedyLogSum:
return MakeHolder<TGreedyBinarizer<EPenaltyType::MaxSumLog>>();
case EBorderSelectionType::GreedyMinEntropy:
return MakeHolder<TGreedyBinarizer<EPenaltyType::MinEntropy>>();
case EBorderSelectionType::MaxLogSum:
return MakeHolder<TExactBinarizer<EPenaltyType::MaxSumLog>>();
case EBorderSelectionType::MinEntropy:
return MakeHolder<TExactBinarizer<EPenaltyType::MinEntropy>>();
case EBorderSelectionType::Median:
return MakeHolder<TMedianBinarizer>();
case EBorderSelectionType::Uniform:
return MakeHolder<TUniformBinarizer>();
}

Описание методов можно посмотреть по ссылке.


Результатом работы должны быть такая функция

void Quant (int Type_Quant,int N, 
float  &arr_In[],float &arr_Out[])
{
}
//Type_Quant - выбор метода
//N - максимальное число сплитов
//arr_In - массив с входными данными для поиска сплитов
//arr_Out - массив со значением сплитов

Внимание, ссылки не открываются корректно - нужно убирать адрес портала MQL5.

https://github.com/catboost/catboost/blob/3cde523d326e08b32caf1b8b138c2c5303dc52e5/library/cpp/grid_creator/binarization.cpp

https://catboost.ai/en/docs/concepts/quantization

Визуально это выглядит так - точки данные, а вертикальные линии - сплиты.

Нужно находить значения этих сплитов, можно реализовать по формулам и описанию, что я дал выше, главное, что б результат был такой же, как в CatBoost (как там получить - расскажу).


Han respondido

1
Desarrollador 1
Evaluación
(54)
Proyectos
102
23%
Arbitraje
12
25% / 17%
Caducado
13
13%
Libre
2
Desarrollador 2
Evaluación
(295)
Proyectos
471
39%
Arbitraje
102
40% / 24%
Caducado
78
17%
Ocupado
Ha publicado: 2 ejemplos

Información sobre el proyecto

Presupuesto
50+ USD
Plazo límite de ejecución
de 14 a 30 día(s)