在您探索数据以确定如何在模型中以最佳方式表示数据时,请务必同时考虑到公平性问题,并主动进行审核,看是否存在潜在的偏见来源。
什么情况下会存在偏差?在数据集中应注意以下三个红色标记。
缺少特征值
如果您的数据集有一个或多个特征缺少了大量样本的值,则可能表明数据集的某些关键特性未得到充分代表。
例如,下表显示了加利福尼亚州住房数据集中部分特征的关键统计信息摘要,该数据集存储在 pandas DataFrame
中,并通过 DataFrame.describe
生成。请注意,所有地图项的 count
均为 17000,表示没有缺失值:
longitude | latitude | 会议室总数 | 人口 | 家庭 | 中位数收入 | median_house_value | |
---|---|---|---|---|---|---|---|
count | 17000.0 | 17000.0 | 17000.0 | 17000.0 | 17000.0 | 17000.0 | 17000.0 |
平均值 | -119.6 | 35.6 岁 | 2643.7 | 1,429.6 | 501.2 岁 | 3.9 | 207.3 岁 |
标准 | 2.0 | 2.1 | 2179.9 | 1,147.9 | 384.5 | 1.9 | 116.0 |
分钟 | -124.3 | 32.5 岁 | 2.0 | 3.0 | 1.0 | 0.5 | 15.0 |
25% | -121.8 | 33.9 岁 | 1462.0 | 790.0 | 282.0 岁 | 2.6 | 119.4 岁 |
50% | -118.5 | 34.2 岁 | 2127.0 | 1167.0 | 409.0 | 3.5 | 180.4 岁 |
75% | -118.0 | 37.7 岁 | 3151.2 | 1721.0 | 605.2 | 4.8 | 265.0 |
最大值 | -114.3 | 42.0 岁 | 37937.0 | 35682.0 | 6082.0 | 15.0 | 500.0 |
假设其中有三个特征(population
、households
和 median_income
)只有 3000
的计数,换言之,每个特征有 14000 个缺失值:
longitude | latitude | 会议室总数 | 人口 | 家庭 | 中位数收入 | median_house_value | |
---|---|---|---|---|---|---|---|
count | 17000.0 | 17000.0 | 17000.0 | 3000.0 | 3000.0 | 3000.0 | 17000.0 |
平均值 | -119.6 | 35.6 岁 | 2643.7 | 1,429.6 | 501.2 岁 | 3.9 | 207.3 岁 |
标准 | 2.0 | 2.1 | 2179.9 | 1,147.9 | 384.5 | 1.9 | 116.0 |
分钟 | -124.3 | 32.5 岁 | 2.0 | 3.0 | 1.0 | 0.5 | 15.0 |
25% | -121.8 | 33.9 岁 | 1462.0 | 790.0 | 282.0 岁 | 2.6 | 119.4 岁 |
50% | -118.5 | 34.2 岁 | 2127.0 | 1167.0 | 409.0 | 3.5 | 180.4 岁 |
75% | -118.0 | 37.7 岁 | 3151.2 | 1721.0 | 605.2 | 4.8 | 265.0 |
最大值 | -114.3 | 42.0 岁 | 37937.0 | 35682.0 | 6082.0 | 15.0 | 500.0 |
这 14,000 个缺失值会使我们更难以准确地将家庭收入中位数与房价中位数关联起来。在根据此数据训练模型之前,建议您谨慎调查缺少这些值的原因,确保不存在导致收入和人口数据缺失的潜在偏差。
非预期的特征值
在探索数据时,您还应该查找包含特别突出的非典型或特征值的示例。这些意外的特征值可能表明在数据收集期间发生的问题或可能引入偏差的其他不准确问题。
例如,我们来看看来自加利福尼亚州住房数据集的以下摘录示例:
longitude | latitude | 会议室总数 | 人口 | 家庭 | 中位数收入 | median_house_value | |
---|---|---|---|---|---|---|---|
1 | -121.7 | 38.0 | 7105.0 | 3523.0 | 1088.0 | 5.0 | 0.2 |
2 | -122.4 | 37.8 岁 | 2479.0 | 1816.0 | 496.0 | 3.1 | 0.3 |
3 | -122.0 | 37.0 岁 | 2813.0 | 1337.0 | 477.0 | 3.7 | 0.3 |
4 | -103.5 | 43.8 岁 | 2212.0 | 803.0 | 144.0 | 5.3 | 0.2 |
5 | -117.1 | 32.8 岁 | 2963.0 | 1162.0 | 556.0 岁 | 3.6 | 0.2 |
6 | -118.0 | 33.7 岁 | 3396.0 | 1542.0 | 472.0 | 7.4 | 0.4 |
您能准确指出任何意外的特征值吗?
数据倾斜
数据倾斜是指相对于实际的发生率而言,某些群体或特性可能未得到充分代表或得到过度代表,这类数据倾斜可能会导致您的模型出现偏差。
如果您完成了验证编程练习,可能会记得,在将加利福尼亚州住房数据集拆分为训练集和验证集之前,如果不对其进行随机化处理,便会导致出现明显的数据倾斜。图 1 直观呈现了从完整数据集中提取的部分数据,这些数据仅代表了加利福尼亚州西北地区的数据。
图 1. 加利福尼亚州地图与叠加的加利福尼亚州住房数据集数据重叠在一起。每个点代表一个住宅区,其颜色范围从蓝色到红色,分别对应从低到高的房价中位数。
如果使用这种没有代表性的示例来训练模型以预测整个加利福尼亚州的房价,则缺少来自加利福尼亚州南部地区的住房数据。模型中编码的地理偏差可能会对无代表的社区的购房者产生不利影响。