2

我有一组用于机器学习的加权特征。我想减少功能集,只使用重量非常大或非常小的那些。

因此,在下面的排序权重图像中,我只想使用权重高于较高或低于较低黄线的特征。

分类特征; 黄线是所需的截止点(阈值)

我正在寻找的是某种斜率变化检测,因此我可以丢弃所有特征,直到第一个/最后一个斜率系数增加/减少。

虽然我(认为我)知道如何自己编写代码(使用一阶和二阶数值导数),但我对任何已建立的方法都感兴趣。也许有一些统计数据或索引可以计算类似的东西,或者我可以从 SciPy 使用的任何东西?

编辑: 目前,我使用1.8*positive.std()的是正阈值和1.8*negative.std()负阈值(快速而简单),但我不是足够的数学家来确定这是多么强大。不过,我认为不是。⍨</p>

在此处输入图像描述

4

1 回答 1

0

如果数据是(近似)高斯分布的,那么只使用标准偏差的倍数是明智的。

如果您担心尾部较重,那么您可能希望基于订单统计数据进行分析。

  • 既然您已经绘制了它,我会假设您愿意对所有数据进行排序。
  • 设 N 为样本中的数据点数。
  • 令 x[i] 为已排序值列表中的第 i 个值。
  • 那么 0.5( x[int( 0.8413*N)]-x[int(0.1587*N)]) 是对标准差的估计,它对异常值更稳健。如上所述,可以使用这个标准的估计值。(上面的幻数分别是小于 [mean+1sigma] 和 [mean-1sigma] 的数据部分)。

  • 在某些情况下,只保留最高 10% 和最低 10% 也是明智的;如果您手头有已排序的数据,这些截止值很容易计算。

这些是基于您问题内容的临时方法。您尝试做的一般意义是异常检测(一种形式),如果您在定义/估计靠近中间的分布形状时小心翼翼,您可能会做得更好,这样您就可以判断特征何时变得异常。

于 2012-07-02T21:57:22.067 回答