如何从我的代码Keras和python中获取集群数据(y\u true,y\u pred)

2024-04-25 17:32:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我用CNN和自动编码器来分类不同类型的RNA。这些簇是根据不同rna的压缩表示来计算的。每个RNA都有一个对应于RNA类型的标签。在我的例子中,有7个不同的班级。在我得到聚类结果之后,我想把结果可视化,看看哪些RNA聚类,但是现在y\u pred值并不对应于RNA类,而是对应于由kmeans初始化的聚类。你知道吗


kmeans = KMeans(n_clusters=self.n_clusters, n_init=20)
self.y_pred = kmeans.fit_predict(self.encoder.predict(x))
y_pred_last = np.copy(self.y_pred)
        self.model.get_layer(name='clustering').set_weights([kmeans.cluster_centers_])
print(kmeans.labels_)

self.y_pred = q.argmax(1)
if y is not None:
    acc = np.round(metrics.acc(y, self.y_pred), 5)
    nmi = np.round(metrics.nmi(y, self.y_pred), 5)
    ari = np.round(metrics.ari(y, self.y_pred), 5)
    loss = np.round(loss, 5)
    logdict = dict(iter=ite, acc=acc, nmi=nmi, ari=ari, L=loss[0], Lc=loss[1], Lr=loss[2])

optimizer = 'adam'
dcec.compile(loss=['kld', 'mse'], loss_weights=[args.gamma, 1], optimizer=optimizer)
dcec.fit(x, y=y, tol=args.tol, maxiter=args.maxiter,
         update_interval=args.update_interval,
         save_dir=args.save_dir,
         cae_weights=args.cae_weights)
y_pred = dcec.y_pred


result = list(itertools.chain(y))

with open('datapoints.csv', mode='w', newline='') as data_points:
    data_writer = csv.writer(data_points)
    data_writer.writerow(['id', 'ytrue', 'ypred'])
    truth= y
    prediction = dcec.y_pred
    for i in range(len(result)):
         data_writer.writerow([i, truth[i], prediction[i]])

我现在的问题是这部分:prediction=dcec.y\u pred 输出显示的是正确的真标签,而不是“正确”的预测标签。它返回一个值,但与RNA类型不对应

我不知道这条路对不对。我主要是想把这些簇形象化,看看哪个RNA类型被正确和错误地分类。你知道吗


Tags: self类型datanpargsrnaacckmeans
1条回答
网友
1楼 · 发布于 2024-04-25 17:32:40

您可能没有使用正确的函数调用从Keras模型获取预测。我认为你应该做一些类似的事情:

prediction = dcec.predict(x)

其他详细信息请参见:https://keras.io/models/model/

我希望这有帮助。你知道吗

相关问题 更多 >