什么是马尔可夫链?什么时候应该使用它们?它们是如何运作的?

马尔可夫链是一个相当常见、相当简单的对随机过程进行统计建模的方式。它们被应用在很多领域,从文本生成到金融建模。一个比较流行的例子是 SubredditSimulator,它使用马尔可夫链自动创建整个 subreddit 的内容。总之,马尔可夫链在概念上是非常直观,并且易于理解的,不使用任何高级的统计或者数学概念就可以实现。马尔可夫链是入门概率建模和数据科学技术的很好的开端。

简介

首先,我们用一个很常见的例子来描述它们:

试想有两种可能的天气状态:晴天或者阴天。你总是可以直接地观察当前的天气状态,而且保证是之前提及的两者之一。现在,你决定预测明天的天气。假设在这个过程中有一个潜在的转移,因为当前的天气会对第二天的天气状态有所影响。因此,作为一个敬业的人,你收集了几年的天气数据,然后计算得到阴天之后出现晴天的概率是 0.25。你还注意到,广泛地讲,阴天之后发生阴天的概率是 0.75,因为只有两种可能的天气状态。你现在可以利用这个分布,根据当地目前的天气状态去预测未来几天的天气。

这个例子描述了马尔可夫链的很多关键概念。马尔可夫链本质上是由一系列满足马尔可夫性质的转移组成,这些转换服从某种概率分布。

我们来观察一下在这个例子中,如何仅仅通过观察从当天到第二天的转换就得到概率分布。这其实说的就是马尔可夫性,即马尔可夫过程独有的让状态转移没有记忆的性质。这通常使它们无法成功地生成会出现某些期望潜在趋势的序列。例如,马尔可夫链可能根据词频来模仿一个作者的写作风格,但是它无法生成包含深层含义的文本或者蕴含某种主题意义的文本,因为这些文本都是基于更长的文本序列开发的。因此,它们缺乏生成语境相关内容的能力,因为它们无法考虑到之前的整条状态链。

天气预测例子的可视化

模型

形式上,马尔可夫链是一个概率自动机。状态转移的概率分布通常表示为马尔可夫链的转移矩阵。如果马尔可夫链有 N 个可能的状态,那么这个转移矩阵就是 N*x*N 的矩阵,使得元素 (I, J) 代表从状态 I 转移到状态 J 的概率。此外,状态转移矩阵必须是随机矩阵,它的每一行元素之和必须是 1。这完全是能够讲得通的,因为每一行代表它自己的概率分布。

马尔可夫链的一般视图,圆圈代表状态,边代表转移。

具有三个可能状态的状态转移矩阵。

此外,马尔可夫链也会有一个初始状态向量,由一个 N x 1 的向量表示,用这个向量来描述从 N 个状态中的某个状态开始的概率分布。初始向量中的元素 I 代表该马尔可夫链从 I 状态开始的概率。

具有四个可能状态的初始向量。

这两个实体通常就是用来描述一个马尔可夫链所需的全部内容了。

我们知道如何获得从一个状态转移到另一个状态的可能性,但是如何知道经过多个步骤后发生转移的概率呢?为了将这个也形式化,我们现在要定义在 M 个步骤中从状态 I 转移到状态 J 的概率。事实证明,这是很容易的。给定一个状态转移矩阵 P,这可以通过计算矩阵 P 的 M 次幂中的元素 (I, J) 来决定。然而,对于 M 值比较大的情况,如果您对简单的线性代数比较熟悉,更有效的方法是先将矩阵对角化,然后再计算它的 M 次幂。

结论

既然你已经了解了马尔可夫链的基本知识,现在就应该能够用你选择的语言轻松地实现它们。如果你不擅长编程,还有许多更高级的马尔可夫链和马尔可夫过程的属性可以深入研究。在我看来,马尔可夫链沿着理论路线的自然发展将是隐马尔可夫过程或 MCMC(马尔可夫链蒙特卡罗)。简单的马尔可夫链是其他更复杂的建模技术的基本组成,因此,掌握了这些知识,你现在可以去尝试更多这种主题的技术,例如信念建模和采样。

