• 沒有找到結果。

本研究主要是利用漸進式資料探勘的方式建立一個應用於門診資料的資料 探勘架構,主要研究目的在於利用漸進式資料探勘的方法進行資料探勘,以減少 當資料新增時重新尋找關聯式法則所需的時間,因此在本研究的實驗設計中透過 比較 apriori、STD、FUP 及 I-STD 進行時間上的不同,除了比較四者間執行時間 不同的差別之外,本研究與某北部教學醫院合作由醫院的醫師針對探勘出的關聯 式法則,進行臨床上是否具有可行性的的判斷,因此本研究的實驗設計分為漸進 式資料探勘效率上的探討與分析及關聯式法則的相關驗證。

第一節 實驗架構

本研究實驗平台與發展工具如下:

l 個人電腦:CPU P4 1.5G Memory 512MB

l 作業系統: Win2000 advanced server l 資料庫伺服器: MS SQL Server 2000 l 開發語言 : MS VB V6.0

本研究的實驗架構分為兩大部分:

1. apriori、STD、FUP 及 I-STD 資料探勘所需時間的比較。

本研究針對 apriori、STD、FUP 及 I-STD 等四種方式,將資料透過漸進式 的方式依序將每個月的門診診斷資料加入分析的資料庫中,藉此分析每個 月進行探勘時此四種方式個別需要時間的多寡,並分析隨著資料量的增加 進行探勘所需時間其變化量為何。以了解當資料以持續新增的方式加入資 料庫時此四種方式探勘所需時間的差異。

2. 關聯式法則的探勘。

除了時間的分析外針對所探勘出的關聯式法則,本研究請醫院的醫師協助

進行臨床上的驗證,一方面可以證明所探勘的結果具有可行性,另一方面 也可以將探勘的結果提供給醫師作為診斷時的參考。

第二節 資料來源、內容

本研究與某北部教學醫院合作,利用該醫院 90 年度門診資料中關於醫師診 斷部分的資料進行資料探勘,該醫院是屬於區域教學醫院,其平均每日門診人數 約為 2500 人,包含以下門診科別

復健科、過敏免疫風濕科、神經內科、心臟內科、家醫科/腎臟、腸胃肝膽 科、新陳代謝科、胸腔內科、一般內科、一般外科、骨科、神經外科、整型重建 外科、直腸肛門外科、泌尿科、胸腔外科、腫瘤科、中醫科、皮膚科、牙科、眼 科、小兒科、婦產科、身心症門診、耳鼻喉科、家庭醫學科、更年期門診、營養 諮詢。等共計有 28 種不同科別的門診服務。

在醫院的門診診斷資料中,醫師對病人的診斷中共有 1 至 7 個欄位可供醫 生填入,而此 7 個欄位並無先後等順序問題的存在,以醫生個人主觀的判斷作為 填寫的準則。醫生在填寫其對疾病的判斷時以醫院內部的編號作為紀錄方式,因 此進行分析時也是以代號為分析對象,在關聯式法則建立後,以對照的方式找出 代號所代表的意義為何,門診診斷的資料結構格式如表 6:

表 6:門診診斷初始資料格式 門診診斷資料

欄位名稱 欄位型態 說明

病歷號碼 Int(10) 病患的病例號碼

日期 Char(6) 病患看病日期

看診順序 Char(2) 病患在同一天的看診順序 診斷順序 Char(2) 醫師診斷的代碼之順序

診斷代碼 Char(6) 醫師診斷的代碼

診斷說明 Char(20) 診斷代碼的說明 病歷號碼:每位病患第一次就診時由醫院所給予的唯一編號。

日期:該位病患至醫院門診就診的日期。

看診順序:該位病患在該日可能會不只在一個門診科別中就診,此欄位為紀錄該 病患其就診科別的順序。例如該病患在當日分別至內科及耳鼻喉科,

