Измерьте важность узла
дополнительные опции использования заданы одним или несколькими Аргументами пары "имя-значение". Например, 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')
type
— Тип центрированности узла'degree'
| 'outdegree'
| 'indegree'
| 'closeness'
| 'incloseness'
| 'outcloseness'
| 'betweenness'
| 'pagerank'
| 'eigenvector'
| 'hubs'
| 'authorities'
Тип центрированности узла в виде одной из опций в таблице. Таблица также приводит совместимые Пары "имя-значение", которые работают с каждым типом. Каждое разнообразие центрированности узла предлагает различную меру важности узла в графике.
Опция |
Тип графика |
Описание |
Пары "имя-значение" |
---|---|---|---|
|
Неориентированный |
Если вы задаете | |
|
Направленный | ||
|
Неориентированный |
A i - количество достижимых узлов от узла
| |
|
Направленный | ||
|
Неориентированный или направленный |
количество кратчайших путей от
| |
|
Неориентированный или направленный |
| |
|
Неориентированный |
| |
|
Направленный |
|
Примечание
centrality
функция принимает, что весь вес ребра равен 1. Чтобы изменить это, задайте вес ребра для использования с 'Cost'
или 'Importance'
пары "имя-значение".
Пример: centrality(G,'degree')
Пример: centrality(G,'hubs','Tolerance',tol)
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
C = centrality(G,'closeness','Cost',edgeCosts)
вычисляет центрированность близости с помощью edgeCosts
как стоимость (вес) пересечения каждого ребра в графике.'Cost'
— Стоимость обхода ребраСтоимость обхода ребра в виде разделенной запятой пары, состоящей из 'Cost'
и вектор из положительного веса ребра. I-ый вес ребра задает стоимость, сопоставленную с пересечением ребра findedge(G,i)
. Весь вес ребра должен быть больше нуля.
'Cost'
вес ребра меньше, когда связь является короче, или быстрее или более дешевой. Некоторые примеры 'Cost'
вес ребра:
Длина пути
Время прохождения
Стоимость билета
Примечание
'Cost'
только применяется к 'closeness'
, 'outcloseness'
, 'incloseness'
, и 'betweenness'
типы центрированности.
Пример: centrality(G,'closeness','Cost',c)
'FollowProbability'
— Вероятность выбора узла преемника
(значение по умолчанию) | скаляр между 0 и 1Вероятность выбора узла преемника в виде разделенной запятой пары, состоящей из 'FollowProbability'
и скаляр между 0 и 1. Следовать вероятность является вероятностью, что следующий узел, выбранный в обходе алгоритмом PageRank, выбран среди преемников текущего узла, и не наугад от всех узлов. Для веб-сайтов эта вероятность соответствует щелчку по ссылке на текущей веб-странице вместо того, чтобы переместиться к другой случайной веб-странице.
Примечание
'FollowProbability'
только применяется к 'pagerank'
тип центрированности.
Пример: centrality(G,'pagerank','FollowProbability',0.5)
'Importance'
— Важность ребраВажность ребра в виде разделенной запятой пары, состоящей из 'Importance'
и вектор из неотрицательного веса ребра. I-ый вес ребра задает важность ребра findedge(G,i)
. Вес ребра нуля эквивалентен удалению того ребра из графика.
Для мультиграфов с несколькими ребрами между двумя узлами, centrality
добавляют несколько ребер вместе и обрабатывают их как одно ребро с объединенным весом.
'Importance'
вес ребра больше, когда связь более сильна. Некоторые примеры 'Importance'
вес ребра:
Количество путешественников в день
Количество нажимает на ссылку
Количество бумаг опубликовано вместе
Примечание
'Importance'
только применяется к 'degree'
outdegree
indegree
, 'pagerank'
, 'eigenvector'
, 'hubs'
, и 'authorities'
типы центрированности.
Пример: centrality(G,'degree','Importance',x)
'MaxIterations'
— Максимальное количество итераций
(значение по умолчанию) | скалярМаксимальное количество итераций в виде разделенной запятой пары, состоящей из 'MaxIterations'
и скаляр. centrality
запускам алгоритма до допуска соответствуют, или максимальное количество итераций достигнуто, какой бы ни на первом месте.
Примечание
'MaxIterations'
только применяется к 'pagerank'
, 'eigenvector'
, 'hubs'
, и 'authorities'
типы центрированности.
Пример: centrality(G,'pagerank','MaxIterations',250)
'Tolerance'
— Остановка критерия итеративных решателей1e-4
(значение по умолчанию) | скалярОстановка критерия итеративных решателей в виде разделенной запятой пары, состоящей из 'Tolerance'
и скаляр. centrality
запускам алгоритма до допуска соответствуют, или максимальное количество итераций достигнуто, какой бы ни на первом месте.
Примечание
'Tolerance'
только применяется к 'pagerank'
, 'eigenvector'
, 'hubs'
, и 'authorities'
типы центрированности.
Пример: centrality(G,'pagerank','Tolerance',1e-5)
C
— Баллы центрированности узлаБаллы центрированности узла, возвращенные как вектор-столбец. C(i)
счет центрированности узла i
. Интерпретация счета центрированности узла зависит от типа выбранного расчета центрированности. Чем более центральный узел, тем больше его счет центрированности.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.