我正在使用带有自动编码器的CNN对不同类型的RNA进行聚类。从不同RNA的压缩表示中计算出簇。每个RNA都有与RNA类型相对应的标记。在我的情况下7个不同的类。在获得聚类结果之后,我想可视化结果,看看哪些RNA聚类在哪里,但现在y_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]])
我现在的问题是这部分:预测= dcec.y_pred输出显示给我正确的真实标签,而不显示“正确”的预测标签。它返回一个值,但这与RNA类型不对应]
我不知道这是否是正确的道路。主要是我只想可视化群集,并查看正确和错误分类的RNA类型。
我正在使用带有自动编码器的CNN对不同类型的RNA进行聚类。从不同RNA的压缩表示中计算出簇。每个RNA都有与...
您可能未使用正确的函数调用从Keras模型获取预测。我相信您应该这样做:
prediction = dcec.predict(x)