在分类任务中用 NA 值输入特征

数据挖掘 机器学习 分类 数据集 特征构造 特征
2022-03-03 08:17:48

我目前有一个数据集,其中每个观察结果都是一个人在各个地区的交通罚单历史记录。

对于代表一个地区的每一列:

  • 1代表一个人在2018年在一个地区收到过1+次交通违章
  • 如果他们去过那个地区但没有交通违规行为,则为 0。
  • 否则不适用

目标:( 对地区进行排名)查看由于交通违规增加而应该有更多警察存在的地区,并使用这些特征来预测该人在 2019 年是否有 1 次以上的交通事故。

问题:并非所有人都去过每个地区。如果此人从未去过该地区,我目前只是将值编码为 0。但这应该是一个有效的 NA 值。例如,如果只有一个人(在数据集中)去过那个地区,那么对一个地区进行排名似乎是不合逻辑的。

问题(S):我应该如何处理这个?我不认为归结为 0 是正确的选择。

原始数据:

PersonId DistA DistB DistC DistD DistE Accident19
1        0     1     1     0      NA     1
2        NA    0     0     0      1      0
3        0     1     1     0      NA     1
4        1     0     0     0      NA     0

估算数据:

PersonId DistA DistB DistC DistD DistE Accident19
1        0     1     1     0      0     1
2        0     0     0     0      1     0
3        0     1     1     0      0     1
4        1     0     0     0      0     0

提前谢谢了!

1个回答

感谢您澄清@Eisen 的问题。所以这个问题着眼于两个主要方面:

  1. 显示哪些地区需要更多的警察存在。
  2. 考虑到人们以前的违规次数,按地区对人们是否会犯下 1 次以上的交通违规行为进行分类,无论他们在哪个地区。

对于第一点,我认为一个好主意是显示访问每个地区并犯下 1 次以上交通违规行为的人的分解情况。但是,我认为添加 (95%)置信区间将特别有助于查看在给定地区犯有 1 次以上交通违规行为的人的可靠估计值。

关于第二点,也许你可以使用一个前馈神经网络,它将每个区域的交通违规类别作为输入,并输出该人是否在 2019 年发生了事故(Accident19)。架构几乎取决于您,但失败层需要是 2 节点 softmax 层,这将创建两个类的概率分布(是否在 2019 年发生过事故)。

为了表示这个分类数据,我建议将 NA 设为自己的类别。此外,最好将地区交通违规类别表示为 one-hot 编码向量。然后,对于特定的人,您将这些来自数据集中所有地区的one-hot 编码向量连接起来。