第三章 方法與步驟
第一節 研究方法與架構
本論文的研究分成兩個階段進行:「可治療疾病的藥物組合」與「藥物與藥 物交互作用脂藥物組合」。由於「可治療疾病的藥物組合」的資料為自行收集,
需要更有效的驗證。實驗設計先對疾病藥物組合進行機器學習訓練,再使用相同 的方法對藥物交互作用組合的資料建立模型。本研究採用兩種不同生醫關係之資 料集,進行兩個階段之測驗證,當兩個階段實驗皆驗證完成即可交互驗證本研究 的方法為有成效的機器學習方法,且可回推驗證「可治療疾病的藥物組合」的資 料有效且是可以進行後續研究的主題。
圖 3.1.1 研究方法流程圖
如圖3.1.1 所示,研究方法為先將蒐集的資料透過前處理取得包含實驗中藥 物與疾病組合之句子,擷取句子中實驗需要之資訊,並整合成JSON9格式。接著 透過後處理將JSON 中的每一句轉換成機器學習的特徵資料格式,最後透過特徵
9
JSON https://zh.wikipedia.org/wiki/JSON
資料進行模型訓練。
圖3.1.2 為前處理步驟流程圖,取得原始文件後會先進行斷句,去除像是作 者名稱、日期等不符合實驗需求的句子,接著將同種類但是字串表示不同的藥物 或疾病的寫法統一,再來搜尋符合對應藥物疾病組合的句子,並取的每一句子的 詞性分析結果以及包含藥物與疾病的最小分析子樹,最後再透過原始句子、詞性 分析結果、最小分析子樹來取得轉換成特徵所需資訊並透過JSON 格式儲存。
圖 3.1.2 前處理步驟流程圖
15
圖3.1.3 為後處理步驟流程圖,將 JSON 內的每一筆資料讀取出來,並轉換 成LIBSVM 可支援的特徵。
圖 3.1.3 後處理步驟流程圖
完成後處理之後,透過 LIBSVM 訓練模型時,先將訓練資料的每一分類取 出十分之一的資料進行內部測試的測試資料,使用剩下的十分之九的資料作為內 部測試的訓練資料進行訓練,並從中調整特徵。選定設計好的特徵之後,開始進 行正式的機器學習外部訓練。
如圖3.1.4 所示,本研究的外部訓練分成兩個階段,第一階段將訓練資料使 用多個核函數進行訓練(本研究選用的核函數為 LIBSVM 所提供的四個核函數:
線性、多項式、放射和 S 型)。使用這些核函數建立的機器學習模型對訓練資料 以及測試資料皆進行測試,並將測試結果紀錄下來。這些測試結果去除無效的測 試結果(包括完全沒有進行分類的結果和與其他組測試結果完全相同的測試結果) 後,依順序回饋到測試資料與訓練資料中。使用新的訓練資料和測試資料進行第
二階段的機器學習訓練。接著重複階段一與階段二的測試,直到測試結果收斂為 止,相同核函數測試結果與前一次完全相同代表訓練已經收斂。本研究的實驗皆 在第二階段外部訓練及收斂。
圖 3.1.4 訓練模型 UML 活動圖
將前一階段實驗結果回饋特徵的目的是希望能夠透過前次實驗結果中可能 有規律性的錯誤來導正和彌補模型本身設計上的誤判。由於資料分類中,被分類 錯誤的資料本身也有一定的規律性。
以圖3.1.5 作為資料的範例,圖左為初始特徵資料,圖右為經過第一次外部 測試後將結果回饋的新資料,每筆新資料比原始資料多了一個新的特徵3。假設
17
特徵2 在模型中的影響力較大,造成資料 4 和資料 5 在分類的時候會被錯誤的分 到錯誤的類別。而資料4 和資料 5 本身又有相同的規律可循。本研究的方法則是 在這裡將這個測試結果回饋到資料中,讓第一次測試的結果配合原本資料已有但 是比較不明顯的特徵被強化。以本研究的實驗結果,最後的準確率有一定程度的 提升。
圖3.1.5 回饋資料範例