首页 > 解决方案 > 如何在 Sklearn 中使用带有混合(分类和数字)数据的 silhouette_score?

问题描述

我遇到了这样一种情况,即我混合了上述数据集并尝试了无监督聚类。

我正在尝试许多不同的实验,包括高尔距离和 K 原型。我想尝试一些 sklearn 指标,看看它们会给我带来什么价值。

当我查看剪影分数时,有一个参数“度量”,我可以决定我想要计算距离的内容。但由于我的数据类型混合,我想选择曼哈顿的数值和汉明的分类。有没有一种方法可以一次将 silhouette_score 用于两个指标?如果我所有的输入数据都是数字,我会做如下:

silhouette_score(friendRecomennderData, labels, metric = 'manhattan')

先感谢您。

标签: cluster-analysismetricscategorical-dataunsupervised-learningsilhouette

解决方案


您对传递给silhouette_score. 如果您阅读此处提到的文档,它会说明有关输入数据的以下内容,即参数X

X:数组 [n_samples_a, n_samples_a] 如果 metric == “precomputed”,或者, [n_samples_a, n_features] 否则。样本之间的成对距离数组或特征数组。

因此,数据只能是由样本之间的距离组成的数值数组。不可能将距离作为分类值。

您需要首先对数据进行聚类,然后获取距离矩阵并将距离矩阵作为输入提供给silhouette_score.


推荐阅读