После подготовки данных можно приступить к построению необходимой структуры.
Первую байесовскую сеть для первого модуля можно построить, запустив функцию train_model и передав в него необходимые данные, количество кластеров для заполнения скрытой переменной, а также список номеров узлов модели, которые не являются инициализирующими, то есть могут иметь родителей. Функция возвратит обученную байесовскую сеть. Основная идея состоит в том, что при обучении модели сети в ней сразу же резервируется ещё один узел скрытой переменной. Скрытая переменная агрегирует в себе всю информацию сети, с которой обучается. В начале она заполняется дискретным распределением, построенным на распределении кластеров передаваемых данных. То есть в данной нотации кластер - это метка агрегированной информации по всем узлам сети.
Обученную модель можно сохранить в папку models, запустив