使用涉及开始和结束时间的数据进行二元预测
Binary prediction with data involving starting and ending time
我有一个关于包裹递送的数据集,包含旅行时间、计划运送时间、实际运送时间、延误和计划运送时间等列。并在此基础上,我需要预测是否准时交货。以下是数据集:
我计划使用 sklearn
的 LabelEncoder()
作为分类特征,然后将此数据拟合到 DecisionTreeClassifier()
。我的问题是,我应该转换包含 TIME 的特征还是保留它?时间值 1955
表示 19:55
,735
表示 07:35
。我正在使用 python.
由于 19:59 的 1959
和 20:00 的 2000
的值之间的差异基本上只有 1 分钟,因此使用此类数据会丢失该上下文表示。例如,您的模型会将这两个示例之间的差异理解为 1900
和 1941
之间的差异,这根本不是您打算发生的情况。
我无法从数学上向您证明这会导致您的训练模型出错,但这是非常糟糕的做法。如果可能的话,我会转换成其他更统一的东西,例如 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
当然,在您的数据中始终如一地执行此操作,以避免任何错误陈述
由于您有发货延迟列,因此不需要实际发货时间和计划发货时间。
并且您已经计划了旅行时间,因此不需要计划交货时间。
但交货可能取决于一天中的时间(例如:上午或下午或晚上)因此您可以根据实际发货时间制作一些类别,并将其用于模型构建。
因此,您在构建模型时不能真正忽略时间列。
我有一个关于包裹递送的数据集,包含旅行时间、计划运送时间、实际运送时间、延误和计划运送时间等列。并在此基础上,我需要预测是否准时交货。以下是数据集:
我计划使用 sklearn
的 LabelEncoder()
作为分类特征,然后将此数据拟合到 DecisionTreeClassifier()
。我的问题是,我应该转换包含 TIME 的特征还是保留它?时间值 1955
表示 19:55
,735
表示 07:35
。我正在使用 python.
由于 19:59 的 1959
和 20:00 的 2000
的值之间的差异基本上只有 1 分钟,因此使用此类数据会丢失该上下文表示。例如,您的模型会将这两个示例之间的差异理解为 1900
和 1941
之间的差异,这根本不是您打算发生的情况。
我无法从数学上向您证明这会导致您的训练模型出错,但这是非常糟糕的做法。如果可能的话,我会转换成其他更统一的东西,例如 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
当然,在您的数据中始终如一地执行此操作,以避免任何错误陈述
由于您有发货延迟列,因此不需要实际发货时间和计划发货时间。
并且您已经计划了旅行时间,因此不需要计划交货时间。
但交货可能取决于一天中的时间(例如:上午或下午或晚上)因此您可以根据实际发货时间制作一些类别,并将其用于模型构建。
因此,您在构建模型时不能真正忽略时间列。