数据挖掘 课件 第四章 关联规则挖掘_第1页
数据挖掘 课件 第四章 关联规则挖掘_第2页
数据挖掘 课件 第四章 关联规则挖掘_第3页
数据挖掘 课件 第四章 关联规则挖掘_第4页
数据挖掘 课件 第四章 关联规则挖掘_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关联规则挖掘05高级关联模式挖掘背景介绍01Contents关联规则挖掘的基本概念02频繁项集挖掘算法03关联规则挖掘0406推荐系统中的关联规则挖掘超市消费者购物小票说起“购买啤酒的男士经常会购买小孩的纸尿布”不同商品间的关联规则背景介绍谷歌预测2009年部分地区的流感“2009年,Google通过分析5000万条美国人最频繁检索的词汇,将之和美国疾病中心在2003年到2008年间季节性流感传播时期的数据进行比较,并建立一个特定的数学模型。最终Google成功预测了2009冬季流感的传播甚至可以具体到特定的地区和州。”背景介绍超市预知高中生顾客怀孕明尼苏达州一家塔吉特(Target)门店被客户投诉,一位中年男子指控塔吉特将婴儿产品优惠券寄给他的女儿——一个高中生。但没多久他却来电道歉,因为女儿经他逼问后坦承自己真的怀孕了。塔吉特百货就是靠着分析用户所有的购物数据,然后通过相关关系分析得出事情的真实状况。背景介绍电表与空置房的匹配背景介绍05高级关联模式挖掘背景介绍01Contents关联规则挖掘的基本概念02频繁项集挖掘算法03关联规则挖掘0406推荐系统中的关联规则挖掘购物篮事务下面表格中存储的数据可以称为购物篮事务。事务:事务表示为形如<t,X>的元组事务标识符(TID):事务中的t项集:

,如果一个项集包含k个项,则称为k-项集。如{面包,尿布,啤酒,牛奶}为3-项集。TID项集1{面包,牛奶}2{面包,尿布,啤酒,牛奶}3{牛奶,尿布,啤酒,可乐}事务关联规则挖掘关联规则:是形如的表达式,其中

和是两个不相交的项集。关联规则挖掘步骤:频繁项集产生:使用频繁项集挖掘算法,找出满足最小支持度阈值的所有项集,这些项集为频繁项集。规则生成:从上一步得到的频繁项集中过滤出满足最小置信度阈值的规则,这些规则称为强规则。关联规则挖掘支持度计数:指一个项集在所有事务中出现的次数。换言之,它是该项集在事务数据库中的绝对频率。数学上可以表示为。支持度:支持度计数与总事务数的比例,表示在所有事务中有多少比例的事务包含该项集。这是一个标准化的指标,用于评估项集的普遍性。支持度的数学定义如下,N表示事务总数。在关联规则挖掘中,支持度是用于初步筛选数据中潜在有用模式的重要工具。只有当项集的支持度达到预设的最小支持度阈值时,这些项集才被认为是频繁项集。格结构格结构:挖掘频繁项集时,候选项集之间的包含关系所形成的结构。性质:如果一个项集是另一个项集的子集,那么它们之间就存在一条连接。图中显示的是的项集格,其中2-项集{A,B}是3-项集{A,B,C}的直接子集。05高级关联模式挖掘背景介绍01Contents关联规则挖掘的基本概念02频繁项集挖掘算法03关联规则挖掘0406推荐系统中的关联规则挖掘朴素法朴素法:将所有的k-项集作为候选项集,然后确定其在输入数据中的支持度选出频繁项集。算法步骤:候选生成:一次性生成所有候选项集,第k层的候选项集的数目为,其中d是项的总数。朴素法将每个事务与所有候选项集进行比较,如图若候选项集在事务中,则该候选项集的支持度计数加一,最终根据项集支持度计数是否大于等于最小支持度阈值以判断其是否为频繁项集。朴素法的计算成本随着数据量的增加呈指数级增长,因此在实际应用中不太实用。先验算法Apriori算法:一种经典的频繁项集挖掘算法,用于从大规模数据集中发现频繁项集和关联规则。核心思想:利用先验知识来减少搜索空间。令

