【问题标题】:How should I handle NaN values in a Finance DF?我应该如何处理财务 DF 中的 NaN 值?
【发布时间】:2021-02-20 15:25:41
【问题描述】:

我是机器学习的初学者,我的观点是..我应该如何对“OECDSTInterbkRate”列进行编码?我不知道如何替换缺失值,尤其是用什么替换。我应该删除它们吗?或者用值的平均值/中位数替换它们?

【问题讨论】:

    标签: python dataframe nan missing-data finance


    【解决方案1】:

    有很多方法可以解决这个问题。

    • 最简单的方法:如果您有大量数据 - 删除 NaN。
    • 将 NaN 替换为整个非 NaN 数据集或按一列或多列分组的数据集的均值/中值/等。例如。对于您的数据集,您可以用澳大利亚非 NaN 的平均值填充澳大利亚 NaN。其他国家也一样。
    • 一种常见的方法是在 NaN 插补之后创建另一个指标列,以保留缺失数据被替换为值的索引。然后,此列将作为您的 ML 算法的另一个输入。
    • 查看文档(假设您使用 Pandas)- 库的开发人员已经为丢失的数据创建了一些工具:https://pandas.pydata.org/pandas-docs/stable/user_guide/missing_data.html

    【讨论】:

      【解决方案2】:

      您的问题没有具体的答案,这是统计中的一个普遍问题,称为“插补”。根据应用程序的不同,答案可能有很多。

      首先想到的替代方案很少能解决您的问题,但不要忘记“无数据”几乎总是比“坏/错误数据”好。 如果您有足够多的行而没有包含 NaN 的行,您可以简单地删除它们。 否则您可以考虑以下方法:

      1. 您能否通过数据集中已有的其他列从数学上计算出您需要的列?如果是这样,您就有答案了。
      2. 通过使用它的非缺失值行与其他列检查特定列的相关性,并查看它们是否高度相关。如果是这样,您不妨尝试删除整个列(可能并不总是一个好主意,但通常是个好主意)。
      3. 您能否创建一个估计器(例如回归模型),通过使用您已有的值学习模式并使用其他列以非常好的准确度来预测缺失值?那么你可能有一个答案(需要以下基准)。请记住,这是一个非常危险的操作,可能会给出错误的估计并降低整体模型的性能。仅当您的估计非常好时才尝试此操作!
      4. 是回归问题吗?使用统计平均值可能是个好主意。
      5. 是分类问题吗?使用中位数可能是个好主意。
      6. 在某些情况下,根据分布情况,使用模式可能也是一个好主意。

      我建议您尝试所有方法,看看哪一种效果更好,因为您的问题确实没有具体的答案。您可以在不使用该列的情况下创建机器学习模型并将其性能作为基准,并与基准相比对所有步骤进行性能(准确性)基准测试。

      注意:我只是一个研究生,有一些见解,如果我说的不正确,请评论!

      【讨论】:

        猜你喜欢
        • 2023-03-27
        • 2018-02-27
        • 2020-08-22
        • 2020-09-25
        • 1970-01-01
        • 2020-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多