高斯图模型
高斯图模型(GGM),是研究基因关联网络的流行工具,
了解GGMs的最佳起点是20世纪70年代早期引入这一概念的经典论文。(AP Dempster.1972。 协方差选择。生物统计学28:157-175)。进一步的细节可以在J.Whittaker (1990)和 D.Edwards(1995)的GGM书中找到。
高斯图模型是概率图模型的一种,
其围绕高斯分布的变量去研究各个变量的联系。学过图论的都知道,图就是node和edge组成。用一个矩阵来描述图的话,n*n的矩阵表示n个node。矩阵里面的值是否为0,描述了两个node之间是否存在边。
高斯图模型的重点是inverse covariance matrix(逆方差矩阵?)是什么样子,因为里面元素为0代表了两个变量的独立,也就是确立了图的样子。
另外,图中并不是每一个链接我们都要,有时候,只想了解哪些node之间的链接是显著相关的。这里就有两个关于高斯图模型的问题:1.去除不是很相关联的链接,方法-Lasso regularization 2.这是一个trade-off, 如果你想要保留更多的edges,lasso的惩罚项相应的就要小一点,保留的信息也就更多, 反之,你增大lasso的惩罚项,edges就少了,图也就更sparse了一些。
2
但是图模型有个很明显的特点,就是你无法像用random forest这种模型那样把它当个黑盒子,只要改改参数跑跑包就行了。
Okay,假设我们现在有个任务,要做physician targeting,目的是找到合适的医生卖药。这是一个广告业常见业务,不难理解。可以模型化成最简单的binary classification问题。
第一步,我写出所有变量的joint distribution,这没问题,假设的简单一点,都能搞。这就算是把model 的structure搭建出来了。
第二步,训练,也叫参数估计,如果我要用conditional random field(以下简称CRF),这是个discriminative model。这个model有个麻烦的地方,后验概率的分母要自己积分,要能积出来close form才能写出目标函数,才能训练。这都要自己搞,要自己写梯度算法,不是import 个package就完事了的。
第三步,统计叫inference,机器学习叫predict,通过MRF模型,我得到了六万多个physician的label的joint 后验distribution,我现在要找到每个医生的边缘概率分布才能对每个医生做预测对吧。那怎么办呀,我不能暴力积分呀,这么多变量。那就利用网络的结构吧,我的图环loop比较少,嗯,说明很多变量是条件独立的,
Anyway了,最后我总算算出了边缘概率密度。然而全这么搞了一套下来,python 代码两千行,四个月。好处是图模型容易解释,ppt做着也漂亮,而且有门槛,不是别人安装个tensorflow就能说自己是deep learning xxx的那种感觉。坏处呢是基本都要自己写。
但是,如果你就是在解决问题,工程思维,要最短时间拿出最合理的方案,就不太合适了