西电数据挖掘实验二 聚类技术——细胞聚类


实验二 聚类技术—细胞聚类

随着单细胞数据的出现,一个重要的问题是如何对不同的细胞进行聚类,可以使用不同的聚类算法对细胞聚类。
1、单细胞数据如表1 所示;
2、由于单细胞数据的高维度,使用降维方法进行降维;
3、 将聚类结果与金标结果进行对比,计算ARI/NMI指标;
4、可视化聚类结果。

表1 数据集列表
单细胞数据细胞数基因数类型数
Klein2717241754
Lake30422512316
Romanov24341241757
Xin1600398518
Zeisel3005199729

注:
 .rds后缀为数据文件,里面行表示基因,列表示细胞。
 .rds_leave为细胞类型(金标结果)。


一、分析及设计

  先使用PCA对数据进行预处理,再用K-means聚类算法对数据进行聚类。

二、详细实现

1. 数据的读取及预处理

  本实验的第一个难点可能在于.rds文件的读取,但其实,直接使用pd.read就可读入。

#读入数据
#data = pd.read_csv('klein.rds',sep = '\t')
#data = pd.read_csv('lake.rds',sep = '\t')
#data = pd.read_csv('romanov.rds',sep = '\t')
#data = pd.read_csv('xin.rds',sep = '\t')
data = pd.read_csv('zeisel.rds',sep = '\t')

data_T = data.T

2. 对数据进行降维

from sklearn.decomposition import PCA
pca = PCA(0.95)
pca.fit(data.T) 
X = pca.transform(data.T)

3. 使用K-means聚类算法进行聚类

from sklearn.cluster import KMeans
 
km = KMeans(n_clusters=9,random_state=1) 
km.fit(X) 
y_predict = km.predict(X)  # 预测

4. 可视化聚类结果

plt.scatter(X[:,0],X[:,1],c=y_predict)  # 预测为同一簇的样本同颜色
plt.show()

5. 将聚类结果与金标结果进行对比

from sklearn.metrics.cluster import normalized_mutual_info_score,adjusted_mutual_info_score
NMI = lambda x, y: normalized_mutual_info_score(x, y, average_method='arithmetic')
AMI = lambda x, y: adjusted_mutual_info_score(x, y, average_method='arithmetic')

#label = pd.read_csv('klein.rds_label',sep = '\t')
#label = pd.read_csv('lake.rds_label',sep = '\t')
#label = pd.read_csv('romanov.rds_label',sep = '\t')
#label = pd.read_csv('xin.rds_label',sep = '\t')
label = pd.read_csv('zeisel.rds_label',sep = '\t')

label_1 = np.asarray(label)
label_true = label_1[:,0]

NMI(label_true,y_predict)
AMI(label_true,y_predict)

三、实验结果

1. Klein数据

 (1)降维后的数据量
在这里插入图片描述
 (2)聚类结果
在这里插入图片描述
 (3)聚类结果与金标结果对比(NMI&ARI指标)
在这里插入图片描述

2. Lake数据

 (1)降维后的数据量
在这里插入图片描述
 (2)聚类结果
在这里插入图片描述
 (3)聚类结果与金标结果对比(NMI&ARI指标)
在这里插入图片描述

3. Romanov数据

 (1)降维后的数据量
在这里插入图片描述
 (2)聚类结果
在这里插入图片描述
 (3)聚类结果与金标结果对比(NMI&ARI指标)
在这里插入图片描述

4. Xin数据

 (1)降维后的数据量
在这里插入图片描述

 (2)聚类结果
在这里插入图片描述

 (3)聚类结果与金标结果对比(NMI&ARI指标)
在这里插入图片描述

5. Zeisel数据

 (1)降维后的数据量
在这里插入图片描述

 (2)聚类结果
在这里插入图片描述

 (3)聚类结果与金标结果对比(NMI&ARI指标)
在这里插入图片描述


总结

  虽然完成了这次实验,但是从NMI和ARI指标值可以看出,K均值聚类算法在这次实验的效果并不是很理想,应当继续探索其他更适合这个数据的聚类算法。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值