这部片子其实我大学时就看过,一开始逞能看的是英文版,结果差点没看下去,然后换了中文字幕才看完第一遍,那时纯粹把这个当作故事,没有去详细思考这部片子为什么受欢迎。

今天我又找到了在线的版本看了一遍,John Oldman看似像讲故事一样的叙述,其实给他的朋友灌输了宗教产生的另一种可能。这次欣赏时,剧情里我最喜欢的一段话是:

EDITH: You think that’s all religion is about? Selling hope and survival?

JOIN: The Old Testament sells fear and guilt. The New Testament is a great work of ethics, put into my mouth by better philosophers and poets than I am. But the message isn’t practiced. The fairy tales build churches.

当然,朋友们听过John的故事后的反映出乎了意料,几位教授讨论了这究竟是真是假,EDITH甚至陷入了信仰的崩塌。John每一个口述的事情都有文献或者专家的推测。但是当把这一切组合成一个故事时,影片中的各位仿佛身陷其中,无法辨别(验证)其真伪。但是如果仔细想想John所说的话,他得过黑死病并没有留下伤疤,这本来就是一个很好的证据,说明John是在编故事的。可惜剧中的人物并没有再追究下去。

正如知乎上 大家对这部影片的看法,本片之所以有让人无法辩驳的推演逻辑的原因是它参照了典型的科学研究的步骤,即观察->假设->验证 。在逻辑上基本无懈可击,让人感觉故事完整,令人思考“究竟是不是真的是这样”,这正是该片的独特之处。

关于宗教,我只想说,宗教的起源最好阅读一下《金枝》(the golden bough),这个东西是随着人类社会的发展需要而产生的,也会随着社会的需要而变化。

EDITH: Christianity’s been a worldwide belief for two thousand years.

JOHN: How long did the Egyptians worship (Goddess of health, marriage, and wisdom)? The Sumerians, Ishtar? Sacred cows wander freely in parts of India, as reincarnated souls. In a few thousand years they’ll be barbecued, and the souls will be in squirrels.


模型融合的方法有5种:1. 投票,2. 求均值,3. bagging,4. Boosting,5. Stacking1

其中投票运用在分类问题上,求均值是最简单的回归问题的模型融合方法。

bagging就比较复杂了,有放回的抽样,对抽样的样本建立模型,然后对结果进行1.投票或者2.求均值。

Boosting是用迭代思想,我先建立一个简单的模型,然后找到这个模型的剩余误差,接下来在用另一个模型来预测前一个模型的剩余误差,以此类推,这样会产生多个若分类器(模型),然后给每个分类器一个权重,最终组合成一个强分类器(模型)。

Gradient_Boosting 上图来自于参考资料2

Boosting的权重究竟怎么选? 目的是让加权后的错误最小化(损失函数数值最小)。 损失函数有:

  1. 无权重平均
  2. 加权平均
  3. logistic MSE
  4. hinge … 等等

例如决策树,计算weighted impurity scores,一个二分类问题:根据class1和class2中的比例,求信息熵2

好了,说了这么多废话,终于到重头戏,stacking方法了,这个方法网上的文献不多,混乱程度那是相当高。 stacking 方法的第一层是类似cross validation,对于训练集合分成10份,用其中的9份做training,1份做validation,另外在对test集合做预测,这样,最后会得到一个完整的训练数据的validation结果,以及测试数据的预测结果,然后将这两个结果分别作为第二层的训练数据和测试数据,进行预测3

stacking method 上图来自于参考资料3

那么问题来了,究竟是对测试数据集在第一层时,做10次预测,并将10个结果求均值或者投票,还是每次只对测试数据集的十分之一做预测? 我个人认为是后者,如果已经对10次预测结果求均值或者投票了,那么就等于已经做了一次第二层对模型融合。个人观点,不一定对,主要是我没有找到3中的代码里对第一层的测试数据集合求均值或者投票。

另外在第二层做模型融合时,regression数据用glm,classification数据用boost,我测试过regression数据用boosting tree,结果糟糕的一塌糊涂(仍旧是个人观点,不一定对)。

