zoukankan      html  css  js  c++  java
  • 利用Kemeans进行聚类及TSNE降维可视化

    一、kmeans聚类

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns 
    import re
    pd.set_option('max_columns', 600)
    pd.set_option('max_rows', 500)
    from sklearn.manifold import TSNE
    from scipy.cluster.vq import vq, kmeans, whiten
    
    a = np.random.multivariate_normal([0, 0], [[4, 1], [1, 4]], size=10)
    b = np.random.multivariate_normal([30, 10],
                                      [[10, 2], [2, 1]],
                                      size=10)
    
    features=np.concatenate((a, b))
    #白化处理
    whitened = whiten(features)
    #k-means聚类
    codebook, distortion = kmeans(whitened, 3)# 返回聚类中心点和每个类的平均误差
    #返回每行数据聚类的编号及偏差
    codes, error = vq(whitened, codebook)
    #将聚类结果形成dataframe
    df=pd.DataFrame(features)
    df['code']=codes
    
    #可视化展现聚类效果
    d=df.loc[df.code==0,:]
    plt.plot(d[0],d[1],'r.')
    d=df.loc[df.code==1,:]
    plt.plot(d[0],d[1],'go')
    d=df.loc[df.code==2,:]
    plt.plot(d[0],d[1],'b*')
    plt.show()

    二、TNSE

    TSNE提供了一种有效的降维方式,可以对高于2维数据的聚类结果以二维的方式展示出来。

    #!/usr/bin/env python
    #-- coding:utf-8 --
    
    #接kmeans.py
    #k_means.py中得到三维规范化数据data_zs;
    #r增加了最后一列,列索引为“聚类类别”
    
    from sklearn.manifold import TSNE
    
    tsne=TSNE()
    tsne.fit_transform(data_zs)  #进行数据降维,降成两维
    #a=tsne.fit_transform(data_zs) #a是一个array,a相当于下面的tsne_embedding
    tsne=pd.DataFrame(tsne.embedding_,index=data_zs.index) #转换数据格式
    
    import matplotlib.pyplot as plt 
    
    d=tsne[r[u'聚类类别']==0]
    plt.plot(d[0],d[1],'r.')
    
    d=tsne[r[u'聚类类别']==1]
    plt.plot(d[0],d[1],'go')
    
    d=tsne[r[u'聚类类别']==2]
    plt.plot(d[0],d[1],'b*')
    
    plt.show()

  • 相关阅读:
    《C# to IL》第一章 IL入门
    multiple users to one ec2 instance setup
    Route53 health check与 Cloudwatch alarm 没法绑定
    rsync aws ec2 pem
    通过jvm 查看死锁
    wait, notify 使用清晰讲解
    for aws associate exam
    docker 容器不能联网
    本地运行aws lambda credential 配置 (missing credential config error)
    Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
  • 原文地址:https://www.cnblogs.com/gczr/p/14613087.html
Copyright © 2011-2022 走看看