写点什么

极客大学架构师训练营 大数据可视化、机器学习、PageRank 算法、KNN 分类算法、贝叶斯分类算法、推荐引擎算法、感知机、神经网络 第 26 课 听课总结

用户头像
John(易筋)
关注
发布于: 2020 年 09 月 06 日

说明

讲师:首席架构师 李智慧



大数据可视化



数据大屏

互联网运营常用数据指标

新增用户数

新增用户数是网站增长性的关键指标,指新增加的访问网站的用户数(或者新下载 App 的用户数),对于一个处于爆发期的网站,新增用户数在短期内出现倍增的走势,是网站的战略机遇期,很多大型网站都经历过一个甚至多个短期内用户暴增的阶段。新增用户数有日新增用户数、周新增用户数、月新增用户等几种统计口径。



用户留存率



新增的用户并一定总是对网站(App)满意,在使用网站(App)后感到不满意,可能会注销账号(卸载App),这些辛苦获取来的用户就流失掉了。网站把经过一段时间依然没有流失的用户称作留存用户,留存用户数比当期新增用户数就是用户留存率。



用户留存率 = 留存用户数 / 当前新增用户数



用户留存有时间窗口,即和当期数据比,3天前新增用户留存的,称作3日留存;相应的,还有 5日 留存、7日留存等。新增用户通过可以通过广告、促销、病毒营销等手段获取,但是要让用户留下来,就必须要使产品有实打实的价值。用户留存率是反映用户体验和产品价值的一个重要指标,一般说来,3日留存率能做到 40% 以上就算不错了。和用户留存率对应的是用户流失率。



用户流失率 = 1 - 用户留存率



活跃用户数

用户下载注册,但是很少打开产品,表示产品缺乏粘性和吸引力。活跃用户数表示打开使用产品的用户数,根据统计口径不同,有日活跃用户数、月活跃用户数等。提升活跃是网站运营的重要目标,各类 App 常用推送优惠促销消息给用户的手段促使用户打开产品。



PV

打开产品就算活跃,打开以后是否频繁操作,就用 PV 这个指标衡量,用户每次点击,每个页面跳转,被称为一个 PV(Page View)。PV 是网页访问统计的重要指标,在移动 App 上,需要进行一些变通来进行统计。



GMV

GMV 即成交总金额( Gross Merchandise Volume),是电商网站统计营业额(流水)、反映网站营收能力的重要指标。和 GMV 配合使用的还有订单量(用户下单总量)、客单价(单个订单的平均价格)等。



转化率

转化率是指在电商网站产生购买行为的用户与访问用户之比。



转化率 = 有购买行为的用户数 / 总访问用户数



用户从进入网站(App)到最后购买成功,可能需要经过复杂的访问路径,每个环节都可能会离开:进入首页想了想没什么要买的,然后离开;搜索结果看了看不想买,然后离开;进入商品详情页面,看看评价、看看图片、看看价格、然后离开;放入购物车后有想了想自己的钱包,然后离开;支付的时候发现不支持自己喜欢的支付方式,然后离开... 一个用户从进入网站到支付,完成一笔真正的消费,中间会有很大概率流失,网站必须要想尽各种办法:个性化推荐、打折促销、免运费、送红包、分期支付,以留住用户,提高转化率。



数据可视化图标与数据监控

折线图

折线图是用的最多的可视化图标之一,通常横轴为时间,用于展示在时间维度上的数据变化规律,正向指标(比如日活跃用户数)斜率向上,负向指标(比如用户流失率)斜率向下,都表示网站运营日趋良好,公司发展欣欣向荣。





散点图

数据分析的时候,散点图可以有效帮助分析师快速发现数据分布上的规律与趋势,可谓肉眼聚类算法。

热力图

热力图用以分析网站页面被用户访问的热点区域,以更好进行页面布局和视觉展示。在地图上展示的热力图则表示了该地区的拥堵和聚集状态,方便用户进行出行规划。

漏斗图

漏斗图可谓是网站数据分析中最重要的图标,表示在用户的整个访问路径中每一步的转化率。

大数据算法与机器学习

网页排名算法 PageRank

PageRank, 网页排名,又称网页级别,Google 左侧排名或佩奇排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以 Google 公司创办人 拉里佩·奇(Larry Page)之姓来命名。



PageRank 让链接来 [投票]

PageRank 通过网络浩瀚的超链接关系来确定一个页面的等级。Google 把从 A 页面到 B 页面的链接解释为 A 页面给 B 页面投票,Google 根据投票来源(甚至来源的来源,即链接到 A 页面的的页面)和投票目标的等级来决定新的等级。简单的说,一个高等级的页面使其它低等级页面的等级提升。



一个页面的 [得票数] 由所有链向它的页面的重要性来决定,到一个页面的超链接相当于该页投一票。一个页面的 PageRank 是由所有链向它的页面([链入页面])的重要性经过递归算法得到的。一个有较多链入的页面会有较高的等级,相反如果一个页面没有任何链入页面,那么它没有等级。



PageRank 算法