为任意两个项集,若,则。进一步得到先验知识:若是频繁的,则其任意子集也是频繁的。若是非频繁的,则其任意超集也是非频繁的。先验算法假设{A,B,C}是频繁项集,则其子集{A,B}、{B,C}、{A,C}、{A}、{C}都是频繁项集。先验算法若{A,B}是非频繁项集,则其超集{A,B,C}、{A,B,D}、{A,B,E}、{A,B,C,D}、{A,B,C,E}、{A,B,D,E}、{A,B,C,D,E}都是非频繁的,对于非频繁项集{A,B}在生成2-项集时将其剪枝,避免之后不必要的候选项集生成和支持度计算。先验算法算法步骤:候选项集产生:由前一次迭代发现的频繁项集(k-1)-项集产生新的候选k-项集。对于第k层的(k-1)-项集,仅当它们的前k-2个项都相同,合并这对(k-1)-项集。令和是一对频繁(k-1)-项集,如果它们满足如下条件则合并:先验算法候选项集剪枝:枚举每个事务所包含的k-项集用于与候选k-项集进行匹配,若一致,则相应的候选项集支持度计数加1。Apriori算法在处理大规模数据集时,候选项集的生成和支持度计算的开销较大,算法效率较低。同时,生成的候选项集可能很大,占用大量存储空间。FP增长算法FP增长算法:通过构建一种增强的前缀树-频繁模式树对数据集进行索引。优点:避免了生成候选项集的过程。FP树:FP树是一种特殊类型的树形数据结构,用于存储一组事务数据库的压缩版本。FP树中的每个节点包含项以及该项的支持度计数。FP增长算法FP树创建:算法第一次扫描整个数据库统计每一项的出现频率并依据出现频率降序排列,基于阈值(最小支持度)删除非频繁项。对于左下角表格中的事务,设置最小支持度计数为2。TID项集1{A,B,E}2{B,E}3{A,B,D,E}4{A,B,C,E}5{B,C,D}TID项集1{B,E,A}2{B,E}3{B,E,A,D}4{B,E,A,C}5{B,C,D}FP增长算法第二次扫描数据库将每个事务按照排序后的项添加到FP树中,从空集开始,每读入一条事务,就根据事务中的项的顺序,从根节点开始,若事务中的某一项在FP树中已存在,则对应的项支持度加一;若不存在,则创建该项对应的节点。FP增长算法FP树的挖掘:从FP树中选择一个项,找出其对应的条件模式基。条件模式基:从该项出发到根节点的所有路径集合,即要挖掘的项作为叶子节点所对应的FP子树,该子树也称为条件FP树。以项D为例使用条件FP树挖掘频繁项集,从根到节点D一共有2条路径,分别是{B,E,A,D}与{B,C,D}。将除了最后一项D的其他项插入新的FP树中得到条件FP树。FP增长算法由于E、A、C的支持度计数为1小于最小支持度计数,故删除非频繁项E、A、C。频繁项有{B:2},故生成D的频繁2-项集{B:2,D:2}。05高级关联模式挖掘背景介绍01Contents关联规则挖掘的基本概念02频繁项集挖掘算法03关联规则挖掘0406推荐系统中的关联规则挖掘关联规则挖掘一旦识别出频繁项集,下一步是从这些项集中生成潜在的关联规则。关联规则形如,其中A和B是不重叠的项集。A为规则中的“条件”部分,也称为前件,代表了规则的出发条件;B是规则中的“结果”部分,代表了前件出现时,预期将会同时出现的项集,也称为后件。产生规则的步骤:选择频繁项集F。为每个频繁项集生成所有可能的非空子集A。对每个非空子集A,生成规则,令为B

。计算每条规则的置信度,即A出现的条件下B出现的概率基于置信度的剪枝置信度(confidence):在前件A发生的情况下,后件B同时发生的条件概率。它是衡量规则准确性的一个标准。基于置信度剪枝目的:减少关联规则挖掘过程中无关或误导性规则的数量,提高挖掘结果的质量。通过设置置信度阈值,只有当规则的置信度高于此阈值时,规则才被认为是强规则,值得进一步分析。从关联分析到相关分析假设在一个大型零售商店中,通过交易数据分析发现:80%的顾客都购买了牛奶。50%的顾客都购买了面包。40%的顾客同时购买了牛奶和面包。现在考虑关联规则:“购买牛奶→购买面包”。支持度为0.4,因为40%的交易中牛奶和面包一起被购买置信度为0.5(40%/80%),看起来这个关联较强尽管“购买牛奶→购买面包”的置信度较高,但这可能并不是因为购买牛奶导致了购买面包的行为,而是因为牛奶和面包都是非常普遍的购买选项。提升度提升度:衡量的是规则前件和后件同时发生的概率与这个两个项集独立发生的概率乘积的比值。引入了提升度帮助我们更加准确地评估两个项集之间是否存在超过随机机会的关联。性质:如果提升度大于1,表明A和B之间有正相关关系,一个出现另一个可能同时出现;提升度等于1,表明A和B独立,没有关联。提升度小于1,表明A和B之间有负相关关系,一个出现可能导致另一个不出现。使用提升度再次计算例子,lift(“购买牛奶”“购买面包”)=1,这意味着购买牛奶和购买面包之间实际上没有超过随机概率的关联。杠杆率杠杆率:衡量项集A和B同时出现的联合概率与假设两个项集完全独立的情况下期望联合概率之间的差性质:如果两个项集完全独立,则杠杆率为零。确信度确信度:衡量的是在规则A→B下,不发生B时A发生的频率与B自身不发生的频率之比。这个指标帮助我们理解当规则A→B

