0

参数过多而无法作为列放入示例集中的问题。

我的问题任务是我的客户有一个唯一的 ID,他们有参数(二项式),我想预测某些目标变量的值,到目前为止只有一个但可能是多个。在我的测试用例中,我使用了以下输入数据集,查看元数据,每个客户都表示在一行中,参数在列中 - 只是通常的方式。

元数据:
角色 - 名称 - 类型
id - Customer_Id - 整数
标签 - 目标 - 二项
正则 - Para1 - 二项
正则 - Para2 - 二项
正则 - Para3 - 二项
正则 - Para4 - 二项
数据集:
*Customer_Id - 目标 - Para1 - Para2 - Para3 - Para4*
1 - M - 1 - 0 - 1 - 0
2 - V - 1 - 0 - 0 - 1
3 - M - 0 - 1 - 1 - 1

=> 使用朴素贝叶斯,我在有限维度的测试用例中得到了很好的预测结果。

实际数据集的问题:我有大约 100,000 个参数,而且这个数字正在增长很多。客户的实际活动参数数量非常少,因此表会非常大且稀疏。所以我的想法是使用以下数据集格式作为输入:
元数据:
角色 - 名称 - 类型
id - Customer_Id - 整数
标签 - 目标 - 二项式
常规 - ActivePara - 多项式
数据:
*Customer_Id - 目标 - ActivePara*
1 - M - Para1
1 - M - Para3
2 - V - Para1
2 - V - Para4
3 - M - Para2
3 - M - Para3
3 - M - Para4

但是现在我没有得到每个客户的一致预测,我得到的是这样的

*Customer_Id - Target - ActivePara - 目标预测
1 - M - Para1 - V
1 - M - Para3 - M
2 - V - Para1 - V
2 - V - Para4 - V
3 - M - Para2 - M
3 - M - Para3 - M
3 - M - 第 4 段 - V

但我希望/需要每个 customer_id 的目标预测保持一致。

我需要如何设置输入数据/模型才能得到结果!

非常感谢您的任何提示和帮助!!!

4

1 回答 1

0

这是由于问题过于简单化了。您已将多个属性转换为一个多名义属性,因此对于朴素贝叶斯来说,它是一个可以采用多个值的单个属性,它不能考虑活动参数的共现。

我会建议一个更好的选择来管理您的模型。最适合您的结构是

*Customer_Id - 目标 - Para1 - Para2 - Para3 - Para4* 1 - M - 1 - 0 - 1 - 0

将此更改为 *Customer_Id - Target - (数字 = 所有参数的二进制表示的十进制值)

如果你有 3 个参数 p1 p2 p3 1 1 0

那么 110(二进制)的十进制值为 6。

这应该有帮助

于 2013-07-26T09:20:19.563 回答