Suv*_*dha 3 cluster-analysis machine-learning
如果数据集有440个对象和8个属性(数据集来自UCI机器学习库).那么我们如何计算这些数据集的质心.(批发客户数据) https://archive.ics.uci.edu/ml/datasets/Wholesale+customers
如果我计算每行的平均值,那将是质心吗?以及如何在matlab中绘制结果簇.
ttt*_*sss 30
好的,首先,在数据集中,1行对应于数据中的单个示例,您有440行,这意味着数据集由440个示例组成.每列包含该特定要素(或您调用的属性)的值,例如,数据集中的第1列包含要素Channel的值,第2列包含要素的值Region等.
现在对于K-均值聚类,你需要指定集群(的数量ķ在K-均值).假设您想要K = 3个聚类,那么初始化K-Means的最简单方法是从数据集中随机选择3个示例(即3行,从您拥有的440行中随机抽取)作为质心.现在这三个例子是你的质心.
您可以将您的质心视为3个箱,并且您希望将数据集中的每个示例放入最接近的(通常通过欧几里德距离测量;检查normMatlab中的函数)bin.
在第一轮将所有示例放入最近的bin之后,通过计算mean各自bin中的所有示例来重新计算质心.您将重复将所有示例放入最近的bin中的过程,直到数据集中没有示例移动到另一个bin.
一些Matlab的起点
您加载数据 X = load('path/to/the/dataset', '-ascii');
在你的情况下X将是一个440x8矩阵.
您可以计算从示例到质心的欧几里德距离
distance = norm(example - centroid1);,两者都有,example并且centroid1具有维度1x8.
重新计算质心将如下工作,假设您已经完成了1次K-Means迭代,并将所有示例放入各自最近的bin中.Say Bin1现在包含最接近centroid1并因此Bin1具有维度的所有示例127x8,这意味着440中的127个示例位于此bin中.要计算下一次迭代的质心位置,您可以这样做centroid1 = mean(Bin1);.你会对你的其他箱子做类似的事情.
至于绘图,你必须注意你的数据集包含8个特征,这意味着8个维度,这是不可视的.我建议你创建或寻找一个(虚拟)数据集,它只包含2个特征,因此可以通过Matlab的plot()功能实现可视化.
| 归档时间: |
|
| 查看次数: |
21206 次 |
| 最近记录: |