不成立时,A发生的可能性有多大。性质:如果A和B是完全独立的,即A对B的发生没有任何影响,则确信度值为1;如果A对B的发生有强烈的正影响,即B几乎总是在A发生时发生,那么Confidence(A→B)接近于1,从而使1−Confidence(A→B)接近于0,这会使确信度趋向无穷大。。05高级关联模式挖掘背景介绍01Contents关联规则挖掘的基本概念02频繁项集挖掘算法03关联规则挖掘0406推荐系统中的关联规则挖掘多层模式挖掘多层模式挖掘:通过利用数据的内在层次结构来探索和发现跨多个层次的关联规则。适用场景:这种方法特别适用于那些具有丰富分类层次的数据集,如零售产品分类和在线内容分类,如零售产品分类和在线内容分类。作用:通过这种技术,企业可以揭示不同层级之间的隐含关系,帮助制定更精确的营销策略和库存管理。多层模式挖掘一个大型在线零售商,其产品分类具有详细的层次结构,从一般类别到具体商品。顶层为最抽象层,自上而下产品变得具体,底层为具体品牌的产品。使用底层规则来探索更一般的类别层面上的关联,比如在Huawei的层次上,可能会发现用户购买HuaweiMate40的同时更有可能购买HuaweiWatch4Pro;在手机层次下,可以发现用户购买华为手机的同时更有可能购买华为的手表。多层模式挖掘模式挖掘步骤:在每个层级中提取模式。从底层开始,即最具体的层次,挖掘出关联规则,并逐步上升到更一般的层次。递减支持度被提出,通过在较低层使用递减的最小支持度,适应不同层级的数据稀疏性。非频繁项集挖掘非频繁模式:数据集中出现频率超过最小支持度阈值的项集,使用支持度阈值剪枝掉的模式。作用:非频繁模式不常出现但可能包含重要信息的模式,同样具有重要的研究价值和应用背景。应用:一些罕见疾病和症状的组合虽然出现的频率较低,但它们可以揭示不常见但临床上极其重要的症状与病症关联。商品间的负相关关系揭示了它们之间的互斥或替代关系,如60%的意大利面在市场上显示出了互斥和替代的关系。零售商来说,理解这些关系可以帮助识别竞争商品,并据此优化货架布局和促销策略。05高级关联模式挖掘背景介绍01Contents关联规则挖掘的基本概念02频繁项集挖掘算法03关联规则挖掘0406推荐系统中的关联规则挖掘推荐系统概述推荐系统中的两类角色用户项:推荐系统中的项目,如电影推荐系统中的电影。推荐流程召回阶段:候选集规模大、模型和特征简单、速度快,尽量保证用户感兴趣数据多召回。排序阶段:候选集不大,目标是保证排序的精准,一般使用复杂和模型和特征召回层召回路径i2i:根据一项物品推荐另一项物品。u2i:为一个用户推荐一项物品。U2i2i:根据用户偏爱的一个物品推荐另一个物品。U2u2i:为当前用户推荐与之相似的用户所偏爱的物品U2tag2i:指根据用户偏爱的标签推荐物品。这里的tag指的是项的标签。基于内容的召回层挖掘基于内容的召回层挖掘:依赖于项的内容特征以及用户的偏好历史来进行个性化推荐。核心:是将项描述转化为可处理的特征向量,然后利用这些特征向量来找出用户过去喜欢的项与未知项之间的相似性。常见的特征提取技术:TF-IDF(TermFrequency-InverseDocumentFrequency)LDA(LatentDirichletAllocation)TF-IDF词频(TF):一个词在文档中出现的频率,表示词在文档中出现的次数逆文档频率(IDF):一个词普遍重要性的度量,其中表示所有文档的数量,表示包含词条的文档数量。TF-IDF例题:假设电影“星球大战:帝国反击战”共有1200篇影评,其中一篇影评包含150个词语,且经过停用词过滤后,三个出现频率最高的关键词为“绝地”、“帝国”和“反击”,在这篇影评中出现次数分别为25、18、12次。这些词在所有影评中出现的次数分别为200、600、300次。计算TF词频(TF)表示某一特定词语在单个文档中出现的频率,计算公式为该词在文档中出现的次数除以文档的总词数:“绝地”的TF=25/150=0.167“帝国”的TF=18/150=0.120“反击”的TF=12/150=0.080TF-IDF计算IDF逆文档频率(IDF)的计算公式是总文档数除以包含该词的文档数的商的对数:“绝地”的IDF=log(1200/200)=log(6)≈0.778“帝国”的IDF=log(1200/600)=log(2)≈0.301“反击”的IDF=log(1200/300)=log(4)≈0.602计算TF-IDFTF-IDF值通过将TF和IDF相乘得到,用来评估一个词对于一个文档集或一个语料库中的其中一份文档的重要性:“绝地”的TF-IDF=0.167*0.778=0.130“帝国”的TF-IDF=0.120*0.301=0.036“反击”的TF-IDF=0.080*0.602=0.048基于内容的召回层挖掘算法步骤:特征提取:对每个项提取关键特征,例如对于电影,特征可能包括类型、导演、演员等。构建用户画像:分析用户的历史行为(如评分、收藏、点赞等),提取出用户偏好的特征组合,构建一个反映这些偏好的用户画像。计算相似度:利用余弦相似度、Jaccard相似度或其他相关度量计算用户画像与各项之间的相似度生成推荐:根据相似度分数,从高到低为用户推荐项基于协同过滤的召回层挖掘基于内容的召回层挖掘:通过分析用户之间或项之间的行为和偏好相似性来推荐项。核心:“群体智慧”,如果一组用户对某些项有共同的评价偏好,那么他们对其他项的评价也可能是相似的。与基于内容的召回算法的区别:内容算法侧重于分析项的固有属性,而协同过滤侧重于用户行为之间的相互关系,不直接依赖项内容。协同过滤能够在不了解项具体内容的情况下,基于用户群体的行为模式推荐项,而基于内容的推荐往往局限于用户已显示出兴趣的项目类型。基于协同过滤的召回层挖掘基于内容的召回层挖掘算法分类:用户-用户协同过滤(User-UserCF)项-项协同过滤(Item-ItemCF)模型驱动的协同过滤用户-用户协同过滤用户-用户协同过滤:根据目标用户对项的偏好找到兴趣相近的用户作为相邻用户,将相邻用户的偏好推荐给目标用户。算法步骤:用相似度度量的方法找出与目标用户兴趣相似的用户计算目标用户对相似用户偏好项的喜好程度进行推荐将用户推荐项的过程转化为用户对项进行评分的过程,若评分比较高,则把项推荐给用户,否则不推荐。用户-用户协同过滤例题:假设有一个小型电影评分系统,其中包括4位用户对4部电影的评分,目标是预测用户对他未看过的电影的评分。用户/电影电影A电影B电影C电影DAlice4?53Bob5342Carol?445Dave3435用户-用户协同过滤计算每个用户的平均评分Alice:(5+3+4)/3=4Bob:(5+3+4+2)/4=3.5Dave:(5+3+4+3)/4=3.75Carol:(4+4+5)/3=4.33计算用户间的相似度这里,使用了皮尔逊相关系数计算用户间的相似度。这一度量将帮助我们找到与目标用户兴趣最相似的用户。其中u、v为用户,i表示项,、分别表示用户u、v的评价项集,表示用户u对项i的评分,表示用户u的平均评分。用户-用户协同过滤计算用户间的相似度Alice与Bob的共同评分的电影为A、C、D,Alice的平均评分为4,Bob的平均评分3.5,相关系数为Alice与Dave的共同评分的电影为A、C、D,Dave的平均评分3.75,相关系数为Alice与Carol共同评分的电影为C、D,Carol的平均评分为4.33,相关系数为用户-用户协同过滤计算Alice对未评分电影的预测值通过其他用户对目标项的评分与Alice与其他用户的相似度对目标项进行预测,考虑到用户的评分标准不一致,有的偏好打低分有的偏好打高分,其他用户对目标项的评分与其所有评分均值作差,使用相对值进行预测。表示预测的用户u对项i的评分,其中表示用户u和用户u’的相似度。聚合Bob、Dave、Carol对电影B的相对评分获得Alice对电影B的评分。用户-用户协同过滤聚合Bob、Dave、Carol对电影B的相对评分获得Alice对电影B的评分由于预测值小于Alice对电影的平均得分,因此不为Alice推荐电影B项-项协同过滤用户-用户协同过滤:项间的相似度可以通过它们被共同喜欢的用户数量来确定。算法步骤:构建项与项的共现矩阵计算物品之间的相似度基于用户的历史记录推荐物品项-项协同过滤例题:假设有以下五位用户及其喜爱的项集合,使用相似度矩阵中的相似度得分来计算B对项x、z的预期喜好度用户喜爱的物品A{x,y,z}B{y,w}C{w,z}D{x,w,z}E{x,z}项-项协同过滤构建项与项的共现矩阵XYWZX0113Y1011W1102z3120项-项协同过滤计算物品之间的相似度采用余弦相似度进行计算,其中表示偏好项的用户数,表示同时偏好项、的用户数,则项与项的相似度为XYWZX-0.2580.2240.548Y0.258-0.2890.236W0.2240.289-0.408z0.5480.2360.408-项-项协同过滤基于用户的历史记录推荐物品