今天是雾霾,明天是什么?马尔可夫链告诉你相关推荐

  1. 逃离烤鸭味的雾霾北京,我们还能去哪里?

    不想在北京呆了! 最近几天在北京呆不下去了!每天挤地铁被大叔的体香拥抱也就罢了,出门就被有毒的雾霾淹没,回了家还冻成狗,盖了三床被子都冷! 讲道理,今年夏天天气不错,我本来想给北京天气贴个小红花的,可 ...

  2. 程序员为对抗雾霾可以做些什么?

    就像我周末那篇文章里说的一样,雾霾大哥来了,这次礼物貌似比以前贵重很多,到处散发着泥土的芬芳,让人吸的有点窒息,吃的有点噎的上,让人难以下咽.自从有雾霾这个概念以来,帝都的精神就变了,变成了:&quo ...

  3. “雾霾”天里坐看云起时-【软件和信息服务】2014.01

    2013年是中国关注雾霾的元年,中国经济高速发展了30多年后,我们终于幡然醒悟:雾霾和各种污染也开始正式进入公众和各级政府的视野.VMware在12月6日召开的VSS上海站并没有因为雾霾肆虐而降低热度 ...

  4. 谷歌地图的全球森林监察系统,揭秘中国雾霾的惊天秘密!

    来源:老牛时评 谷歌公司最近推出的全新交互式地图--"全球森林监察"它可以实时显示全球森林的覆盖情况. 该幅地图的数据来源有多个,其中包括了NASA的森林面积覆盖率的分析数据. 于 ...

  5. 大数据分析中国冬季重度雾霾的成因(二)

    2013年1月,华北地区的特征是负表面风速异常(更弱的水平扩散) 和正空气温度梯度异常(垂直对流弱大气层稳定).虽然沉淀也可能降低PM2.5,但之前的研究并未发现PM2.5的浓度和冷空气的导致沉淀有显 ...

  6. 大数据分析中国冬季重度雾霾的成因(一)

    ·        2013年华北地区经历了历史上最为严重的雾霾,研究表明雾霾是由于过去30年都未曾出现过的极其恶劣的通风条件造成的,统计分析表明这个恶劣的通风条件与上一个秋冬季的大范围降雪导致北极圈冰 ...

  7. 【机器学习PAI实践三】雾霾成因分析

    一.背景 如果要人们评选当今最受关注话题的top10榜单,雾霾一定能够入选.如今走在北京街头,随处可见带着厚厚口罩的人在埋头前行,雾霾天气不光影响了人们的出行和娱乐,对于人们的健康也有很大危害.本文通 ...

  8. 雾霾入侵机房会产生哪些危害?该如何防护?

    前言: 相信雾霾的概念大家已经再熟悉不过了,空气污染对人的危害可想而知,会引发多种呼吸道的疾病,给人们的工作和生活都带来巨大影响,同样的,空气污染对于数据中心同样也有严重影响,尤其是对数据中心里运行的 ...

  9. 雾霾经济:这10款产品,马云看了都想投资

    PMCAFF(www.pmcaff.com):互联网产品社区,是百度,腾讯,阿里等产品经理的学习交流平台.定期出品深度产品观察,互联产品研究首选. 雾霾爆表,有的公司却凭借雾霾把生意做得风生水起,连马 ...

  10. gta5显示nat较为严格_为何严格治理下雾霾天仍频发?哈尔滨市环保局解答重污染天3大疑问...

    哈尔滨市环保局副局长姚玮晶 解答近期重污染天三疑问 我省与吉林大气污染或将联防联控 气象条件不利+秸秆焚烧集中 是雾霾主因 今年供暖季以来,冰城污染天频发,与去年同期相比,重污染天气有所增多.自201 ...

最新文章

  1. ThreadPool基础之RegisterWaitForSingleObject
  2. python quirk
  3. mysql安装 经验_MySQL安装教程 这些经验不可多得
  4. ubuntu 下安装java6的源
  5. 十五、深入Java的数组(上篇)
  6. PyTorch GPU安装指南 (Ubuntu 16.04 anaconda cuda8.0 cuDNN6.0)
  7. Linux 移除python Error: Trying to remove “yum”, which is protected
  8. Qt QSettings读写ini时 General 读不出来值
  9. 程序员应该怎么学数学
  10. readelf命令使用说明
  11. html小写数字怎么转换大写,如何将数字123转化成大写的文字 一百二十三 或 一二三?...
  12. 使用奇妙清单:轻松搞定家庭计划事项同步管理
  13. js月份的计算公式_js判断某年某月有多少天(闰年计算方法)
  14. 太难了 | 2019年互联网寒冬,如何防止自己被裁员失业?
  15. 服务器硬件防火墙与软件防火墙的作用和区别
  16. c语言程序小兔子吃萝卜图片,小白兔吃萝卜看图写话范文
  17. “诸神之眼”——Nmap端口扫描工具使用小手册
  18. 华为P20无敌拍摄能力开放 如何即刻获得?
  19. mac brew安装php7.4
  20. snowflake做主键 自增_忘掉 Snowflake,感受一下性能高出 587 倍的全局唯一 ID 生成算法...

热门文章

  1. android 系统字体无效,android内嵌H5页面,字体设置失效的问题
  2. DBeaver执行SQL脚本
  3. 高等代数第3版下 [丘维声 著] 2015年版_书籍推荐 | 关于数学分析和高等代数
  4. Redhat 7 配置Yum仓库
  5. 编译OpenCV缺少python27_d.lib的解决方法
  6. c语言crc编码函数,C语言:CRC校验
  7. 单机倒立摆系统建模与仿真
  8. 怎么压缩jpg图片到100k?jpg图片怎么压缩?
  9. 软件架构--《企业IT架构转型之道》笔记
  10. HTML做一个简单漂亮的宠物网页(纯html代码)