【发布时间】:2020-06-06 07:40:27
【问题描述】:
假设我有一个这样的数据集:
breakfast lunch dinner mood
----------- ---------- --------- ------
waffles sandwich chili good
sausages sandwich pasta good
yogurt salad stew bad
gruel salad pizza bad
gruel pizza pizza good
sausages pizza pasta good
waffles salad chili good
gruel soup pizza bad
waffles soup chili good
sausages salad pasta good
waffles pizza chili good
yogurt sandwich stew good
yogurt pizza stew good
sausages soup pasta good
gruel sandwich pizza good
yogurt soup waffles good
我想根据一个人那天吃的东西来预测他们的情绪。因此,我将进行 70/30 的训练/测试拆分,并使用随机森林、SVM 或类似的东西来构建分类器。
至少就像我过去使用过的那样,如果预测变量在测试集中的某个级别没有出现在训练集中,我使用的分类器会抱怨。这可能发生在最后一行,dinner == "waffles"。
为避免这种情况,在进行拆分之前,我通常会删除任何列中频率低于 10% 的任何行。
我怀疑可能有更好的方法。我主要用 R 写代码,但如果你想用 Python 写答案,我大概能看懂。
谢谢!
【问题讨论】:
-
使用StratifiedSplit 怎么样?或者将所有稀有类别分组并替换为一个类别,例如
rare_meal并以此进行训练? -
按照措辞,这个问题可能属于datascience.stackexchange.com。
标签: python r classification missing-data