Кластеризация узлов в вероятностных графических моделях — объяснимость байесовских сетей

Недавно я опубликовал новую версию bnviewer, пакет находится в версии 0.1.4 и содержит функцию, которая позволяет нам группировать узлы байесовской сети с помощью пользовательских значков, чтобы облегчить интерпретацию и категоризацию переменных в сложных моделях. байесовских сетей.

Я хотел бы поблагодарить исследователя Матиас Альберто Вергара Альварес из Католического университета Чили за предложение в пакете. Матиас работал с ИИ применительно к геномике и описал важность различения различных ролей, которые играют гены, и эта функциональность принесет много пользы в такого рода исследованиях.

BNViewer — интерактивная визуализация байесовских сетей

Байесовские сети обеспечивают интуитивно понятную основу для вероятностных рассуждений, и их графическая природа может быть интерпретирована достаточно ясно. Методы машинного обучения на основе графов становятся все более популярными, поскольку они предлагают более богатую модель знаний, которую человек может понять в графическом формате. bnviewer — это пакет R, который позволяет интерактивную визуализацию байесовских сетей. Целью этого пакета является улучшение визуализации байесовских сетей по сравнению с базовыми и статическими представлениями, предлагаемыми существующими пакетами.

Этот пакет возник из моего магистерского проекта по математике, статистике и прикладным вычислениям в промышленности в Институте математических и компьютерных наук Университета Сан-Паулу — ICMC-USP, под руководством проф. Dr. Alneu Andrade Lopes и совместное руководство Dr. Бретт Друри.

Пример — кластеризация узлов в вероятностных графических моделях — объяснимость байесовских сетей

Вы можете установить стабильную версию bnviewer из CRAN:

install.packages("bnviewer")

Импортируйте пакеты bnlearn и bnviewer

library(bnlearn)
library(bnviewer)

Импортируйте нужный набор данных и примените алгоритм обучения структуры. Пример (восхождение в гору (HC)).

data("alarm")
bn.learn.hc = hc(alarm)

Вызвать функцию просмотра пакета bnviewer с нужными параметрами.

clusters.legend.title = "<b>Legend</b> <br> Variable Categories"

viewer(bn.learn.hc,
       bayesianNetwork.background = "-webkit-radial-gradient(center,            
                                     ellipse cover, 
                                     rgba(255,255,255,1) 0%,              
                                     rgba(246,246,246,1) 47%,
                                     rgba(237,237,237,1) 100%)",

       bayesianNetwork.width = "100%",
       bayesianNetwork.height = "100vh",
       bayesianNetwork.layout = "layout_components",
       bayesianNetwork.title="<br>Discrete Bayesian Network - Alarm",
       bayesianNetwork.subtitle = "Monitoring of emergency care patients",

       node.colors = list(background = "white",
                          border = "black",
                          highlight = list(background = "#e91eba",
                                              border = "black")),

       node.font = list(color = "black", face="Arial"),

       clusters.legend.title = list(text = clusters.legend.title, 
                                    style = "font-size:18px;
                                             font-family:Arial;
                                             color:black;
                                             text-align:center;"),

       clusters.legend.options = list(
         
         list(label = "Pressure", 
              shape = "icon",
              icon = list(code = "f1ce", size = 50, color = "#e91e63")),
         list(label = "Volume", 
              shape = "icon", 
              icon = list(code = "f140", size = 50, color = "#03a9f4")),
         list(label = "Ventilation", 
              shape = "icon", 
              icon = list(code = "f192", size = 50, color = "#4caf50")),
         list(label = "Saturation", 
              shape = "icon", 
              icon = list(code = "f10c", size = 50, color = "#ffc107"))
       ),

       clusters = list(
         list(label = "Pressure",
              shape = "icon",
              icon = list(code = "f1ce", color = "#e91e63"),
              nodes = list("CVP","BP","HRBP","PAP","PRSS")),
         list(label = "Volume",
              shape = "icon",
              icon = list(code = "f140", color = "#03a9f4"),
              nodes = list("MINV","MVS","LVV","STKV")),
         list(label = "Ventilation",
              shape = "icon",
              icon = list(code = "f192", color = "#4caf50"),
              nodes = list("VALV","VLNG","VTUB","VMCH")),
         list(label = "Saturation",
              shape = "icon",
              icon = list(code = "f10c", color = "#ffc107"),
              nodes = list("HRSA","SAO2","PVS"))
       )
)

Визуализация

Вы можете использовать код Unicode из значков FontAwesome 4.7 для настройки узлов байесовской сети и определения кластеров.

К следующему…

Я надеюсь, что этот подход может помочь тем, кто начинает заниматься наукой о данных, будь то статистика, математик, компьютерщик или студенты, интересующиеся этим предметом.