【问题标题】:How to prepare longitudinal data by Pandas to be then used from a learning algorithm?如何通过 Pandas 准备纵向数据,然后从学习算法中使用?
【发布时间】:2015-06-01 22:32:28
【问题描述】:

我正在使用 Pandas 清理和准备我的数据集,以供学习算法使用,例如用于分类的随机森林或用于聚类的 K-means。

我曾经有这样的数据集(示例):

但是,我在这样的数据集中面临一种不同的类型,称为:纵向数据,类似于以下图示示例:

如您所见,对于每一个实例(人或汽车),对于相同的特征都有多个值,其中每个值都是在特定时间点添加的。

这是来自数据集的编辑示例:

"ID","Temperature","***",
"001","36","***",
"001","36","***",
"001","37","***",
"001","36","***",
"002","38","***",
"002","38","***",
"002","36","***",
...
"004","37","***",
"004","37","***",
"005","36","***",
"005","36","***",

同一个 ID 的每一次重复都意味着不同的数据被采集的日子——在我们的例子中,数据是温度。

如何使用 Pandas 准备此类数据以对随机森林等学习算法有用?如果 Pandas 没有办法,您是否建议一种能够处理此类数据的学习算法?谢谢。

【问题讨论】:

  • 你能发布原始输入数据吗
  • 您好 EdChum 先生。很高兴在这里见到你。我已经用示例更新了我的问题。非常感谢您始终积极而迅速的回应。
  • 对于初学者,请查看unstack() 文档。如果您还发布了所需的最终数据形式,人们会更容易回答这个问题。
  • 我很抱歉没有感谢 JohnE 先生的回复。我在交叉验证堆栈交换中提出了一个类似的问题,希望有人会从机器学习的角度找到解决方案,在建议的算法中使用这种结构。感谢您尝试帮助,再次抱歉。

标签: python-3.x pandas machine-learning


【解决方案1】:

您必须根据 ID 对分区进行分组,然后使用任何算法。这种分区策略将确保每个 ID(CustomerID 等)都留在各自的训练或测试集中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 2016-05-17
    • 2021-09-21
    • 1970-01-01
    相关资源
    最近更新 更多