【问题标题】:Features from consecutive measurements for classification用于分类的连续测量的特征
【发布时间】:2023-10-24 05:17:01
【问题描述】:

我目前正在从事一个小型机器学习项目。 该任务处理数千名患者的医疗数据。对于那里的每位患者,每隔一小时对同一组生命体征进行 12 次测量。 这些测量必须注意在患者进入医院后立即进行,但可以从一些偏移量开始。但是病人总共要在医院呆24小时,所以他们不能迟于入院后11小时后开始。

现在的任务是为每位患者预测在剩余的住院期间是否会进行 10 项可能的测试中的一项或多项测试,并预测在剩余时间里某些生命体征的未来平均值逗留。 我有一个训练集,其中包含我应该预测的标签。

我的问题主要是关于如何处理这些特征,我考虑将患者的测量结果转换为一个长向量并将其用作分类器的训练示例。 但是我不太确定如何将每次测量的时间信息包含到特征中(我是否应该考虑时间?)。

【问题讨论】:

    标签: machine-learning classification prediction feature-selection feature-engineering


    【解决方案1】:

    如果我理解正确,您希望将每次测量的时间信息包含在特征中。我认为的一种方法是制作一个长度为 24 的空向量,因为患者在医院待了 24 小时。然后你可以使用 one-hot 表示,例如,如果测量是在他逗留的第 12、15 和 20 小时进行的,那么你的时间特征向量在第 12、第 15 和第 20 位置将有 1,而其他所有都为零。您可以将此时间向量与其他特征附加在一起,并为每个患者制作一个长度 = 长度(其他向量)+ 长度(时间向量)的向量。或者,您可以使用不同的方法来组合这些功能。

    如果您认为这种方法对您有意义,请告诉我。谢谢。

    【讨论】:

    • 感谢您的建议。我了解您的方法,但是不会将每个患者的特征向量增长得很大吗?每个测量由 14 个不同的值组成,因此如果我们将每个患者的所有测量结果与时间信息一起分组到一个向量中,这将产生一个具有 12*14+24 = 192 个元素的向量。我对 ML 的实践经验很少,但这可行吗?或者我应该考虑对每个生命体征的不同测量结果取平均值,以保持特征向量很小?
    • 我认为长度不会有问题,192在ML中仍然是一个很小的长度。您可以使用您提到的那些方法。您可以这样做,并将您的模型的准确性与 192 长度 1 进行比较。您可能会丢失一些信息,但您仍然可以尝试。
    • 好的,谢谢,那我试试你的方法。另一个问题:您建议如何操作包含所有测量作为行的 pandas 数据框,例如对于每个患者,有 12 行,但每个患者的训练标签仅包含 1 行,因此我必须将 12 行转换为一行。我在网上读到迭代数据框的行(以创建新的数据框)不是一个好主意,通常应该避免。
    • 您可以简单地转换您的数据框。假设 df 是您的数据框,那么 df_new = df.T 将转换您的数据框。 df_new 将有 12 列带有特征,第 13 列带有标签。因此,您可以将这个新数据框用于学习目的。
    • 这对您有帮助吗?