使用python编写无监督聚类算法根据基因的表达量对患者进行聚类并且满足以下要求:1读入Excel表格第0行为基因名称其余各行为基因表达量每一行代表一个样本路径为:CUserslenovoDesktopHIVDNN神经网络测试output_data1xlsx
2.使用K-means算法对样本进行聚类,聚类数目自选。 3.将聚类结果可视化,可以使用matplotlib库。 4.将聚类结果输出到Excel表格,新增一列为所属聚类中心编号,路径为: C:\Users\lenovo\Desktop\HIV\DNN神经网络测试\output_data2.xlsx。
代码如下:
import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_excel('C:\\Users\\lenovo\\Desktop\\HIV\\DNN神经网络测试\\output_data1.xlsx', index_col=0)
# 获取数据行数和列数
n_samples, n_features = data.shape
# 聚类数目
n_clusters = 4
# 初始化K-means模型
kmeans = KMeans(n_clusters=n_clusters)
# 训练模型
kmeans.fit(data)
# 预测聚类结果
y_pred = kmeans.predict(data)
# 可视化聚类结果
plt.scatter(data.iloc[:, 0], data.iloc[:, 1], c=y_pred)
plt.title('Clustering Results')
plt.xlabel('Gene Expression Level')
plt.ylabel('Sample Index')
plt.show()
# 输出聚类结果到Excel表格
data['Cluster'] = y_pred
data.to_excel('C:\\Users\\lenovo\\Desktop\\HIV\\DNN神经网络测试\\output_data2.xlsx')
解释如下:
- 首先导入所需的库,包括numpy、pandas、sklearn和matplotlib;
- 读取Excel文件中的数据,使用pd.read_excel()函数,其中index_col=0表示将第0列作为行索引;
- 获取数据行数和列数,n_samples和n_features分别表示样本数和特征数;
- 设置聚类数目n_clusters;
- 初始化K-means模型,kmeans = KMeans(n_clusters=n_clusters);
- 训练模型,kmeans.fit(data);
- 预测聚类结果,y_pred = kmeans.predict(data);
- 可视化聚类结果,plt.scatter()函数用于绘制散点图,其中c=y_pred表示将聚类结果y_pred作为颜色参数;
- 输出聚类结果到Excel表格,data['Cluster'] = y_pred表示在数据中新增一列Cluster,存储聚类结果;data.to_excel()函数用于将数据输出到Excel文件中。
原文地址: https://www.cveoy.top/t/topic/bPw4 著作权归作者所有。请勿转载和采集!