用户的历史喜好可以用一个评分矩阵表示,其中“1”表示用户喜欢某项,而“0”表示没有记录(即用户可能未评分或未表达喜好)。基于上面的数据有用户XYWZA1101B0110C0011D1011E1001项-项协同过滤基于用户的历史记录推荐物品

根据用户的历史记录为用户推荐物品的思想是与用户历史上感兴趣的项相似度高的项更可能为用户偏好项。因此可以通过如下公式计算用户对项是喜好度:计算用户B对项x的预期喜好度计算用户B对项z的预期喜好度排序层排序层的作用:在召回层筛选出的候选项集中进一步精确地评估和排序这些项。排序层的意义:提升推荐的精准度以及优化用户体验上,确保推荐内容的个性化和相关性达到最高。任务挑战:不仅需要处理来自召回阶段的数据,还需要运用更复杂的模型和更丰富的特征来实现高度个性化的推荐。特点:与召回层使用相对简单的模型和较少的特征不同,排序层通常会应用深度学习模型、复杂的机器学习算法和上千种特征。排序层学习排序(LearningtoRank,LTR):利用机器学习算法来应对现实排序挑战的技术集合。学习排序分类:单点法(Pointwise)配对法(Pairwise)列表法(Listwise)单点法核心思想:方法是通过将排序问题视作回归或多分类问题来处理,独立预测每个项与用户的相关性得分。常用方法:二元分类的Pointwise,输入为用户与项的特征,输出为用户和项是否有相关关联,存在相关关联是正样例,反之为负样例。缺点:不关注项间的相对关系,忽略了项之间的相互作用和内部依赖性,这对于改善排序结果的质量是不利的。配对法核心思想:通过将项-项对作为训练样本,专注于学习项之间的相对优先级缺点:训练数据的构建相对复杂,需要生成项-项对并标注哪一个更为相关或优先;仅考虑两个项的先后顺序而忽略了它们在整体列表中的位置,可能会影响最终的用户体验;可能会因为不同查询下的文档数量差异而导致训练不均衡。列表法核心思想:考虑了整个推荐列表的结构,尽力映射出用户可能的最佳体验。缺点:当需要对大量的项目进行排序时,复杂度和计算成本高;许多Listwise算法的性能极大依赖于能否准确地获取和标注数据,这在某些实际应用中可能是一个限制因素。基于逻辑回归的排序层挖掘实战演练:使用Pointwise中的逻辑回归进行个性化电影排序推荐。使用电影推荐时长使用的数据集Movielens-100k,该数据集包含了943位用户对1682部电影的评分信息,评分是[1,5]的整数,其中比较重要的文件包括u.data、u.genre、、u.item、u.occupation、u.useru.data--由943个用户对1682个电影的10000条评分组成。每个用户至少评分20部电影。用户和电影从1号开始连续编号,数据是随机排序的。标签分隔列表:userid|itemid|rating|timestampu.genre--类型列表--u.data数据集中的用户数、电影数以及评分数u.item--电影信息列表:movieid|movietitle|releasedate|videoreleasedate|IMDbURL|unknown|Action|Adventure|Animation|Children's|Comedy|Crime|Documentary|Drama|Fantasy|Film-Noir|Horror|Musical|Mystery|Romance|Sci-Fi|Thriller|War|Western最后19个字段是流派,1表示电影是该类型,0表示不是,电影可以同时使用几种流派。u.occupation--用户职业列表u.user--用户的信息列表:userid|age|gender|occupation|zipcode基于逻辑回归的排序层挖掘数据清洗:对数据进行前处理,对于用户信息,将评分标签转换为二元标签,用户评分大于3的电影标签设置为1,否则标签为0;由于邮编不常用于推荐系统,将邮编删除。对于电影数据,提取u.item中的流派数据生成新列genre,删除不必要的电影属性列,只保留movieid、releasedata、genre用于电影推荐data_df=pd.read_csv(data_csv,sep='\t',header=None)data_df.columns=['user_id','item_id','label','timestamp']data_df['label']=(data_df['label']>threshold).astype(int)data_df['timestamp']=mms.fit_transform(data_df['timestamp'].values.reshape(-1,1))

