多行观察的分类:长格式到宽格式总是有效?

问题描述 投票:0回答:1

我有一个观察表,或者更确切地说是“分组”观察表,其中每个组代表一笔交易,每行代表一个产品。但预测是在交易层面进行的。以下是示例数据集。

样本数据集:

df = pd.DataFrame({'deal': ['deal1', 'deal1', 'deal2', 'deal2', 'deal3', 'deal3'],
                   'product': ['prd_1', 'prd_2', 'prd_1', 'prd_2', 'prd_1', 'prd_2'],
                   'Quantity': [2, 1, 5, 3, 6, 7],
                   'Total Price': [10, 7, 25, 24, 30, 56],
                   'Result': ['Won', 'Won', 'Lost','Lost', 'Won', 'Won']})

我的方法: 使用

pivot_table
展平数据以获得每行一个观察值,这样我们每个交易就获得一行,然后继续进行分类建模,可能是逻辑回归或梯度提升。

但是在上面的例子中我们有: 要旋转的 1 列(产品,具有 2 个唯一值) 2 个衡量标准(数量和价格)作为系列/值。

结果有 4 列。宽格式表如下所示:

Table

问题/问题/想法:

在这种情况下,这总是最好的方法吗?我看到的问题(或者也许不是?)是当要旋转的列数超过 1 时,并且如果其中唯一值的组合更多,则表可能会变得非常非常宽!

如果有的话,我将很高兴听到准备训练数据集的其他有效方法!

python classification feature-selection data-preprocessing
1个回答
0
投票

这似乎是一种非常有效的方法,因为您说预测是在“交易”级别上完成的,而不是在单个“交易+产品”级别上完成的。

如果表变宽,如果这实际上是您在推理时需要进行预测的方式,那么这应该不是问题。

如果您可以根据所使用的功能对交易进行分组(例如,交易中包含哪些产品组合),您也许可以创建多个较小的模型,而不是单个大模型。

© www.soinside.com 2019 - 2024. All rights reserved.