以下为GMM聚类程序

  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. data=pd.read_csv('Fremont.csv',index_col='Date',parse_dates=True)
  5. print(data.head())
  6.  
  7. data.plot()
  8. plt.show()
  9. data.resample('w').sum().plot()#以周为时间统计
  10.  
  11. data.resample('D').sum().rolling(365).sum().plot()
  12. plt.show()
  13.  
  14. ##按照时间为统计
  15. data.groupby(data.index.time).mean().plot()
  16. plt.xticks(rotation=45)
  17. plt.show()
  18.  
  19. data.columns=['West','East']
  20. data['Total']=data['West']+data['East']
  21. pivoted=data.pivot_table('Total',index=data.index.time,columns=data.index.date)
  22. pivoted.iloc[:5,:5]
  23. print(pivoted.iloc[:5,:5])
  24. pivoted.plot(legend=False,alpha=0.01)
  25. plt.xticks(rotation=45)
  26. plt.show()
  27.  
  28. print(pivoted.shape)
  29. X=pivoted.fillna(0).T.values
  30. print(X.shape)
  31.  
  32. from sklearn.decomposition import PCA
  33. X2 =PCA(2).fit_transform(X)
  34. print(X2.shape)
  35. plt.scatter(X2[:,0],X2[:,1])
  36. plt.show()
  37.  
  38. from sklearn.mixture import GaussianMixture
  39. gmm =GaussianMixture (2)
  40. gmm.fit(X)
  41. # labels= gmm.predict_proba(X)
  42. # print(labels)
  43. labels=gmm.predict(X)
  44. print(labels)
  45. plt.scatter(X2[:,0],X2[:,1],c=labels,cmap='rainbow')
  46. plt.show()
  47.  
  48. from sklearn.datasets.samples_generator import make_blobs
  49. X,y_true =make_blobs(n_samples=800,centers=4,random_state=11)
  50. plt.scatter(X[:,0],X[:,1])
  51. plt.show()
  52.  
  53. from sklearn.cluster import KMeans
  54. KMeans =KMeans(n_clusters=4)
  55. KMeans.fit(X)
  56. y_Kmeans=KMeans.predict(X)
  57. plt.scatter(X[:,0],X[:,1],c=y_Kmeans,s=50,cmap='viridis')
  58. centers=KMeans.cluster_centers_
  59. plt.show()
  60.  
  61. from sklearn.mixture import GaussianMixture
  62. gmm =GaussianMixture(n_components=4).fit(X)
  63. labels=gmm.predict(X)
  64. print(labels)
  65. plt.scatter(X[:,0],X[:,1],c=labels,s=40,cmap='viridis')
  66. plt.show()

  

运行结果

EM算法之GMM聚类的更多相关文章

  1. 聚类和EM算法——K均值聚类

    python大战机器学习——聚类和EM算法   注:本文中涉及到的公式一律省略(公式不好敲出来),若想了解公式的具体实现,请参考原著. 1.基本概念 (1)聚类的思想: 将数据集划分为若干个不想交的子 ...

  2. EM 算法(三)-GMM

    高斯混合模型 混合模型,顾名思义就是几个概率分布密度混合在一起,而高斯混合模型是最常见的混合模型: GMM,全称 Gaussian Mixture Model,中文名高斯混合模型,也就是由多个高斯分布 ...

  3. 机器学习——EM算法与GMM算法

    目录 最大似然估计 K-means算法 EM算法 GMM算法(实际是高斯混合聚类) 中心思想:①极大似然估计 ②θ=f(θold) 此算法非常老,几乎不会问到,但思想很重要. EM的原理推导还是蛮复杂 ...

  4. 机器学习(七)EM算法、GMM

    一.GMM算法 EM算法实在是难以介绍清楚,因此我们用EM算法的一个特例GMM算法作为引入. 1.GMM算法问题描述 GMM模型称为混合高斯分布,顾名思义,它是由几组分别符合不同参数的高斯分布的数据混 ...

  5. EM 算法-对鸢尾花数据进行聚类

    公号:码农充电站pro 主页:https://codeshellme.github.io 之前介绍过K 均值算法,它是一种聚类算法.今天介绍EM 算法,它也是聚类算法,但比K 均值算法更加灵活强大. ...

  6. 【机器学习】GMM和EM算法

    机器学习算法-GMM和EM算法 目录 机器学习算法-GMM和EM算法 1. GMM模型 2. GMM模型参数求解 2.1 参数的求解 2.2 参数和的求解 3. GMM算法的实现 3.1 gmm类的定 ...

  7. 6. EM算法-高斯混合模型GMM+Lasso详细代码实现

    1. 前言 我们之前有介绍过4. EM算法-高斯混合模型GMM详细代码实现,在那片博文里面把GMM说涉及到的过程,可能会遇到的问题,基本讲了.今天我们升级下,主要一起解析下EM算法中GMM(搞事混合模 ...

  8. GMM与EM算法

    用EM算法估计GMM模型参数 参考  西瓜书 再看下算法流程

  9. PLSA及EM算法

    前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法.接着我们分析如何运用EM算法估计一个简单的mixture ...

随机推荐

  1. hive 索引

    hive 有限的支持索引,不支持主键外键,可以对表添加索引,也可以为某个分区添加索引.维护索引也要额外的存储空间和计算资源. 创建索引需要指定索引处理器 如 as 'org.apache.hadoop ...

  2. [转] Android中的设计模式-备忘录模式

    转自Android中的设计模式-备忘录模式 定义 备忘录设计模式的定义就是把对象的状态记录和管理委托给外界处理,用以维持自己的封闭性. 比较官方的定义 备忘录模式(Memento Pattern)又叫 ...

  3. HTML5 Canvas 小例子 旋转的时钟

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. Set原理

    一.HashSet判断重读值的原理 1. 哈希表的存储结构: ==>数组+链表,数组的每个元素以链表的形式存储 2.如何把对象存储到哈希表中 ==>先计算对象的hashcod值,再对数组的 ...

  5. php 中文转拼音,可以只转首字母,可以设置utf8、gbk

    <?php class Pinyin { /** * 默认是gb编码,第二个参数随意设置即为utf8编 * @param type $isInitial 是否只返回首字母 * @return t ...

  6. 【技术文档】jeecg3.7.3-maven搭建环境入门

    JEECG 微云快速开发平台(3.7.3)Eclipse-Maven版本手把手入门手册 官方标准开发工具:1. IDE        Eclipse Java EE IDE for Web Devel ...

  7. LeetCode题解 Permutations II 和 Permutations I ——回溯算法

    这个算法感觉还是很陌生的.算法导论里没有讲这个算法,而数据结构与算法分析只用了一节来阐述.我居然跳过去了..尴尬. 笨方法解决的: 第一题: 给定一个元素不重复的数组,枚举出他们的全排列. 方法1:递 ...

  8. React Native多语言

    https://medium.com/@danielsternlicht/adding-localization-i18n-g11n-to-a-react-native-project-with-rt ...

  9. 使用大于16TB的ext4文件系统

    我们的电脑想要快速开机,需要具备三个条件:第一是主板支持UEFI,二是系统支持UEFI(Win8),最后就硬盘需要采用GPT分区. GPT分区全名为Globally Unique Identifier ...

  10. Zookeeper 在Linux系统的安装

    注册中心Zookeeper 官方推荐使用 zookeeper 注册中心.注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小. Z ...