Измерьте важность узла
дополнительные опции использования заданы одним или несколькими Аргументами пары "имя-значение". Например, 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'
Тип центрированности узла в виде одной из опций в таблице. Таблица также приводит совместимые аргументы name-value, которые работают с каждым типом. Каждое разнообразие центрированности узла предлагает различную меру важности узла в графике.
Опция |
Тип графика |
Описание | Аргументы name-value |
---|---|---|---|
|
Неориентированный |
Если вы задаете | |
|
Направленный | ||
|
Неориентированный |
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)
.
Для 'closeness'
, 'outcloseness'
, и 'incloseness'
типы центрированности, затраты ребра должны быть неотрицательными.
Для 'betweenness'
тип центрированности, затраты ребра должны быть положительными.
'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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.