包含开始和结束时间的数据的二进制预测

时间:2018-06-05 10:20:24

标签: python machine-learning classification decision-tree prediction

我有一个关于包裹递送的数据集,包括旅行时间,计划运送时间,实际运送时间,延迟和计划交货时间等列。在此基础上,我需要预测交货是否准时。以下是数据集:

enter image description here

我打算将sklearn的{​​{1}}用于分类功能,然后将此数据放入LabelEncoder()。我的问题是,我应该转换包含TIME的功能还是只留下它?时间值DecisionTreeClassifier()表示195519:55表示735。我正在使用python。

2 个答案:

答案 0 :(得分:1)

由于19:59的1959和20:00的2000的值之间的差异基本上只有1分钟,因此使用这种数据表示法会丢失该上下文。例如,您的模型会理解这两个示例之间的差异与19001941之间的差异相同,这完全不是您计划发生的事情。

我无法通过数学方式向您证明这会导致您的训练模型出错,但这种做法非常糟糕。如果可能的话,我会转换为更加统一的其他东西,例如00:00(午夜)以来的分钟:

def time_converter(time_str):
    hours = int(time_str[:2])
    minutes = int(time_str[2:])
    time_since_midnight = (hours * 60) + minutes
    return time_since_midnight

time_converter('1940') # will return 1180 integer for 1180 minutes since midnight

当然,在您的数据中始终如一地这样做,以避免任何虚假陈述

答案 1 :(得分:1)

由于您有装运延迟栏,因此不需要实际装运时间和计划装运时间。

并且您计划了旅行时间,因此不需要计划的交付时间。

但交货时间可能取决于一天中的时间(例如:早上或下午或晚上)。因此,您可以从实际发货时间中选择几个类别,并将其用于模型构建。

因此,在构建模型时,您无法真正忽略时间列。