机器学习 – 选择适当的相似性度量并评估k均值聚类模型的有效性
我已经实现了k-means聚类来确定300个对象中的聚类.我的每个对象
有大约30个维度.使用欧几里德度量计算距离. 我需要知道 >我如何确定我的算法是否正常工作?我不能有一个图表 解决方法
OP中的两个问题是单独的主题(即答案中没有重叠),因此我将尝试一次一个地回答它们与列表中的第1项.
像其他无监督的ML技术一样,k-means缺乏一个很好的诊断测试选择来回答诸如“k-means返回的聚类分配对于k = 3或k = 5更有意义?”这样的问题. 尽管如此,还是有一项广泛接受的测试可以产生直观的结果并且可以直接应用.此诊断指标仅为此比率: 质心间分离/簇内方差 随着此比率的值增加,群集结果的质量也会提高. 这很直观.这些指标中的第一个是每个群集与其他群集相隔多远(根据群集中心测量)? 但是单独的质心间分离并不能说明整个故事,因为两个聚类算法可以返回具有相同的质心间距离的结果,尽管一个明显更好,因为聚类“更紧”(即更小的半径);换句话说,簇边缘有更多的分离.第二个指标 – 群内方差 – 说明了这一点.这只是每个群集计算的均值方差. 总之,质心间分离与簇内方差的比率是一种快速,一致且可靠的技术,用于比较来自不同聚类算法的结果,或比较来自在不同可变参数下运行的相同算法的结果 – 例如,迭代次数,距离度量的选择,质心的数量(k的值). 期望的结果是紧密(小)簇,每个簇远离其他簇. 计算很简单: 用于质心间分离: >计算聚类中心之间的成对距离;然后 对于群内方差: >对于每个群集,计算给定群集中每个数据点的距离 这是我对第一个问题的回答.这是第二个问题:
首先,一个简单的问题 – 随着尺寸/特征的增加,欧几里德距离是一个有效的指标吗? 欧氏距离是完全可扩展的 – 适用于二维或两千.对于任何一对数据点: >按元素减去它们的特征向量, 在这个计算序列中没有任何地方涉及规模. 但是,欧几里德距离是否适合您的问题的相似度量,取决于您的数据.例如,它是纯数字(连续)吗?或者它是否也有离散(分类)变量(例如,性别?M / F)如果您的某个维度是“当前位置”而200个用户中,100个具有值“旧金山”而另外100个具有“旧金山”波士顿“,你不能说,平均而言,你的用户来自堪萨斯州的某个地方,但这就是欧几里德距离的作用. 无论如何,由于我们对此一无所知,我只会给您一个简单的流程图,以便您可以将其应用于您的数据并确定适当的相似性指标. 为您的数据确定适当的相似性指标: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |