我正在用 Python 构建一个机器学习模型来预测足球运动员的价值。考虑数据框的以下特征列:
[features]
---------------------------------
position | goals | goals_conceded
-------- |-------|---------------
Forward | 23 | NaN
Defender | 2 | NaN
Defender | 4 | NaN
Keeper | NaN | 20
Keeper | NaN | 43
由于守门员通常不进球,因此他们在“进球”列中几乎总是有空值,但他们仍然可以有这个统计数据,所以用 0 填充 NaN 就可以了。另一方面,因为线球员不能有“goals_conceded”统计数据,他们在该列中也会有空值,但在这种情况下,球员永远不会有这个统计数据,因为这是一个仅限守门员的统计数据。如何将这两列视为特征来构建机器学习模型?
我曾想过将它们放在一个列中,但这不可能发生,因为对于一名线球员来说,他的进球越多越好。守门员则相反,他丢球越少越好。我也不能用零填充列,因为它会影响例如“goals_conceded”列中的模型预测,因为 98% 的行包含在线球员信息。
这发生在我的数据框中的许多列中,例如“干净的床单”(只有守门员会有这个统计数据)和“目标射门”(只有线球员会有这个统计数据)。我该如何处理它们?