【问题标题】:How to predict with Affinity Propagation in Python如何在 Python 中使用 Affinity Propagation 进行预测
【发布时间】: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 个特征。

标签: python scikit-learn cluster-analysis


【解决方案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 维空间中。

【讨论】:

    猜你喜欢
    • 2018-04-19
    • 2015-08-30
    • 1970-01-01
    • 2020-01-26
    • 2016-06-16
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    相关资源
    最近更新 更多