【发布时间】:2022-01-17 19:42:21
【问题描述】:
我有兴趣在缺少一些特征的推理阶段(而不是训练期间)生成预测。
问题陈述和我的实现是:
- 我有一个包含 26k 样本的表格数据集,其中包含 17 个特征(一些是分类的,一些是连续的)。
- 很多样本(大约 3k)缺少多个特征值。
- 我使用了多种方法进行插补。例如,按目标变量分组,然后根据变量的类别将 NaN 替换为组均值/众数。
df["danceability"] = df.groupby("music_genre")["danceability"].transform(lambda x: x.fillna(x.mean()))
-
这里,music_genre 是目标,danceability 有浮点值,其中一些缺失。
-
这样,所有缺失的值都被删除了。
-
之后,我用网格搜索训练了一个 XGBoost 分类器。
-
但是,现在我将这个模型作为一个烧瓶应用程序提供服务,我需要用 预测 来响应所有请求。请求可以是批次(一组样本)或单个样本。
-
问题是请求中的样本有一些缺少的特征,但我仍然必须生成预测,因为我应该这样做。
我应该怎么做?
【问题讨论】:
-
您也许可以使用其余的功能来预测缺失值??
-
实际上,在推理过程中,可能会丢失多个特征!那么,我是否应该首先训练多个模型,让它们在给定其他模型的情况下生成任何特征...
-
是的,但这听起来需要做很多工作 xD
-
我认为这在 ML 社区中将是一项微不足道的任务。但是,当我开始探索时,我发现了 2-3 个资源,人们和我一样感到困惑。我想即使在训练时我也需要改变方法!最后的手段是通过全局统计措施来填补缺失的数据!
标签: pandas machine-learning scikit-learn prediction feature-engineering