【数据分析46讲】算法篇下

这篇博客深入探讨了数据挖掘中的EM聚类算法,从理论到实践,通过实例解释了如何用EM算法对王者荣耀英雄进行划分。接着介绍了关联规则挖掘,讲解了Apriori和FP-Growth算法的工作原理及其在发现用户购物规则中的应用。此外,还阐述了Google的PageRank算法,分析了其在社交影响力评估中的应用。最后,介绍了AdaBoost算法,解释了如何使用该算法提升分类器性能并进行房价预测。
摘要由CSDN通过智能技术生成

EM聚类(上):如何将一份菜等分给两个人?

EM算法的工作原理

最大似然估计,就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

EM 算法是一种求解最大似然估计的方法,通过观测样本,来找出样本的模型参数

我们举一个投掷硬币的例子,假设我们有A和B枚硬币,我们每波投掷10次,一共投5波,统计正面的次数

在这里插入图片描述

  • 硬币A正面几率是0.45
  • 硬币B正面概率是0.8

但是如果我们不知道投掷的是哪个硬币呢,我们如何算出A和B的概率?

这里我们就需要先假设A是0.5 B是0.9,然后我们看看正面次数是5次,硬币A和硬币B的概率是啥?

A正面5次的几率是:
在这里插入图片描述
B正面5次的几率是:
在这里插入图片描述
所以实验1可能是硬币A,同理,整个实验是A,A,B,B,A

EM 聚类的工作原理

EM 就好像炒菜,做汤,盐多了放水,味淡了再放盐,直到合适为止。然后,就能得出放盐和水的比例(参数)

因为 K-Means 是通过距离来区分样本之间的差别的,且每个样本在计算的时候只能属于一个分类,称之为是硬聚类算法。而 EM 聚类在求解的过程中,实际上每个样本都有一定的概率和每个聚类相关,叫做软聚类算法

在 EM 这个框架中,E 步骤相当于是通过初始化的参数来估计隐含变量。M 步骤就是通过隐含变量反推来优化参数。最后通过 EM 步骤的迭代得到模型参数。

EM,聚类的个数是已知的

EM聚类(下):用EM算法对王者荣耀英雄进行划分

如何使用EM工具包

在 Python 中有第三方的 EM 算法工具包。由于 EM 算法是一个聚类框架,所以你需要明确你要用的具体算法,比如是采用 GMM 高斯混合模型,还是 HMM 隐马尔科夫模型

from sklearn.mixture import GaussianMixture

创建 GMM 聚类

gmm = GaussianMixture(n_components=1, covariance_type=‘full’, max_iter=100) 
  • n_components 即高斯混合模型的个数,也就是我们要聚类的个数
  • covariance_type 代表协方差类型
  • max_iter 代表最大迭代次数 默认是100

然后我们训练和预测,这是因为聚类是无监督学习,你不需要事先指定聚类的结果,也无法基于先验的结果经验来进行学习。只要在训练过程中传入特征值矩阵,机器就会按照特征值矩阵生成聚类器,然后就可以使用这个聚类器进行聚类了

如何用 EM 算法对王者荣耀数据进行聚类

我们先看看数据:
在这里插入图片描述
从上图中,一个英雄有很多属性,我们可以把相关性特别强的属性只保留一个(比如“最大生命”“生命成长”和“初始生命”),然后用 Z-Score进行规范化(比如“最大攻速”这个属性值是百分数,不适合做矩阵运算),最后用sklearn 中的 GaussianMixture 类进行聚类

我们采用了 GMM 高斯混合模型,并将结果输出到 CSV 文件中:
在这里插入图片描述

关联规则挖掘(上):如何用Apriori发现用户购物规则

搞懂关联规则中的几个概念

可以从消费者交易记录中发掘商品与商品之间的关联关系

我举一个超市购物的例子,下面是几名客户购买的商品列表:
在这里插入图片描述
什么是支持度:
它指的是某个商品组合出现的次数与总次数之间的比例。支持度越高,代表这个组合出现的频率越大
“牛奶 + 面包”出现了 3 次,那么这 5 笔订单中“牛奶 + 面包”的支持度就是 3/5=0.6

什么是置信度:
就是说在 A 发生的情况下,B 发生的概率是多少
在 4 次购买了牛奶的情况下,有 2 次购买了啤酒,所以置信度 (牛奶→啤酒)=0.5

什么是提升度呢:
我们在做商品推荐的时候,重点考虑的是提升度,因为提升度代表的是“商品 A 的出现,对商品 B 的出现概率提升的”程度
提升度 (A→B)= 置信度 (A→B)/ 支持度 (B)
这个公式是用来衡量 A 出现的情况下,是否会对 B 出现的概率有所提升

  • 提升度 (A→B)>1:代表有提升;
  • 提升度 (A→B)=1:代表有没有提升,也没有下降;
  • 提升度 (A→B)<1:代表有下降。
Apriori 的工作原理

商品用 ID 来代表,牛奶、面包、尿布、可乐、啤酒、鸡蛋的商品 ID 分别设置为 1-6
在这里插入图片描述
我们首先要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值