我拥有的数据集是一组报价,这些报价提供给不同的客户以销售商品。商品价格每天都很敏感且标准化,因此围绕价格进行的谈判非常棘手。我正在尝试建立一个分类模型,该模型必须了解给定的报价是被客户接受还是被客户拒绝。
我使用了我知道的大多数分类器,XGBClassifier 表现最好,准确率约为 95%。基本上,当我输入一个看不见的数据集时,它能够表现良好。我想测试模型对价格变化的敏感程度,为了做到这一点,我综合重新创建了不同价格的报价,例如,如果报价为 30 美元,我以 5 美元、10 美元的价格提供相同的报价, 15 美元、20 美元、25 美元、35 美元、40 美元、45 美元……
我希望分类器在价格较低时给出高成功概率,在价格较高时给出低成功概率,但这并没有发生。经过进一步调查,我发现某些特征掩盖了模型中价格的重要性,因此必须加以处理。尽管我通过删除它们或对它们进行特征工程以更好地代表它们来处理大多数功能,但我仍然坚持一些我无法删除的功能(客户端要求)
当我检查结果时,发现该模型对 30% 的测试数据敏感,并且显示出有希望的结果,但对于其余的 70%,它根本不敏感。
这时我突然想到只提供可以清楚地捕捉价格敏感性或报价成功与报价成反比的那部分训练数据。这造成了大约 85% 的数据丢失,但是我希望模型学习的关系被完美地捕捉到了。
这将是模型的增量学习过程,因此每次出现新数据集时,我都会考虑首先评估它的价格敏感性,然后只输入对价格敏感的那部分数据进行训练。
在给出问题的一些背景信息后,我提出的一些问题是:
过滤掉我正在寻找的关系类型的片段的数据集是否有意义?
在较小的数据片段上训练模型并将特征数量从 21 个减少到 8 个,模型准确度下降到约 87%,但它似乎完美地捕捉到了价格敏感性位。我评估价格敏感度的方法是获取测试数据集,并为每个价格不同的报价人为添加 10 行,以查看模型中成功概率的变化。这是解决此类问题的可行方法吗?