Измерьте важность узла
C = centrality(G,type)
C = centrality(___,Name,Value)
дополнительные опции использования заданы одним или несколькими Аргументами пары "имя-значение". Например, C
= centrality(___,Name,Value
)centrality(G,'closeness','Cost',c)
задает стоимость пересечения каждого ребра.
Создайте и постройте график, содержащий шесть фиктивных веб-сайтов.
s = [1 1 2 2 3 3 3 4 5]; t = [2 5 3 4 4 5 6 1 1]; names = {'http://www.example.com/alpha', 'http://www.example.com/beta', ... 'http://www.example.com/gamma', 'http://www.example.com/delta', ... 'http://www.example.com/epsilon', 'http://www.example.com/zeta'}; G = digraph(s,t,[],names); plot(G,'NodeLabel',{'alpha','beta','gamma','delta','epsilon','zeta'})
Вычислите ранг страницы каждого веб-сайта с помощью функции centrality
. Добавьте эту информацию к таблице Nodes
графика как атрибут вершин графика.
pg_ranks = centrality(G,'pagerank')
pg_ranks = 6×1
0.3210
0.1706
0.1066
0.1368
0.2008
0.0643
G.Nodes.PageRank = pg_ranks; G.Nodes
ans=6×2 table
Name PageRank
________________________________ ________
'http://www.example.com/alpha' 0.32098
'http://www.example.com/beta' 0.17057
'http://www.example.com/gamma' 0.10657
'http://www.example.com/delta' 0.13678
'http://www.example.com/epsilon' 0.20078
'http://www.example.com/zeta' 0.06432
Также определите, какие узлы являются концентраторами и полномочиями с помощью centrality
и добавляют очки к таблице Nodes
.
hub_ranks = centrality(G,'hubs'); auth_ranks = centrality(G,'authorities'); G.Nodes.Hubs = hub_ranks; G.Nodes.Authorities = auth_ranks;
G.Nodes
ans=6×4 table
Name PageRank Hubs Authorities
________________________________ ________ __________ ___________
'http://www.example.com/alpha' 0.32098 0.24995 7.3237e-05
'http://www.example.com/beta' 0.17057 0.24995 0.099993
'http://www.example.com/gamma' 0.10657 0.49991 0.099993
'http://www.example.com/delta' 0.13678 9.1536e-05 0.29998
'http://www.example.com/epsilon' 0.20078 9.1536e-05 0.29998
'http://www.example.com/zeta' 0.06432 0 0.19999
Создайте и постройте взвешенный график с помощью случайной разреженной матрицы смежности. С тех пор существует много ребер, использует очень маленькое значение для EdgeAlpha
, чтобы сделать ребра в основном прозрачными.
A = sprand(1000,1000,0.15); A = A + A'; G = graph(A,'omitselfloops'); p = plot(G,'Layout','force','EdgeAlpha',0.005,'NodeColor','r');
Вычислите центрированность степени каждого узла. Задайте важность каждого ребра с помощью веса ребра.
deg_ranks = centrality(G,'degree','Importance',G.Edges.Weight);
Используйте discretize
, чтобы поместить узлы в 7 равномерно распределенных интервалов на основе их очков центрированности.
edges = linspace(min(deg_ranks),max(deg_ranks),7); bins = discretize(deg_ranks,edges);
Сделайте размер каждого узла в графике пропорциональным его счету центрированности. Размер маркера каждого узла равен интервалу номер (1-7).
p.MarkerSize = bins;
Загрузите данные в minnesota.mat
, который содержит объект диаграмм G
, представляющий сеть дорог в Миннесоте. Вершинам графика содержали координаты xy в переменных XCoord
и YCoord
таблицы G.Nodes
.
load minnesota.mat
xy = [G.Nodes.XCoord G.Nodes.YCoord];
Добавьте вес ребра в график, который примерно соответствует длине дорог, вычисленное использование Евклидова расстояния между координатами xy конечных узлов каждого ребра.
[s,t] = findedge(G); G.Edges.Weight = hypot(xy(s,1)-xy(t,1), xy(s,2)-xy(t,2));
Постройте график с помощью координат xy для узлов.
p = plot(G,'XData',xy(:,1),'YData',xy(:,2),'MarkerSize',5); title('Minnesota Road Network')
Вычислите центрированность близости каждого узла. Масштабируйте цвет узла NodeCData
, чтобы быть пропорциональными счету центрированности.
ucc = centrality(G,'closeness'); p.NodeCData = ucc; colormap jet colorbar title('Closeness Centrality Scores - Unweighted')
Также вычислите взвешенный счет центрированности близости, с помощью веса ребра в качестве стоимости пересечения каждого ребра. Используя дорожные длины как вес ребра улучшает качество счета, поскольку расстояния теперь измеряются как сумма длин всех перемещенных ребер, а не количество ребер переместилось.
wcc = centrality(G,'closeness','Cost',G.Edges.Weight); p.NodeCData = wcc; title('Closeness Centrality Scores - Weighted')
Вычислите взвешенную музыку центрированности соотношения "между" к графику, чтобы определить дороги, чаще всего найденные на кратчайшем пути между двумя узлами. Нормируйте очки центрированности с фактором так, чтобы счет представлял вероятность, что путешественник вдоль кратчайшего пути между двумя случайными узлами переместится через данный узел. График показывает, что существует несколько очень важных введений дорог и из города.
wbc = centrality(G,'betweenness','Cost',G.Edges.Weight); n = numnodes(G); p.NodeCData = 2*wbc./((n-2)*(n-1)); colormap(flip(autumn,1)); title('Betweenness Centrality Scores - Weighted')
G
Введите графикgraph
| объект digraph
Входной график, заданный как объект граф или диграф.
Используйте граф для создания неориентированного графа или диграф для создания ориентированного графа.
Пример: G = graph(1,2)
Пример: G = digraph([1 2],[2 3])
ввод
Тип центрированности узла'degree'
| 'outdegree'
| 'indegree'
| 'closeness'
| 'incloseness'
| 'outcloseness'
| 'betweenness'
| 'pagerank'
| 'eigenvector'
| 'hubs'
| 'authorities'
Тип центрированности узла, заданной как одна из опций в таблице. Таблица также приводит совместимые Пары "имя-значение", которые работают с каждым типом. Каждое разнообразие центрированности узла предлагает различную меру важности узла в графике.
Опция |
Тип графика |
Описание |
Пары "имя-значение" |
---|---|---|---|
|
Неориентированный |
Если вы задаете вес ребра | |
|
Направленный | ||
|
Неориентированный |
A i - количество достижимых узлов от узла
| |
|
Направленный | ||
|
Неориентированный или направленный |
Центрированность количество кратчайших путей от
| |
|
Неориентированный или направленный | Тип центрированности
| |
|
Неориентированный |
Тип центрированности
| |
|
Направленный |
|
Функция centrality
принимает, что весь вес ребра равен 1. Чтобы изменить это, задайте вес ребра для использования с парами "имя-значение" 'Importance'
или 'Cost'
.
Пример: centrality(G,'degree')
Пример: centrality(G,'hubs','Tolerance',tol)
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
C = centrality(G,'closeness','Cost',edgeCosts)
вычисляет центрированность близости с помощью edgeCosts
в качестве стоимости (вес) пересечения каждого ребра в графике.'Cost'
— Стоимость обхода ребраСтоимость обхода ребра, заданного как пара, разделенная запятой, состоящая из 'Cost'
и вектор положительного веса ребра. ith вес ребра задает стоимость, сопоставленную с пересечением ребра findedge(G,i)
. Весь вес ребра должен быть больше, чем нуль.
Вес ребра 'Cost'
меньше, когда связь является короче, или быстрее или более дешевой. Некоторые примеры веса ребра 'Cost'
:
Длина пути
Время прохождения
Стоимость билета
'Cost'
только применяется к 'closeness'
, 'outcloseness'
, 'incloseness'
и типам центрированности 'betweenness'
.
Пример: centrality(G,'closeness','Cost',c)
'FollowProbability'
Вероятность выбора узла преемника0.85
(значение по умолчанию) | скаляр между 0 и 1Вероятность выбора узла преемника, заданного как пара, разделенная запятой, состоящая из 'FollowProbability'
и скаляра между 0 и 1. Следовать вероятность является вероятностью, что следующий узел, выбранный в обходе алгоритмом PageRank, выбран среди преемников текущего узла, и не наугад от всех узлов. Для веб-сайтов эта вероятность соответствует щелчку по ссылке на текущей веб-странице вместо того, чтобы переместиться к другой случайной веб-странице.
'FollowProbability'
только применяется к типу центрированности 'pagerank'
.
Пример: centrality(G,'pagerank','FollowProbability',0.5)
'Importance'
— Важность ребраВажность ребра, заданная как пара, разделенная запятой, состоящая из 'Importance'
и вектор неотрицательного веса ребра. ith вес ребра задает важность ребра findedge(G,i)
. Вес ребра нуля эквивалентен удалению того ребра из графика.
Для мультиграфов с несколькими ребрами между двумя узлами centrality
добавляет несколько ребер вместе и обрабатывает их как одно ребро с объединенным весом.
Вес ребра 'Importance'
больше, когда связь более сильна. Некоторые примеры веса ребра 'Importance'
:
Количество путешественников в день
Количество нажимает на ссылку
Количество бумаг опубликовано вместе
'Importance'
только применяется к 'degree'
, 'outdegree'
, 'indegree'
, 'pagerank'
, 'eigenvector'
, 'hubs'
и типам центрированности 'authorities'
.
Пример: centrality(G,'degree','Importance',x)
'MaxIterations'
Максимальное количество итераций100
(значение по умолчанию) | скалярМаксимальное количество итераций, заданных как пара, разделенная запятой, состоящая из 'MaxIterations'
и скаляра. Выполнениям алгоритма centrality
до допуска соответствуют, или максимальное количество итераций достигнуто, какой бы ни на первом месте.
'MaxIterations'
только применяется к 'pagerank'
, 'eigenvector'
, 'hubs'
и типам центрированности 'authorities'
.
Пример: centrality(G,'pagerank','MaxIterations',250)
Допуск
Остановка критерия итеративных решателей1e-4
(значение по умолчанию) | скалярОстановка критерия итеративных решателей, заданных как пара, разделенная запятой, состоящая из 'Tolerance'
и скаляра. Выполнениям алгоритма centrality
до допуска соответствуют, или максимальное количество итераций достигнуто, какой бы ни на первом месте.
'Tolerance'
только применяется к 'pagerank'
, 'eigenvector'
, 'hubs'
и типам центрированности 'authorities'
.
Пример: centrality(G,'pagerank','Tolerance',1e-5)
C
Очки центрированности узлаОчки центрированности узла, возвращенные как вектор-столбец. C(i)
является счетом центрированности узла i
. Интерпретация счета центрированности узла зависит от типа выбранного вычисления центрированности. Чем более центральный узел, тем больше его счет центрированности.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.