基于弱通配符的石油生产数据频繁模式挖掘方法

文档序号:10725055阅读:229来源:国知局
基于弱通配符的石油生产数据频繁模式挖掘方法
【专利摘要】本发明公开了一种基于弱通配符的石油生产数据频繁模式挖掘方法,涉及数据挖掘领域,一种基于弱通配符的石油生产数据频繁模式挖掘方法,S1将油田日产液量时序数据转换为编码序列;S2通过对编码序列进行挖掘,得到不同类型的频繁序列模式,从各种角度对油井进行全面刻画。本发明有益效果,定义了三种频繁序列模式挖掘问题,可以从实际的油井生产数据中挖掘出不同类型的频繁模式,从不同的角度对油井进行全面的刻画;算法简单,高效,具有剪枝算法,时间复杂度低,便于实时实现;提出模式过滤技术,可以针对不同的需要,过滤得到不同类型的频繁模式,比如强模式,特殊模式,流行模式;该方法在各种时序数据中可以广泛应用。
【专利说明】
基于弱通配符的石油生产数据频繁模式挖掘方法
技术领域
[0001] 本发明涉及数据挖掘领域,尤其涉及一种基于弱通配符的石油生产数据频繁模式 挖掘方法。
【背景技术】
[0002] 时间序列是按时间次序排列的观测值集合。在工程、经济、自然科学和社会科学等 等领域中,存在大量这样的观察数据。这类数据的顺序与大小反映了数据所包含的信息,反 映了数据内部的相互联系。正是这种相互联系或相关性表征了产生这些数据的现象、过程、 系统的"动态"或"记忆"。这种相关性一旦被定量地描述出来,就可以从系统的过去值预测 其将来的值。
[0003] 时间序列分析是分析各种相依有序的离散数据集合的方法。其研究对象是一串随 时间变化而又相互关联的动态数据。由于各自的物理背景不同,这种动态数据所包含的信 息和呈现的规律也不同。处理的主要手段之一是根据数据的特征用相应的数学模型去作近 似的描述。目前比较成熟的平稳序列的时间序列模型有MA模型、AR模型和ARMA模型。
[0004] 序列模式挖掘,序列模式挖掘是数据挖掘研究的一个重要的研究领域。目前,成熟 的序列模式挖掘算法主要有三类:基于Apriori性质的候选码生成-测试的算法;基于垂直 格式的候选码生成-测试的算法;基于投影数据库的模式增长算法。近年来,序列模式挖掘 在分布式环境下的应用的研究逐渐成为热点,提出了各种算法。
[0005] 现有技术一的方案:
[0006] 根据图2的结果可知道,采用指数平滑的方法,在参数分别是0.2,0.5的情况下,平 均误差分别为0.0275,0.01183。为了比较,设计一种朴素预测法方法,也就是假设今天的产 量是X,直接预测明天的产量也将是X,用这种方法计算出来的产量的平均误差也仅仅只有 0.0069。换而言之,指数平滑预测方法并没有优于直接的朴素预测。
[0007] 传统的预测方法无法取得好的效果,原因在于石油日产液量本身的特性。从图1可 以看出,石油日产液量并没有出现很光滑的改变。在某些情况下,其变化非常剧烈。根据专 业经验,这些突然的改变多事由于人为的干预造成的。它们可以被人为是事件驱动,而非自 然改变,根据这种数据特征,需要考虑其他的预测方法。
[0008] 现有技术二的方案:
[0009] 论文"基于通配符的序列模式挖掘Apriori属性研究",修正了基于通配符的序列 模式挖掘算法的频繁度的计算。修正后,新的频繁度的定义保证了 Apriori算法的性质,使 其在各种领域中可以得到更加方便的使用。
[0010] 以前的方案中,
[0012]修正后的定义 [0013] 〇fs*(P,S)=Lff1_1
[0014] 这种修正使定义更完备,同时具备Apriori算法的性质,然而此算法仅仅考虑了通 配符,但通配符的含义不够丰富,也没有具体应用在某个领域验证其有效性。
[0015] 符号表
[0016] T:时间序列
[0017] S:编码序列
[0018] P:频繁模式 [0019] {P}:频繁模式集合 [0020] k:序列S的长度 [0021] m:模式P的长度
[0022] Σ :非空的有限集{f,e,d,c,b,a,0,A,B,C,D,E,F}
[0023] Ω:弱字母集合
[0024] 8即(?,5):?在5中匹配的个数 [0025]以?,3):?在5中的频繁度 [0026] P:频繁度的门限
[0027] t:强模式过滤门限
[0028] φ:通配符
[0029] Φ:弱通配符
[0030] N:弱通配符间隔下界
[0031] Μ:弱通配符间隔上界
[0032] g[N,M]:通配符间隔
[0033] ?0,)或者0,1〇:弱通配符间隔
[0034] sub(P, i,j):以i开始,以j结束的P的子模式
[0035] sub (S,i,j):以i开始,以j结束的S的子模式
[0036] (^8(?,3):?在3中偏移序列的个数
[0037] pop(P,S):模式P在序列集合{S}中的流行度
[0038] st(P):模式P的强度
[0039] 工二^^卜:^…山:^指示序列

【发明内容】

[0040] 本发明针对现有技术的不足,提供一种基于弱通配符的石油生产数据频繁模式挖 掘方法,以解决现有技术无法准确对产液量进行预测的问题。
[0041] 为解决以上问题,本发明采用的技术方案如下:一种基于弱通配符的石油生产数 据频繁模式挖掘方法,S1将油田日产液量时序数据转换为编码序列;S2通过对编码序列进 行挖掘,得到不同类型的频繁序列模式,从各种角度对油井进行全面刻画。
[0042] 作为优选,S1具体如下:采用编码的方法将时间序列转换为编码序列,具体的编码 方式:油田生产日产液量为一时间序列T= {ti I i = l,…,k+Ι},则利用公式fi = (ti+i-ti)/ ti,,l$i彡k+1和编码表,将时间序列转换为字母编码序列。
[0043] 作为优选,S2具体如下:
[0044] S21提出弱通配符的概念,弱通配符:Ω 为弱通配符字母集,弱通配符Φ是一个 符号,可以匹配Ω中的任何字符,弱通配间隔ω(Ν,Μ)是一个长度大于N,小于Μ的弱通配符 序列;
[0045] S22提出利用弱通配符进行石油日产液量序列频繁模式挖掘问题,输入:序列S,支 持度阈值,弱字母表集,弱通配符间隔(N,M);输出:带弱通配符的所有周期频繁模式集合;
[0046] S23利用序列模式挖掘算法PWG挖掘频繁出现的序列模式
[0047] S231:构建出长度为1的频繁模式,长度为1的频繁模式集合由{P1}表示,长度更长 的频繁模式在for循环中被挖掘,它会一直持续到找不到更长的频繁模式为止;S232:基于 长度为i-Ι的频繁模式产生长度为i的参考模式,这个长度为i的参考模式集合用表示为 {Ci}; S233:计算参考模式的支持度;S234:计算每个参考模式的频繁度,频繁度计算公式:f (卩,5) = 8卯(?,5)/〇&(?,5),其中〇&(?,5)=? 1^1,〇&(?,5)为?在5中偏移序列的个数; S235:频繁度大于门限阈值的频繁度被选择,长度为i的频繁模式用集合{Pi}; S236:所有长 度的频繁模式结合都被挖掘出来,由集合{P}所表示;连接操作,连接算法从集合{Ph}中产 生,根据模式增长算法,需要连接两个模式,假设? = ?1?^?和?'=?>'^\是两个 基于弱通配符的模式,当P'fpW,两个子串可以被连接。
[0048] 作为优选,还包括以下步骤:S3通过模式过滤,得到所需要的不同频繁序列模式, 从各种角度对油井进行全面刻画;
[0049] S31 强模式:
[0050] Σ为一个字母集,Ω^Σ是弱字符集合,认为Σ-Ω为强字符集合,强模式P = P1P2…Pm定义为
[0051] 输入:频繁模式集合{P},门限t;输出:z={pe 5: {P}|st(P)多t},给定一个频繁模式集合{P},Z是所有频繁而且强模式集合;
[0052] S32流行模式和特殊模式:
[0053] 定义:{S} = {Si,S2,…,Sn}为序列的集合,€是从Si中获得的模式集合,模式的流 行度定义如下
[0055]根据这个定义,获得油井频繁模式流行模式和特殊模式;当需要获得油井的流行 模式时,设置流行度阈值ps,任何模式pop(P)多ps被认为是流行模式,而同时,当需要获得 特殊模式,设置流行度阈值pe,当pop(PXpe,特殊模式被选择。
[0056]本发明的有益效果是:1.改进传统基于时间序列分析的石油产量预测方法。通过 数据处理和编码,将实际的石油日产液量转化为符号序列。通过挖掘频繁模式进行产量的 分析;2.使用通配符表示的频繁序列模式。通配符可以充分克服产量序列中噪声的干扰;3. 定义弱通配符表示,使通配符的含义更加丰富。仅仅当产量微弱变化的情况下,可以忽略其 影响,这就是弱通配符;4.定义了模式过滤算法,包括强模式,公共模式,特殊模式。这些利 用可以方便提取油井各类特征;5.定义了三种频繁序列模式挖掘问题,可以从实际的油井 生产数据中挖掘出不同类型的频繁模式,从不同的角度对油井进行全面的刻画;6.算法简 单,高效,具有剪枝算法,时间复杂度低,便于实时实现;7.提出模式过滤技术,可以针对不 同的需要,过滤得到不同类型的频繁模式,比如强模式,特殊模式,流行模式;8.该方法在各 种时序数据中可以广泛应用。
【附图说明】
[0057] 图1是本发明的【背景技术】现有技术1的1号油井年产液量曲线示意图;
[0058] 图2是用指数平滑方法对1号油井产液量曲线预测示意图;
[0059] 图3是有无剪枝技术时运行时间比较示意图。
【具体实施方式】
[0060] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对 本发明做进一步详细说明。
[0061] 因为石油日产液量数据的特征,产量的直接预测是不可靠的。本发明拟转换思路, 将油田日产液量时序数据转换为编码序列,然后进行频繁模式的挖掘,得到油井的生产序 列频繁模式,用于实现对油井的产液量进行刻画。
[0062] 实施例:
[0063]步骤一:将油田日产液量时序数据转换为编码序列
[0064]将一 口油井365天的产液量通过编码方式,转换成编码序列,根据数据的特征,发 现产量数据的波动而不是直接的产量更重要。所以首先提出采用编码的方法将时间序列转 换为编码序列。
[0065]具体的编码方式:
[0066] 油田生产日产液量为一时间序列T = {ti | i = 1,…,k+1},
[0067] 则利用公式1和表1,将时间序列转换为字母编码序列。
[0068] fi=(ti+i_ti)/ti,,Ki<k+l。 (1)
[0069] 根据公式(1),提出如表1所示的编码表。
[0070] 表1指数编码表
[0072]例 1:某段时间产液量为t = {1,1 · 03,1 · 07,1 · 12,1 · 17,1 · 21,1 · 26,1 · 32,1 · 44, 1 · 50,1 · 66,1 · 68},则转化后的序列S = BBCCBCCDCDA。
[0073]根据表1的编码方式,可以充分放映微弱信号的微弱的变化。小的信号编码间隔会 比较小,而大信号的编码间隔会比较大。
[0074]步骤二:从编码后的油井日产液量序列中挖掘频繁出现的序列模式
[0075] 1基于弱通配符的频繁序列模式挖掘
[0076] 提出弱通配符的概念:根据编码表1,用F和f会代表石油日产液量巨大的变化,因 此有理由认为其在对产液量的刻画中是重要的。相反,〇和A,仅仅代表微弱的改变,也可认 为是微弱的噪声干扰,在寻找频繁模式的过程中,可以忽略。根据石油日产液量序列的频繁 模式挖掘需要,提出弱通配符的概念和基于弱通配符的模式匹配。弱通配符:Ω^ξΣ为弱通 配符字母集。弱通配符Φ是一个符号,可以匹配Ω中的任何字符。弱通配间隔ω(Ν,Μ)是一个 长度大于Ν,小于Μ的弱通配符序列。
[0077] 2提出利用弱通配符进行石油日产液量序列频繁模式挖掘问题
[0078] 问题:带弱通配符的频繁序列模式挖掘
[0079] 输入:序列S,支持度阈值,弱字母表集,弱通配符间隔(Ν,Μ)
[0080] 输出:带弱通配符的所有周期频繁模式集合
[0081 ] 3利用序列模式挖掘算法PWG(patterns with weak-wildcard gaps)挖掘频繁出 现的序列模式
[0082] 3.1:构建出长度为1的频繁模式。长度为1的频繁模式集合由{P1}表示。长度更长 的频繁模式在for循环中被挖掘。它会一直持续到找不到更长的频繁模式为止。
[0083] 3.2:基于长度为i-Ι的频繁模式产生长度为i的参考模式。这个长度为i的参考模 式集合用表示为{Ci}。
[0084] 3.3:计算参考模式的支持度。
[0085] 3.4:计算每个参考模式的频繁度。
[0086]频繁度计算公式
[0087] f (P,S) =sup(P,S)/ofs(P,S)
[0088] 其中,0fs(P,S)=kWm-1
[0089] ofs(P,S)为P在S中偏移序列的个数。
[0090] 3.5:频繁度大于门限阈值的频繁度被选择。长度为i的频繁模式用集合{Pi}。
[0091] 3.6:所有长度的频繁模式结合都被挖掘出来,由集合{P}所表示。
[0092] 例:给定某10天的油井日产液量序列,经过编码后得到符号序列S = BBCCBD⑶AA, 给定支持度为〇. 1,N=0,M=1,利用算法1进行频繁序列模式挖掘。
[0093] 经过 3.1,可以得到{P1} = {A,B,C,D}。
[0094] 接下来,进行连接操作,得到长度为2的参考序列模式{C2} = {BB,BC,BD,BA,CB, CC,CD,CA,DA,DD,DB,DC}。
[0095] 对于每一个C2模式,计算其支持度。例如,P = BC,经过支持度的计算,得到=2/20 =0.1 〇
[0096] 根据剪枝操作,BC将会被选择,并入长度为2的频繁模式集合{P2}。
[0097] 最终,经过反复运算,可以得到长度为2的频繁序列模式集合{P2} = {BC,⑶,DA}。 [0098] 相似的,可以得到{P3} = {CDA}。
[0099] 继续,长度为4的频繁模式为空。
[0100] 因此,不需要再计算{P5},循环结束。
[0101] 最终得到包含所有长度P的集合{P} = {A,B,C,D,BC,CD,DA,CDA}。
[0102] 连接操作,连接算法从集合{Ρκ}中产生{CU。根据模式增长算法,需要连接两个 模式。
[0103]假设P = piP2"_pm和?'=?'1?'2'1\是两个基于弱通配符的模式。两个模式的连接 操作定义为:
[0105]其中,ε代表空串。简单而言,就是当p'FpW,两个子串可以被连接。
[0106] 本部分将介绍基于弱通配符的序列模式挖掘算法PWG(patterns with weak-wildcard gaps)。

[0110]算法3从集合{P^}中产生{Q}。根据模式增长算法,需要连接两个模式,假设P = P1P2…Pm和P ' =p ' ip'2…p'm是两个基于弱通配符的模式。两个模式的连接操作定义为:
[0112] 其中,ε代表空串。简单而言,就是当p'nM,两个子串可以被连接。
[0113] 第3行,可以连接模式P与另一个模式P'e{P2}。用这种方法,算法是完备的。证明 详细见属性1。第4到6行,过滤掉多有的空模式。根据公式2,空模式表示相关的模式无法实 现连接。第7到9行为剪枝技术。在这儿,用sub(C,2, |C| )表示C的子模式,其没有C的最后一 个字符。根据定理1知道,如果sub(C,2, |C|)是不频繁的,则C是不频繁的。这些技术可以帮 助移除一些参考模式。事实上,算法没有剪枝技术同样可以获得正确的输出。然而,这个技 术可以有效的降低算法的时间复杂度。
[0115] 算法4计算一个模式出现的次数。而整个模式的支持度计算在算法1中。在第1到3 行,当模式并不匹配S的第一个位置,则结果返回为0。第4行到第6行表示当P的长度为1时, 刚好有一个匹配。行7-15执行算法的递归运算。第8-10行保证不超出序列的边界。第11-13 行检查是否当前字符属于弱通配符。第14行是核心代码。它不断递归调用更短的序列和更 短的模式,计算支持度。
[0116] 例:5 = 8808(^^=1,]\1 = 2,〇={厶,8},?1 = 〇8(:,?2 = 8(:(:〇将 computeOccurrences(P,S)写为cr(P,S) 〇
[0117] 因为si=B,而pl=C,所以cr(Pl,S)=0.
[0118] 通过回溯算法,可以得到
[0119] cr (P2,S) = cr(BCC,BBCBCCA) = cr(CC,CBCCA)+cr(CC,BCCA)
[0120] =cr(C,CCA)+cr(C,CA)+0 = 1+1 = 2
[0121] 现在分析算法4的时间复杂度。在最坏的情况下,所有的位置都应该被检查,所以 时间复杂度为〇(Wm)。根据算法1的第6行,计算支持度sup(P,S)的支持度为0(kW m)。
[0122] 步骤三,模式过滤
[0123] 在前面的算法设计部分,可以有效的得到频繁模式。进一步通过本节的模式过滤, 可以更好的满足专家对于分析油井的需求。例如模式0000,000A0,这些模式,认为是没有兴 趣的,应该过滤掉。
[0124] 1强模式
[0125] Σ为一个字母集,:?εΣ是弱字符集合。因此,认为Σ- Ω为强字符集合。在一个频 繁模式中,太多的弱字符是不够有意义的,所以提出强模式的概念。
[0126]强模式P = pip2"_Pm定义为
[0128] 在更多石油应用场景中,更感兴趣强模式。
[0129] 问题:强模式过滤
[0130] 输入:频繁模式集合{P},门限t
[0131] 输出:Z ={pe{p} |st(P)彡t}。
[0132] 给定一个频繁模式集合{P},Z是所有频繁而且强模式集合。
[0133] 基于此概念,将过滤掉普通变化不大的模式,留下石油日产液量变化剧烈的模式。
[0134] 2流行模式和特殊模式
[0135] 假如分析多口油井的日产液量数据,流行模式是很多口油井的共有模式,而特殊 模式是某少部分油井所具有的模式,所以对模式的流行度作如下定义。
[0136] 定义:{S} = {Si,S2,…,Sn}为序列的集合。巧是从Si中获得的模式集合。所以模式 的流行度可以定义如下
[0138] 根据这个定义,可以获得油井频繁模式流行模式和特殊模式。当需要获得油井的 流行模式时,可以设置流行度阈值ps。任何模式pop(P)多ps被认为是流行模式。而同时,当 需要获得特殊模式,可以设置流行度阈值pe。当p 〇p(P)<pe,特殊模式被选择。
[0139] 实验结果
[0140] 1剪枝技术的有效性
[0141] 图3比较了有无剪枝技术时的运行时间。从图中可以看出,在k〈2100时,运行时间 并没有出现明显的增加。然而,当k>2100,运行时间出现指数的增加。这是因为太多的参考 模式被产生,所以参考模式的支持度计算随着模式的长度呈指数增长。而相反,有剪枝技 术,可以从图中看到,即使在k>10000时,时间复杂度的增正仍然是平滑的。大部分的参考信 号被剪枝去掉。所以,剪枝算法是有效率而且必要的。
[0142] 2强模式
[0143] 根据定义,得到不同油井的强模式。用强模式,第一,可以用来评估油井的状况,其 二,可以预测油井的生产数据波动。
[0144] 给定支持度= 0.1,在一个油场区域中,某01号油井的365天的强模式如表2所示:
[0145] 表2某油井石油日产量强模式

[0147] 这些强模式可以从另一个侧面反映油井的信息。不同的油井,不同的区域,强模式 是完全不同的。专家可以根据这些强模式,有效的评估油井。
[0148] 3流行模式和特殊模式
[0149] 可以从50 口油井中获得流行模式和特殊模式。设置ps = 0.15,可以得到一些流行 模式详细见表3。而设置pe = 0.2,可以得到一些特殊模式,详细见表4。
[0150] 表3 50口油井中的流行模式
[0153]表4 50口油井中的特殊模式
[0155] 这些强模式可以为找到某一类区域油井共同特征提供依据。
[0156] 相反,特殊模式可以提供每一口油井的特殊信息。它们可以被用来选择具有特殊 性质的特殊油井。也可以用来刻画不同类油井之间的相互关系。例如,4,25,23,28,6号油井 具有一些相似特性,而和其他的没有。
[0157] 以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完 全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术 性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
【主权项】
1. 一种基于弱通配符的石油生产数据频繁模式挖掘方法,其特征在于,SI将油田日产 液量时序数据转换为编码序列;S2通过对编码序列进行挖掘,得到不同类型的频繁序列模 式,从各种角度对油井进行全面刻画。2. 根据权利要求1所述的一种基于弱通配符的石油生产数据频繁模式挖掘方法,其特 征在于,S1具体如下:采用编码的方法将时间序列转换为编码序列,具体的编码方式:油田 生产日产液量为一时间序列T={ti|i = l,…,k+1},则利用公式fi=(ti+i-ti)/ti,,l《i《k +1和编码表,将时间序列转换为字母编码序列。3. 根据权利要求1或2所述的一种基于弱通配符的石油生产数据频繁模式挖掘方法,其 特征在于,S2具体如下: S21提出弱通配符的概念,弱通配符:Ω Q Σ为弱通配符字母集,弱通配符Φ是一个符号, 可W匹配Ω中的任何字符,弱通配间隔ω(Ν,Μ)是一个长度大于N,小于Μ的弱通配符序列; S22提出利用弱通配符进行石油日产液量序列频繁模式挖掘问题,输入:序列S,支持度 阔值,弱字母表集,弱通配符间隔(N,M);输出:带弱通配符的所有周期频繁模式集合; S23利用序列模式挖掘算法PWG挖掘频繁出现的序列模式 S231:构建出长度为1的频繁模式,长度为1的频繁模式集合由{P1}表示,长度更长的频 繁模式在for循环中被挖掘,它会一直持续到找不到更长的频繁模式为止;S232:基于长度 为i-1的频繁模式产生长度为i的参考模式,运个长度为i的参考模式集合用表示为{Ci}; S233:计算参考模式的支持度;S234:计算每个参考模式的频繁度,频繁度计算公式:f (P,S) =3啡。,5)/(^3。,5),其中(^3。,5)=1^^1,(^3。,5)为口在5中偏移序列的个数;5235:频 繁度大于口限阔值的频繁度被选择,长度为i的频繁模式用集合{Pi} ;S236:所有长度的频 繁模式结合都被挖掘出来,由集合{P}所表示;连接操作,连接算法从集合{Pi-i}中产生 {Cl},根据模式增长算法,需要连接两个模式,假设P = PlP2…Pm和P'=P'lP'2…P'm是两个基 于弱通配符的模式,当P'l = Pm时,两个子串可W被连接。4. 根据权利要求1所述的一种基于弱通配符的石油生产数据频繁模式挖掘方法,其特 征在于,还包括W下步骤:S3通过模式过滤,得到所需要的不同频繁序列模式,从各种角度 对油井进行全面刻画; S31强模式:Σ为一个字母集,0 C Σ是弱字符集合,认为Σ - Ω为强字符集合,强模式P = ριρ2···ρη定 义为 输入:频繁模式集合{Ρ},口限t;输出:Z={pe{p}|st ; (p)>t},给定一个频繁模式集合{P},z是所有频繁而且强模式集合; S32流行模式和特殊模式: 定义:{5} = {&,52,一,5。}为序列的集合,巧,.是从51中获得的模式集合,模式的流行度定 义如下根据运个定义,获得油井频繁模式流行模式和特殊模式;当需要获得油井的流行模式 时,设置流行度阔值PS,任何模式pop(P)>ps被认为是流行模式,而同时,当需要获得特殊 模式,设置流行度阔值pe,当pop(P)《pe,特殊模式被选择。
【文档编号】G06F17/30GK106095930SQ201610409681
【公开日】2016年11月9日
【申请日】2016年6月12日
【发明人】汪敏, 闵帆, 邓魁, 苏赋, 李志伟
【申请人】西南石油大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1