• 沒有找到結果。

Apriori 演算法之資料庫實作(使用 MS SQL Server 2000)─數位相機

4. 實驗

4.2. Apriori 演算法之資料庫實作(使用 MS SQL Server 2000)─數位相機

如圖 4-20 所示,下列資料表為存取數位相機資料用,TD 資料表 主要儲存問卷原始資料,C1、C2、C3資料表為儲存候選項目集之資料,

經過最小支持度篩選過後之高頻項目集則儲存至L1、L2、L3,AR 資 料表即作為產生關聯規則用之。

圖 4-20、數位相機資料表

在建立關聯規則之前,我們必須先做一些前置處理,首先從原始 資料表經過編碼後並產生TD 資料表,利用 TD 資料表產生選出候選

項目並存入 C1 資料表,若候選項目滿足本研究的最小支持度之條

選項 要買畫素900 萬~1100 萬的數位相機,願意花$10,000~$15,000 買數位 相機,平均3 年以上會換數位相機,購買數位相機的考量為功能,是 一位男性,想用數位相機來記錄生活」。

圖 4-22、問卷資料編碼-數位相機

本研究所使用到的預存程序一共有12 支程式,如表 4-5 所示

4-5、預存程序簡略說明(二) 9 sp_IcountAR 計算出 Icount 欄位的值

10 sp_LcountAR 計算出 Lcount 欄位的值 11 sp_RcountAR 計算出 Rcount 欄位的值

12 sp_suppconfcorrAR 計算出 Supp、Conf 與 Corr 的值 z 產生 C1

(1). sp_CreateC1 的運算步驟

如圖 4-23 所示,sp_CreateC1 程式目的在於從資料庫中篩選 出長度為 1 的候選項目,如 A1。本研究運用預存程序的 distinct 方 式 逐 筆 從 資 料 庫 找 出 未 重 複 候 選 項 目 , 做 法 如 下 : 運 用 distinct,直接將資料行 items 選取出來後,直接排除掉重複的候 選項目,把不重複的候選項目新增到候選項目中。運用此方式,

所有長度為1 的候選項目皆可加入至候選項目中。例如第一筆與 第二筆資料都有A1,因為 distinct 為排除掉重複的,所以 C1資料 表只會新增一筆A1,其程式碼如下。

圖 4-23、預存程序 sp_CreateC1-數位相機 (2). sp_CountC1 的運算步驟

如圖 4-24 所示,sp_CountC1 程式的目的在於從資料庫中篩 選出長度為 1 的候選項目出現的總筆數,如:A1 在資料庫中出現 了55 筆。本研究運用預存程序(Stored procedure)的 cursor 逐筆從 資料庫找出候選項目與 items 是否有相同,相同候選項目出現筆 數加1 筆。作法如下:運用迴圈的方式,逐筆過濾交易資料的資 料項目。若所篩選出的項目存在於候選項目中,則該候選項目的 出現筆數加1 筆。運用此方式,所有長度為 1 的候選項目皆可知 道在資料庫中出現的總筆數。例如第一筆與第二筆資料都有 A1,

因為候選項目也有 A1,所以 C1資料表新增 A1 總筆數至 2 筆,

其程式碼如下。

圖 4-24、預存程序 sp_CountC1-數位相機

z 產生 L1

(1). sp_DetermineL1 的運算步驟

如圖 4-25 所示,sp_DetermineL1 的程式的目的在於從 C1資 料表中的篩選出長度為 1 的高頻項目,如 A1。本研究運用數學 運算式找出不小於的高頻項目,做法如下:運用數學運算式找出 不小於本研究所設定的最小支持度 0.4 乘以總筆數 110 的候選項 目,把不小於最小支持度的候選項目新增到高頻項目中。運用此 方式,所有長度為1 的候選項目皆可加入至高頻項目中。例如 C1 資料表A1 在資料庫中出現了 55 筆,因為不小於最小支持度,所 以L1資料表新增一筆A1,其程式碼如下。

圖 4-25、預存程序 sp_DetermineL1-數位相機 z 產生 C2:

(1). sp_CreateC2 的運算步驟

如圖4-26 所示,sp_CreateC2 的程式的目的在於從 L1資料表 中的篩選出長度為2 的候選項目集,如 A1B1。本研究運用 select 逐筆從L1資料表找出長度為2 且符合條件的候選項目集,作法如 下:運用結合(Join)的方式,逐筆結合 L1資料表之高頻項目,且 把符合條件的候選項目集新增到L2資料表的候選項目集中。運用 此方式,所有長度為 2 的候選項目集皆可加入至候選項目集。例 如 L1資料表有 A1 跟 B1,A1 不等於 B1 且 A1 小於 B1,符合條 件所以分別存入It1 及 It2,結合成 A1B1,其程式碼如下。

圖 4-26、預存程序 sp_CreateC2-數位相機 (2). sp_CountC2 的運算步驟

如圖 4-27 所示,sp_CountC2 程式的目的在於從資料庫算出 長度為 2 的候選項目集出現的總筆數,如:A1L1 在資料庫中出現 了46 筆。本研究運用預存程序(stored procedure)的 cursor 逐筆從 資料庫找出候選項目集與 It1+ It2 是否有相同的,相同候選項目 集出現筆數加1 筆。作法如下:運用迴圈的方式,逐筆過濾資交