假设一个由4个页面组成的小团体:A, B, C 和 D。如果所有页面都链向A,那么 A 的PR(PageRank)值将是 B,C 及 D的 PageRank 总和。

继续假设 B 也有链接到 C,并且 D 也有链接到包括 A 的3个页面。一个页面不能投票 2 次。所有 B 给每个页面半票。以同样的逻辑,D 投出的票只有三分之一算到了 A 的PageRank 上。

换句话说,根据链出总数平分一个页面的 PR 值。

互联网中一个网页只有对自己的出链,或者几个网页的出链形成一个循环圈。那么在不断地迭代过程中,这一个或几个网页的PR值将只增不减,显然不合理。如下图中C网页就是刚刚说的只有对自己的出链的网页:

为了解决这个问题。我们想象一个随机浏览网页的人,假定他有一个确定的概率会输入网址直接跳转到一个随机的网页,并且跳转到每个网页的概率是一样的,于是则此图中A的PR值可表示为:

PageRank 计算公式

P1,P2...Pn 是被研究的页面,M(pi)是链如 Pi 页面的集合,L(pj)是Pj 链出页面的数量,而N是所有页面的数量。

PageRank 值是一个特殊矩阵中的特征向量。这个特征向量为:



d = 0.85



KNN 分类算法

KNN 算法,也叫 K 近邻(K Nearest Neighbor)算法



对于一个需要分类的数据,将其和一组已经分类标注好的样本集合进行比较,得到距离最近的 K 个样本,K 个样本最多归属的类别,就是这个需要分类数据的类别。



数据的距离算法

对于数据 xi 和 xj,若其特征空间为 n 维实数向量空间 Rn,即 xi=(xi1,xi2,...,...xin), xj=(xj1,xj2,...,...xjn)



提取文本的特征值 TF-IDF 算法

TF 是词频(Term Frequency),表示某个单词在文档中的出现的频率。

IDF 是逆文档频率(Inverse Document Frequency),表示这个单词在所有文档中的稀缺程度。



贝叶斯分类算法

贝叶斯公式



举例:假设一所学校里男生占60%,女生占40%。男生总是穿长裤,女生则一半穿长裤一半穿裙子。假设你走在校园里,迎面走来一个穿长裤的学生,你能够推断出这个穿长裤学生是男生的概率是多少吗?



利用贝叶斯公式可知是 75%。

K-means 聚类算法

  1. 第 1 步:随机在图中取 K 个种子点,图中 K = 2,即图中的实心小圆点。

  2. 第 2 步:求图中所有点到这 K 个种子点的距离,加入一个点离种子点 X 最近,那么这个点属于 X 点群。在图中,可以看到A、B 属于上方的种子点,C、D、E 属于中部的种子点。

  3. 第 3 步:对已经分好组的两组数据,分别求其中心点。对于图中二维平面上的数据,求中心点最简单暴力的算法就是对当前同一个分组中所有点的 X 坐标和 Y 坐标分别求平均值,得到的就是中心点。

  4. 第 4 步:重复第 2 步和第 3 步,直到每个分组的中心点不再移动这时候,距离每个中心点最近的点数据聚类为同一组数据。



推荐引擎算法



基于人口统计的推荐

基于商品属性的推荐

基于用户的协同过滤推荐

基于商品的协同过滤推荐

机器学习系统架构

样本

样本就是通常我们常说的 “训练数据”,包括输入和结果两部分。比如我们要做一个自动化新闻分类的机器学习系统,对于采集的每一篇新闻,能够自动发送到对应新闻分类频道里面,比如体验、军事、财经等。这时候我们就需要批量的新闻和其对应的分类类别作为训练数据。通常随机选取一批现成的新闻素材就可以,但是分类需要人手工进行标注,也就是需要有人阅读每篇新闻,根据其内容打上对应的分类标签。



T = (x1,y1), (x2, y2), ..., (xn, yn)

其中 xn 表示一个输入,比如一篇新闻;yn表示一个结果,比如这篇新闻对应的类别。



模型

模型就是映射样本输入与样本结果的函数,可能是一个条件概率分布,也可能是一个决策函数。一个具体的机器学习系统所有可能的函数构成了模型的假设空间,数学表示是:

其中 X 是样本输入,Y是样本输出,f 就是建立 X 和 Y 映射关系的函数。所有 f 的可能结果构成了模型的假设空间 F。



很多时候 F 的函数类型是明确的,需要计算的是函数的参数,比如确定 f 函数为一个线性函数,那么 f 的函数表示就可以写为:

这时候需要计算的就是 a1 和 a0 两个参数的值。这种情况下模型的假设空间的数学表示是:

其中 θ 为f 函数的参数取值空间,一个 n 维欧式空间,被称作参数空间。



算法

算法就是要从模型的假设空间中寻找一个最优的函数,使得样本空间的输入 X 经过该函数的映射得到的 f(X) ,和真实的 Y 值之间的距离最小。这个最优的函数通常没办法直接计算得到,即没有解析解,需要用数值计算的方法不断迭代求解。 因此如何寻找到 f 函数的全局最优解,以及使寻找过程尽量高效,就构成了机器学习的算法。



