模型融合的方法有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. 交联步骤可能会引入外源污染物

平均趋向指标是用来确定股票,期货或者货币是否正在交易区间。

平均趋向指标展示的是一种趋势强度信号,它的方向同股票的走势没有直接关系。如果股票有很强的上行趋势,那么ADX会增加;如果股票有很强的下行趋势,ADX也会增加。

ADX是对其他技术指标的极大补充,因为它可以帮助交易者避免一些指标的陷阱。

移动平均线 移动平均线及其变体在趋势市场有效;然而,在波动期间价格上涨或下跌但没有方向性,移动平均指标会给出大量虚假的买卖信号,这回造成交易者的损失。在趋势市场期间,建议使用移动平均线,趋势线和其他趋势跟随技术指标。

震荡 震荡指标在非趋势市场上相当有效。在非趋势市场中使用震荡指标使得低买高卖成为可能。不幸的是,在趋势市场中,震荡指标表现相当差,经常提示投资者在熊市下滑期间买入或在牛市时经常卖空。对于非趋势性时期,可以使用诸如Stochastic Fast & Slow, RSI, Williams %R 或者其他由范围限制的指标,例如布林带(Bollinger Bands)或者 Moving Average Envelopes (移动平均信封)。

ADX

  • 低于20:非趋势市场。
  • 20以上的交叉:表明趋势可能正在出现; 交易者可根据现行股票,期货或货币价格变动的方向发起买卖指令。
  • 20和40之间:如果ADX在20到40之间增加,那么进一步证实一个新趋势。 交易者可能会考虑在当前市场方向上进行买卖或卖空。 此外,交易者可能会避免使用振荡器技术指标,而应考虑使用趋势跟踪指标,如移动平均线。
  • 40以上:非常强的趋势。
  • 15以上:极其强的趋势。
  • 70以上:非常罕见的超级强趋势。

在《New Concepts in Technical Trading Concepts》中,ADX的创始人Welles Wilder,Jr.创建了DMI+和DMI指标,来专门为ADX技术分析指标产生潜在的买卖信号。 实际上,ADX是从DMI+DMI-计算得出的