|
|
Для обучения структуры байесовской сети использовался подход, основанный на жадных эвристиках. Псевдокод используемого алгоритма выглядит следующим образом:
|
|
|
![](https://github.com/Anaxagor/BN-based-synthetic-data-/blob/master/img/pseudocode.jpg)
|
|
|
|
|
|
В результате выполнения алгоритма находится такая структура сети, которая имела бы наибольшее значение оптимизируемой метрики. В качестве такой метрики реализовано две score-функции:
|
|
|
-Mutual information
|
|
|
В результате выполнения алгоритма находится такая структура сети, которая имела бы наибольшее значение оптимизируемой метрики. В качестве такой метрики реализовано две score-функции:
|
|
|
|
|
|
-K2 |
|
|
### -Mutual information
|
|
|
![](https://github.com/Anaxagor/BN-based-synthetic-data-/blob/master/img/MI.png)
|
|
|
|
|
|
где G – структура графа байесовской сети, D – данные, Xi – текущая вершина, 〖Pa〗_Xi^G – родители вершины Xi согласно структуре графа, M – количество строк в данных.
|
|
|
|
|
|
### -K2
|
|
|
|
|
|
![](https://github.com/Anaxagor/BN-based-synthetic-data-/blob/master/img/K2.png)
|
|
|
где α_(i,j,s) – параметры распределения Дирихле (для K2 α_(i,j,s)=1), i – номер вершины, n – количество вершин, j – номер значения родителей вершины, q_i – количество возможных значений родителей, r_i – количество значений переменной i, N_(i,j,s) – число строк в данных, для которых i переменная принимает значение k, а ее родители j.
|
|
|
|