为使用聚类准备数据

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

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

到目前为止,我已经将每个客户转换为一个数组,其中每个单元格是当天使用的分钟数。这个数组从用户首次使用产品时开始,到用户使用一年的最后一天结束。所有单元格中的条目必须是双精度值(例如,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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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