基本上,我想做的是:
对输入数据进行一些基本的聚类,例如K-均值。
获取输入样本的集群成员资格。
为每个群集训练一个单独的深度神经网络子模型。
下面是该想法的基本示意图。
是否可以通过使用单个keras模型来做到这一点?
我尝试使用sklearn KMeans将输入数据分离到集群中,然后在每个集群上训练一个单独的Keras模型,但是这种方法使以后很难计算测试误差,因为我必须获得测试每个群集的错误,然后手动计算总体错误。
答案 0 :(得分:0)
我认为问题在于您将数据分为三个组,并希望使用模型来学习每个组的不同分布。我有一些粗略的想法。
您可以将聚类索引作为每个组的标签,并同时适合此标签和您的原始目标。喜欢:
output1 =密集(cluster_numbers,activation ='softmax')[x)
output2 =密集(output_dimensions,activation ='softmax')(x)
或者,如果您的数据是根据原始目标进行聚类的,并且它们是互斥的,那么您还可以使用一系列参数层来输出结果。但是,这将使您的模型非常庞大。喜欢:
output = [簇编号中_的密集(output_dimensions,激活='softmax')(x)]