如何处理仅在列中出现一次的值?

数据挖掘 数据清理 预处理 分类数据
2021-09-19 06:03:59

使用 pandas 计算列的值,我得到以下结果:

Human                 195
Mutant                 62
God / Eternal          14
Cyborg                 11
Human / Radiation      11
Android                 9
Symbiote                8
Kryptonian              7
Alien                   7
Demon                   6
Atlantean               5
Alpha                   5
Asgardian               5
Cosmic Entity           4
Inhuman                 4
Human / Altered         3
New God                 3
Animal                  3
Saiyan                  2
Eternal                 2
Frost Giant             2
Human-Kree              2
Demi-God                2
Human / Cosmic          2
Vampire                 2
Metahuman               2
Amazon                  2
Icthyo Sapien           1
Czarnian                1
Rodian                  1
Martian                 1
Clone                   1
Zombie                  1
Maiar                   1
Yoda's species          1
Human-Vulcan            1
Zen-Whoberian           1
Mutant / Clone          1
Korugaran               1
Dathomirian Zabrak      1
Parademon               1
Kaiju                   1
Flora Colossus          1
Human-Spartoi           1
Yautja                  1
Ungaran                 1
Human-Vuldarian         1
Neyaphem                1
Xenomorph XX121         1
Bizarro                 1
Human / Clone           1
Gungan                  1
Bolovaxian              1
Talokite                1
Luphomoid               1
Tamaranean              1
Kakarantharaian         1
Spartoi                 1
Strontian               1
Gorilla                 1
Name: Race, dtype: int64

我是数据科学的新手,但我认为所有这些值在数据集中只出现一次并不会帮助分类器,那么有没有处理这些值的好方法?我正在考虑将所有出现少于 5 次的值分组,或者我应该删除这些行。顺便说一句,我不知道知道是否重要,但我想将高斯朴素贝叶斯、knn 和逻辑回归应用到这个数据集。此列是预测二进制值的特征。

2个回答

假设这些是目标类别,最常见的策略是:

  • 放下它们。不要试图用单一的观察来预测类别,因为模型会过拟合。

  • 将它们捆绑在一起成为“垃圾箱”类别。然后该模型可以学习预测“垃圾箱”类别成员资格。

最好的办法可能是使用领域知识将它们重新标记为更大的类别。您也许可以用插补方法替换领域知识:删除稀有标签,然后使用其他列填充新缺失的数据。最后,您和布赖恩都提到过的最快的合理想法:将它们归为“其他”类别。我不会放弃它们,或者预测幸存类别之外的未来示例将受到损害(两者都因为模型无法理解它们,并且您的包甚至必须知道如何将它们传递给模型)。