[]
嗨,
附上数据,请你帮我处理“Outlet_Size”列中缺少的数据。 这样我就可以使用这些完整的数据来准备数据科学模型。
谢谢,
答案 0 :(得分:3)
这些是数据挖掘问题(或机器学习)的主要挑战之一。您根据PURE EXPERIENCE决定如何处理缺失的数据。你不能把数据科学视为一个黑盒子,它遵循一系列成功的步骤!
有关缺失数据的一些指导原则。
一个。如果列中缺少超过40%的数据,请删除它! (同样,40%取决于您正在使用的问题类型!如果数据非常关键或非常简单,您可以忽略它。)
B中。检查是否有可能从互联网上输入丢失的数据。你正在看项目重量!无论如何,你可以知道你正在处理的是哪种产品而不是哈希编码Item_Identifier
,那么你总是可以直接使用谷歌来解决它。
℃。缺失的数据可分为两种类型:
MCAR:随意丢失。在缺少数据的情况下,这是理想的情况。
MNAR:不是随意丢失。丢失不是随机数据是一个更严重的问题,在这种情况下,进一步检查数据收集过程并尝试理解信息丢失的原因可能是明智的。例如,如果调查中的大多数人没有回答某个问题,他们为什么这样做呢?问题不清楚吗? 假设数据是MCAR,那么过多的数据丢失也是一个问题。通常,安全最大阈值是大数据集总数的5%。如果某个特征或样本的缺失数据超过5%,那么您可能应该保留该特征或样本。因此,我们使用简单的函数检查缺少5%以上数据的特征(列)和样本(行)
d。如评论中所述,您只需使用df.dropna()
删除行或使用无穷大填充行,或使用df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
填充它们
这会按类别value
对数据框df
中的列name
进行分组,找到每个类别中的平均值,并使用该类别的相应平均值填充value
中的缺失值!< / p>
电子。除了丢弃缺失值,用平均值或中位数替换之外,还有其他一些先进的回归技术可以用来预测缺失值并填充它,EG(鼠标:链式方程的多变量插补),你应该浏览和阅读更多有关高级插补技术有用的信息。
答案 1 :(得分:0)
“Outlet_Size”列包含分类数据,因此不要删除数据,而是使用度量来填充数据。
由于是分类数据,因此使用中心趋势、模式度量。 使用模式查找哪个类别出现的次数更多或频率更高,并用相应的值填充该列。
代码:
Dataframe['Outlet_Size'].mode()
Datarame['Outlet_Size'].fillna(Dataframe['Outlet_Size'].mode(), inplace=True)
答案 2 :(得分:0)
接受的答案非常好。
在您的具体情况下,我会说要么删除该列,要么分配一个名为 Missing 的新值。由于这是一个分类变量,它很有可能最终进入 OneHot 或目标编码器(或者模型可以直接将其理解为一个类别)。此外,值是 NaN 的事实本身就是一个信息,它可能来自多种因素(从错误的数据到获得答案的技术困难等)。小心并注意这不会带来偏见或一些您不应该知道的信息(例如:产品由于未进入某个基数而具有 NaN,在真实情况下永远不会发生的事情,这将使您的结果非-代表真实情况)