r - 如何在 Kaggle 上的 Sberbank 俄罗斯住房市场数据集中估算缺失的“build_year”列?
问题描述
我正在从事一个学术项目,该项目涉及根据Sberbank 俄罗斯住房市场数据集预测房价。但是,我被困在data cleaning
一个特定列的过程中,该列指示该属性的建造日期。我不能只impute
用平均值或中位数替换缺失值。我一直在寻找所有可能的方法来估算有意义的数据,而不仅仅是随机数。此外,该项目的范围只允许我使用linear regression models
inR
所以我不希望模型喜欢XGBoost
自动处理插补。
解决方案
你的问题非常广泛。实际上有多个 R 包可以在这里为您提供帮助:
missForest
imputeR
mice
VIM
simputation
还有更多,有一个完整的官方TaskView专门用于列出 R 中的插补包。主要寻找 Single Imputation 包,因为它们非常适合您的任务。
无法告诉您,哪种方法最适合您的特定任务。这取决于您的数据和之后使用的线性回归模型。
因此,您必须测试,使用哪种插补算法+回归模型的组合可以获得最佳的整体性能。
因此,总体而言,您正在测试使用哪种特征工程/预处理 + 插补算法 + 回归模型来归档最佳结果。
请注意测试中的泄漏(意外地在测试和训练数据集之间共享信息)。通常你可以结合训练+测试数据并对完整的数据集进行插补。但重要的是,从测试数据集中删除目标变量。(因为你不会有这个真实的数据)
大多数提到的包都很容易使用,这里是missForest的一个例子:
library("missForest")
# create example dataset with missing values
missing_data_iris <- prodNA(iris, noNA = 0.1)
# Impute the dataset
missForest(missing_data_iris)
其他软件包同样易于使用。通常对于所有这些单一的插补包,它只是一个函数,您可以在其中提供不完整的数据集,然后在没有 NA 的情况下取回数据。
推荐阅读
- c++ - c++中有范围图吗?
- javascript - 前端开发者应该学习旧版本的 JavaScript 还是跳到最新版本?
- c# - WPF DataGrid 分组数据
- c - C程序在输入后关闭
- postgresql - postgresql函数中的递归动态查询很慢
- python-3.x - 从选择了范围和特定列的数据框中切片列
- python-3.x - Django 包版本具有冲突的依赖项。(删除包版本以允许 pip 尝试解决依赖冲突)
- reactjs - FormControl标签被Material UI中的Outline边框越过 - ReactJs
- .net - 任何修补.net 65535像素限制的方法
- wordpress - 如何使用其中一种帖子类型中的字段链接两种自定义帖子类型?