高楚淮
(河北北方學院附屬第一醫院,河北 張家口 075000)
隨著藥品生產供應市場的發展,建立安全完備的藥品研制、生產及流通體系勢在必行。當前我國的醫藥市場主體依然呈現出“多、散、小”的格局,且藥品的基礎資料多為非結構化數據,故仍存在信息統計與查詢困難的問題。而如何運用大數據平臺進行藥品信息的分析,并實現準確的分類及預測,對藥品流通的所有參與者而言均具有重要意義。對于監管者,其可建立行之有效的安全風險防范體系;而對于醫療機構,則能優化供應鏈管理水平,進而逐步實現運行模式的優化[1-4]。
聚類分析(Cluster Analysis)是數據挖掘領域的常用算法,近年來基于劃分、層次與密度分析等思路,該算法得到了進一步的發展[5-11]。其中,模糊聚類(Fuzzy C-Means,FCM)算法是一種基于模糊數學理論的機器學習(Machine Learning,ML)算法。與其他聚類算法不同的是,其引入了隸屬度函數,增添了樣本類別的非定性描述,使得物體與客觀世界建立了更為契合的映射關系。此外,該方法無需訓練樣本,是一種無監督的聚類方法,并可自動提取藥品信息中的特征,進而實現樣本的自主分類。文中在對常用的、基于目標函數的模糊聚類分析算法進行討論的基礎上,結合醫藥數據信息分析的應用場景對該算法加以改進。仿真結果表明,改進后的算法在對藥品數據進行聚類預測時,關鍵性指標有了顯著改善。
基于目標函數的模糊C 均值聚類(FCM)算法是模糊集理論中常用的數據分析方法[12-14],其結構簡單且計算復雜度較低,并可對樣本數據進行自動分類。FCM 算法的基本流程如圖1 所示。

圖1 傳統FCM算法流程
傳統的FCM 算法雖應用廣泛,但其在對藥品數據資源進行分析時,對初始值較為敏感,導致收斂速度較慢,且在迭代過程中易陷入局部最優,影響了數據分析及預測的精度。因此,文中將繼續對FCM 算法進行改進[15-16]。改進的算法流程如圖2所示。

圖2 改進的FCM算法流程
首先使用K 均值法(K-means)計算初始聚類中心,具體表達式為:
采用二維空間內所有對象到樣本中心的平方差之和,作為K-means 的誤差判別E,而p為輸入樣本在二維空間的映射,mi則為Ci的聚類中心。引入該方法后,能夠有效提升FCM 的聚類中心初始化效果。
此外,為了度量FCM 算法的聚類效果,文中還引入了一種基于信息粒度的有效性函數。信息粒度可表征類間樣本的耦合性,且其主要包含耦合度Cd(c)和分離度Sd(c)兩個概念。其計算公式分別為:
基于式(2)-(3),可得到度量聚類效果的有效性函數為:
式(4)中,α為耦合度和離散度間的權重調節因子。
根據圖2 的流程,改進后的FCM 會根據有效性函數GD 對分類效果進行判別,使得類內樣本間的距離盡量縮小,而類別間的聚類中心間距則盡可能擴大。其中,類別間聚類中心的距離判別方法如下:
此外,為避免數據噪聲對模糊矩陣隸屬度的判別造成影響,文中還對目標函數進行了改進:
式(6)中,ηi為松弛因子,其降低了原損失函數對隸屬度的約束。該參數的表式如下:
其中,K為常數。則改進后的FCM 算法參數更新方法如下:
為了評估改進后的模糊聚類算法性能,文中篩選了某藥品信息庫中的部分藥品作為數據集。具體的數據集參數為:樣本總數有450個;藥品類別有3種;每類樣本個數為150 個;藥品特征參數有8 個。
在評估改進后的聚類方法對于藥品的聚類分析效率時,使用了均方根誤差(SRMSE)作為評價指標。其定義方式如下:
其中,Dp(x,y)為聚類后樣本在二維空間內的位置坐標,c(x,y)是數據集中實際聚類中心的位置坐標,N則為該類藥品的樣本總量。
在進行仿真分析時,文中結合樣本規模對改進FCM 算法的參數進行了設置,如表1 所示。

表1 算法仿真過程中所用參數的設置
此次所使用的仿真軟硬件環境為:CPU 為i7-10750H;硬盤規格為1 TB 7200 rpm;系統內存16 GB,操作系統為Windows10。顯卡采用P620,顯存4 GB,編程環境為Matlab 2019b。
為了評估算法的改進效果,將其與傳統模糊聚類方法進行了比較。兩種算法的迭代曲線如圖3所示。

圖3 算法迭代曲線
圖3 顯示了算法在迭代過程中,目標函數隨迭代次數的變化情況。從圖中可以看出,傳統算法在進行25 次迭代之后,目標函數值才趨于平穩;而該算法的目標函數值僅迭代15 次便趨于穩定,且迭代效率提升了約40%。由此可知,與傳統FCM 算法相比,改進算法的目標函數收斂速度較快。
根據實際的算法應用場景,在對藥品數據進行聚類分析前,由于類別數量c并非確定值,故還需根據算法的有效性函數值來確定。表2 給出了在仿真過程中,將數據集劃分為不同類別時的算法有效性函數值。可以看出,當c=3 時,算法能夠得到最優的有效性函數值,約為0.421 3,而該類別數也與數據集的實際類別數相一致。

表2 不同類別數所對應的有效性函數值
對數據集進行聚類仿真實驗,得到的結果如圖4所示。

圖4 算法的樣本分類效果圖
圖4 中,將表1 的數據集進行標準化處理,并映射至二維空間,即可得到圖4(a)所示的效果圖;而對圖4(a)中的數據使用文中算法進行聚類,獲得的效果如圖4(b)所示。在圖4(b)中,空心圓圈為實際的聚類中心,圓弧線則為類別的邊界。從圖4(b)可以看出,圓弧線將所有的樣本劃分為3 類,且各個類簇之間并未存在交疊的現象。由此證明所提算法能對數據集中的所有數據進行明確分類。
對于聚類算法,首先要將一堆無序的數據劃分為正確的類別。表3 給出了算法在50 次運行過程中,能將實驗數據正確劃分為3 類的統計結果。由表可知,該算法的正確率為94%,相較于傳統算法,提升了8%;而平均運行時間降低至201 s,在傳統算法的基礎上縮短了27.17%。

表3 算法聚類性能對比
表4 統計了在類別數c=3 時,所有樣本的分類精度情況。對于450 個測試樣本,該算法的誤分類數量為23,分類錯誤率為5.11%,RMSE 值為0.032 1。且相較于傳統FCM 算法,其錯誤率下降了5.56%,RMSE 值則降低了79.61%。

表4 算法分類精度性能對比
文中對藥品的聚類分析與預測方法進行了研究,通過引入新的聚類中心初始化機制及有效性函數改進了傳統的FCM 方法。仿真結果表明,該算法對于聚類中心與樣本的分類精度均有顯著改善。而隨著我國醫藥領域數字化進程的推進,所提算法將會有更為廣闊的應用前景。