Matlab上缺少数据的分层聚类(分类响应)

时间:2020-08-08 16:18:41

标签: matlab cluster-analysis

我有一个150 * 60的矩阵,该矩阵包含在多天内与多个主题记录的分类响应(三级分类响应重新编码为1、2和3)。行代表个人,而列代表相对于特定日期(例如1月1日)的天数。由于并非所有受试者都每天都做出反应,因此矩阵周围散布了一些缺失值。

示例数据: 数据= [1,NaN,2,1,...,1; 1,2,Nan,1,...,2; ... 2,3,3,Nan,...,2];

我正在尝试使用分层聚类,基于他们在几天之内的响应来聚类个人。由于响应是绝对的,因此我尝试使用汉明距离作为距离度量。但是,由于存在NaN,我使用的是Matlab在其pdist2文档中提供的自定义距离函数nanhamdist,而不是内置的“ Hamming”。

这是我的代码:

distV = pdist(Data,@nanhamdist);
linkV = linkage(distV,'complete')
[dg,~,indC] = dendrogram(linkV,0)

基于树状图和热图,这种用于聚类的方法似乎已经生成了一些有意义的聚类,但是我不确定这是否是确定聚类数量的适当方法。我尝试使用带有下面代码的“ evalclusters”,但是由于linkV(149 * 3)的长度比Data(150 * 60)的长度短1,所以我遇到了错误。

evalclusters(Data,linkV ,'silhouette','Distance','@nanhamdist')

错误消息:预测变量矩阵X和聚类解决方案矩阵必须具有相同的 行数。

我应该如何进行呢?任何意见将是有益的。谢谢!

0 个答案:

没有答案
相关问题