python - 使用涉及开始和结束时间的数据进行二元预测

标签 python machine-learning classification decision-tree prediction

我有一个关于包裹投递的数据集,其中包含行程时间、计划投递时间、实际投递时间、延误和计划投递时间等列。在此基础上,我需要预测交货是否会按时。以下是数据集:

enter image description here

我计划使用 sklearnLabelEncoder() 来实现分类特征,然后将此数据拟合到 DecisionTreeClassifier()。我的问题是,我应该转换包含 TIME 的特征还是保留它?时间值 1955 表示 19:55735 表示 07:35。我正在使用Python。

最佳答案

由于 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

当然,对数据中的所有时间都进行一致的操作,以避免任何误传

关于python - 使用涉及开始和结束时间的数据进行二元预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50697716/

相关文章:

python - 在python中将字母数字字符串转换为数字字符串

java - 处理朴素贝叶斯分类器中缺失的属性

machine-learning - Keras 实现问题意外关键字参数 'axis'

machine-learning - 检测图像中的物体

python - Tensorflow 2 图像批量预测返回结果

python - 如何使用 PyYAML 读取 python 元组?

python - 行在 python csv 阅读器中包含 NULL 字节错误

python - 试图理解为什么创建和操纵 future 是一种不好的做法

机器学习中的 Python 问题

python - PySpark LogisticRegressionWithLBFGS 导入错误