Я пытаюсь реализовать набор инструментов классификации для одномерных сетевых данных с помощью igraph
и python
.
Однако мой вопрос на самом деле является скорее вопросом алгоритмов в области реляционной классификации вместо программирования.
Я следую "Классификация в сетевых данных" .
Мне сложно понять, что этот документ относится к "классификатору байесов сети" (NBC), который является одним из реляционных классификаторов, описанных в документе.
Я реализовал классификатор Naive Bayes
для текстовых данных, используя ранее представленное представление функций слов. И идея Naive Bayes
по текстовым данным ясна на мой взгляд.
Я думаю, что этот метод (NBC) является простым переводом той же идеи в область реляционной классификации. Однако меня путают с обозначениями, используемыми в уравнениях, поэтому я не мог понять, что происходит. У меня также есть вопрос о обозначениях, используемых в документе здесь.
NBC объясняется на стр. 14 на в документе,
Резюме:
Мне нужен псевдокод "Network-Only Bayes Classifier" (NBC), описанный в paper, стр. 14.
Обозначение псевдокода:
- Позвонить
vs
список вершин в графе.len(vs)
- это длина.vs[i]
- i-я вершина. - Предположим, что у нас есть одномерный и двоичный сценарий, т.е.
vs[i].class
либо0
, либо1
, и нет никакой другой данной функции node. - Предположим, что мы запускаем локальный классификатор до того, чтобы каждый node имел начальную метку, которая вычисляется локальным классификатором. Меня интересует только часть реляционного классификатора.
- Позвоните
v
вершину, которую мы пытаемся предсказать, аv.neighbors()
- список вершин, которые являются соседямиv
. - Предположим, что все веса ребер
1
.
Теперь мне нужен псевдокод для:
def NBC(vs, v):
# v.class is 0 or 1
# v.neighbors is list of neighbor vertices
# vs is the list of all vertices
# This function returns 0 or 1
Edit:
Чтобы облегчить вашу работу, я сделал этот пример. Мне нужен ответ для последних двух уравнений.