#前言
这个笔记是北大那位老师课程的学习笔记,讲的概念浅显易懂,非常有利于我们掌握基本的概念,从而掌握相关的技术。
#basic concepts
EM算法的核心是,首先假设模型符合什么分布,然后计算相关参数,再根据计算出的结果,重新划分样本分布,然后再计算相关参数,直到收敛为止。
公式证明比较繁琐,这里就不贴了,附上一个python实现的EM

#! -*- coding=utf-8 -*-#模拟两个正态分布的均值估计from numpy import *
import numpy as np
import random
import copySIGMA = 6
EPS = 0.0001
#生成方差相同,均值不同的样本
def generate_data():    Miu1 = 20Miu2 = 40N = 1000X = mat(zeros((N,1)))for i in range(N):temp = random.uniform(0,1)if(temp > 0.5):X[i] = temp*SIGMA + Miu1else:X[i] = temp*SIGMA + Miu2return X#EM算法
def my_EM(X):k = 2N = len(X)Miu = np.random.rand(k,1)Posterior = mat(zeros((N,2)))dominator = 0numerator = 0#先求后验概率for iter in range(1000):for i in range(N):dominator = 0for j in range(k):dominator = dominator + np.exp(-1.0/(2.0*SIGMA**2) * (X[i] - Miu[j])**2)#print dominator,-1/(2*SIGMA**2) * (X[i] - Miu[j])**2,2*SIGMA**2,(X[i] - Miu[j])**2#returnfor j in range(k):numerator = np.exp(-1.0/(2.0*SIGMA**2) * (X[i] - Miu[j])**2)Posterior[i,j] = numerator/dominator         oldMiu = copy.deepcopy(Miu)#最大化    for j in range(k):numerator = 0dominator = 0for i in range(N):numerator = numerator + Posterior[i,j] * X[i]dominator = dominator + Posterior[i,j]Miu[j] = numerator/dominatorprint (abs(Miu - oldMiu)).sum() #print '\n'if (abs(Miu - oldMiu)).sum() < EPS:print Miu,iterbreakif __name__ == '__main__':X = generate_data()my_EM(X)    

机器学习导论(张志华):EM算法相关推荐

  1. 机器学习(周志华)算法目录

    第1章 1 第2章 模型评估与选择 23 2.1 经验误差与过拟合 23 2.2 评估方法 24 留出法 25 交叉验证法 26 自助法 27 2.3 性能度量 28 错误率与精度 29 查准率.查全 ...

  2. 张志华 统计机器学习

    统计机器学习-张志华-例子-Bayesian Linear Regression 本节贝叶斯线性回归推到主要是根据 张志华 统计机器学习 p39课来的. 但是其课中大部分概率p省略了X,最初的时候不知 ...

  3. 张志华教授《机器学习导论》和《统计机器学习》课程讲义

    张志华教授<机器学习导论>和<统计机器学习>课程讲义 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details ...

  4. 《机器学习导论》和《统计机器学习》学习资料:张志华教授

    张志华教授的两门机器学习公开课是很好的机器学习资源.但在上海交大的公开课视频网站上挂出的教学视频顺序有点乱.对于初学者来说,如果没看对顺序的话,会觉得讲得很乱,从而错过这么优质的资源.事实上板书很完整 ...

  5. 机器学习导论(张志华)笔记

    介绍 人工智能最近发展的如火如荼,要想本质掌握这门技术,离不开优秀资源的支撑. 北京大学的张志华老师,发布在网上的视频可以说是经典资源,特此分享给大家. 正文 张志华 ,北京大学数学科学学院教授,北京 ...

  6. 张志华-统计机器学习-概论

    文章目录 统计机器学习概论 1. 统计机器学习需要掌握的知识与技术? 2.统计机器学习(SML)的问题分类 3. 参数估计:频率方法与贝叶斯方法 4. 频率派和贝叶斯派的统一 统计机器学习概论 本节主 ...

  7. COS 访谈第 19 期:张志华教授

    COS 访谈第 19 期:张志华教授 张志华 / 常象宇 关键词:COS 访谈; ESL; Mike Jordan; MLAPP; PRML; 大数据; 张志华; 机器学习; 统计学习; 郁彬 文字整 ...

  8. 《机器学习》周志华 学习笔记

    <机器学习>周志华 学习笔记 第一章 绪论 1.1 引言 机器学习:致力于研究如何通过计算的手段,利用经验来改善系统自身的性能. 经验:"经验"通常以"数据& ...

  9. 《机器学习》(周志华)西瓜书读书笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 第1章 绪论 第2章 模型评估与选择 第3章 线性模型 第4章 决策树 第5章 神经网络 第6章 神经网络 第7章 贝 ...

  10. 机器学习_周志华_问题汇总_第2周

    问题 Q1 如果我想分析一下文本分类错误的原因,应该从哪些方面入手? 可以去分析一下哪个类别错误率高,然后看看这个类别的是否不平衡,针对这个类别看看能不能进行改进. 还有就是数据量过少,或是数据质量较 ...

最新文章

  1. 瑞银监控机器人组装法_瑞银公布Model 3后续拆解报告:装配问题严重 噪音勉强能接受...
  2. Windows窗口刷新机制详解
  3. linux系统ip占用,IP地址被占用的问题,折腾我好几天了 (已解决)
  4. python安装完毕后,用pip安装,提示找不到ssl模块
  5. 微信小程序选择图片,查看图片信息,浏览图片,图片上传
  6. RPC架构简介与原理
  7. C++总结学习(一)
  8. Code Combat 适合初中生、高中生 学习代码的游戏
  9. python编写摇骰子游戏_Python使用tkinter实现摇骰子小游戏功能的代码
  10. Java高并发编程中Phaser的使用及详细介绍-刘宇
  11. Data Structures and Algorithms (English) - 6-8 Percolate Up and Down(20 分)
  12. 从数据仓库到大数据,数据平台这25年是怎样进化的?[转]
  13. c语言游泳是怎么钓鱼的,钓鱼怎么找水层?看完这篇你就懂!
  14. QT中读取STL并显示
  15. 研华USB4761 C#编程
  16. 大数据下的用户行为分析
  17. Android应用开发高效工具集1---ant构建简单Android项目
  18. mysql 外键有啥用途_外键
  19. 【bug】missing required field “selector“ in io.k8s.api.apps.v1.DeploymentSpec;
  20. 我的世界mod整合包java_我的世界1.10.2mod大全+整合包+合集

热门文章

  1. A value-added tax (VAT) IN UK
  2. t test table
  3. Agile Development
  4. 【转】强大的B树B+树
  5. hdu 4597 Play Game(记忆化搜索)
  6. Linux监控   Nagios
  7. C/C++: libcurl获取网页内容
  8. 第二次冲刺------第三天
  9. 各路券商会盟互联网金融 敢问路在何方
  10. 爱上MVC3系列~同步与异步提交,在过滤器里如何进行重定向~续