打印

(译)基于高斯排列的连续特征神经网络

[复制链接]
826|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 niu**2008 于 2018-2-7 10:41 编辑

       我们提出了一种新的特征转换方法,类似于标准化。方法来自Michael Jahrer,他最近赢得了另一场比赛后分享了他使用的方法。写这篇**有一些普遍的兴趣。例如,它再次证实了梯度提升比神经网络更快,更容易使用,同时提供相似的结果。神经网络,提出了一个非标准的方法jahrer明显优于标准或规范。
      基于梯度的模型,例如神经网络的输入归一化是至关重要的。对于lightgbm / xgb不要紧。基于秩变换。第一步是指定一个linspace来排序的特点从1…1,然后运用误差函数erfinv逆高斯形状像,然后减去平均。二进制的特点是不碰这种变换器(如1-hot的)。这个作品通常比标准平均/性病定标器或最小/最大。
      尽管名称rankgauss反映方法的两个步骤的顺序,我们更喜欢“gaussrank”。这听起来更好。为了实现它,我们首先计算排名的每个值的给定列(argsort)。然后我们将队伍标准化为从1到1不等。然后我们运用神秘erfinv功能。其目的是使变换级数高斯分布。
其实,erfinv(1)-(1)信息和erfinv是inf,所以我们需要考虑。           import numpy as np           import matplotlib.pyplot as plt

           from scipy.special import erfinv

          # simulating normalized ranks from -0.99 to 0.99
            x = np.arange( -0.99, 1, 0.01 )

             y = erfinv( x )
             plt.hist( y )
   减去平均数并不是非常必要的,因为它非常接近于零。在实践中了解它是如何工作的,我们测试的方法对kin8nm数据集。数据集中的特征,总共八个,或多或少分布一致。这是训练集中前两个的柱状图:我们实现了GaussRank fit_predict()方法,因为它比写单独的fit()和predict()方法更容易。利用它从训练集和测试集中提取特征,然后进行联合变换的方法。没关系,因为我们没有使用任何标签。变换后前两个特征的直方图:神经网络采用Keras和hyperband进行hyperparam搜索,数据集的两个版本:和GaussRank。最好的成绩,我们与原始版本获得8.14%的RMSE,这是接近我们所取得的成绩与前一段pybrain。对于转换版本,它是10.86%。因此,我们必须断定GaussRank不与数据工作。为了比较,我们也用随机投影变换数据,保持相同的维数。请注意,此方法将矩阵作为一个整体,而不是由gaussrank柱柱方案。这个版本的产生更是不起眼的13.27%均方根误差。这并不奇怪,因为无监督的随机预测一般不可能导致监督学习更好的表示。数据,对实验结果可在GitHub的代码。
信息参考:
http://fastml.com/preparing-cont ... rks-with-rankgauss/

5.png (30.06 KB )

5.png

4.png (31.79 KB )

4.png

3.png (30.59 KB )

3.png

2.png (28.81 KB )

2.png

1.png (19.94 KB )

1.png

使用特权

评论回复

相关帖子

发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

123

帖子

1

粉丝