生成了错误的树状图
Wrong dendrogram generated
我有31个数据,但是dendrogram
少了一个数据。这是我的代码:
A = csvread('similarityNoGrpS2.csv',1,1) % 31x31 double
Z = linkage(A, 'average') % 30x3 double
H = dendrogram(Z,'Orientation','left','ColorThreshold','default') %29x1 line
可以找到我的输入文件here。
这是我的 dendrogram
:
根据Z
,(24,30)
和(27,31)
应该是聚类的,但是在dendrogram
图中,我们可以看到没有31
和27
与 30
聚集在一起,这是错误的!
谁能帮我解决这个问题?
P.S。我正在使用 MATLAB R2016a。
您需要将代码的最后一行修改为:
H = dendrogram(Z, 0, 'Orientation', 'left', 'ColorThreshold', 'default');
对于给定的数据给出:
说明
您的原始数据集(A
)有超过30
个点但您没有指定P
的值。 documentation:
中提到
If you do not specify P
then dendrogram
uses 30 as the maximum number of leaf nodes. To display the complete tree, set P
equal to 0
.
所以你需要把P=0
放在这个语法中:
dendrogram(tree,P,Name,Value)
我有31个数据,但是dendrogram
少了一个数据。这是我的代码:
A = csvread('similarityNoGrpS2.csv',1,1) % 31x31 double
Z = linkage(A, 'average') % 30x3 double
H = dendrogram(Z,'Orientation','left','ColorThreshold','default') %29x1 line
可以找到我的输入文件here。
这是我的 dendrogram
:
根据Z
,(24,30)
和(27,31)
应该是聚类的,但是在dendrogram
图中,我们可以看到没有31
和27
与 30
聚集在一起,这是错误的!
谁能帮我解决这个问题?
P.S。我正在使用 MATLAB R2016a。
您需要将代码的最后一行修改为:
H = dendrogram(Z, 0, 'Orientation', 'left', 'ColorThreshold', 'default');
对于给定的数据给出:
说明
您的原始数据集(A
)有超过30
个点但您没有指定P
的值。 documentation:
If you do not specify
P
thendendrogram
uses 30 as the maximum number of leaf nodes. To display the complete tree, setP
equal to0
.
所以你需要把P=0
放在这个语法中:
dendrogram(tree,P,Name,Value)