时间序列数据Sklearn随机森林中的缺失值

时间:2016-09-18 19:30:13

标签: python scikit-learn

我正在尝试使用scikit-learn来构建模型,我想知道处理我特定类型的缺失功能的最佳方法是什么。

我有一个用户群,每个用户都需要在给定的时间范围内(例如3天)完成目标。我掌握了每个用户的基本信息。我已经根据这些信息训练了一个简单的随机森林分类器,到目前为止它非常适合预测用户是否会完成目标。

对于已经完成(或未完成)的所有用户,我还会逐日细分完成百分比。两个样本,其中一个用户已完成,另一个未完成,可能看起来像这样三天:\X其中每个特征是通过实现目标的百分比。第一个用户在时间范围内达到100%,第二个用户没有达到100%。

我希望能够即时完成目标完成的预测。因此,如果新用户在时间限制的1天内达到了目标的20%,那么他们的数据可能如下所示:[[0., 0.58, 1.], [0.2, 0.5, .8]]

我能看到将这些数据整合到现有模型中的唯一方法是为每天拟合不同的模型(第1天的模型,第2天的模型等)。但这对我的生产环境来说根本不可行。我还考虑过试图去除缺失的值(对于上面的东西,比如.2,.4,.6),但我知道用户目标完成趋于不像这样的线性事实。

有没有一种方法可以用这种数据训练模型?或scikit-learn支持的算法或为此类任务构建的其他python库?请注意,我的模型还需要支持概率估计。

1 个答案:

答案 0 :(得分:0)

如果您有时间序列数据,有效处理它的一种方法是将时间序列分成不同的部分。

此外,RandomForest有一个非常有趣的属性,该模型可以处理缺失值。对于概率估计,可以使用RandomForestClassifier的predict_proba()方法。有关详细信息,您可以在此处查看sklearn RandomForest文档:http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html