K-Means 聚类分析:使用 Python 将 HIV 数据进行分组
使用 K-Means 聚类分析 HIV 数据
本指南演示了如何使用 Python 和 K-Means 聚类算法对 HIV 数据进行分组。我们将从加载 Excel 数据开始,然后进行聚类,最后用散点图和轮廓系数展示聚类结果。
1. 加载数据和执行 K-Means 聚类
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
# 读入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)
2. 可视化聚类结果
2.1 散点图展示
import matplotlib.pyplot as plt
# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
# 设置坐标轴标签
plt.xlabel('Gene expression 1')
plt.ylabel('Gene expression 2')
# 设置图像标题
plt.title('Clustering result')
# 显示图像
plt.show()
2.2 轮廓系数展示
from sklearn.metrics import silhouette_score
# 计算轮廓系数
score = silhouette_score(X, labels)
# 输出轮廓系数
print('Silhouette score:', score)
2.3 聚类中心展示
# 获取聚类中心
centers = kmeans.cluster_centers_
# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
# 绘制聚类中心
plt.scatter(centers[:, 0], centers[:, 1], c='red', marker='x')
# 设置坐标轴标签
plt.xlabel('Gene expression 1')
plt.ylabel('Gene expression 2')
# 设置图像标题
plt.title('Clustering result')
# 显示图像
plt.show()
本指南仅展示了 K-Means 聚类分析的基本步骤。在实际应用中,您可以根据需要调整参数,例如聚类数量 n_clusters,以及使用其他可视化方法来更深入地分析数据。
原文地址: https://www.cveoy.top/t/topic/nfFS 著作权归作者所有。请勿转载和采集!