为使用聚类准备数据

数据集:我得到了每个客户每天使用产品的分钟数,试图通过聚类这些数据来发现常见的使用模式。

我的问题是:如何格式化数据,以便例如,一个在一年内高使用量的重度用户,与另一个仅在一个月内使用设备的重度用户在数据收集结束时看起来相同?

到目前为止,我已经将每个客户转换为一个数组,其中每个单元格是当天使用的分钟数。这个数组从用户首次使用产品时开始,到用户使用一年的最后一天结束。所有单元格中的条目必须是双精度值(例如,200.0分钟)。我考虑过将数据收集的最后一天之后的所有单元格/天设置为-1.0或NULL。这两种方法是否有效?如果不是,您有什么建议?


回答:

对于你希望同时处理两个用户的问题(一个用户在一年内每天大量使用产品,另一个用户在一个月内大量使用),你可以创建一个新条目,其值为:

avg_usage per time_bin

time_bin 可以是一个月、一天或其他最适合你需求的时间单位。这样,一个用户在一年内每天使用产品200分钟,将得到:

200 * 30 * 12 / 12 = 6000 分钟每月

而另一个用户仅在上个月加入,使用量相同,也将得到:

200 * 30 * 1 / 1 = 6000 分钟每月。

这样,无论你何时开始使用产品,重要的是使用率。

你可能需要考虑的一个重要因素是,产品可能会被暂时遗忘。例如,一台电脑,我出去度假了。那些我没有使用电脑的日子,可能不会影响我对该产品的一般使用。因此,根据你的数据、产品和直觉,你可能需要考虑删除像我提到的那样的间隙,并且在计算中不予考虑。

用户使用产品的时间长度可能是一个信号,但如果他确实是最近才开始使用,并且一直使用到今天,这可能是你需要考虑的一个因素,而这种平均分箱技术可能会有所帮助。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注