首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理数据文件中的稀疏编码特性

如何处理数据文件中的稀疏编码特性
EN

Data Science用户
提问于 2020-07-23 12:50:23
回答 1查看 51关注 0票数 0

我有一个包含糖尿病患者信息的数据集,如下所示:

代码语言:javascript
运行
复制
    id   diabetes   diet   insulin   lifestyle
    0    No         NaN    NaN       NaN
    1    Yes        Yes    Yes       NaN
    2    No         NaN    NaN       NaN
    3    Yes        NaN    NaN       NaN
    4    Yes        Yes    NaN       Yes
    5    Yes        Yes    Yes       Yes

特征饮食,胰岛素和生活方式有很高比例的缺失数据(约95% )。因此,最初,我从我的数据集中排除了这些特性。然而,在仔细研究了这些数据后,我发现饮食、胰岛素和生活方式的数值与糖尿病的特征值有关。这是有意义的,因为糖尿病患者将被推荐治疗有关饮食,胰岛素摄入量和生活方式的改变。

  • 因此,在糖尿病=“否”的情况下,缺乏特征饮食、胰岛素和生活方式的价值。
  • 在糖尿病=“是”的情况下,我发现在大多数情况下,饮食、胰岛素和生活方式中至少有一个特征值为“是”,而其余的值都缺失了。

经过一些阅读,我相信特征饮食,胰岛素和生活方式是缺失的随机(MAR),显然没有完全缺失在随机(MCAR)是解释的这里

无论如何,我的问题是,这里丢失的数据的性质是否改变了我从dataset中删除这些特性的决定,因为它们丢失值的百分比很高。或者,我是否应该用"No“填充缺失的值来计算这些特性的数据,如下所示:

代码语言:javascript
运行
复制
    imputer = SimpleImputer(strategy='constant', fill_value='No')
    x[:, 2:5] = imputer.fit_transform(x[:, 2:5]) 
EN

回答 1

Data Science用户

回答已采纳

发布于 2020-07-23 14:30:45

您必须回答的第一个问题是,这些内容是否真的丢失了,或者只是简单地编码!

例如,如果这些变量“假定”只显示医生推荐的饮食、胰岛素或生活方式的改变,那么我们自然可以得出结论,任何NaN实际上都是“否”,在这种情况下,你甚至不必将数据计算出来,而是直接用"yes = 1 and NaN = 0代替。

如何区分这种情况(稀疏编码)和另一种情况:实际丢失的值?除了应用您的领域知识之外,您还应该测试以下规则是否适用:

  • 如果糖尿病==否,那么所有治疗变量都会丢失
  • 如果糖尿病患者==是是的,那么至少有一个治疗变量是“是”。
  • 处理变量总是只有“是”或NaN。

如果是这种情况,则数据集可能是稀疏编码的,否则就会有实际丢失的值。

但是,请注意,如果这些值是实际缺失的值(例如,因为您识别了一些非糖尿病患者进行治疗的情况,或者某些病例在治疗变量中被标记为"No“),您可以假设它们是MAR,而不是MNAR。在这种情况下,我建议删除这些变量,因为如果您不知道NaN的实际含义,那么将其归为"No“或o是没有意义的。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/78192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档