- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个电子商务模型,该模型可以预测通过在线营销 channel (例如谷歌购物)获得的单次点击的收入。点击的目标是产品详细信息页面,因此我的培训数据包含产品详细信息,例如:价格、交货时间、类别、制造商。每一次历史点击也都会带来收入。问题是超过 95% 的点击次数收入为零。
历史数据如下所示:
click_id |制造商|类别 |交货时间 |价格|收入
1 |man1 |猫1 | 24 | 100 | 100 0
2 |man1 |猫1 | 24 | 100 | 100 0
3 |man1 |猫1 | 24 | 100 | 100 0
4 |man1 |猫1 | 24 | 100 | 100 120
5 |man2 |类别2 | 48 | 48 200 | 200 0
正如您所看到的,两个数据点有可能(并且很常见)具有完全相同的特征和目标变量(收入)的非常不同的值。例如,前 4 个数据点具有相同的特征,并且只有第 4 个数据点有收入。理想情况下,我的模型将在具有相同功能的测试示例中预测这 4 次点击的平均收入(即 30)。
在尝试应用模型之前,我的问题是关于数据表示的。我相信我有两个选择:
非常欢迎任何有关如何处理此问题的建议。
最佳答案
由于 95% 的数据收入为零,您可能需要对记录进行一些操作,例如抽样。按照当前构建的方式,您的模型可以 100% 的时间预测“否”,并且准确率仍然为 95%。您需要针对您希望模型中出现的错误类型做出设计选择。您是否希望它“尽可能准确”,因为它错过了尽可能少的记录,错过了尽可能少的收入记录,或者避免将记录错误地分类为收入(如果它们实际上不是)(阅读有关类型的更多信息) 1 和 2 错误,如果你好奇的话)
您可以做出几个高级选择:
1) 您可能会对数据进行过度采样。如果您有大量记录并希望确保捕获创收功能,您可以复制这些记录或进行一些记录工程来创建与创收记录非常相似的“假”记录。这将增加您的模型捕获插入收入的因素的可能性,并且当您将其应用于实际数据时,它可能会过度重视这些特征
2) 您可以使用模型来预测概率,然后缩放概率。例如,您可能会查看您的模型,并说任何产生收入的可能性大于 25% 的事物实际上都是“积极”案例
3) 您可以首先尝试对数据进行聚类,如上所述,然后尝试对“求和”值(而不是单个记录)运行分类算法。
4) 是否有一些分割的命中率 >5%?也许可以在这些子集上建立一个模型。
这些都是模型设计选择,没有正确/错误的答案 - 这仅取决于您想要实现的目标。
根据您的回复进行编辑回归可能会受到异常值的显着影响,因此我在尝试使用回归来预测美元金额时会有点小心。大多数变量很可能具有较小的系数,并且截距将反射(reflect)平均支出。您应该记住的另一件事是交互术语。例如,如果您是男性,您可能更有可能购买,如果您年龄在 25-30 岁,则购买的可能性更大,但同时是男性和 25-30 岁会产生巨大的影响。
我提出分类的原因是您可以尝试进行分类以查看谁可能购买,然后应用美元金额。这种方法会阻止您每次交易的金额基本相同且非常小。
关于machine-learning - 点击收入预测模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37120693/
对 R 和机器学习非常陌生,但是我必须开展一个项目来根据许多变量(例如,预测客户流失率)来预测客户流失。服务期限、发行的信用票据数量、错过交货的数量、价格上涨的数量等。 我正在使用 rpart 和 r
我有一个流读取准备将特征数据发布到一个已经注册的模型中。所有代码都在 Python 中。以下模型和元数据在常规笔记本中的流之外运行。在流中是另一回事。主要问题是从流中写入的数据(写入目标表)具有 NU
我正在尝试在 keras 中为时间序列实现一个简单的 LSTM 预测模型。我有 10 个时间序列,lookback_window=28,特征数为 1。我需要预测下一个值(timesteps=28,n_
我有一些用 R 语言开发的分类模型,具有 glm、rpart 等函数。从 Java 调用这些模型的计算效率最高的方法是什么?我看过 JRI,但看起来有很多基于文本的 R 调用。 有没有办法以低开销从
假设我有一个每月粒度的数据集,其中包含以下列: 时间戳 问题(即 GitHub 问题的数量) 2016-2019 年每个月都有数据,所以我相应地划分了数据。 training_data : 2016-
我是一名优秀的程序员,十分优秀!