后记另一件事情:我发现我在5年前就用gbm方法做预测,但是我完全不记得我自己做过这样的事情了_-_。如果觉得理解不了stacking model究竟是用了哪种方法在第一层做预测,直接用python或者R的软件包。在独立日写了一天的代码,最后才发现软件包的我并不感到高兴 :(

参考资料:


大约5天前,Kaggle的一项由奔驰汽车公司主办的机器学习挑战赛变成了猜数字挑战赛。比赛原意是通过给定的抹去信息的数据来预测y值,预测结果的准确性根据决定系数来评估。

参与者在Kaggle平台提交测试数据的预测结果后,平台会先检测19%的预测结果,产生参与者在公开排名榜的名次。还有81%的预测结果的检测不公布排名,参与者就有了一个自己也不清楚的非公开排名榜的名次。等到比赛结束,公开那个“非公开排名榜”的结果,产生参与者的最终排名。 这个方法本来是为了防止大家通过排名榜来“撞出”测试数据的预测结果,由于这19%和81%的测试结果排序是固定的(不是每次随机挑出19%和81%),在这次的比赛中公开排行榜彻底沦为娱乐工具。

一个参与者在Kaggle论坛上公布了他们的发现,可以用公开排行榜反馈的决定系数来找出19%测试数据的真实值。 原理十分简单:

决定系数(R squared) 分母是个常数,被称作总平方和,记为

首先提交一个所有预测结果都为0的答案,得到:

然后将预测结果第一个数值改成100,再次提交,可以得到:

通过联立两个方程,就能求解出的真实值。

该方法公布人做了网站, 号召大家一起来“撞库”。目前已经停止提交新的撞库结果,因为有人蓄意提交假信息。

说来说去,机器学习比赛中撞库的事情常有发生大多是根据评判测试数据的方法来猜数字。如何能避免这种情况,评估测试结果的19%和81%这两组数据最好要随机产生。在预测数据集足够大的情况下,才能避免此类情况产生不良后果。

最新进展,官方出了一个声明,表示不会公开“公开排行榜”的结果,并且强调若参赛者若过分关注公开排行榜的数据结果,会造成模型过拟合。


安德鲁音叉线,也被称作中线研究,利用支持位,阻力位和回撤的概念,用三条平行趋势线来判断可能的支撑位和阻力位技术指标。

安德鲁音叉线由一下几部分组成:

  1. 推动浪 (handle)
  2. 阻力趋势线
  3. 中线
  4. 支持趋势线

Andrews_Pitchfork

建立安德鲁音叉线的步骤:

  1. 找到重要的拐点或回撤点(例如图中的左下角最低点)
  2. 找到下一个重要的拐点或回撤点 (例如图中的虚线链接了左下角最低点和一个拐点)
  3. 找到下一个回撤点(例如图中从第一个拐点下降到一个低点)

用绘图软件通过创建向上阻力“齿”,支持“齿”,和中线来完成音叉。

支持和阻力的相同规则适用于安德鲁音叉。 交易者可能会考虑在支持位以下购买,并寻求在阻力位卖出。 另外,如上图标准普尔500指数基金所示,价格被认为是趋于中线的。 上图显示了股票市场的长期走势; 当然,安德鲁音叉线也可以用于较短的时间范围。


HITS-CLIP 和 CLIP-seq 可以用于定位体内的蛋白质RNA相互作用位点。这个测序技术同RIP-seq类似,但是用交联来固定蛋白质RNA复合物。方法是将RNA蛋白质复合物用紫外线交联并做免疫沉淀。复合物经过RNA酶和蛋白酶K的处理,然后提取RNA,并逆转录成cDNA,测序结果可提供精确到单碱基的蛋白质与RNA结合信息。

HITS-CLIP_and_CLIP-seq

技术优点:

  1. 用交联来固定蛋白质的靶向结合位点
  2. 紫外线交联可以应用于实验材料体内
  3. 由于使用RNA酶消化,可以得到低噪声高分辨率的结合位点
  4. 不需要对所研究的RNA结合信息有先验了解
  5. 全基因组水平的RNA扫描

技术缺点:

  1. 没有特异性靶标的抗体可能会结合非特异性的复合物
  2. 紫外线交联不是非常有效,需要蛋白质和RNA近距离结合,远距离的可能会无法形成复合物
  3. 交联步骤可能会引入外源污染物