day09
今天是第9天,昨日是针对模型评价和聚类算法进行阐述,主要是对聚类不同类型的算法进行了介绍(距离、分布、密度、层次),今日是针对机器学习另外一个重点关联规则进行阐述说明,以及深度学习相关内容进行介绍
关联规则
关联规则属于无监督的机器学习方法,作用不是对变量进行预测,而是发现数据集中不同项之间的关系
术语 | 定义 | 示例 |
---|---|---|
项目 | 数据集中被分析的具体内容,如商品、服务等。 | 牛奶、面包、啤酒、鸡蛋等 |
事务 | 一组购买的项目,通常表示一个顾客的购物记录。 | 事务1:牛奶、面包;事务2:啤酒、鸡蛋;事务3:牛奶、啤酒 |
项集 | 一组同时出现的项目,可以是单个项目或多个项目组合。 | 单一项集:牛奶、面包;组合项集:牛奶和面包、啤酒和鸡蛋 |
支持度 | 项集在所有事务中出现的频率,衡量项集的重要性。 | 支持度 = 30/100 = 0.3(“牛奶和面包”出现频率为30%) |
频繁项集 | 支持度超过设定阈值的项集。 | 支持度大于0.2的项集,如“牛奶和面包”支持度为0.3 |
置信度 | 在包含A的事务中,B同时出现的概率。 | 置信度 = 60/80 = 0.75(“牛奶→面包”的置信度) |
提升度 | 衡量A和B之间关联强度的指标,>1表示正相关。 | 提升度 = 0.75 / 0.4 = 1.875(“牛奶→面包”的提升度) |
关联规则实现过程为:
- 数据筛选,对数据进行清洗过滤,筛选掉那些公共的项目
- 根据支持度,从事务中找出频繁项集(需要指定最小支持度)
- 根据置信度,从频繁项集中找出强关联规则(需要指定最小置信度)
- 根据提升度,从强关联规则中筛选出有效的强关联规则
- 使用其他评价指标进行评价
关联规则常用算法
背景:购物篮分析。假设你是一个商店老板,你想了解顾客常常一起购买哪些商品。比如,如果很多顾客买了苹果后又买了牛奶,你就知道苹果和牛奶有一定的“关联”。关联规则的任务就是发现这种规律。
- Apriori算法(像筛选常买商品的清单):假设你有一个非常大的购物单,里面有很多商品,首先你想知道,哪些商品是最常被购买的。比如,你发现苹果、牛奶和面包是最常见的商品组合。Apriori算法的基本思路就是通过不断地筛选,找到那些“频繁”被购买的商品。
- 如何操作:
- 第一步:先找出每个商品单独出现的频率,看看哪些商品是最常被购买的。比如你发现苹果、牛奶和面包分别有100、80、70个人购买。
- 第二步:接着,找出“成对”出现的商品,比如苹果和牛奶一起购买的次数。
- 第三步:再找出“三个商品一起购买”的组合,依此类推。
- 剪枝:如果某个商品组合很少被购买,那么它就不需要继续检查了,可以“剪掉”,节省时间。
总结:Apriori算法就是逐步从单个商品开始,扩展到更大组合,最后找出哪些商品组合最常被一起购买
- FP-Growth算法(更聪明的购物篮查找):FP-Growth算法是对Apriori算法的一种改进,想法是减少重复工作,快速找到常购买的商品组合。
- 如何操作:
- 构建一个“压缩版”购物篮:首先,通过一次扫描数据,把最常被购买的商品提取出来,并把它们按照频率排序。然后,基于这些常买商品构建一个压缩的结构(叫做FP树),就像一个“压缩版”的购物篮。
- 递归查找:然后通过这个FP树,快速找出频繁的商品组合。这样你就不需要每次都扫描原始的大购物单了,只需要操作压缩版的结构。
总结:FP-Growth算法通过构建一个压缩后的结构来避免重复扫描数据,这样就能更快找到常买的商品组合。
- Eclat算法(用更聪明的方式找到常见商品):Eclat算法也是一个很聪明的查找方法,它和Apriori的做法不一样,Eclat不是通过“扩展商品组合”来找到关联,而是通过比较每个商品的“事务ID”来找规律。
- 如何操作:
- 把购物记录转成ID列表:你把所有顾客的购物记录转化为ID列表。例如,顾客A买了苹果、牛奶和面包,那么就给这些商品一个编号(比如“苹果”编号1,“牛奶”编号2,“面包”编号3),然后记录这些编号在购物单中的出现位置。
- 比较ID列表:Eclat算法就会把两个商品的ID列表进行“交集”,看它们有多少共同的购物记录。共同出现的越多,说明这两个商品的组合越常见。
- 递归查找:然后通过递归的方式,不断扩大组合,直到找到频繁的商品组合。
总结:Eclat算法通过比较商品的购物记录ID,找到哪些商品组合频繁出现,而不需要一层一层地扩展。
关联规则评价
评价指标 | 定义 | 解释 |
---|---|---|
确信度 (Confidence) | 在给定条件下,规则 A⇒BA \Rightarrow BA⇒B 成立的概率,表示在出现 AAA 的情况下,BBB 也出现的概率。 | 反映了规则的可靠性。确信度越高,说明规则的可靠性越强。 |
卡方系数 (Chi-Square) | 用于检验关联规则中两个事件之间是否独立,判断是否有统计学上的显著性。 | 通过比较观察到的频率与期望的频率,计算两个变量之间的关联性。卡方值越大,说明变量之间的关联性越强。 |
全自信度 (Lift) | 计算一个规则的提升度,衡量规则中 BBB 在 AAA 出现时的发生概率相对于独立情况下发生的概率的提升。 | 如果 Lift > 1,说明 AAA 和 BBB 是正相关的;如果 Lift = 1,说明 AAA 和 BBB 独立;如果 Lift < 1,说明负相关。 |
最大自信度 (Max Confidence) | 用于选择多个规则中最有信心的规则,即选择确信度最高的规则。 | 通过比较多个规则的确信度,找到最有信心的规则。 |
Kulc系数 (Kulc’s coefficient) | 评估两个项集 AAA 和 BBB 的关联度,度量规则的强度。 | Kulc系数用来衡量规则的强度,通常大于 1 表示有很强的关联性。 |
Cosine距离 (Cosine Similarity) | 用来衡量两个项集 AAA 和 BBB 的相似度,范围从 0 到 1,值越大说明两者越相似。 | 主要用于衡量项集之间的相似性,广泛应用于文本挖掘。 |
Leverage (杠杆值) | 衡量项集 AAA 和 BBB 同时出现的频率与它们各自独立出现的频率之间的差异。 | Leverage值越大,表示规则的关联性越强。Leverage 计算了项集 AAA 和 BBB 之间的独立性与实际发生的差距。 |
不平衡因子 (Imbalance Factor) | 衡量规则中项集 AAA 和 BBB 出现频率的差异,通常用于分析不平衡数据中的关联性。 | 计算规则是否存在显著的偏向性,主要用于不平衡数据集的分析。 |
深度学习
深度学习算法的分类
模型 | 全名 | 核心思想/特点 | 应用场景 |
---|---|---|---|
卷积神经网络(CNN) | Convolutional Neural Network | 卷积神经网络通过“卷积”操作来提取图像的局部特征。卷积层可以自动检测图像中的一些基本模式,比如边缘、角点、纹理等。它还会通过池化层减少数据的维度,进一步提取重要特征,最后通过全连接层进行分类或预测。卷积神经网络是处理图像、视频等网格数据(如图片的像素)最常用的模型。 | 图像分类(比如区分猫和狗)、目标检测(找出图片中的人或物体)、人脸识别、自动驾驶中的物体检测等。 |
循环神经网络(RNN) | Recurrent Neural Network | 循环神经网络(RNN)是处理序列数据的专用模型,具有“记忆”功能。它能够记住前面信息,并且通过时间步长将信息传递给后面的计算,捕捉数据中前后之间的关系。例如,在处理文本时,RNN可以根据前面的单词来预测下一个单词。 | 语音识别(将语音转换为文字)、机器翻译(将英文翻译成中文)、语言模型(预测句子中下一个词)、文本生成等。 |
递归神经网络(Recursive NN) | Recursive Neural Network | 递归神经网络(与RNN不同)主要用于处理树形结构的数据。它的核心思想是通过树状结构的节点进行递归计算,适合用于表示具有层次结构的数据,比如句子的语法结构。在语言处理中,递归神经网络常用来解析句子的语法树。 | 句法分析(理解句子结构)、情感分析(分析文本的情感倾向)、自然语言理解等。 |
自动编码器(Autoencoder) | Autoencoder | 自动编码器是一种无监督学习模型,通常用来进行数据压缩和降噪。它由两部分组成:编码器(Encoder)和解码器(Decoder)。编码器将输入数据压缩成一个低维度的表示,而解码器将这个低维表示重新构建回原数据。通过这种方式,自动编码器学习到数据中的最重要特征。 | 数据降维(比如将高维的数据变得易于处理)、去噪(去除图像中的噪声)、异常检测(识别异常数据)、图像压缩等。 |
深度信念网络(DBN) | Deep Belief Network | 深度信念网络由多个限制玻尔兹曼机(RBM)堆叠而成,属于一种生成模型。它的训练过程是通过逐层训练每一层的RBM,然后将每一层的输出作为下一层的输入。深度信念网络是一种无监督学习的模型,最早用于无监督预训练深度神经网络,后被其他模型如深度神经网络和卷积神经网络所取代。 | 图像分类、语音识别、数据预训练等。 |
生成对抗网络(GAN) | Generative Adversarial Network | 生成对抗网络包括两个部分:生成器(Generator)和判别器(Discriminator)。生成器负责生成数据(例如图像),而判别器的任务是区分生成的数据和真实数据。两者通过对抗的方式不断改进,最终生成器能够生成非常逼真的数据。可以把它看作是一个“博弈”过程:生成器尽量骗过判别器,而判别器尽力识别真假。 | 图像生成(生成从未见过的图像)、风格迁移(将一幅画的风格应用到另一幅画上)、数据增强(生成更多训练数据)、图像修复等。 |
Transformer | Transformer | Transformer模型是基于“自注意力机制”(Self-Attention)的架构,可以有效地捕捉序列数据中不同位置之间的依赖关系。与RNN不同,Transformer不需要逐步处理数据,而是通过并行计算处理整个序列,这大大提高了效率。Transformer的设计能够处理长距离的依赖,特别适合大规模数据的学习。 | 机器翻译(如将英语翻译成法语)、文本生成(如写文章或生成对话)、情感分析、问答系统等。 |
图神经网络(GNN) | Graph Neural Network | 图神经网络是一种专门用于处理图结构数据(如社交网络、推荐系统中的用户和商品之间的关系图等)的模型。图由节点(代表实体)和边(代表实体之间的关系)组成,GNN通过“消息传递”机制让每个节点与其邻居节点交换信息,从而学习节点和边之间的复杂关系。 | 社交网络分析(例如分析社交平台上的关系)、推荐系统(基于用户行为图推荐商品)、药物分子分析(分析分子结构)等。 |
深度学习算法的加速
- GPU加速:GPU并行进行数值计算(矩阵的乘积运算之类)
- 分布式学习:多个GPU、多台机器上进行分布式计算
- 运算精度的位数缩减:大模型训练中有一个量化的操作,比如将浮点数换成int4类型的,精度损失,效果会有折扣,但是显存显著降低