其在內科就診時醫師所下之診斷此欄位的值為 0,而耳鼻喉科醫師所 下之診斷則為 1,以此類推。

診斷順序:由於醫師所下之診斷可能不只一個,在本研究中醫院所提供之門診診 斷資料,醫師的診斷最多可達七個,此欄位便是紀錄醫師所下診斷的 順序。

診斷代碼:此診斷代碼為醫師對此病患目前症狀所下的診斷,此診斷代碼唯固定 的編號。

診斷說明:為該筆診斷代碼的說明,可能是英文上的術語,或是中文說明。

除了以上的資料外,還包含了如診斷醫師代碼、病患性別等基本資料,此 部份的資料與本研究目的較無直接關聯,因此再進行資料探勘時便不需考慮此部 份的資料。

第三節 資料前置處理

透過如表 6 的儲存方式,我們便可以獲得醫師對於門診病患診斷的紀錄,

由於在輸入資料的過程中可能發生錯誤, 因此在將有錯誤的資料刪除後方能進 行資料格式的轉換,以符合本研究的需要。

表 7:轉換後之門診診斷資料格式 門診診斷資料

欄位名稱 欄位型態 說明

ID Int(4) Primary key

病歷號碼 Int(10) 病患的病例號碼

日期 Char(6) 病患看病日期

診斷一 Char(6) 醫師診斷代碼

診斷二 Char(6) 醫師診斷代碼

診斷三 Char(6) 醫師診斷代碼

診斷四 Char(6) 醫師診斷代碼

診斷五 Char(6) 醫師診斷代碼

診斷六 Char(6) 醫師診斷代碼

診斷七 Char(6) 醫師診斷代碼

在表 7 中,每一筆記錄是指該病患在一天內單一門診的門診紀錄,而每名 病患在一天內可至不同門診間就診,因此在一天內可能會產生多筆門診診斷紀 錄。在本研究中,共有七個診斷代碼為分析的對象,若是所有的診斷代碼都相同 但是就診日期不同或是病患不同,便視為 2 筆不同的紀錄,便需作二次的處理,

但本研究目的在於尋找診斷間的關聯性,因此不需考慮不同病患間的因素,另一 方面,為了減少計算的處理,便將所有診斷代碼相同的紀錄做累計的處理,得到 如表 8 的資料格式。

表 8:最終門診診斷資料格式 STD_DB

欄位名稱 欄位型態 說明

TID Int(4) 診斷組合的編號

次數 Int(10) 出現的次數

診斷一 Char(6) 醫師診斷代碼

診斷二 Char(6) 醫師診斷代碼

診斷三 Char(6) 醫師診斷代碼

診斷四 Char(6) 醫師診斷代碼

診斷五 Char(6) 醫師診斷代碼

診斷六 Char(6) 醫師診斷代碼

診斷七 Char(6) 醫師診斷代碼

第四節 I-STD 之探勘過程

本章節針對 I-STD 中各步驟做一詳細的說明,以下先將名詞做一簡單的定義:

new_support:新進資料筆數乘上設定的支持度。

total_support:全部資料筆數乘上設定的支持度。

高頻項目集合:符合支持度的項目集合。

非高頻項目集: 不符合支持度的項目集合。

D:經過整理紀錄所有的診斷資料,其中包含了 ID、次數、紀錄(7 碼)等,並 依 Item_set 的次數由多到少排序。

高頻區: 存放符合支持度的項目集合。

非高頻暫存區:存放不符合支持度知項目集合。

緩衝區:拆解時存放拆解的項目集合。

拆解暫存區: 存放舊資料中經過拆解的項目集。

舊高頻區:存放舊資料中符合高支持度的項目集。

高頻子集合區:存放高頻項目子集合的診斷資料。

在 I-STD 中,大致可以分為三大階段:

1. 讀入資料庫中的單筆資料,進行比對及計數。

2. 將讀入的資料作拆解的動作,將 item_set=k 的資料拆解成 item_set=k-1 的資 料,並做比對及計數的動作。

