




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
构建模型1时序模式目录关联规则2智能推荐3小结4就餐饮企业而言,经常会碰到这样的问题:客户在餐厅点餐时,面对菜单中大量的菜品信息,往往无法迅速找到满意的菜品,既增加了点菜的时间,也降低了客户的就餐体验。实际上,菜品的合理搭配是有规律可循的:顾客的饮食习惯、菜品的荤素和口味,有些菜品之间是相互关联的,而有些菜品之间是对立或竞争关系(负关联)。这些规律都隐藏在大量的历史菜单数据中,如果能够通过数据挖掘发现客户点餐的规则,就可以快速识别客户的口味,当他下了某个菜品的订单时推荐相关联的菜品,引导客户消费,提高顾客的就餐体验和餐饮企业的业绩水平。关联规则关联规则分析也成为购物篮分析,最早是为了发现超市销售数据库中不同的商品之间的关联关系。例如一个超市的经理想要更多地了解顾客的购物习惯,如“哪组商品可能会在一次购物中同时购买?”或者“某顾客购买了个人电脑,那该顾客三个月后购买数码相机的概率有多大?”他可能会发现如果购买了面包的顾客同时非常有可能会购买牛奶,这就导出了一条关联规则“面包=>牛奶”,其中面包称为规则的前项,而牛奶称为后项。通过对面包降低售价进行促销,而适当提高牛奶的售价,关联销售出的牛奶就有可能增加超市整体的利润。关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系并没有在数据中直接表示出来。关联规则常用关联算法如下表:常用关联规则算法算法名称算法描述Apriori关联规则最常用也是最经典的挖掘频繁项集的算法,其核心思想是通过连接产生候选项及其支持度然后通过剪枝生成频繁项集。FP-Tree针对Apriori算法的固有的多次扫面事务数据集的缺陷,提出的不产生候选频繁项集的方法。Apriori和FP-Tree都是寻找频繁项集的算法。Eclat算法Eclat算法是一种深度优先算法,采用垂直数据表示形式,在概念格理论的基础上利用基于前缀的等价关系将搜索空间划分为较小的子空间。灰色关联法分析和确定各因素之间的影响程度或是若干个子因素(子序列)对主因素(母序列)的贡献度而进行的一种分析方法。本节重点详细介绍Apriori算法。以超市销售数据为例,提取关联规则的最大困难在于当存在很多商品时,可能的商品的组合(规则的前项与后项)的数目会达到一种令人望而却步的程度。因而各种关联规则分析的算法会从不同方面入手,减小可能的搜索空间的大小,以及减小扫描数据的次数。Apriori算法是最经典的挖掘频繁项集的算法,第一次实现了在大数据集上可行的关联规则提取,其核心思想是通过连接产生候选项与其支持度然后通过剪枝生成频繁项集。Apriori算法介绍(1)关联规则的一般形式项集A、B同时发生的概率称为关联规则的支持度:项集A发生,则项集B也同时发生的概率为关联规则的置信度:Apriori算法实现1、关联规则和频繁项集(2)最小支持度和最小置信度最小支持度是用户或专家定义的衡量支持度的一个阈值,表示项目集在统计意义上的最低重要性;最小置信度是用户或专家定义的衡量置信度的一个阈值,表示关联规则的最低可靠性。同时满足最小支持度阈值和最小置信度阈值的规则称作强规则。(3)项集项集是项的集合。包含k个项的项集称为k项集,如集合{牛奶,麦片,糖}是一个3项集。项集的出现频率是所有包含项集的事务计数,又称作绝对支持度或支持度计数。如果项集I的相对支持度满足预定义的最小支持度阈值,则I是频繁项集。频繁k项集通常记作。Apriori算法实现(4)支持度计数项集A的支持度计数是事务数据集中包含项集A的事务个数。已知项集的支持度计数,则规则的支持度和置信度很容易从所有事务计数、项集A和项集的支持度计数推出:
其中
表示总事务个数,
表示计数。Apriori算法实现也就是说,一旦得到所有事务个数,A、B和的支持度计数,就可以导出对应的关联规则和,并可以检查该规则是否是强规则。基于菜品订单数据,使用Apriori算法对菜品进行关联规则分析,得到关联规则结果如表所示。Apriori算法实现
supportconfidencee---a0.31.000000e---c0.31.000000c---e---a0.31.000000a---e---c0.31.000000a---b0.50.714286c---a0.50.714286a---c0.50.714286b---a0.50.625000b---c0.50.625000b---c---a0.30.600000a---c---b0.30.600000a---b---c0.30.600000a---c---e0.30.6000002.Apriori算法:使用候选产生频繁项集Apriori算法的主要思想是找出存在于事务数据集中的最大的频繁项集,在利用得到的最大频繁项集与预先设定的最小置信度阈值生成强关联规则。(1)Apriori的性质频繁项集的所有非空子集也必须是频繁项集。根据该性质可以得出:向不是频繁项集I的项集中添加事务A,新的项集一定也不是频繁项集。Apriori算法实现Apriori算法的实现的两个过程过程一:找出所有的频繁项集。在这个过程中连接步和剪枝步互相融合,最终得到最大频繁项集。连接步连接步的目的是找到K项集。剪枝步剪枝步紧接着连接步,在产生候选项的过程中起到减小搜索空间的目的。Apriori算法实现连接步:(1)对给定的最小支持度阈值,分别对1项候选集,剔除小于该阈值的的项集得到1项频繁集;(2)下一步由自身连接产生2项候选集,保留中满足约束条件的项集得到2项频繁集,记为;(3)再下一步由与连接产生3项候选集,保留中满足约束条件的项集得到3项频繁集,记为。这样循环下去,得到最大频繁项集。Apriori算法实现剪枝步:剪枝步紧接着连接步,在产生候选项的过程中起到减小搜索空间的目的。由于是与连接产生的,根据Apriori的性质频繁项集的所有非空子集也必须是频繁项集,所以不满足该性质的项集将不会存在于,该过程就是剪枝。Apriori算法实现Apriori算法的实现的两个过程过程一:找出所有的频繁项集。过程二:由频繁项集产生强关联规则由过程一可知未超过预定的最小支持度阈值的项集已被剔除,如果剩下这些规则又满足了预定的最小置信度阈值,那么就挖掘出了强关联规则。Apriori算法实现下面将结合餐饮行业的实例来讲解Apriori关联规则算法挖掘的实现过程。数据库中部分点餐数据下表:Apriori算法案例序列时间订单号菜品id菜品名称12014/8/2110118491健康麦香包22014/8/211018693香煎葱油饼32014/8/211018705翡翠蒸香茜饺42014/8/211028842菜心粒咸骨粥52014/8/211027794养颜红枣糕62014/8/211038842金丝燕麦包72014/8/211038693三丝炒河粉……………首先将上表中的事务数据(一种特殊类型的记录数据)整理成关联规则模型所需的数据结构。从中抽取10个点餐订单作为事务数据集,设支持度为0.2(支持度计数为2),为方便起见将菜品{18491,8842,8693,7794,8705}分别简记为{a,b,c,d,e}),如:Apriori算法案例订单号菜品id菜品id118491,8693,8705a,c,e28842,7794b,d38842,8693b,c418491,8842,8693,7794a,b,c,d518491,8842a,b68842,8693b,c718491,8842a,b818491,8842,8693,8705a,b,c,e918491,8842,8693a,b,c1018491,8693a,c,e设支持度为0.2,即支持度计数为2,算法过程如下图:Apriori算法案例过程一:找最大k项频繁集Apriori算法案例算法简单扫描所有的事务,事务中的每一项都是候选1项集的集合的成员,计算每一项的支持度。比如对中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得1项频繁集;扫面所有事务,与连接得候选2项集,并计算每一项的支持度。如接下来是剪枝步,由于的每个子集(即)都是频繁集,所以没有项集从中剔除;Apriori算法案例对中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得2项频繁集;扫描所有事务,与连接得候选3项集,并计算每一项的支持度,如:
接下来是剪枝步,与连接的所有项集为:{a,b,c},{a,b,d},{a,b,e},{a,c,d},{a,c,e},{b,c,d},{b,c,e}。根据Apriori算法,频繁集的所有非空子集也必须是频繁集,因为{b,d},{b,e},{c,d}不包含在b项频繁集中,即不是频繁集,应剔除,最后的中的项集只有{a,b,c}和{a,c,e};Apriori算法案例对中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得3项频繁集;与连接得候选4项集,易得剪枝后为空集。最后得到最大3项频繁集{a,b,c}和{a,c,e}。由以上过程可知都是频繁项集,是最大频繁项集。过程二:由频繁集产生关联规则Apriori算法案例根据公式:尝试产生关联规则。Python程序输出的关联规则如下:Apriori算法案例就第一条输出结果进行解释:客户同时点菜品e和a的概率是50%,点了菜品a,再点菜品b的概率是100%。知道了这些,就可以对顾客进行智能推荐,增加销量同时满足客户需求。Rule(Support,Confidence)e->a(30%,100%)e->c(30%,100%)c,e->a(30%,100%)a,e->c(30%,100%)a->b(50%,71.4286%)c->a(50%,71.4286%)a->c(50%,71.4286%)c->b(50%,71.4286%)b->a(50%,62.5%)b->c(50%,62.5%)b,c->a(30%,60%)a,c->b(30%,60%)a,b->c(30%,60%)a,c->e(30%,60%)1时序模式目录关联规则2智能推荐3小结4就餐饮企业而言,经常会碰到这样的问题:由于餐饮行业是生产和销售同时进行的,因此销售预测对于餐饮企业十分必要。如何基于菜品历史销售数据,做好餐饮销售预测?以便减少菜品脱销现象和避免因备料不足而造成的生产延误,从而减少菜品生产等待时间,提供给客户更优质的服务,同时可以减少安全库存量,做到生产准时制,降低物流成本。
餐饮销售预测可以看作是基于时间序列的短期数据预测,预测对象为具体菜品销售量。时序模式常用按时间顺序排列的一组随机变量来表示一个随机事件的时间序列,简记为;
用或表示该随机序列的个有序观察值,称之为序列长度为n的观察值序列。本节应用时间序列分析的目的就是给定一个已被观测了的时间序列,预测该序列的未来值。时序模式常用的时间序列模型见下表:时间序列模型模型名称描述平滑法平滑法常用于趋势分析和预测,利用修匀技术,削弱短期随机波动对序列的影响,使序列平滑化。根据所用平滑技术的不同,可具体分为移动平均法和指数平滑法。趋势拟合法趋势拟合法把时间作为自变量,相应的序列观察值作为因变量,建立回归模型。根据序列的特征,可具体分为线性拟合和曲线拟合。组合模型时间序列的变化主要受到长期趋势()、季节变动()、周期变动()和不规则变动()这四个因素的影响。根据序列的特点,可以构建加法模型和乘法模型。组合模型加法模型:乘法模型:常用的时间序列模型见下表:时间序列模型模型名称描述AR模型
以前期的序列值为自变量、随机变量的取值为因变量建立线性回归模型。MA模型随机变量的取值与以前各期的序列值无关,建立与前期的随机扰动
的线性回归模型。ARMA模型
随机变量的取值不仅与以前期的序列值有关,还与前期的随机扰动有关。常用的时间序列模型见下表:时间序列模型模型名称描述ARIMA模型许多非平稳序列差分后会显示出平稳序列的性质,称这个非平稳序列为差分平稳序列。对差分平稳序列可以使用ARIMA模型进行拟合。ARCH模型ARCH模型能准确地模拟时间序列变量的波动性的变化,适用于序列具有异方差性并且异方差函数短期自相关。GARCH模型及其衍生模型GARCH模型称为广义ARCH模型,是ARCH模型的拓展。相比于ARCH模型,GARCH模型及其衍生模型更能反映实际数据中的长期记忆性、信息的非对称性等性质。本节将重点介绍AR模型、MA模型、ARMA模型和ARIMA模型。拿到一个观察值序列后,首先要对它的纯随机性和平稳性进行检验,这两个重要的检验称为序列的预处理。根据检验结果可以将序列分为不同的类型,对不同类型的序列会采取不同的分析方法。对于纯随机序列,又叫白噪声序列,就意味着序列的各项之间没有任何相关关系,序列在进行完全无序的随机波动,可以终止对该序列的分析。对于平稳非白噪声序列,它的均值和方差是常数,现已有一套非常成熟的平稳序列的建模方法。通常是建立一个线性模型来拟合该序列的发展,借此提取该序列的有用信息。ARMA模型是最常用的平稳序列拟合模型;对于非平稳序列,由于它的均值和方差不稳定,处理方法一般是将其转变为平稳序列,这样就可以应用有关平稳时间序列的分析方法,如建立ARMA模型来进行相应得研究。如果一个时间序列经差分运算后具有平稳性,成该序列为差分平稳序列,可以使用ARIMA模型进行分析。时间序列的预处理平稳性检验如果时间序列在某一常数附近波动且波动范围有限,即有常数均值和常数方差,并且相距期的序列变量之间的影响程度是一样的,则称为平稳序列。对序列的平稳性的检验有两种检验方法,一种是根据时序图和自相关图的特征做出判断的图检验,该方法操作简单、应用广泛,缺点是带有主观性;另一种是构造检验统计量进行的方法,目前最常用的方法是单位根检验。时间序列的预处理时序图检验根据平稳时间序列的均值和方差都为常数的性质,平稳序列的时序图显示该序列值始终在一个常数附近随机波动,而且波动的范围有界;如果有明显的趋势性或者周期性那它通常不是平稳序列。自相关图检验平稳序列具有短期相关性,这个性质表明对平稳序列而言通常只有近期的序列值对现时值得影响比较明显,间隔越远的过去值对现时值得影响越小。随着延迟期数的增加,平稳序列的自相关系数(延迟期)会比较快地衰减趋向于零,并在零附近随机波动,而非平稳序列的自相关系数衰减速度比较慢,这就是利用自相关图进行平稳性检验的标准。单位根检验单位根检验是指检验序列中是否存在单位根,因为存在单位根就是非平稳时间序列了。时间序列的预处理纯随机性检验如果一个序列式纯随机序列,那么它的序列值之间应该没有任何关系,即满足,这是一种理论上才会出现的理想状态,实际上纯随机序列的样本自相关系数不会绝对为零,但是很接近零,并在零附近随机波动。纯随机性检验也称白噪声检验,一般是构造检验统计量来检验序列的纯随机性,常用的检验统计量有Q统计量、LB统计量,由样本各延迟期数的自相关系数可以计算得到检验统计量,然后计算出对应的值,如果值显著大于显著性水平,则表示该序列不能拒绝纯随机的原假设,可以停止对该序列的分析。时间序列的预处理ARMA模型的全称是自回归移动平均模型,它是目前最常用的拟合平稳序列的模型。ARMA模型又可以细分为AR模型、MA模型和ARMA模型三大类。都可以看作是多元线性回归模型。下面将分别介绍AR模型、MA模型和ARMA模型三大模型。平稳时间序列分析AR模型具有如下结构的模型称为阶自回归模型,简记为:即在t时刻的随机变量的取值是前期的多元线性回归,认为主要是受过去期的序列值的影响。误差项是当期的随机干扰,为零均值白噪声序列。平稳模型的性质见下表:平稳时间序列分析统计量性质均值常数均值方差常数方差自相关系数(ACF)拖尾偏自相关系数(PACF)
阶截尾MA模型具有如下结构的模型称为阶自回归模型,简记为:即在t时刻的随机变量的取值是前期的随机扰动的多元线性函数,误差项是当期的随机干扰,为零均值白噪声序列,是序列的均值。认为主要是受过去
期的误差项的影响。平稳时间序列分析平稳时间序列分析统计量性质均值常数均值方差常数方差自相关系数(ACF)
阶截尾偏自相关系数(PACF)拖尾平稳模型的如下表所示平稳时间序列分析ARMA模型具有如下结构的模型称为自回归移动平均模型,简记为:即在t时刻的随机变量的取值是前期和前期
的多元线性函数,误差项是当期的随机干扰,为零均值白噪声序列。认为主要是受过去期的序列值和过去q期的误差项的共同影响。特别的,当时,是模型;当时,是模型。平稳的性质见下表:平稳的性质如下表所示。平稳时间序列分析统计量性质均值常数均值方差常数方差自相关系数(ACF)拖尾偏自相关系数(PACF)拖尾4. 平稳时间序列建模平稳时间序列分析某个时间序列经过预处理,被判定为平稳非白噪声序列,就可以利用ARMA模型进行建模。由AR模型、MA模型和ARMA模型的自相关系数和偏自相关系数的性质,选择出合适的模型。AR、MA和ARMA模型自相关系数和偏自相关系数的性质如下:模型自相关系数(ACF)偏自相关系数(PACF)拖尾阶截尾阶截尾拖尾
拖尾拖尾平稳时间序列分析平稳时间序列建模步骤如图所示。平稳时间序列分析平稳时间序列建模步骤:计算ACF和PACF
先计算非平稳白噪声序列的自相关系数(ACF)和偏自相关系数(PACF)
ARMA模型识别
由AR模型、MA模型和ARMA模型的自相关系数和偏自相关系数的性质,选择出合适的模型。
模型中参数的估计及检验
模型估计模型优化模型应用
非平稳时间序列分析前面介绍了对平稳时间序列的分析方法。实际上,在自然界中绝大部分序列都是非平稳的。因而对非平稳序列的分析更普遍、更重要,创造出来的分析方法也更多。对非平稳时间序列的分析方法可以分为确定性因素分解的时序分析和随机时序分析两大类。确定性因素分解的方法把所有序列的变化都归结为四个因素(长期趋势、季节变动、循环变动和随机波动)的综合影响。可以建立加法模型和乘法模型等。根据时间序列的不同特点,随机时序分析可以建立的模型有ARIMA模型、残差自回归模型、季节模型、异方差模型等。本节重点介绍ARIMA模型对非平稳时间序列进行建模。非平稳时间序列分析1.差分运算阶差分相距一期的两个序列值之间的减法运算称为1阶差分运算;步差分相距期的两个序列值之间的减法运算称为步差分运算。非平稳时间序列分析2.ARIMA模型差分运算具有强大的确定性信息提取能力,许多非平稳序列差分后会显示出平稳序列的性质,这时称这个非平稳序列为差分平稳序列。对差分平稳序列可以使用ARMA模型进行拟合。ARIMA模型的实质就是差分运算与ARMA模型的组合,掌握了ARMA模型的建模方法和步骤以后,对序列建立ARIMA模型是比较简单的。
非平稳时间序列分析差分平稳时间序列的ARIMA模型建模步骤如下:
非平稳时间序列分析下面应用以上的理论知识,对2015/1/1到2015/2/6某餐厅的销售数据进行建模。部分数据如下表:日期销量2015/1/130232015/1/230392015/1/330562015/1/431382015/1/531882015/1/632242015/1/732262015/1/830292015/1/928592015/1/102870......非平稳时间序列分析(1)检验序列的平稳性左上的时序图显示该序列具有明显的单调递增趋势,可以判断为是非平稳序列;右上的自相关图显示自相关系数长期大于零,说明序列间具有很强的长期相关性;结论:销售序列是非平稳序列非平稳时间序列分析单位根检验统计量对应的p值显著大于0.05。最终将该序列判断为非平稳序列(非平稳序列一定不是白噪声序列)。adfcValuep值1%5%10%1.8138-3.7112-2.9812-2.63010.9984非平稳时间序列分析(2)对原始序列进行一阶差分,并进行平稳性和白噪声检验对一阶差分后的序列再次做平稳性判断adfcValuep值1%5%10%-3.1561-3.6327-2.9485-2.61300.0227结果显示,一阶差分之后的序列的时序图在均值附近比较平稳的波动、自相关图有很强的短期相关性、单位根检验p值小于0.05;所以一阶差分之后的序列是平稳序列。非平稳时间序列分析对一阶差分后的序列做白噪声检验输出的p值远小于0.05,所以一阶差分之后的序列是平稳非白噪声序列。statp值11.3040.007734
非平稳时间序列分析(3)对一阶差分之后的平稳非白噪声序列拟合ARMA模型下面进行模型定阶模型定阶就是确定p和q。第一种是人为识别的方法:根据ARMA模型识别原则进行模型定阶。一阶差分后自相关图显示出1阶截尾,偏自相关图(如上)显示出拖尾性,所以可以考虑用MA(1)模型拟合1阶差分后的序列,即对原始序列建立ARIMA(0,1,1)模型。非平稳时间序列分析第二种方法:相对最优模型识别。计算ARMA(p,q)当p和q均小于等于5的所有组合的BIC信息量,取其中BIC信息量达到最小的模型阶数。计算完成BIC矩阵是:432.068472422.510082426.088911426.595507423.628276426.073601NaNNaN426.774824427.395787430.709154NaN430.317524NaNNaN436.478109非平稳时间序列分析p值为0、q值为1时,最小BIC值为:422.510082。即ARIMA模型的p、q定阶完成。可以用AR(1)模型拟合一阶差分后的序列,即对原始序列建立ARIMA(1,1,0)模型。虽然两种方法建立的模型是不一样的,但是可以检验两个模型均通过了检验。实际上对原始序列建立ARIMA(1,1,1)模型也是通过检验的。说明了模型具有非唯一性,进行模型选择优化是有必要的。非平稳时间序列分析下面对合一阶差分后的序列拟合AR(1)模型进行分析。针对模型分析,可通过生成ARIMA模型报告。以餐厅销售数据为例,对原始序列建立ARIMA(0,1,1)模型,生成模型报告,ParameterCoef.Std.Err.tconst49.95620.1392.4806ma.L1.D.销量0.6710.16484.0712
非平稳时间序列分析(4)ARIMA模型预测应用ARIMA(0,1,1)对2015/1/1到2015/2/6某餐厅的销售数据做为期5天的预测,结果如下:需要说明的是,利用模型向前预测的时期越长,预测误差将会越来越大,这是时间预测只能进行短期预测的典型特点。
2015/2/72015/2/82015/2/92015/2/102015/2/11预测结果4874.04923.94973.95023.85073.8标准误差73.1142.3187.5223.8254.50置信区间[4730.720914,5017.211762][4644.966690,5202.877481][4606.300668,5341.455000][4585.188128,5462.479036][4574.082720,5573.495940]常用Python时序模式算法Python实现时序模式的主要库是StatsModels(当然,如果Pandas能做的,就可以利用Pandas先做),算法主要是ARIMA模型,在使用该模型进行建模时,需要进行一系列判别操作,主要包含平稳性检验、白噪声检验、是否差分、AIC和BIC指标值、模型定阶,最后再做预测。与其相关的函数如下表所示。常用Python时序模式算法函数名函数功能所属工具箱acf()计算自相关系数statsmodels.tsa.stattoolsplot_acf()画自相关系数图statsmodels.graphics.tsaplotspacf()计算偏相关系数statsmodels.tsa.stattoolsplot_pacf()画偏相关系数图statsmodels.graphics.tsaplotsadfuller()对观测值序列进行单位根检验statsmodels.tsa.stattoolsdiff()对观测值序列进行差分计算Pandas对象自带的方法ARIMA()创建一个ARIMA时序模型statsmodels.tsa.arima_modelsummary()或summaty2给出一份ARIMA模型的报告ARIMA模型对象自带的方法aic/bic/hqic计算ARIMA模型的AIC/BIC/HQIC指标值ARIMA模型对象自带的变量常用Python时序模式算法函数名函数功能所属工具箱forecast()应用构建的时序模型进行预测ARIMA模型对象自带的方法acorr_ljungbox()Ljung-Box检验,检验是否为白噪声statsmodels.stats.diagnostic1.acf()功能:计算自相关系数使用格式:autocorr=acf(data,unbiased=False,nlags=40,qstat=False,fft=False,alpha=None)输入参数data为观测值序列(即为时间序列,可以是DataFrame或Series),返回参数autocorr为观测值序列自相关函数。其余为可选参数,如qstat=True时同时返回Q统计量和对应p值。常用Python时序模式算法2.plot_acf()功能:画自相关系数图使用格式:p=plot_acf(data)返回一个Matplotlib对象,可以用.show()方法显示图像。3.pacf()/plot_pacf()功能:计算偏相关系数/画偏相关系数图使用格式:使用跟acf()/plot_acf()类似,不再赘述。常用Python时序模式算法4.adfuller()功能:计对观测值序列进行单位根检验(ADFtest)使用格式:h=adffuller(Series,maxlag=None,regression='c',autolag='AIC',store=False,regresults=False)输入参数Series为一维观测值序列,返回值依次为adf、pvalue、usedlag、nobs、criticalvalues、icbest、regresults、resstore。5.diff()功能:对观测值序列进行差分计算使用格式:D.diff()D为Pandas的DataFrame或Series。常用Python时序模式算法6.arima功能:设置时序模式的建模参数,创建ARIMA时序模型。使用格式:arima=ARIMA(data,(p,1,q)).fit()data参数为输入的时间序列,p、q为对应的阶,d为差分次数。7.summary()/summary2()功能:生成已有模型的报告使用格式:arima.summary()/arima.summary2()其中arima为已经建立好的ARIMA模型,返回一份格式化的模型报告,包含模型的系数、标准误差、p值、AIC、BIC等详细指标。常用Python时序模式算法8.aic/bic/hqic功能:计算ARIMA模型的AIC、BIC、HQIC指标值使用格式:arima.aic/arima.bic/arima.hqic其中arima为已经建立好的ARIMA模型,返回值是Model时序模型得到的AIC、BIC、HQIC指标值。9.forecast()功能:用得到的时序模型进行预测使用格式:a,b,c=arima.forecast(num)输入参数num为要预测的天数,arima为已经建立好的ARIMA模型。a为返回的预测值,b为预测的误差,c为预测置信区间。常用Python时序模式算法10.acorr_ljungbox()功能:检测是否为白噪声序列使用格式:acorr_ljungbox(data,lags=1)输入参数data为时间序列数据,lags为滞后数,返回统计量和p
值。1时序模式目录关联规则2智能推荐3小结4当用户没有明确的需求时,面对数不胜数的电影,将会不知所措,不知道选择哪一部。此时,用户遇到了信息过载的问题,需要怎么样才能为用户选择提供一些参考意见呢?电影遇到的这个问题,可以通过智能推荐解决。电影智能推荐就电影企业而言,经常会碰到如下问题。常见的智能推荐算法有基于关联规则的智能推荐和基于协同过滤的智能推荐两种。其中,基于协同过滤的智能推荐可分为基于用户的协同过滤和基于物品的协同过滤。基于用户的协同过滤的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到K邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。图给出了一个例子,对于用户A,根据用户的历史偏好,这里只计算得到一个邻居-用户C,然后将用户C喜欢的物品D推荐给用户A。常见智能推荐算法基于物品的协同过滤的原理和基于用户的协同过滤类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。对于物品A,根据所有用户的历史偏好,喜欢物品A的用户都喜欢物品C,得出物品A和物品C比较相似,而用户C喜欢物品A,那么可以推断出用户C可能也喜欢物品C,如图所示。常见智能推荐算法评价一个推荐系统的方法有很多,总体可分为3个方面,即离线实验、用户调查和在线实验。由于用户调查和在线实验的要求较高,目前大多数的推荐系统研究采用的是先通过离线实验验证当前的推荐算法在离线指标上是否优于现有算法,然后通过用户调查确定当前算法的满意度不低于现有算法。这两项都通过后,最后才进行在线测试查看测试者所关注的当前算法的指标是否优于现有算法。智能推荐算法评价离线实验主要基于数据集,不需要实际的系统做支撑,因此测试成本更为低廉,流程也更为简便。离线实验的评价步骤如下。通过业务系统获取用户行为数据,生成标准数据集。将数据集进行划分,划分为训练集和测试集。在训练集上进行推荐模型的训练,在测试集上进行预测。通过离线评价指标评价模型在测试集上的预测结果。离线实验的评价指标可分为准确性指标和非准确性指标两种。智能推荐算法评价准确性指标是评价推荐系统预测的准确性的指标,是推荐系统中最重要的指标。按照推荐的结果类型适用的准确性指标也不一样。1.准确性指标智能推荐算法评价通常网站给用户进行推荐时,提供的是一个个个性化的推荐列表,也叫做TopN推荐。TopN推荐最常用的准确性指标是准确率、召回率和
值。准确率表示推荐列表中用户喜欢的物品所占的比例。单个用户u的推荐准确率定义如式所示。
在式中,表示用户u的推荐列表,表示测试集中用户u喜欢的物品。整个推荐系统的准确率定义如式所示。智能推荐算法评价(1)推荐列表在式中,n表示测试集中用户的数量,U表示测试集中的用户集合。召回率表示测试集中用户喜欢的物品出现在推荐列表中的比例。单个用户u的推荐召回率定义如式所示。整个推荐系统的召回率定义如式所示。
值(F1score)是综合了准确率(p)和召回率(R)的评价方法,F1值取值越高表明推荐算法越有效,值定义如式所示。
智能推荐算法评价评分预测为预测一个用户对推荐的物品的评分。评分预测的预测准确度通过均方根误差(RMSE)和平均绝对误差(MAE)进行评价。对于测试集T中的用户u和物品i,定义用户u对物品i的实际评分为,推荐算法的预测评分为,则RMSE的定义如式所示。
MAE使用绝对值计算,定义如式所示。智能推荐算法评价(2)评分预测除了推荐准确性指标外,还有许多其他指标能评价一个推荐算法的性能,如多样性、新颖性、惊喜度和覆盖率等。智能推荐算法评价2.非准确性指标用户的兴趣是广泛而多样的,所以推荐列表需要尽可能多的覆盖到用户的兴趣领域。多样性越高的推荐系统,用户访问时找到喜好的物品的概率就更高。推荐列表中物品两两之间的不相似性即为推荐列表的多样性,将物品i和j之间的相似度定义为,则用户u的推荐列表的多样性定义如式所示。推荐系统的整体多样性可以定义为全部用户的推荐列表多样性的平均值,如式所示。智能推荐算法评价(1)多样性当推荐系统推荐给用户的物品是他们未曾听说过的物品,那么这次推荐对于用户来说就是一次新颖的推荐。评价新颖度的一个简单的方法是使用推荐结果的平均流行度。因为推荐物品的流行度越低,物品越不热门,就越可能会让用户觉得新颖。若推荐结果中物品的平均流行度较低,那么推荐结果就可能拥有较高的新颖性。智能推荐算法评价(2)新颖性定义物品i的流行度为p(i),则用户u的推荐列表的新颖性定义如式所示。
推荐系统的整体新颖性可以定义为全部用户n的推荐列表新颖性的平均值,如式所示。
智能推荐算法评价惊喜度与新颖性的区别在于,新颖性指的是推荐给用户的物品是他们没有听说过的物品,而惊喜度是指推荐给用户的物品与用户历史记录中感兴趣的物品不相似,但是用户却又觉得满意。目前尚未有一个公认的惊喜度指标的定义方式,此处只给出一种定性的度量方式。智能推荐算法评价(3)惊喜度覆盖率用于描述一个推荐系统对于物品长尾的挖掘能力。覆盖率最常见的定义为推荐系统推荐出的物品列表占总物品集合的比例。定义用户u的推荐列表为,则推荐系统的覆盖率定义如式所示,其中n表示全部用户数。智能推荐算法评价(4)覆盖率基于用户的协同过滤基于物品的协同过滤Python智能推荐算法实现Python中智能推荐算法的实现主要介绍基于用户的协同过滤和基于物品的协同过滤两种。(1)算法过程实现基于用户的协同过滤算法第一个重要的步骤就是计算用户之间的相似度。而计算相似度,建立相关系数矩阵目前主要分为以下几种方法。皮尔逊相关系数皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在[-1,1]区间内。皮尔森相关系数等于两个变量的协方差除于两个变量的标准差,计算公式如式所示。由于皮尔逊相关系数描述的是两组数据变化移动的趋势,所以在基于用户的协同过滤系统中,经常使用。描述用户购买或评分变化的趋势,若趋势相近则皮尔逊系数趋近于1,即相似的用户。Python智能推荐算法实现1.基于用户的协同过滤基于欧几里德距离的相似度余弦相似度欧几里德距离计算相似度是所有相似度计算里面最简单、最易理解的方法。它以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到坐标系上,并计算他们彼此之间的直线距离。计算得到的欧几里德距离是一个大于0的数,为了使其更能体现用户之间的相似度,可以把它规约到(0,1]区间内,最终得到的计算公式如式所示。只要至少有一个共同评分项,就能用欧几里德距离计算相似度;如果没有共同评分项,那么欧几里德距离也就失去了作用,这也意味着这两个用户根本不相似。Python智能推荐算法实现余弦相似度余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小,如图所示。余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上,计算公式如式所示。Python智能推荐算法实现由图可以看出,距离度量衡量的是空间各点间的绝对距离,跟各个点所在的位置坐标(即个体特征维度的数值)直接相关;而余弦相似度衡量的是空间向量的夹角,更加的是体现在方向上的差异,而不是位置。如果保持X点的位置不变,Y点朝原方向远离坐标轴原点,那么这个时候余弦相似度
是保持不变的,因为夹角不变,而X、Y两点的距离显然在发生改变,这就是欧氏距离和余弦相似度的不同之处。Python智能推荐算法实现预测评分基于用户的协同过滤算法,另一个重要的步骤就是计算用户u对未评分商品的预测分值。首先根据上一步中的相似度计算,寻找用户u的邻居集,其中N表示邻居集,U表示用户集。然后,结合用户评分数据集,预测用户u对项i的评分,计算公式如式所示。其中,
表示用户u和用户u’的相似度。最后,基于对未评分商品的预测分值排序,得到推荐商品列表。Python智能推荐算法实现通过个性化的电影推荐的例子演示基于用户的协同过滤算法在Python中的实现。现在影视已经成为大众喜爱的休闲娱乐的方式之一,合理的个性化电影推荐一方面能够促进电影行业的发展,另一方面也可以让大众数量众多的电影中迅速得到自己想要的电影,从而做到两全齐美。甚至更近一步,可以明确市场走向,对后续电影的类型导向等起到重要作用。Python智能推荐算法实现(2)基于用户的个性化的电影推荐(1)算法过程根据协同过滤的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抵押协议中的争议解决条款
- 商品质量评估合同(2篇)
- 2025年统编版小学道德与法治四年级下册《这些东西哪里来》说课课件
- 定制家具采购信息保密协议
- 建筑维修材料购销合同
- 喷涂设备材料合同
- 养生培训课件
- 快捷宝运营管理案例分析
- 工厂安全知识教学
- 幼儿园教育活动计划的种类
- 预防未成年人犯罪法治教育课件
- 2024年郑州黄河文化旅游发展有限公司招聘笔试真题
- 劳务派遣方案计划书
- 【苏州工学院智能建造研究院】2025中国低空经济产业链全面解析报告
- 浙江省义乌市宾王中学教育集团2024-2025学年九年级3月作业检测道德与法治试题(原卷版+解析版)
- 2025年玉米种子的购销合同
- 2025年甘肃省兰州市政建设集团有限责任公司招聘笔试参考题库附带答案详解
- 2024-2025学年高二下学期《提高效率向时间要成果》主题班会课件
- 城市公园景观设计教学课件
- 智能宠物喂食器与饮水机市场趋势研究
- 患者卧位护理
评论
0/150
提交评论