user_df=pd.read_csv(user_csv,sep='|',header=None)user_df.columns=['user_id','age','gender','occupation','zip_code']user_df.drop(columns='zip_code',inplace=True)基于逻辑回归的排序层挖掘item_df=pd.read_csv(item_csv,sep='|',header=None,encoding='latin-1')seq_len=item_df[range(5,24)].sum(axis=1).max()defconvert_genre(x):genre=list(np.where(x.iloc[5:].values)[0])genre.extend([0]*(seq_len-len(genre)))returngenreitem_df['genre']=item_df.apply(convert_genre,axis=1)item_df.drop(columns=[1,*range(3,24)],inplace=True)item_df.columns=['item_id','release_year','genre']fill_na=item_df['release_year'].mode()[0][-4:]item_df['release_year']=item_df['release_year'].apply(lambdax:x[-4:]ifpd.notnull(x)elsefill_na).astype(int)#mergedf=data_df.merge(user_df,on='user_id',how='left').merge(item_df,on='item_id',how='left')df=df.sort_values(by=['user_id','timestamp'],ascending=[1,1]).reset_index(drop=True)token_col=['user_id','item_id','age','gender','occupation','release_year']mappings={}#存储编码后的数字到原始数据的映射foriintoken_col:

le.fit(df[i])#使用编码前的数据进行拟合mappings[i]=dict(zip(le.transform(le.classes_),le.classes_))#创建映射字典df[i]=le.transform(df[i])#对数据进行编码

