K-Means 聚类分析:基于基因表达数据对 HIV 数据集进行聚类
使用 K-Means 聚类分析 HIV 基因表达数据
本代码示例使用 K-Means 聚类算法对 HIV 基因表达数据进行聚类分析,并使用热图展示聚类结果。
代码示例:
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
import seaborn as sns
import matplotlib.pyplot as plt
# 读入Excel表格
data = pd.read_excel('C:\Users\lenovo\Desktop\HIV\DNN神经网络测试\HIV数据 - 副本.xlsx', index_col=0)
# 提取基因表达量
X = data.iloc[:, 1:].values
# K-means算法,K=3
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
# 获取聚类结果
labels = kmeans.labels_
# 输出聚类结果到Excel表格
result = pd.DataFrame({'name': data.index, 'label': labels})
result.to_excel('C:\Users\lenovo\Desktop\HIV\DNN神经网络测试\HIV聚类结果.xlsx', index=False)
# 绘制聚类热图
sns.clustermap(data.iloc[:, 1:], row_cluster=True, col_cluster=True, cmap='RdBu_r', figsize=(10, 10))
plt.title('HIV Clustering Heatmap')
plt.show()
可视化展示:
除了热图,还可以使用以下图表进行可视化展示:
- 散点图: 将每个样本的基因表达量绘制在二维坐标系中,并根据聚类结果使用不同的颜色进行标记。
- 箱线图: 展示不同聚类结果的基因表达量的分布情况。
- 小提琴图: 展示不同聚类结果的基因表达量的分布情况,并提供更详细的信息。
代码实现:
# ... (前面的代码)
# 绘制散点图
plt.figure(figsize=(8, 6))
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.title('K-Means Clustering Results')
plt.xlabel('Gene Expression 1')
plt.ylabel('Gene Expression 2')
plt.show()
# 绘制箱线图
plt.figure(figsize=(8, 6))
for i in range(3):
plt.subplot(1, 3, i+1)
sns.boxplot(y=X[:, i], x=labels, showmeans=True)
plt.title(f'Cluster {i+1}')
plt.show()
# 绘制小提琴图
plt.figure(figsize=(8, 6))
for i in range(3):
plt.subplot(1, 3, i+1)
sns.violinplot(y=X[:, i], x=labels, showmeans=True)
plt.title(f'Cluster {i+1}')
plt.show()
总结:
本代码示例展示了如何使用 K-Means 聚类算法对 HIV 基因表达数据进行聚类分析,并使用多种图表进行可视化展示。这些图表可以帮助我们更好地理解数据中存在的模式和规律。
原文地址: https://www.cveoy.top/t/topic/nfFY 著作权归作者所有。请勿转载和采集!