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()

  • 相关阅读:
    java SSM 框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架源码
    PHP5.5.13 + Apache2.4.7安装配置流程详解
    mybatis-generator 自动生成mapper以及实体类
    spring cloud之Feign的使用
    spring cloud 初体验
    redis 分布式锁
    Activiti 工作流之所学所感(基本配置) DAY1
    druid 连接池加密算法
    ssm+redis整合(通过aop自定义注解方式)
    aop (权限控制之功能权限)
  • 原文地址:https://www.cnblogs.com/gczr/p/14613087.html
Copyright © 2011-2022 走看看