高斯聚类,利用tsne可视化

前提你以前将要处理的数据整理好了。(指的是数据清洗,异常值检测以及处理,数据重采样等)
我这里的X是1288*7的numpy.ndarray类型。
第一步,数据归一化,用的是MinMaxScaler。

from sklearn.preprocessing import MinMaxScaler
X0=df.values#dataframe的value是numpy.ndarray类型
scaler = MinMaxScaler(feature_range=(0,1))#这里的feature_range填的是想变换后区间
X = scaler.fit_transform(X0)

第二步,建立高斯聚类模型并训练

from sklearn.mixture import GaussianMixture
model = GaussianMixture(n_components = 2)
model.fit(X)
yhat = model.predict(X)

yhat就是训练之后的一位数组,每一个数据是之前每一行数据对应的类别0,1,2···n(n是你聚类的个数)
在这里插入图片描述
第三步,利用tsne可视化

from sklearn import manifold
import numpy as np
from numpy import unique
from numpy import where
clusters = unique(yhat)
ax1=plt.figure().add_subplot(211,projection='3d')
ax2=plt.figure().add_subplot(211)
method1 = manifold.TSNE(n_components=3, init='pca',
                                 random_state=0)
method2 = manifold.TSNE(n_components=2, init='pca',
                                 random_state=0)
Y1 = method1.fit_transform(X)
Y2 = method2.fit_transform(X)
for cluster in clusters:
    row_ix = where(yhat == cluster)
    ax1.scatter(Y1[row_ix, 0],Y1[row_ix, 1],Y1[row_ix,2])
    ax2.scatter(Y2[row_ix, 0],Y2[row_ix, 1])
plt.show()

在这里插入图片描述
这是最后的效果图,为了比较效果画了三维和二维图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值