我有一个数据帧
usd_id trade_datetime position
A 2019/01/01 08:01 1
A 2019/01/01 08:03 1
B 2019/01/01 08:03 1
A 2019/01/01 08:03 1
C 2019/01/01 08:10 2
C 2019/01/01 08:10 2
A 2019/01/01 08:20 2
对于每个用户id,可以创建n个交易记录。 是否可以对这些交易模式进行聚类以识别相似的用户? 如果是,如何进行数据处理
我以前学过K-means和KNN,但是如果我的理解正确的话,这些算法是基于所有用户都有相同维度数据的假设。已经在谷歌上搜索过,但没有结果
在上述数据中,用户_id A和用户_id B应该比A-C和B-C有最近的距离,因为它们的交易时间和位置更相似
谢谢
在我看来,根据你的最终目标,你有一些选择
一,。格式为二维:
您可以为每个用户计算以下每个事务时间之间的差异。这可以为每个用户提供一个向量,您可以在该向量上计算某些特征,例如平均值和四分位数
导致类似于以秒为单位的事务之间的差异:
如果您的位置特征描述了事务发生的“位置”,那么您可以在同一位置的事务之间进行区分(groupby是您在这里的朋友)。为每个用户提供一个2D向量,每个位置的交易间隔时间。然后还可以通过位置计算特征:
当用户在这些地方没有任何事务时,将其设置为默认值,这将取决于实现此目标所使用的目标和算法
此表示将允许您使用已经使用过的经典算法,如KNN
二,。保留“3”维数据(从用户向量的角度):
您可以将此数据视为一个绘图,其中X轴是时间(例如每天一个刻度),Y轴是事务的编号。例如,允许您绘制每个职位每天的交易数量曲线,以查看其随时间的“受欢迎程度”。同样的方法也可以应用于用户的视角而不是位置
如果您想监控事务之间随时间的时间差异,只需将此差异作为一个向量,从而生成一个“类”时间序列数据集
根据您试图分析的内容,时间序列数据可能允许您使用季节分解(参见python中的statsmodels)以及与时间序列相关的一整套技术
相关问题 更多 >
编程相关推荐