EM算法之GMM聚类



以下为GMM聚类程序
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
data=pd.read_csv('Fremont.csv',index_col='Date',parse_dates=True)
print(data.head()) data.plot()
plt.show()
data.resample('w').sum().plot()#以周为时间统计 data.resample('D').sum().rolling(365).sum().plot()
plt.show() ##按照时间为统计
data.groupby(data.index.time).mean().plot()
plt.xticks(rotation=45)
plt.show() data.columns=['West','East']
data['Total']=data['West']+data['East']
pivoted=data.pivot_table('Total',index=data.index.time,columns=data.index.date)
pivoted.iloc[:5,:5]
print(pivoted.iloc[:5,:5])
pivoted.plot(legend=False,alpha=0.01)
plt.xticks(rotation=45)
plt.show() print(pivoted.shape)
X=pivoted.fillna(0).T.values
print(X.shape) from sklearn.decomposition import PCA
X2 =PCA(2).fit_transform(X)
print(X2.shape)
plt.scatter(X2[:,0],X2[:,1])
plt.show() from sklearn.mixture import GaussianMixture
gmm =GaussianMixture (2)
gmm.fit(X)
# labels= gmm.predict_proba(X)
# print(labels)
labels=gmm.predict(X)
print(labels)
plt.scatter(X2[:,0],X2[:,1],c=labels,cmap='rainbow')
plt.show() from sklearn.datasets.samples_generator import make_blobs
X,y_true =make_blobs(n_samples=800,centers=4,random_state=11)
plt.scatter(X[:,0],X[:,1])
plt.show() from sklearn.cluster import KMeans
KMeans =KMeans(n_clusters=4)
KMeans.fit(X)
y_Kmeans=KMeans.predict(X)
plt.scatter(X[:,0],X[:,1],c=y_Kmeans,s=50,cmap='viridis')
centers=KMeans.cluster_centers_
plt.show() from sklearn.mixture import GaussianMixture
gmm =GaussianMixture(n_components=4).fit(X)
labels=gmm.predict(X)
print(labels)
plt.scatter(X[:,0],X[:,1],c=labels,s=40,cmap='viridis')
plt.show()
运行结果

EM算法之GMM聚类的更多相关文章
- 聚类和EM算法——K均值聚类
python大战机器学习——聚类和EM算法 注:本文中涉及到的公式一律省略(公式不好敲出来),若想了解公式的具体实现,请参考原著. 1.基本概念 (1)聚类的思想: 将数据集划分为若干个不想交的子 ...
- EM 算法(三)-GMM
高斯混合模型 混合模型,顾名思义就是几个概率分布密度混合在一起,而高斯混合模型是最常见的混合模型: GMM,全称 Gaussian Mixture Model,中文名高斯混合模型,也就是由多个高斯分布 ...
- 机器学习——EM算法与GMM算法
目录 最大似然估计 K-means算法 EM算法 GMM算法(实际是高斯混合聚类) 中心思想:①极大似然估计 ②θ=f(θold) 此算法非常老,几乎不会问到,但思想很重要. EM的原理推导还是蛮复杂 ...
- 机器学习(七)EM算法、GMM
一.GMM算法 EM算法实在是难以介绍清楚,因此我们用EM算法的一个特例GMM算法作为引入. 1.GMM算法问题描述 GMM模型称为混合高斯分布,顾名思义,它是由几组分别符合不同参数的高斯分布的数据混 ...
- EM 算法-对鸢尾花数据进行聚类
公号:码农充电站pro 主页:https://codeshellme.github.io 之前介绍过K 均值算法,它是一种聚类算法.今天介绍EM 算法,它也是聚类算法,但比K 均值算法更加灵活强大. ...
- 【机器学习】GMM和EM算法
机器学习算法-GMM和EM算法 目录 机器学习算法-GMM和EM算法 1. GMM模型 2. GMM模型参数求解 2.1 参数的求解 2.2 参数和的求解 3. GMM算法的实现 3.1 gmm类的定 ...
- 6. EM算法-高斯混合模型GMM+Lasso详细代码实现
1. 前言 我们之前有介绍过4. EM算法-高斯混合模型GMM详细代码实现,在那片博文里面把GMM说涉及到的过程,可能会遇到的问题,基本讲了.今天我们升级下,主要一起解析下EM算法中GMM(搞事混合模 ...
- GMM与EM算法
用EM算法估计GMM模型参数 参考 西瓜书 再看下算法流程
- PLSA及EM算法
前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法.接着我们分析如何运用EM算法估计一个简单的mixture ...
随机推荐
- hive grouping sets 实现原理
先下结论: 看了hive 1.1.0 grouping sets 实现(从源码及执行计划都可以看出与kylin实现不一样),(前提是可累加,如sum函数)他并没有像kylin一样先按照group by ...
- 【3-30】document获取、事件、标记样式
一.获取标记对象 1.id选择:document.getelementbyid("id名")---根据id找单个元素 2.class选择:document.getelementsb ...
- C# 申请非托管内存
方式一:使用 stackalloc 关键字 int* block = stackalloc int[100]; 注:此关键字仅在局部变量初始值设定项中有效. 以下代码导致编译器错误. int* blo ...
- MiniDao_1.6.4 版本发布,轻量级Java持久化框架,Hibernate项目辅助利器
MiniDao 简介及特征 MiniDao 是一款超轻量的JAVA持久层框架,具备Mybatis一样的SQL能力: 支持SQL分离.支持标签.支持注解.MiniDao产生的初衷是为了解决Hiberna ...
- 多媒体基础知识之PCM数据《 转》
多媒体基础知识之PCM数据 1.什么是PCM音频数据 PCM(Pulse Code Modulation)也被称为脉冲编码调制.PCM音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样.量化 ...
- vue ...mapMutations 的第一个参数默认为 数据对象state
1.实现回调后 路由的跳转 mutationsLoginHeaderBackFun(state,$router) { console.log(state); console.log($router); ...
- 如何安全的在不同工程间安全地迁移asset数据?三种方法
答:1.将Assets和Library一起迁移2.导出包package3.用unity自带的assets Server功能
- 使用mysqlbinlog恢复指定表
从整库备份的sql文件中导出某个表的sql语句时,vim查找到表的第一条INSERT语句后,按上下换行键计数INSERT语句的条数,然后按n yy复制,退出vim后,再新建一个文件,按p粘贴刚才的n条 ...
- 从初始化列表和构造函数谈C++的初始化机制
来源:http://blog.csdn.net/theprinceofelf/article/details/20057359 前段时间被人问及“初始化列表和构造有什么区别?”我竟一时语塞,只好回头 ...
- 如何使用JDBC删除一条记录
//根据学生id删除操作 public void deleteOne(int id) { Statement stmt=null; // 发送SQL语句,返回执行结果 ...