У вас есть несколько возможностей,
Добавление новых функций, кодирующих то, что вы хотите сказать
Вы можете задать третью функцию, которая представляет собой линейную, полиномиальную или логическую комбинацию функций A и B, и надеяться, что система сама все поймет. Для этого sklearn предлагает класс полиномов класса и все составляющие модули numpy.
Например, если функция B кодирует величину релевантности функции A. Предположим, что B переходит от 0 до 10, кодируя величину релевантности. Вы можете создавать новые функции A_0, A_2, A_i, ..., A_9 , которые являются значением A, если B> i и -10000 повсюду в другом месте.
Вы также можете создать третью функцию: A + B или A B или A B ^ 2. Проблема в том, что им сложнее дать хорошую интерпретацию результатов после подбора дерева решений.
Разделите ваши данные перед рукой
Вы можете разделить ваши данные, используя критерии, которые вы хотите, а затем подогнать разные деревья для каждого поднабора данных. Например, вы можете разделить ваши данные на две группы, B> 5 и B <= 5 </p>
Создание разных деревьев
Вы можете уместить первичное дерево только для объектов из B, а затем для каждого листа дерева решений теперь можно уместить новое дерево с учетом функций из A и B.
С точки зрения кода, это может привести к путанице, так как вам потребуется обработать несколько классификаторов и обеспечить достаточное количество выборок для каждого листа, чтобы можно было разместить другие деревья.
Создайте свою собственную функцию сплиттера
Если вы действительно хотите узнать, как дерево решает каждый шаг, вам нужно будет сделать то, что предлагает Aditya, в этом случае вам нужно будет создать свою собственную функцию сплиттера.
В sklearn реализован сплиттер по умолчанию здесь
Вам нужно будет изменить его, чтобы учесть все переменные вашей проблемы