提问人:Ashish Padhi 提问时间:10/1/2023 最后编辑:desertnautAshish Padhi 更新时间:10/1/2023 访问量:72
在电信数据的流失预测模型中处理分类缺失数据 [已关闭]
Handling categorical missing data in churn prediction model for telecom data [closed]
问:
我正在研究一个电信数据集,我需要拟合一个模型来预测客户流失(是或否)。有很多分类数据存在缺失值(总值 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
答:
2赞
Nosa aikodon
10/1/2023
#1
根据我作为数据科学家的个人经验,我想说有很多方法可以处理缺失的数据。您可以查看此链接以获取更多提示:https://towardsdatascience.com/7-ways-to-handle-missing-values-in-machine-learning-1a6326adf79e。
在观察了你的数据集之后,我会分阶段处理缺失值问题:
- 第一阶段是删除具有缺失值的行。删除这些行后,我会观察整个数据集,以确保我有足够的行来进行实验,并且流失和未流失的类之间没有强烈的类不平衡。如果我确实有足够的平衡数据,我将继续实验。
- 但是,如果行低于原始数据的 50%,并且改动和未流失的类之间存在巨大的不平衡。我将继续分析这些特征,并使用一些领域知识,删除对问题可能不那么重要的缺失值的列。删除列后,我会再次删除行,这将允许剩余的行保留对手头问题很重要的数据。
- 最后,如果您认为实验需要所有列,则可以分析具有缺失值的分类列,如果似乎没有模式(随机缺失),则可以使用类别字段的模式或连续字段的中位数/平均值来插补值。如果似乎存在一种模式(Missing not at Random),我将创建一个名为“imputed”的新列,如果该行中使用了任何插补,则将其设置为 1,如果没有完成任何插补,则将其设置为 0。这背后的技术是让模型知道插补。
您可以在这里很好地阅读不同的技术。每个数据科学家都可能以不同的方式处理缺失值。作为一名数据科学家,你应该为它们做好准备,因为它们会一直存在。
下一个:R:使用有序分类变量模拟纵向数据
评论