将 dataPoints 向上移动一个常数(是否存在太多 0 的问题?)

数据挖掘 特征选择 逻辑回归
2022-03-02 16:42:58

我目前正在收集有关买方与卖方针对不同金融工具(主要是证券)发起的交易的逐秒数据。如果在给定的一秒内有更多买家发起的交易,那么该秒的数据点将在相关特征中包含一个正值。如果有更多卖家发起的交易,那么就会有负值。如果购买与卖方发起的交易数量相等,或者如果在给定的秒内根本没有任何交易,则该数据点中的特征将为 0。除此功能外,还有几个其他功能基于前几秒发生的情况(例如,如果上面讨论的值对于当前点之前的数据点为 12,那么当前数据点的第二个特征将是 12 - 如果不清楚,请告诉我)经过多次故障排除后,我得出的结论是,如果数据点太多,特征 0 太多,分类器根本无法工作. 当我打印出评估数据点落入不同类别的概率时,我得到了

0:NaN,1:NaN

对于所有模型评估点,我尝试进行分类。(我正在使用来自 apache-mahout 的逻辑回归。总共有 183 个特征,但超过 4000 万个数据点。数据点可以分为三类)

我发现如果我将默认值设置为 1,那么我将不再遇到此错误,例如,如果没有交易,则值为 1,如果有一个卖家发起交易,则值为 0。

因此,考虑到所有这些,我有两个相关的问题:

1)有没有其他人遇到过这个问题?例如,如果您有一个具有 x 个特征的向量,并且对于大多数数据点,大多数特征包含 0,这是否会产生问题?

2) 将所有值向上移动一个常数(例如 1)是否是解决此问题的有效方法?我假设如果这个常数应用于所有值,那么它不应该扭曲数据,但我认为与专家核实不会有什么坏处。


另外,我是新手,所以如果您认为我的问题可以使用更多信息,请告诉我,如果您能告诉我要包含哪些信息,我们将不胜感激。

提前致谢

1个回答

根据您的问题,我不确定您如何使用逻辑回归。逻辑回归的“香草”版本提供了一个二元分类器,但您的目标具有三个值:正值、负值和零。Apache 网站上的逻辑回归页面是指 Paul Komarek 的论文,其中“逻辑回归”指的是二元分类器。所以你的问题可能是你的目标变量有 3 个值。

假设是这种情况,您有很多选择,例如:-a)使用“多项式逻辑”,-b)使用普通逻辑回归 3 次以拟合 3 个模型,每个级别一个,以区别于另一个两个结合