如何在 Python 中使用 Affinity Propagation 进行预测

Posted

技术标签:

【中文标题】如何在 Python 中使用 Affinity Propagation 进行预测【英文标题】:How to predict with Affinity Propagation in Python 【发布时间】:2022-01-20 02:50:53 【问题描述】:

我第一次尝试使用亲和力传播模型进行训练和预测。

这是我的代码:

import numpy as np
from sklearn.cluster import AffinityPropagation

data = np.array([[0.1,0.1,0.4], [0.0, 0.1, 0.5], [0.7,0.5,0.2]])

affprop = AffinityPropagation(affinity="euclidean", damping=0.7, random_state=0)
affprop.fit(data)

data_2 = np.array([[0.1,0.1], [0.0, 0.1], [0.7,0.5]])

affprop.predict(data_2)

但是,当我运行它时,我收到以下错误:

ValueError: X has 2 features, but AffinityPropagation is expecting 3 features as input.

我是否误解了亲和力传播如何与预测一起工作?我希望能够为我训练有素的模型提供新数据。维度数(即每个子列表的长度)是否需要与训练数据相同?

【问题讨论】:

是的,每个子列表的大小应该相同,我认为您混淆了示例数量(样本 - 子列表数量)和维度(特征数量 - 每个长度每个示例的子列表)。您正在使用具有 3 个特征的 3 个样本训练模型。所以你需要传递一个包含任意数量样本的数组,但每个样本必须包含 3 个特征。 【参考方案1】:

data_2 中的每个元素都应与data_1 中的每个元素具有相同的形状(3,1)

data_2 = np.array([[0.1, 0.1, 0.1], [0.0, 0.1, 0.2], [0.7, 0.5, 0.25]])data_2 = np.array([[0.1,0.1, 0.1]]) 会起作用。

您正在尝试预测新数据所属的集群,因此它必须位于相同的 n 维空间中。

【讨论】:

以上是关于如何在 Python 中使用 Affinity Propagation 进行预测的主要内容,如果未能解决你的问题,请参考以下文章

python 绑定进程在某个cpu上执行 affinity

如何在对 Kubernetes 服务的请求上使用 Session Affinity?

Kubernetes——浅聊 Affinity,就这么点东西

CPU affinity 亲和力

Kubernetes Node Affinity

如何设置SMP IRQ Affinity-myownstars-ITPUB博客