Измерьте важность узла
использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера, 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'Тип центра узла, заданный как один из опций в таблице. В таблице также перечислены совместимые Пары "имя-значение", которые работают с каждым типом. Каждое разнообразие центральности узла предлагает разную меру важности узла в графике.
|
Опция |
Тип графика |
Описание |
Пары "имя-значение" |
|---|---|---|---|
|
|
Ненаправленный | The
Если вы задаете | |
|
|
Направленный | ||
|
|
Ненаправленный |
The A i - количество доступных узлов из узла
| |
|
|
Направленный | ||
|
|
Неориентированные или ориентированные |
The - количество самых коротких путей из
| |
|
|
Неориентированные или ориентированные | The
| |
|
|
Ненаправленный |
The
| |
|
|
Направленный |
The
|
Примечание
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.85 (по умолчанию) | скаляром между 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' - Максимальное количество итераций100 (по умолчанию) | скаляромМаксимальное количество итераций, заданное как разделенная разделенными запятой парами, состоящая из '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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.