请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如何根据用户行为轨迹分类

     我可以提取出各个用户每日的行为轨迹,比如a用户他2018/08/24操作轨迹是菜单A–>菜单B–>菜单E 轨迹顺序是按时间先后排的,那么我们想把这些人按照行为轨迹分类,看看哪些用户是采购人员,哪些用户是销售人员之类的而且还想知道每一类人最常用的操作轨迹。
     对于这种需求我们可以采用怎样的方法去分类呢,sparkmllib中是否封装了相关算法呢

正在回答

1回答

Wotchin 2019-04-28 19:00:16
有几种思路,主要是特征工程上有区别,其他大同小异。 如你所述的问题,输入可以理解是一个序列,存在一种先后关系。 如果这种输入数据的可能组合不多,直接用分类就可以了。例如菜单a标记为1,菜单b标记为2,以此类推。那么某个用户的输入就可以是[1,2,4...]把它作为一个特征向量X,对应一个标签y代表用户类别,把所有的数据输入一个分类器中进行训练即可。这个X也可以用onehot编码一下。 上述思路对于一些输入维度较小的数据是可以的,但是如果用户的行为比这个要复杂,例如菜单,按钮等等加一起有100个,那么假设用户只能操作10次,那么输入可能的组合就大了,有那么这个特征工程就要更进一步。 更进一步地,如果用户操作的步骤不固定,即按了菜单a一次,与按了菜单b两次,这两个输入特征的维度是不同的。对于这种情况,就要考虑这些操作之间的相关关系,把整个序列作为一个特征去提取,有点类似自然语言处理中的一些方法,对于这种复杂场景,可以参考自然语言处理中的一维数据处理方法
1 回复 有任何疑惑可以回复我~
  • 提问者 慕侠1249843 #1
    您指的是类似词向量的一维的相似度计算吗
    那菜单栏操作有办法训练吗,还是只是直接余弦相似度计算之类的
    回复 有任何疑惑可以回复我~ 2019-05-06 09:09:22
  • Wotchin 回复 提问者 慕侠1249843 #2
    你这个不像是一种度量,而是一个分类,余弦相似度似乎不太合适。特征提取到了,扔到分类器做分类即可。困难就是特征提取,我认为
    回复 有任何疑惑可以回复我~ 2019-05-06 09:14:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信