如何保证 f 函数或者 f 函数的参数空间最接近最优解,就是算法的策略。机器学习中用损失函数来评估模型是否最接近最优解。损失函数用来计算模型预测值与真实值的插件,常用的有 0-1 损失函数、平方损失函数、绝对损失函数、对数损失函数等。以平方损失函数为例,损失函数如下:

对于一个给定的样本数据集

模型 f(X) 相对于真实值的评价损失为每个样本的损失函数的求和平均值:

这个值被称作经验风险,如果样本量足够大,那么使经验风险最小的 f 函数就是模型的最优解,即求:



但是相对于样本空间的可能取值范围,实际中使用的样本量总是有限的,可能会出现使样本经验风险最小的模型 f 函数不能使实际预测值的损失函数最小,这种情况被称作过拟合,即一味追求经验风险最小,而使模型 f 函数变得过于复杂,偏离了最优解。这种情况下,需要引入结构风险以防止过拟合。结构风险表示为:

在经验风险的基础上加上 λJ(f), 其中 J(f) 表示模型 f 的复杂度,模型越复杂,J(f) 越大。要使结构风险最小,就要使经验风险和模型复杂度同时小。求解模型最优解就变成求解结构风险最小值:

机器学习的数学原理

给定模型类型,也就是给定函数类型的情况下,如何寻找使结构风险最小的函数表达式。由于函数类型已经给定,实际上就是求函数的参数。各种有样本的机器学习算法基本上都是在各种模型的假设空间上求解结构风险最小值的过程,理解了这一点也就理解了各种机器学习算法的推导过程。



机器学习要从假设空间寻找最优函数,而最优函数就是使样本数据的函数和真实值距离最小的那个函数。给定函数模型,求最优函数就是求函数的参数值。给定不同参数,得到不同函数值和真实值的距离,这个距离就是损失,损失函数是关于模型参数的函数,距离越小,损失越小。最小损失值对应的函数参数就是最优函数。



数学上求极小值就是求一阶导数,计算每个参数的一阶导数为零的偏微分方程组,就可以算出最优函数的参数值。这就是为什么机器学习要计算偏微分方程的原因。

感知机

感知机是一种比较简单的二分类模型,将输入特征分类为 +1、 -1 两类,就像下图所示的,一条直线将平面上的两类点分类。

感知机模型如下:

其中 x 代表输入的特征空间向量,输出空间是 {-1, +1}, w 为权值向量,b 叫作偏置,sign 是一个符号函数。

训练感知机模型就是要计算出 w 和 b 的值,当有新的数据需要分类的时候,输入感知机模型就可以计算出 +1 或者 -1 从而进行分类。



由于输出空间只有 {-1, +1} 两个值,所以只有误分类的时候,才会有模型计算值和样本真实值之间的偏差,偏差之和就是感知机的损失函数。



其中 M 为误分类点集合,误分类点越少,损失函数的值越小;如果没有误分类点,损失函数值为0.求模型的参数w 和 b, 就是求损失函数的极小值。



数学上求函数的极小值就是求函数的一阶导数,但是感知机损失函数用统计求和和函数表达,没办法计算解析解。机器学习采用梯度下降法求损失函数极小值,实质上就是求导过程的数值计算方法。



对于误分类点集合 M,损失函数 L(w, b) 变化的梯度,就是某个函数变量的变化引起的函数值的变化,根据感知机损失函数可知:



使用梯度下降更新 w 和 b,不断迭代是损失函数 L(w,b) 不断减小,直到为0, 也就是没有误分类点。

感知机算法的实现过程:

  1. 选择初始值 w0, b0.

  2. 在样本集合中选择样本数据 xi, yi.

  3. 如果 yi(w*xi + b) < 0, 表示 yi 为误分类点,那么 w=w+ηyixib=b+ηyi, 在梯度方向校正 w 和 b。其中 η 为步长,步长选择要适当,步长太长会导致每次计算调整太大出现震荡;步长太短又会导致收敛速度慢、计算时间长。

  4. 跳转回步骤2, 知道样本集合中没有误分类点,即全部样本数据 yi(w*xi + b) ≥ 0.



神经网络



神经网络在手写数字识别中的应用



784 表示数字正方形框长宽的像素之和。

30 个感知机,可以根据多次试验得到,不一定是30,有可能是50等。

神经网络与围棋 AI



发布于: 2020 年 09 月 06 日阅读数: 125
用户头像

John(易筋)

关注

问渠那得清如许?为有源头活水来 2018.07.17 加入

工作10+年,架构师,曾经阿里巴巴资深无线开发,汇丰银行架构师/专家。开发过日活过亿的淘宝Taobao App,擅长架构、算法、数据结构、设计模式、iOS、Java Spring Boot。易筋为阿里巴巴花名。

评论

发布
暂无评论
极客大学架构师训练营 大数据可视化、机器学习、PageRank算法、KNN分类算法、贝叶斯分类算法、推荐引擎算法、感知机、神经网络 第26课 听课总结