首页 > 解决方案 > 在 Keras 中,是否可以对输入数据进行聚类,然后根据集群将数据提供给不同的子网?

问题描述

基本上,我想做的是:

下面是这个想法的基本图。 我的想法的可视化

是否可以通过使用单个 keras 模型来做到这一点?

我尝试使用 sklearn KMeans 将我的输入数据分离到集群,然后在每个集群上训练一个单独的 Keras 模型来做到这一点,但是这种方法使得以后很难计算测试错误,因为我必须从每个集群中获取测试错误聚类,然后手动计算总体误差。

标签: tensorflowkeras

解决方案


我认为问题在于您将数据聚类到三个组中,并希望使用模型来了解每个组的不同分布。我有一些粗略的想法。

  1. 您可以让集群索引成为每个组的标签,同时适合该标签和您的原始目标。喜欢:

    output1 = Dense(cluster_numbers, activation='softmax')(x)

    output2 = Dense(output_dimensions, activation='softmax')(x)

  2. 或者,如果您的数据按照您的原始目标进行聚类并且它们是互斥的,您还可以使用一系列并列层来输出结果。但是这会让你的模型非常庞大。喜欢:

    输出 = [密集(输出维度,激活='softmax')(x)对于集群编号中的_]


推荐阅读