gpt4 book ai didi

python - 分类数据的矢量量化

转载 作者:行者123 更新时间:2023-12-01 04:54:47 28 4
gpt4 key购买 nike

矢量量化软件通常仅适用于数值数据。其中一个示例是 Python 的 scipy.cluster.vq.vq ( here ),它执行矢量量化。大多数聚类软件也显示了数值数据要求。

许多人指出,您始终可以将分类变量转换为一组二进制数值变量。但是,当处理大数据时,这会变得很尴尬,其中单个分类变量可能有数百或数千个类别。

显而易见的替代方案是更改距离函数。对于混合数据类型,从观察到“中心”或“密码本条目”的距离可以表示为两部分总和,涉及(a)数值变量的通常欧几里得计算和(b)不平等指标的总和对于分类变量,如建议的 here第 125 页。

有没有开源软件实现具有这种广义距离函数的矢量量化?

最佳答案

对于机器学习和聚类算法,您还可以找到有用的 scikit-learn 。为了实现你想要的,你可以看看他们的 DBSCAN 的实现.

在他们的文档中,您可以找到:

sklearn.cluster.dbscan(X, eps=0.5, min_samples=5, metric='minkowski', algorithm='auto', leaf_size=30, p=2, random_state=None)

此处的X可以是您已经计算出的距离矩阵(并传递metric='precompulated'),也可以是标准的样本x特征矩阵,而 metric= 可以是一个字符串(带有已实现的 distance functions 之一的标识符)或一个可调用的 python 函数,它将以成对的方式计算距离。

如果找不到所需的指标,您始终可以将其编程为 python 函数:

def mydist(a, b):
return a - b # the metric you want comes here

并使用 metric=mydist 调用 dbscan。或者,您可以预先计算距离矩阵,并将其传递给聚类算法。

同一库中还有一些其他聚类算法,看看它们 here .

关于python - 分类数据的矢量量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27694998/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com