資料探勘——序列
資料探勘技術一般用於檢測資料中的序列或模式。本章中,我們將試圖使資料遵循一種模式,在此模式中,一個或一系列事件可以通過一致的方式預測另一個數據點。
本文描述了在資料集中查詢模式的不同方法:
- 查詢模式
- 在資料中查詢模式
- 約束條件
我們可以在很多較大的資料集中查詢模式。這涵蓋了很多區域,比如混合人口的變化、使用手機的頻率、高速公路質量衰退、年齡因素造成的事故等。不過我們能明確地感受到,有很多模式和序列正等待我們去發現。
我們可以通過使用R程式設計中的一些工具找到這些模式。大多數模式因約束條件而在一定程度上受到限制,如序列的有用時間。
1 模式
我們來回顧一下確定資料中模式的方法:
模 型 類 別 | 模型如何工作 |
---|---|
eclat | 此模型用於項集模式檢測,其中購物車最為常見 |
arules | 此模型確定資料集中的專案共現 |
apriori | 此模型學習資料集中的關聯規則 |
TraMineR | 這是一個用於挖掘序列的R功能包 |
1.1 Eclat
Eclat演算法用於頻繁項集的挖掘。這種情況下,我們尋找行為相似的模式,與之相對的是尋找不規則模式(與處理其他資料探勘的方法類似)。
Algorithm通過資料中的交集來估算同時頻繁出現事件候選項(如購物車專案)的支援度。然後通過對頻繁候選項進行測試來證實資料集中的模式。
1.用法
在R程式設計中使用Eclat就是使用arules功能包中的eclat函式。使用Eclat演算法的R程式設計遵循了此處提出的約定:
> eclat(data,
parameter = NULL,
control = NULL)
下表對eclat函式的不同引數進行了說明:
參 數 | 描 述 |
---|---|
data | 待分析的資料矩陣 |
parameter | ECParameter或列表的物件 |
control | ECControl或列表的物件 |
常見的ECParameter如下所示:
參 數 | 描 述 |
---|---|
support | 此引數界定了一個項集的最小支援度(預設值為0.1) |
minlen | 此引數包含了一個項集的最小容量(預設值為1) |
maxlen | 此引數包含了一個項集的最大容量(預設值為10) |
target | 此引數界定了待挖掘關聯項集的型別: ● 頻繁項集 ● 最頻繁項集 ● 頻繁閉項集 |
ECControl常見值如下所示:
參 數 | 描 述 |
---|---|
sort | 此引數為下列數值之一: ● 1代表升序 ● -1代表降序 ● 0代表未分類 ● 2代表升序 ● -2代表事務容量和的降序 |
verbose | 此引數顯示進度資訊 |
呼叫eclat函式返回資料中出現的頻繁項集。
Eclat的實施包括成年人資料集。成年人資料集包括人口統計局資料中約50000行的資料。
2.使用eclat找到成年人行為的相似點
使用下列程式碼找到成年人行為的相似點:
> library("arules")
> data("Adult")
> dim(Adult)
[1] 48842 115
> summary(Adult)
transactions as itemMatrix in sparse format with
48842 rows (elements/itemsets/transactions) and
115 columns (items) and a density of 0.1089939
most frequent items:
capital-loss=None capital-gain=None
46560 44807
native-country=United-States race=White
43832 41762
workclass=Private (Other)
33906 401333
element (itemset/transaction) length distribution:
sizes
9 10 11 12 13
19 971 2067 15623 30162
Min. 1st Qu. Median Mean 3rd Qu. Max
9.00 100 13.00 153 13.00 13.00
includes extended item information - examples:
labels variables levels
1 age=Young age Young
2 age=Middle-aged age Middle-aged
3 age=Senior age Senior
includes extended transaction information - examples:
transactionID
1 1
2 2
3 3
檢查最終結果時,我們會注意到以下細節:
- 摘要共48842行,115列。
- 已列出常見專案:白種人。
- 有很多描述符,如age=Young。
3.查詢資料集中的頻繁專案
處理資料集時,通過下列程式碼挖掘出現的頻繁項集:
> data("Adult")
> itemsets <- eclat(Adult)
parameter specification:
tidLists support minlenmaxlen target ext
FALSE 0.1 1 10 frequent itemsets FALSE
algorithmic control:
sparse sort verbose
7 -2 TRUE
eclat - find frequent item sets with the eclat algorithm
version 6 (2004.08.16) (c) 2002-2004 Christian Borgelt
createitemset ...
set transactions ...[115 item(s), 48842 transaction(s)] done [0.03s].
sorting and recoding items ... [31 item(s)] done [0.00s].
creating bit matrix ... [31 row(s), 48842 column(s)] done [0.02s].
writing ... [2616 set(s)] done [0.00s].
Creating S4 object ... done [0.00s].
預設值已發現2616個頻繁集合。如果我們尋找前五個集合,將會看到下列輸出資料:
> itemsets.sorted <- sort(itemsets)
> itemsets.sorted[1:5]
items support
1 {capital-loss=None} 0.9532779
2 {capital-gain=None} 0.9173867
3 {native-country=United-States} 0.8974243
4 {capital-gain=None,
capital-loss=None} 0.8706646
5 {race=White} 0.8550428
以下是對之前輸出資料的研究所得:
- 普查資料中的大多數人未要求資本損失或資本利得(這種財政稅收事件並非正常狀態)。
- 大多數人來自美國。
- 大多數是白種人。
4.集中於最高頻率的示例
為了進一步證實資料,我們可以將範圍縮減至資料集中出現的最高頻率(可以通過調節minlen引數直至處理完一項集合來實現操作):
> itemsets <- eclat(Adult, parameter=list(minlen=9))
> inspect(itemsets)
items support
1 {age=Middle-aged,
workclass=Private,
marital-status=Married-civ-spouse,
relationship=Husband,
race=White,
sex=Male,
capital-gain=None,
capital-loss=None,
native-country=United-States} 0.1056673
按照預期,由一位美國本土且擁有工作的已婚男士填寫普查資料表格。
1.2 arulesNBMiner
在R中,arulesNBMiner是一個功能包,用於尋找一個集合中兩個或兩個以上專案的共現。底層模型,即負二項式模型,允許高度偏態次數分配,否則會很難確定最小項集容量。我們在正被挖掘的較大資料集中尋找頻繁資料集。當確定使用arulesNBMiner時,您應該看到一些跡象:專案集頻率正出現在資料子集合中。
1.用法
將arulesNBMiner作為功能包進行操作,並且必須將此功能包安裝於您的R程式設計環境中。可以通過使用任意資料集來學習如何使用模型/函式中包含的工具,如下所示:
> results <-NBMiner(data, parameter, control = NULL)
下表對NBMiner函式的不同引數進行了說明:
參 數 | 描 述 |
---|---|
data | 待分析的資料矩陣 |
parameter | 引數列表(自動轉換為NBMinerParameters的物件) |
control | 使用的控制列表(自動轉換為NBMinerControl的物件),目前僅verbose和除錯邏輯可用 |
NBMinerParameters是用於呼叫NBMiner的引數塊,其架構如下所示:
NBMinerParameters(data, trim = 0.01, pi = 0.99,
theta = 0.5, minlen = 1, maxlen = 5, rules = FALSE,
plot = FALSE, verbose = FALSE, getdata = FALSE)
NBMinerParameters的數值如下所示:
參 數 | 描 述 |
---|---|
data | 事務 |
trim | 從資料頻率分佈尾數修剪的分數 |
pi | 精度閾值π |
theta | 剪枝引數θ |
續表
參 數 | 描 述 |
---|---|
minlen | 項集中所發現專案的最小數(預設值為1) |
maxlen | 項集中所發現專案的最大數(預設值為5) |
rules | 包含了布林值,用於確定是否挖掘NB精確規則而非NB頻繁項集 |
plot | 包含了布林值,用於確定是否為模型繪圖 |
verbose | verbose輸出引數,用於估算程式 |
getdata | 用於獲取研究及估算的計數 |
功能包中的Agrawal資料可以直接使用。注意:Agrawal資料是為集中事務通過特別合成而生成的。程式碼如下所示:
> data(Agrawal)
> summary(Agrawal.db)
transactions as itemMatrix in sparse format with
20000 rows (elements/itemsets/transactions) and
1000 columns (items) and a density of 0.00997795
most frequent items:
item540 item155 item803 item741 item399 (Other)
1848 1477 1332 1295 1264 192343
element (itemset/transaction) length distribution:
sizes
1 2 3 4 5 6 7 8 9 10 11 12 13
15 88 204 413 737 1233 1802 2217 2452 2444 2304 1858 1492
14 15 16 17 18 19 20 21 22 23 24 25
1072 706 431 233 138 83 46 19 10 1 1 1
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 8.000 10.000 9.978 1000 25.000
includes extended item information - examples:
labels
1 item1
2 item2
3 item3
includes extended transaction information - examples:
transactionID
1 trans1
2 trans2
3 trans3
> summary(Agrawal.pat)
set of 2000 itemsets
most frequent items:
item399 item475 item756 item594 item293 (Other)
29 29 29 28 26 3960
element (itemset/transaction) length distribution:sizes
1 2 3 4 5 6
702 733 385 134 34 12
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 1.00 00 05 3.00 6.00
summary of quality measures:
pWeightspCorrupts
Min.:100e-08 Min. :0.0000
1st Qu.:1.426e-04 1st Qu. :0.2885
Median :3.431e-04 Median :0.5129
Mean :5.000e-04 Mean :0.5061
3rd Qu.:6.861e-04 3rd Qu. :0.7232
Max. :3.898e-03 Max. :1.0000
includes transaction ID lists: FALSE
以下是對之前輸出資料的研究所得:
- 共20000行,1000列。
- 所有縱列都用專案399、專案475等命名。
- 2000個子集在少數例子中具有偏態(如容量1有702、容量2有733等)。
2.為頻繁集挖掘Agrawal資料
如果以Agrawal資料為例,可以得到下列輸出資料:
> mynbparameters <- NBMinerParameters(Agrawal.db)
> mynbminer <- NBMiner(Agrawal.db, parameter = mynbparameters)
> summary(mynbminer)
set of 3332 itemsets
most frequent items:
item540 item615 item258 item594 item293 (Other)
69 57 55 50 46 6813
element (itemset/transaction) length distribution:sizes
1 2 3 4 5
1000 1287 725 259 61
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 1.000 000 128 3.000 5.000
summary of quality measures:
precision
Min.:0.9901
1st Qu. :1.0000
Median :1.0000
Mean :0.9997
3rd Qu. :1.0000
Max. :1.0000
以下是對之前輸出資料的研究所得:
- 專案近乎均勻分佈。
- 項集長度1或2有較大偏斜。
1.3 Apriori
Apriori是可以幫助瞭解關聯規則的分類演算法。與事務的實施方式相對。這種演算法嘗試找到資料集中常見的子集合,必須滿足最小閾值以便核實關聯。
Apriori的支援度和置信度概念十分有趣。Apriori方法會從您的資料集中返回有趣的關聯,如當出現Y時,會返回X。支援度是包含X和Y的事務的百分比。置信度是同時包含X和Y的事務的百分比。支援度的預設值為10,置信度的預設值為80。
1.用法
apriori方法的使用規則如下所示:
apriori(data, parameter = NULL, appearance = NULL, control = NULL)
下表對apriori函式的不同引數進行了說明:
參 數 | 描 述 |
---|---|
data | 這是所需的資料集 |
parameter | 這是用於控制處理方式的引數列表。支援度的預設值為0.1,置信度預設值為0.8,maxlen預設值為10 |
appearance | 控制了所用的資料值 |
control | 控制了演算法,特別是分類的效能 |
2.評估購物籃中的關聯
我們正尋找食品超市中典型購物籃內購買的專案之間的關聯。為此,我們將按下列步驟進行操作。
(1)下載下列arules功能包:
> install.packages("arules")
> library(arules)
(2)下載事務,即比利時雜貨店資料:
> tr <- read.transactions("http://fimi.ua.ac.be/data/retail.dat",
format="basket")
(3)大概瞭解資料:
>summary(tr)
transactions as itemMatrix in sparse format with
88162 rows (elements/itemsets/transactions) and
16470 colunsis (items) and a density of 0.0006257289
most frequent items:
39 48 38 32 41 (Other)
50675 42135 15596 15167 14945 770058
element (itemset/transaction) length distribution:
sizes
1 2 3 4 5 6 7 8 9 10 11 12 13
3016 5516 6919 7210 6814 6163 5746 5143 4660 4086 3751 3285 2866
14 15 16 17 18 19 20 21 22 23 24 25 26
2620 2310 2115 1874 1645 1469 1290 1205 981 887 819 684 586
27 28 29 30 31 32 33 34 35 36 37 38 39
582 472 480 355 310 303 272 234 194 136 153 123 115
40 41 42 43 44 45 46 47 48 49 50 51 52
112 76 66 71 60 50 44 37 37 33 22 24 21
53 54 55 56 57 58 59 60 61 62 63 64 65
21 10 11 10 9 11 4 9 7 4 5 2 2
66 67 68 71 73 74 76
5 3 3 1 1 1 1
Min. 1st Qu. Median Mean 3rd QU. Max.
1.00 4.00 8.00 10.31 14.00 76.00
includes extended item information - examples:
labels
1 0
2 1
3 10
以下是對之前輸出資料的研究所得:
- 共88162個購物籃,對應16470個專案。
- 成對專案很受歡迎(專案39有50675個)。
(4)一起看一下最頻繁的專案:
> itemFrequencyPlot(tr, support=0.1)
我們可以再次看到少數頻率比平常頻率更高的專案。
(5)現在,為合適的關聯構建一些規則:
> rules <- apriori(tr, parameter=list(supp=0.5,conf=0.5))
parameter specification:
confidenceminvalsmaxaremavaloriginalSupport support minlen
0.5 0.1 1 none FALSE TRUE 0.5 1
maxlen target ext
10 rules FALSE
algorithmic control:
filter tree heap memopt load sort verbose
0.1 TRUE TRUE FALSE TRUE 2 TRUE
apriori - find association rules with the apriori algorithm
version 4.21 (2004.05.09) (c) 1996-2004 Christian Borgelt
set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[16470 item(s), 88162 transaction(s)] done
[0.13s].
sorting and recoding items ... [1 item(s)] done [0.01s].
creating transaction tree ... done [0.02s].
checking subsets of size 1 done [0.00s].
writing ... [1 rule(s)] done [0.00s].
creating S4 object ... done [0.01s].
(6)然後用一條規則作為結束。規則摘要如下:
> summary(rules)
set of 1 rules
rule length distribution (lhs + rhs):sizes
1
1
Min. 1st Qu. Median Mean 3rd Qu. Max.
1 1 1 1 1 1
summary of quality measures:
support confidence lift
Min.:0.5748 Min. : 0.5748 Min. :1
1st Qu. :0.5748 1st Qu. :0.5748 1st Qu. :1
Median :0.5748 Median :0.5748 Median :1
Mean :0.5748 Mean :0.5748 Mean :1
3rd Qu. :0.5748 3rd Qu.:0.5748 3rd Qu. :l
Max. :0.5748 Max. :0.5748 Max. :1
mining info:
datantransactions support confidence
tr 88162 0.5 0.5
規則的支援度有力,置信度較低。
(7)具體規則:
>inspect(rules)
lhsrhs support confidence lift
1{} => {39} 0.5747941 0.5747941 1
正如我們猜想的那樣,大多數人將專案39放入購物籃。
(8)我們可以尋找更多與規則相關的資訊,以便全面瞭解其產生的影響。
>interestMeasure(rules, c("support", "chiSquare", "confidence",
"conviction", "cosine", "leverage", "lift", "oddsRatio"), tr)
sapply(method, FUN = function(m) interestMeasure(x, m,
transactions, reuse, ...))
support 0.5747941
chiSquareNaN
confidence 0.5747941
conviction 1.0000000
cosine 0.7581518
leverage 0.0000000
lift 1.0000000
oddsRatioNaN
一條派生規則將這些措施的置信度展現得非常全面。
1.4 用TraMineR確定序列
TraMineR功能包用於挖掘序列,並將其視覺化,其思想是發現序列。可以將序列分佈、序列頻率及湍流等繪圖的圖解裝置構建到功能包中。此外,還有一些自然出現的專案,其中的資料有重複的序列,如在一些社會科學場地,資料會自然地迴圈專案。
通過此檔案,我將帶您大概瞭解TraMineR,以便生成一系列用於發現序列的工具。在挖掘操作中選擇何種工具取決於您自己。
您可以同時使用TraMineR功能包及一對內建資料集:
數 據 集 | 描 述 |
---|---|
actcal | 此資料集包含了2000年以來每月活動單個的狀態符號 |
biofam | 此資料集包含了15歲至30歲期間單個的家庭生活狀態 |
mvad | 此資料集包含了每月活動單個的狀態資料 |
1.用法
seqdef函式用於確定資料中出現的序列:
seqdef(data, var=NULL, informat="STS", stsep=NULL,
alphabet=NULL, states=NULL, id=NULL, weights=NULL,
start=1, left=NA, right="DEL", gaps=NA,
missing=NA, void="%", nr="*", cnames=NULL,
xtstep=1, cpal=NULL, missing.color="darkgrey",
labels=NULL, ...)
下表對seqdef函式的不同引數進行了說明:
參 數 | 描 述 |
---|---|
data | 矩陣 |
var | 會有一個縱列列表,其中包含序列或代表所有縱列都存在的“NULL” |
informat | 包含了原始資料的格式,可以是下列格式中的任意一種: STS SPS SPELL |
stsep | 分隔符 |
alphabet | 所有可能狀態的列表 |
states | 包含了短時狀態的標記 |
2.確定訓練和職業中的序列
在這一示例中,我們將看到人們生活中從訓練到工作的程序中時間的序列。我們期望看到從失業未經訓練的狀態至經過訓練並最終成為全職員工的程序。
TraMineR功能包中的一些函式有助於序列分析。我們使用seqdef來建立資料物件,以便其他函式也可以使用。可以用其他方法設定或保留引數,如下所示:
seqdef(data, var=NULL, informat="STS", stsep=NULL,
alphabet=NULL, states=NULL, id=NULL, weights=NULL, start=1,
left=NA, right="DEL", gaps=NA, missing=NA, void="%", nr="*",
cnames=NULL, xtstep=1, cpal=NULL, missing.color="darkgrey",
labels=NULL, ...)
大多數引數可以在預設值下使用。
如您所見,seq資料物件是plot函式的第一個引數。您可以用實際想用的plot函式(如下面編碼中所用的seqiplot)代替XXX。
seqXXXplot(seqdata, group=NULL, type="i", title=NULL,
cpal=NULL, missing.color=NULL,
ylab=NULL, yaxis=TRUE, axes="all", xtlab=NULL, cex.plot=1,
withlegend="auto", ltext=NULL, cex.legend=1,
use.layout=(!is.null(group) | withlegend!=FALSE),
legend.prop=NA, rows=NA, cols=NA, ...)
多數引數是您在plot中所需的標準影象的強化形式,如ylab是y軸的標記。
首先,我們必須用下列編碼將TraMineR載入入您的環境中。
> install.packages("TraMineR")
> library ("TraMineR")
我們將使用TraMineR功能包中內建的mvad資料集。mvad資料集追蹤了712個個體在20世紀90年代自訓練至工作的程序。我們可以按下列形式使用mvad資料集。
> data(mvad)
資料摘要如下所示:
> summary(mvad)
id weight male catholic Belfast
Min.: 1.0 Min.:0.1300 no :342 no :368 no :624
1st Qu. :178.8 1st Qu. :0.4500 yes:370 yes:344 yes: 88
Median :356.5 Median :0.6900
Mean :356.5 Mean :0.9994
3rd Qu. :534.2 3rd Qu. :1.0700
Max. :710 Max. :4.4600
N.EasternSouthern S.Eastern Western Grammar funemp
no :503 no :497 no :629 no :595 no :583 no :595
yes:209 yes:215 yes: 83 yes:117 yes:129 yes:117
gcse5eqfmprlivboth Jul.93
no :452 no :537 no :261 school :135
yes:260 yes:175 yes:451 FE : 97
employment :173
training :122
joblessness:185
HE : 0
我們可以檢視標準識別符號來了解體重、性別、宗教等資訊。
擷取序列資料(我們正通過86使用17列,因為這適用於人們在資料調查不同點的狀態),並將資料的這部分應用於序列確定函式,如下所示:
> myseq <- seqdef(mvad, 17:86)
[>] 6 distinct states appear in the data:
1 = employment
2 = FE
3 = HE
4 = joblessness
5 = school
6 = training
[>] state coding:
[alphabet] [label] [long label]
1 employmentemploymentemployment
2 FEFEFE
3 HEHEHE
4 joblessnessjoblessnessjoblessness
5 schoolschoolschool
6 trainingtrainingtraining
[>] 712 sequences in the data set
[>] min/max sequence length: 70/70
這樣看來是正確的,我們可以參照相關狀態(失業、上學、訓練及工作)來獲取所需的行序列資料。
我們可以使用一些內建圖表來將已確定的序列視覺化。序列如下所示。
- seqiplot:指數圖表。
- seqfplot:頻率圖表。
- seqdplot:分佈圖表。
以指數圖表為例:
> seqiplot(myseq)
通過參照個人不同狀態間界定的轉換期,您會發現連續幾個月都有訓練。您應進行核實,以便資料顯示的資訊與您對序列資料的理解相一致。
現在,以頻率圖表為例:
> seqfplot(myseq)
現在我們來看序列在不同時間的頻率。多次觀看後我們會看到同一序列的人群集,如經過一段時間的訓練後會有工作。
現在,以分佈圖表為例:
> seqdplot(myseq)
我們來看看序列狀態在不同時期的分佈情況。通常情況下,人們在上學或訓練後開始工作。明白了吧!
通過以下指令我們可以看到序列的熵:
> seqHtplot(myseq)
熵在不同時期的變化特點:明顯降低後會出現細微的上升。這與不同人群會在最初做出不同選擇的情況一致(很多狀態),如上學或訓練,然後進行工作,成為勞動力(一種狀態)。
有一個有趣的想法為資料湍流。湍流傳達出一個資訊,即從資料中可見的某個特定事例可以推匯出多少不同的後續序列。我們可以用seqST函式將湍流視覺化。seqST函式將序列資料作為引數,並返還湍流資料。讓我們繼續以示例進行說明:
> myturbulence <- seqSt(myseq)
> hist(myturbulence)
我們可以看到帶有長尾數的近乎標準化分佈。大多數狀態分為少量後續狀態以及少數狀態或多或少的異常值。
1.5 序列相似點
TraMineR功能包也可以確定序列的度量,如不同序列間的相異點。
- 最長公共字首(LCP):我們可以通過比較相同的最長序列字首來確定相似點。
- 最長公共序列(LCS):我們也可以通過檢視兩個序列之間的相同部分,根據其內部的最長序列來確定相似點。
- 最佳匹配(OM)距離:指生成一個不同序列的最佳編輯距離,在此距離下,插入及刪除的成本最小。
使用TraMineR中的seqdist函式可以實現所有這些功能。
1.序列度量
我們可以用seqdist計算LCP。
2.用法
seqdist函式使用規則如下:
seqdist(seqdata, method, refseq=NULL, norm=FALSE,
indel=1, sm=NA, with.missing=FALSE, full.matrix=TRUE)
下表對seqdist函式的不同引數進行了說明:
參 數 | 描 述 |
---|---|
seqdata | 這是狀態序列(用seqdef界定) |
method | 包含了待用的LCP方法 |
refseq | 這是可選參考序列 |
norm | 將距離標準化 |
indel | 僅用於OM |
sm | 這是替代矩陣(忽略LCP) |
with.missing | 如果出現缺失間隙,數值為“TRUE” |
full.matrix | 如果數值為“TRUE”,返回全矩陣 |
3.示例
seqdist函式用法示例如下:
(1)使用被構建到功能包的famform序列:
> data(famform)
(2)界定可用的序列物件:
> seq <- seqdef(famform)
[>] found missing values ('NA') in sequence data
[>] preparing 5 sequences
[>] coding void elements with '%' and missing values with '*'
[>] 5 distinct states appear in the data:
1 = M
2 = MC
3 = S
4 = SC
5 = U
[>] state coding:
[alphabet] [label] [long label]
1 MMM
2 MCMCMC
3 SSS
4 SCSCSC
5 UUU
[>] 5 sequences in the data set
[>] min/max sequence length: 2/5
> seq
Sequence
[1] S-U
[2] S-U-M
[3] S-U-M-MC
[4] S-U-M-MC-SC
[5] U-M-MC
(3)確定使用序列3和序列4的LCP:
> seqLLCP(seq[3,],seq[4,])
[1] 4
我們可以得到四個前置匹配(S-U-M-MC與S-U-M-MC-SC相比)。
(4)我們可以直接計算LCS度量:
> seqLLCS(seq[1,],seq[2,])
[1] 2
我們可以在2中找到常用序列。
(5)也可以直接確定OMD:
[>] cost <- seqsubm(seq, method-"CONSTANT". Cval=2)
[>] creating 5x5 substitution-cost matrix using 2 as constant
value
> cost
M-> MC-> S-> SC-> U->
M-> 0 2 2 2 2
MC-> 2 0 2 2 2
S-> 2 2 0 2 2
SC-> 2 2 2 0 2
U-> 2 2 2 2 0
OMD僅為2(僅用較小序列來詮釋概念)。
2 問題
實際問題
- 怎樣不將白種人計入eclat結果內?
- 描述序列圖表中出現的不同轉換期。
- 在TraMineRmvad資料摘要中,地區響