Python 高维数据降维聚类显示

http://t.csdn.cn/hrLIv

先用 t-SNE 将数据进行降维,然后再依据聚类,做完聚类的结果在降维数据展示。

from sklearn import manifold
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np

# 这个数据就是处理的数据,一共33118个,每个是20维数据
np.array(x).shape
(33118, 20)

# 将数据降维,降维出来就是X_tsne
tSNE = manifold.TSNE(n_components=2, init='pca', random_state=0)
X_tsne = tSNE.fit_transform(x)

# 将原来的数据进行聚类,斌知道是哪一类的
kmeans = KMeans(n_clusters=18, max_iter=100, init="k-means++").fit(x)
result = kmeans.predict(x)

# 画一下
plt.figure(figsize=(8,8))
plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=result[:], s=1)

聚类图是一种利用技术和聚类算法进行数据可视化的方法。Python提供了多种库和工具来实现聚类操作,例如scikit-learn和matplotlib等。 首先,我们需要使用适当的算法将高维数据转化为低表示。常用的方法包括主成分分析(PCA)和线性判别分析(LDA)。通过对数据进行,可以减少不相关的度,提取主要的特征信息。 接下来,我们可以使用聚类算法对后的数据进行聚类操作。常见的聚类算法包括K均值聚类和层次聚类等。这些算法可以根据数据的相似性将其划分为不同的群组或簇。 在Python中,我们可以使用scikit-learn库中的`PCA`类来进行操作,例如: ```python from sklearn.decomposition import PCA pca = PCA(n_components=2) # 指定后的特征数为2 low_dim_data = pca.fit_transform(data) # 对数据进行 ``` 接着,我们可以使用scikit-learn库中的`KMeans`类来进行聚类操作,例如: ```python from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3) # 指定聚类的簇数为3 kmeans.fit(low_dim_data) # 对后的数据进行聚类 labels = kmeans.labels_ # 获取每个样本的聚类结果 ``` 最后,我们可以使用matplotlib库来绘制聚类图,将不同聚类的样本在二平面上进行可视化展示,例如: ```python import matplotlib.pyplot as plt plt.scatter(low_dim_data[:, 0], low_dim_data[:, 1], c=labels) # 绘制散点图,并使用不同的颜色表示不同聚类 plt.xlabel('Dimension 1') plt.ylabel('Dimension 2') plt.title('Dimension Reduction Clustering') plt.show() ``` 通过这样的处理过程,我们可以将原始的高维数据转化为低表示,并将其聚类结果可视化,有助于我们分析和理解数据的结构和特征。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值