问题描述
数据聚类并且给聚类的样本分配伪标签
解决办法
idxs_users = np.arange(args.num_users)
feaglobal = []
Ulist = []
Dlist = []
for idx in idxs_users:
train_dataset = torch.load(os.path.join(data_path[idx], "train.pt").replace("\\", "/"))
fea,dlist,ulist = FeatureSelection(train_dataset,idx)
if idx == 0:
feaglobal = fea
Dlist = dlist
Ulist = ulist
else:
feaglobal += fea
Dlist += dlist
Ulist += ulist
dfd = DataFrame(Dlist)
dfu = DataFrame(Ulist)
samidx, score,Plist = cluster(args,feaglobal, args.num_classes)
#获取每个用户的伪标签
pseudo = []
names = locals()
for i in range(args.num_users):
pselist = []
a = np.where(np.array(Ulist)==i)
aa = a[0][0]
for k in range(len(a[0])):
pseu = Plist[a[0][k]]
pselist.append(pseu)
pseudo.append(pselist)