本单元探讨了将原始数据映射到合适特征向量的方法。优质的数值特征具有本部分中所述的特性。
名称明确
每个功能都应对项目中的任何人都有清晰、合理且明显的含义。例如,以下地图项值的含义令人困惑:
不建议
house_age: 851472000
相比之下,以下地图项名称和值要清晰得多:
建议
house_age_years: 27
在训练前已检查或测试
虽然本单元花了大量时间来介绍离群值,但这个主题非常重要,因此我们还要再提及一次。在某些情况下,不良数据(而非不良的工程设计选择)会导致值不明确。例如,以下 user_age_in_years
来自未检查是否有适当值的来源:
不建议
user_age_in_years: 224
但可以是 24 周岁的人:
建议
user_age_in_years: 24
查看您的数据!
明智
“魔法值”是指在原本连续的特征中刻意设置的断点。例如,假设名为 watch_time_in_seconds
的连续特征可以存储介于 0 到 30 之间的任何浮点值,但使用魔法值 -1 表示测量值的缺失:
不建议
watch_time_in_seconds: -1
如果 watch_time_in_seconds
为 -1,则会迫使模型尝试弄清楚“向后观看电影”的含义。生成的模型可能无法做出准确的预测。
更好的方法是创建一个单独的布尔地图项,用于指示是否提供了 watch_time_in_seconds
值。例如:
建议
watch_time_in_seconds: 4.82
is_watch_time_in_seconds_defined=Truewatch_time_in_seconds: 0
is_watch_time_in_seconds_defined=False
这是处理包含缺失值的连续数据集的方法。现在,我们来考虑一个离散数字特征(例如 product_category
),其值必须属于一组有限的值。在这种情况下,如果缺少某个值,请使用有限集合中的新值来表示该缺失值。对于离散特征,模型会为每个值学习不同的权重,包括缺失特征的原始权重。
例如,我们可以想象符合该集合的可能值:
{0: 'electronics', 1: 'books', 2: 'clothing', 3: 'missing_category'}。