易資料的資料項目集。若所篩選出的項目集存在於候選項目集 中,則該候選項目集的出現筆數加 1 筆。運用此方式,所有長度 為2 的候選項目集皆可知道在資料庫中出現的總筆數。例如第一 筆與第二筆資料都有 A1L1,因為候選項目集也有 A1L1,所以 C2資料表A1L1 總筆數加至 2 筆,其程式碼如下。

圖 4-27、預存程序 sp_CountC2-數位相機 z 產生 C3:

(1). sp_CreateC3 的運算步驟

如圖4-28 所示,sp_CreateC3 的程式的目的在於從 L2資料表 中的篩選出長度為3 的候選項目集,如 E5K1L1。本研究運用 select 逐筆從L2資料表找出長度為3 且符合條件的候選項目集,做法如 下:運用結合(Join)的方式,逐筆結合 L2資料表之高頻項目集,

且把符合條件的候選項目集新增到C3資料表的候選項目集中。運 用此方式,所有長度為3 的候選項目集皆可加入至候選項目集。

例如 L2資料表有 E5K1 跟 E5L1,E5 等於 E5 且 K1 小於 L1,符 合條件所以分別存入 It1、It2 及 It3,結合成 E5K1L1,其程式碼 如下。

圖 4-28、預存程序 sp_CreateC3-數位相機 (1). sp_CountC3 的運算步驟

如圖 4-29 所示,sp_CountC3 程式的目的在於從資料庫算出 長度為3 的候選項目集出現的總筆數,如: E5K1L1 在資料庫中出 現了46 筆。本研究運用預存程序(stored procedure)的 cursor 逐筆 從資料庫找出候選項目集與It1+ It2+It3 是否有相同的,相同候選 項目集出現筆數加1 筆。作法如下:運用迴圈的方式,逐筆過濾 資交易資料的資料項目集。若所篩選出的項目集存在於候選項目 集中,則該候選項目集的出現筆數加1 筆。運用此方式,所有長 度為3 的候選項目集皆可知道在資料庫中出現的總筆數。例如第 一 筆 與 第 二 筆 資 料 都 有:E5K1L1 , 因 為 候 選 項 目 集 也 有 E5K1L1,所以 C3資料表:E5K1L1 總筆數加至 2 筆,其程式碼如 下。

圖 4-29、預存程序 sp_CountC3-數位相機 z 產生 AR:

(1). sp_CreateAR 的運算步驟

如圖4-30 所示,sp_CountAR 程式的目的在於將 L2資料表的 高頻項目集分別存入指定欄位。例如:A1L1 分別存成 A1L1、A1、

L1 以及 A1L1、L1、A1,其程式碼如下。

圖 4-30、預存程序 sp_CreateARL2-數位相機 (2). sp_ICountAR 的運算步驟

如圖 4-31 所示,sp_ICountAR 程式的目的在於將 L2資料表 的高頻項目集筆數counts 新增到 AR 的 ICount。例如:L2資料表的 A1L1 為 46 筆而 AR 的 A1L1 也為 46 筆,其程式碼如下。

圖 4-31、預存程序 sp_ICountAR-數位相機 (3). sp_LCountAR 的運算步驟

如圖 4-32 所示,sp_LCountAR 程式的目的在於將 L1資料表 的高頻項目筆數 counts 新增到 AR 的 LCount。例如:L1資料表的 A1 為 55 筆而 AR 的 A1 也為 55 筆,其程式碼如下。

圖 4-32、預存程序 sp_LCountAR-數位相機 (4). sp_RCountAR 的運算步驟

如圖 4-33 所示,sp_RCountAR 程式的目的在於將 L1資料表 的高頻項目筆數 counts 新增到 AR 的 RCount。例如:L1資料表的 L1 為 88 筆而 AR 的 L1 也為 88 筆,其程式碼如下。

圖 4-33、預存程序 sp_RCountAR-數位相機 (4). sp_SuppConfCorrAR 的運算步驟

如圖4-34 所示,sp_SuppConfCorrAR 的程式的目的在於求出 最小支持度、信心度及相關係數。本研究運用數學運算式算出最 小支持度、信心度及相關係數。例如利用求不重複值的 distinct 求 TD 裡的 TID 算出 TD 的總筆數,存入@totalcount,計算支持 度 Icount/@totalcount 存到 supp,計算信心度 Icount/Lcount 存到 conf。

圖 4-34、預存程序 sp_SuppConfCorrAR-數位相機

在探討購買數位相機的關聯規則研究中,我們運用了網頁問卷收 集中部某大學學生的數位相機購買意願,其中,關於數位相機購買意 願調查的問題,包括:(1)使用的數位相機款式(2)注重的功能(3)購買 地點(4)品牌(5)購買時的考量因素。從問卷調查資料,在支持度為 40%

的條件下,得到下列高頻項目集,如表4-6 所示。

4-6、L2關聯規則

關聯規則 支持度 信心度

(數位相機款式.單鏡反光數碼數位相機→動機.記錄生活) 0.43 0.84 (數位相機功能.畫素高低→動機.記錄生活) 0.52 0.82 (買數位相機的地點.數位相機專賣店→動機.記錄生活) 0.58 0.81 (平均多久更換數位相機.1 年或以下→動機.記錄生活) 0.43 0.82 (買數位相機的考量因素.功能→動機.記錄生活) 0.58 0.87

在信心度為80%的條件下,本研究從 L2的高頻項目集找到的關聯 規則如下:

(1). 如果買了單鏡反光數碼數位相機,則購買動機為記錄生活的支持

相關文件