处理电信数据流失预测模型中的分类缺失数据

问题描述 投票:0回答:1

我正在研究一个电信数据集,我需要拟合一个模型来预测客户流失(是或否)。有大量分类数据存在缺失值(总计 7043 个)。在这种情况下处理缺失数据的最佳方法是什么,是忽略它还是使用其他更好的插补方法更好?

Data columns (total 21 columns):
customerID          7043 non-null object
gender              7043 non-null object
Age                 7043 non-null int64 
Partner             7043 non-null object
Dependents          7043 non-null object
tenure              7043 non-null int64
PhoneService        7043 non-null object
MultipleLines       6500 non-null object
InternetService     6500 non-null object
OnlineSecurity      7043 non-null object
OnlineBackup        7043 non-null object
DeviceProtection    7043 non-null object
TechSupport         7043 non-null object
StreamingTV         6500 non-null object
StreamingMovies     6500 non-null object
Contract            6500 non-null object
PaperlessBilling    7043 non-null object
PaymentMethod       6500 non-null object
MonthlyCharges      7043 non-null float64
TotalCharges        7043 non-null object
Churn               7043 non-null object
machine-learning categorical-data churn
1个回答
0
投票

根据我作为数据科学家的个人经验,我想说有很多方法可以处理丢失的数据。您可以查看此链接以获取更多提示:https://towardsdatascience.com/7-ways-to-handle-missing-values-in-machine-learning-1a6326adf79e

观察您的数据集后,我将分阶段处理缺失值问题:

  1. 第一阶段是删除含有缺失值的行。删除这些行后,我将观察总数据集,以确保我有足够的行来进行实验,并且搅动类和未搅动类之间不存在严重的类不平衡。如果我确实有足够的平衡数据,我会继续实验。
  2. 但是,如果行数低于原始数据的 50%,则搅动类和未搅动类之间存在巨大不平衡。我将继续分析这些功能并使用一些领域知识,删除那些对问题可能不太重要的缺失值的列。删除列后,我会再次删除行,这将允许剩下的行保留对当前问题很重要的数据。
  3. 最后,如果您认为所有列对于实验都是必要的,您可以分析具有缺失值的分类列,如果似乎没有模式(随机缺失),您可以使用类别字段或中位数/的模式来估算值连续场的平均值。如果似乎存在某种模式(不是随机丢失),我将创建一个名为“估算”的新列,如果该行中使用了任何估算,则将其设置为 1,如果没有完成任何估算,则将其设置为 0。这背后的技术是让模型意识到插补。

您可以在这里很好地阅读不同的技术。每个数据科学家可能会以不同的方式处理缺失值。作为一名数据科学家,您应该为它们做好准备,因为它们会留下来。

© www.soinside.com 2019 - 2024. All rights reserved.