如何通过评论、点赞等行为信息进行数据挖掘?

用户对产品有很多行为,如何进行用户行为分析来量化用户对产品的喜好程度呢?

比如豆瓣FM,用户可以点击“喜好”和"扔进垃圾箱"等;比如优酷视频,用户可以顶,踩,分享等。、

我们如何通过这些行为信息分析用户对这首歌的喜好程度,对这个视频的评分是多少。

下面实例分析用户对视频的喜好程度。说到视频,我们可以联想到各种用户行为,看了多久,是否评论,是顶是踩,是否分享?

我们可以通过这些指标来评估用户对该视频的打分。比如用户看了多久打多少分,分享了打多少分等。还有就是不同的行为也反映了不同程度的喜好。

我们可以通过一条简单的公司来评估打分,score=w1*x1+w2*x2.......

x1,x2等是行为指标,w1,w2等是行为权重。

行为指标:比如用户点了赞,给1分,分享了,给2分。通常这里需要做归一化处理,把分数压缩到一个合理范围。

(PS:这里相当于领域专家打分,不知道是否通过建模的方法,有待探讨)。

行为权重:不同的行为,反映了用户的不同喜好程度,比如分享了比顶赞更重要。面对众多指标,如何合理地确定各权重呢?

这里通过层次分析法来确定各行为指标的权重。

构造成对比较矩阵

播放时长

播放时长/视频时长

评论

下载

收藏

分享

播放时长

1

1/3

1

1/3

1/5

1/5

播放时长/视频时长

3

1

1

1

1

1/2

评论

1

1

1

1/3

1/2

1/5

下载

3

1

3

1

1

1/2

收藏

5

1

2

1

1

1/2

分享

5

2

5

2

2

1

比如第四行第一列的数字3,表示“下载”比“播放时长”稍重要。

标度

含义

1

表示两个元素相比,具有同样重要性

3

表示两个元素相比,前者比后者稍重要

5

表示两个元素相比,前者比后者明显重要

7

表示两个元素相比,前者比后者强烈重要

9

表示两个元素相比,前者比后者极端重要

2,4,6,8

表示上述相邻判断的中间值

倒数

若元素与的重要性之比为,那么元素与元素重要性之比为

列进行归一化

[[ 0.05555556 0.0521327 0.07692308 0.05830389 0.03508772 0.06896552]

[0.16666667 0.15797788 0.07692308 0.17667845 0.1754386 0.17241379]

[0.05555556 0.15797788 0.07692308 0.05830389 0.0877193 0.06896552]

[0.16666667 0.15797788 0.23076923 0.17667845 0.1754386 0.17241379]

[0.27777778 0.15797788 0.15384615 0.17667845 0.1754386 0.17241379]

[0.27777778 0.31595577 0.38461538 0.35335689 0.35087719 0.34482759]]

行求和

[ 0.34696846 0.92609846 0.50544522 1.07994462 1.11413265 2.0274106 ]

再归一化:

[ 0.05782808 0.15434974 0.08424087 0.17999077 0.18568877 0.33790177]

播放时长

播放时长/视频时长

评论

下载

收藏

分享

0.05782808

0.15434974

0.08424087

0.17999077

0.18568877

0.33790177

就得到了个指标的权重

对于各项指标的得分,也要进行归一化处理,比如把分数限定在0-1.

假如一个用户对一个视频的各指标得分是

播放时长

播放时长/视频时长

评论

下载

收藏

分享

0.9

0.8

1

0

0

0

则将得分进行加权求和(或者平均),得到该用户对该视频的评分。

作一致性检验

从理论上分析得到:如果A是完全一致的成对比较矩阵,应该有

但实际上在构造成对比较矩阵时要求满足上述众多等式是不可能的。因此退而要求成对比较矩阵有一定的一致性,即可以允许成对比较矩阵存在一定程度的不一致性。

由分析可知,对完全一致的成对比较矩阵,其绝对值最大的特征值等于该矩阵的维数。对成对比较矩阵 的一致性要求,转化为要求: 矩阵的绝对值最大的特征值和该矩阵的维数相差不大。

Python代码实现

  1. import numpy as np
  2. import numpy.linalg as nplg
  3. da = np.loadtxt("data.csv")
  4. sum= np.sum(da,axis=0)
  5. col_arv = da/sum
  6. w = np.sum(col_arv,axis=1)
  7. w_n = w/np.sum(w)
  8. print w_n
  9. print np.max(nplg.eig(da)[0])

输出是:

[ 0.05782808 0.15434974 0.08424087 0.17999077 0.18568877 0.33790177] (6.16381602081+0j)

其中,第一行就是权重了,第二行就是最大特征值。显然,矩阵的维数是6,跟最大特征值差不多,合理。

http://blog.csdn.net/lingerlanlan/article/details/419173

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2017-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能算法

鸟群的启发--粒子群算法

看文章之前先看一个相关小视频(55s, 2.86M): ? 1. PSO的基本思想: “自然界的蚁群、鸟群、鱼群、羊群、牛群、蜂群等,其实时时刻刻都在给予我们以...

404110
来自专栏AI科技大本营的专栏

老司机这样讲深度学习,新手才能看得懂学得快

作者 | 张玉宏 (一)一入侯门“深”似海,深度学习深几许 【导言】目前人工智能非常火爆,而深度学习则是引领这一火爆现场的“火箭”。于是,有关“深度学习”的...

32450
来自专栏PPV课数据科学社区

数据科学的基本内容

什么是数据科学?它和已有的信息科学、统计学、机器学习等学科有什么不同?作为一门新兴的学科,数据科学依赖两个因素: 一是数据的广泛性和多样性; 二是数据研究的共性...

27950
来自专栏向治洪

[置顶] 机器学习简介及常用算法

概念 什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多...

22580
来自专栏人工智能头条

深度学习相关最新图书推荐

16040
来自专栏向治洪

机器学习

概念 什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学...

212100
来自专栏AI研习社

深度学习+机器人,哪些技术方向最有可能产生火花?

AI 研习社按:本文作者qqfly,上海交通大学机器人所博士生,本科毕业于清华大学机械工程系,主要研究方向机器视觉与运动规划,会写一些好玩的内容在微信公众号:N...

40780
来自专栏云时之间

深度学习与神经网络学习:(1)小小的开始

大家好,这一篇文章算是深度学习这一个开始 其实说深度学习,之前或多或少之前也学过一些,比如像经常在TensorFlow用的CNN卷积神经网络和RNN递归神经网络...

45560
来自专栏悦思悦读

计算机是怎么理解人类语言的?

让计算机理解人类语言 “教”计算机理解人类的自然语言这部分工作,称作自然语言理解(Natural Language Understanding / NLU)。 ...

41180
来自专栏深度学习自然语言处理

详解机器学习之the Learning Problem

阅读大概需要10分钟 Why do we learn Machines Learning 之前虽然学过逻辑回归LR,支持向量机SVM等机器学习的零星小片段,还有...

319100

扫码关注云+社区

领取腾讯云代金券