clustering, matlab, nominal data
5 次查看(过去 30 天)
显示 更早的评论
Hello All. I need an advice. I need recommend method of clustering which is suitable for nominal data in Matlab. Could you help me, please? I appreciate every idea. Thank you in advance.
0 个评论
采纳的回答
Walter Roberson
2016-1-15
Nominal / Categorical data usually does not have distance measures between the categories.
0 个评论
更多回答(2 个)
Image Analyst
2016-1-15
Try the Classification Learner app on the Apps tab.
1 个评论
Tom Lane
2016-1-16
This could work as a post-processing step to assign new data to classes found from the original data. But classificationLearner would require that you know the clusters (groups) for the original data.
Tom Lane
2016-1-16
For hierarchical clustering, consider using Hamming distance. Here's an example that isn't realistic but that illustrates what to do:
x=randi(3,100,4); % noisy coordinates
x(1:50,5:6) = randi(2,50,2); % try to make 1st 50 points closer
x(51:100,5:6) = 2+randi(2,50,2); % next 50 points different
z = linkage(x,'ave','hamming'); % try average linkage clustering
dendrogram(z,100) % show dendrogram with all points
2 个评论
Tom Lane
2016-1-30
You are right that the clustering functions operate on matrices so you would need to convert your data to numbers. The grp2idx function could be helpful. And yes, the Classification Learner app is aimed at classifying data into known groups. Here is a simple example where you can see the Hamming distance between data represented by a three-category variable and a two-category variable.
>> x = [1 1;2 1;3 1;1 2;2 2;2 3];
>> squareform(pdist(x,'hamming'))
ans =
0 0.5000 0.5000 0.5000 1.0000 1.0000
0.5000 0 0.5000 1.0000 0.5000 0.5000
0.5000 0.5000 0 1.0000 1.0000 1.0000
0.5000 1.0000 1.0000 0 0.5000 1.0000
1.0000 0.5000 1.0000 0.5000 0 0.5000
1.0000 0.5000 1.0000 1.0000 0.5000 0
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Classification Learner App 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!