3. 新進資料與原始資料的合併。

拆解

比對 歷史資料處理

讀入下一筆資料 Item_set是否有

改變 改變

未改變 讀入第一筆資料

圖 12:I-STD 流程概念圖 一、依序讀入資料庫中的單筆資料,進行比對及計數 在此階段中依比對的結果主要可以分為 4 種情況:

CASE1:由於此項目集合於歷史資料及新進資料中皆屬於高頻的項目集合,因此 在合併後的資料庫中仍會屬於高頻區,因此不須進行比對即可將之存放 至高頻暫存區中。

CASE4:由於此項目集合於歷史資料及新進資料中皆屬於非高頻的項目集合,因 此在合併後的資料庫中仍會屬於非高頻暫存區,因此不須進行比對即可 將之存放至非高頻暫存區中,當 item_Set 數目改變時在進行拆解計數。

CASE2:此項目集合於新資料中屬於高頻項目集合,歷史資料中則屬於非高頻項 目,因此將新資料的次數與拆解暫存區中的資料進行比對,若其總和次 數大於 total_support 則將之歸類於高頻暫存區,小於則存放至非高頻暫 存區。

CASE3:此項目集合於新資料中屬於非高頻項目集合,歷史資料中則屬於高頻項 目,因此將新資料的次數與高頻暫存區中及拆解暫存區中的資料進行比 對及次數相加,若其總和次數大於 total_support 則將之歸類於高頻暫存

不屬於

屬於

符合

不符合

符合

不符合

區,小於則存放至非高頻暫存區。

圖 13:單筆記錄比對流程 在執行的方面則可分為 4 大步驟

1. 將讀入的資料與高頻區做比對

若已存在高頻區,則將高頻區的中的資料更新,並讀入下一筆資料。

若不存在於高頻區之中,將此筆資料與非高頻暫存區做比對,若存在便更新 非高頻區資料並進入步驟二,若不存在非高頻暫存區則直接進入步驟二。

2. 該筆資料之次數與高頻區中次數最高者相加之合或是該筆次數與拆解暫存 區 中 次 數 最 高 者 相 加 之 合 大 於 total_support 則 進 入 步 驟 三 , 若 小 於 total_support 則將該筆記錄存入非高頻暫存區,讀入下一筆資料。

3. 依資料的次數是否大於 new_support 進行判斷,

大於 new_support 則與舊高頻區進行比對,若以存在於舊高頻,便將該筆資 料存入高頻區,並刪除舊高頻區及非高頻緩衝區中相同的資料,不存在高頻 區則進入步驟三。

小於 new_support 與舊高頻區進行比對,若存在於舊高頻,進行次數相加,

新進資料

是否屬於 高頻項目

高頻暫存區 (高頻子集合區)

是否大於 new_support

與舊高頻 區比對

與舊高頻 區比對

CASE1

CASE2

CASE3

CASE4

總次數大於 total_support 便存入高頻區,並刪除舊高頻區及非高頻緩衝區中 相同的資料,若小於 total_suppor 則進入步驟三,不存在於舊高頻區,則將 該筆資料存入非高頻暫存區,讀入下一筆資料。

4. 將該筆資料與拆解暫存區進行比對,若其次數和低於 total_support 則存入非 高頻暫存區,其次數何高於 total_support 則存入高頻區,並刪除非高頻緩衝 區中相同的資料,讀入下一筆資料。

交易資料D

依序讀入D 中的交易資料

與高頻區比對 高頻區

非高頻暫存區 與非高頻暫存區的資

料進行比對及加總

依次數的多寡決定是否 需與舊資料進行比對

資料比對程序 需進行比對

次數過小

不需比對 存入非高頻暫存區 判斷是否存在

高頻區 存在

不存在 高頻子集合區

存入高頻 子集合區

圖 14:讀入資料庫的單筆資料

相關文件