returndf,mappings基于逻辑回归的排序层挖掘定义MovieLens100K数据集类:__init__方法:初始化数据集对象。"user_id"、"item_id"、"age"、"gender"、"occupation"、"release_year"作为特征列,并将其转换为NumPy数组保存在self.df中。__len__方法:返回数据集的大小,即标签的数量。__getitem__方法:获取单个数据点,返回特征和标签对。classMovieLens_100K_Dataset(Dataset):def__init__(self,df):

token_col=["user_id","item_id","age","gender","occupation","release_year"]

self.df=df[token_col].values

self.field_dims=df[token_col].nunique().values

self.labels=df["label"].valuesdef__len__(self):"""返回数据集的大小"""returnlen(self.labels)def__getitem__(self,idx):"""获取单个数据点"""returnself.df[idx],self.labels[idx]基于逻辑回归的排序层挖掘定义回归模型类:__init__方法:使用field_dims参数初始化一个Embedding层,输出维度默认为1。这个Embedding层用于表示特征的线性部分。初始化一个偏置项bias,维度与Embedding层输出维度相同。计算特征域的偏移量offsets,用于将特征编码后的索引转换为在整个特征向量中的位置forward方法:接受输入张量x,表示样本的特征,输出概率值。classLogisticRegressionModel(Module):def__init__(self,field_dims,output_dim=1):super().__init__()

self.fc=Embedding(sum(field_dims),output_dim)

self.bias=Parameter(torch.zeros((output_dim,)))

self.offsets=np.array((0,*np.cumsum(field_dims)[:-1]),dtype=pat.long)

torch.nn.init.xavier_uniform_(self.fc.weight.data)defforward(self,x):"""模型前向传播,使用sigmoid激活函数"""x=x+x.new_tensor(self.offsets).unsqueeze(0)

linear_output=torch.sum(self.fc(x),dim=1)+self.biasreturntorch.sigmoid(linear_output).squeeze(1)基于逻辑回归的排序层挖掘训练、验证模型函数:使用train_epoch函数对模型进行训练,并使用validate_model函数在验证集上评估模型的性能。deftrain_epoch(model,data_loader,cr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论