Nano Hash - криптовалюты, майнинг, программирование

группировка с использованием дендрограммы Matlab

У меня есть матрица A, состоящая из 4 векторов (столбцов) по 12 элементов в каждом.

A = [    0         0         0         0;
    0.0100    0.0100    0.0100         0;
    0.3000    0.2700    0.2400    0.2400;
    0.0400         0    0.0200    0.0200;
    0.1900    0.0400    0.0800    0.0800;
    0.1600    0.6500    0.2100    0.3800;
    0.0600    0.0100    0.0300    0.0200;
    0.1500    0.0100    0.0600    0.1700;
         0         0         0    0.0800;
    0.0300         0    0.0200    0.0100;
    0.0700         0    0.1200    0.0100;
         0         0    0.2300         0]

У меня также есть матрица сходства, в которой указано, насколько вектор похож на другие.

SIM =[1.00    0.6400    0.7700    0.8300;
    0.6400    1.0000    0.6900    0.9100;
    0.7700    0.6900    1.0000    0.7500;
    0.8300    0.9100    0.7500    1.0000]

чтение строк этой матрицы

vetor 1 is similar to vector 2 for 64%
vector 1 is similar to vector 3 for the 77%
...

Я хотел бы создать график дендрограммы, который показывает мне, сколько разных групп существует в A, учитывая порог сходства 0,95 (т.е. если 2 группы имеют сходство> 0,7, соединяют их)

Я не совсем понял, как использовать эту функцию с моими данными...


Ответы:


1

Не уверен, что правильно понял ваш вопрос, но для того, что я понял, я сделаю это:

DSIM = squareform(1-SIM); % convert to a dissimilarity vector

это дает результат:

% DSIM =   0.3600    0.2300    0.1700    0.3100    0.0900    0.2500
% DSIM =  1 vs 2 , 1 vs 3 , 1 vs 4, 2 vs 3, 2 vs 4, 3 vs 4 ; 

После этого вычислите связь:

Z = linkage (DSIM,'average'); % there is other grouping option than average

Вы можете построить дендрограмму с помощью:

dendrogram(Z)

Однако вы хотите разделить группы в соответствии с порогом, поэтому:

c = 0.1;

Это несходство, при котором резать, здесь это означает, что две группы будут соединены, если у них сходство выше 0,9

T = cluster(tree,'cutoff',c,'criterion','distance')

Результат T в этом случае:

T =
  1
  2
  3
  2

Это означает, что на этом уровне ваши векторы 1, 2, 3, 4 (назовем их A B C D) организованы в 3 группы:

  1. A
  2. B,D
  3. C

Также при c = 0,3 или 0,7 подобия:

T = 1 1 1 1

Так что здесь только одна группа.

Чтобы иметь это на дендрограмме, вы можете рассчитать количество групп:

num_grp = numel(unique(T));

После:

dendrogram(tree,num_grp,'labels',{'A','B','C','D'})

В этом случае дендрограмма не будет отображать все группы, потому что вы установили максимальное количество узлов, равное количеству групп.

03.09.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..