嚴 玲,周作建**,宋懿花,胡 云,商洪濤,戰(zhàn)麗彬,董 青
(1. 南京中醫(yī)藥大學(xué)人工智能與信息技術(shù)學(xué)院 南京 210046;2. 江蘇省中醫(yī)院 南京 210029;3. 南京中醫(yī)藥大學(xué)中醫(yī)學(xué)院·中西醫(yī)結(jié)合學(xué)院 南京 210046;4. 連云港市衛(wèi)生健康委員會 連云港 222007)
中醫(yī)認為,疾病的發(fā)生及發(fā)展與體質(zhì)差異有一定聯(lián)系。體質(zhì)是個體在生命周期中形成的形態(tài)結(jié)構(gòu)、生理功能和心理狀態(tài)方面相對穩(wěn)定的固有特質(zhì)[1]。體質(zhì)因人而異,但可通過類來劃分體質(zhì)特征,“王琦中醫(yī)體質(zhì)九分法”[2]將中醫(yī)體質(zhì)分為平和質(zhì)、氣虛質(zhì)、陽虛質(zhì)、陰虛質(zhì)、痰濕質(zhì)、濕熱質(zhì)、血瘀質(zhì)、氣郁質(zhì)、特稟質(zhì),是目前權(quán)威且主流的體質(zhì)劃分方法。“治未病”[3]是中醫(yī)學(xué)的主要研究內(nèi)容之一,強調(diào)未病先防、欲病早治、既病防變,雖然體質(zhì)在每個個體中都有一定的差異性,但是把握個體體質(zhì)的差異性以及群體體質(zhì)的規(guī)律性有助于將疾病從“治病”到“防病”的轉(zhuǎn)變。中醫(yī)體質(zhì)辨識[4]就是以人的體質(zhì)為認知對象,通過某些方式判斷個體所屬體質(zhì)類型,從整體上把握健康與疾病的個體差異,進而制定適宜的治療、促進等干預(yù)措施,彌補西醫(yī)體檢在“未病先防”的不足。體質(zhì)辨識的主要工作[5]包括辨識個體體質(zhì)狀態(tài)、年齡老少、南北居住、奉養(yǎng)優(yōu)劣等,從而判斷所屬體質(zhì)類別。《“健康中國2030”規(guī)劃綱要》《中國防治慢性病中長期規(guī)劃(2017-2025年)》以及習(xí)總書記在十九大報告中均強調(diào),為實施健康中國戰(zhàn)略需以預(yù)防為主,發(fā)揮中醫(yī)在“治未病”中的重要作用,而中醫(yī)體質(zhì)辨識是“治未病”的具體措施,有效的、高效的體質(zhì)辨識已經(jīng)成為目前中醫(yī)治未病的重要課題之一。
目前中醫(yī)體質(zhì)辨識研究領(lǐng)域主要采用體質(zhì)辨識量表及統(tǒng)計分析方法,體質(zhì)辨識量表幾乎采用被列為中華中醫(yī)藥學(xué)會標準的《中醫(yī)體質(zhì)分類與判定》標準[6];統(tǒng)計分析方法基本采用SPSS軟件作為分析工具。楊玲玲等[7]將中華中醫(yī)藥學(xué)會的《中醫(yī)體質(zhì)分類與判定》作為辨識量表,以問卷形式進行數(shù)據(jù)收集,采用一般性統(tǒng)計描述進行分析,但是只能判定單一體質(zhì)類型;陳燕麗等[8]將《中醫(yī)體質(zhì)分類與判定》作為調(diào)查問卷,通過人工計算每一項得分及轉(zhuǎn)化分從而判定所屬的體質(zhì)類型,但是每次計算需要花費40 min/人次,耗費較大的人力成本及時間成本;左文英等[9]同樣將《中醫(yī)體質(zhì)分類與判定》作為量表計算條目的得分及轉(zhuǎn)化分,并采用SPSS軟件進行計量資料和計數(shù)資料的統(tǒng)計分析,得出社區(qū)高血壓患者的體質(zhì)分布規(guī)律。單個生命體會存在幾種不同的體質(zhì)類型,即存在主要體質(zhì)類型和次要體質(zhì)類型,回顧已有的體質(zhì)辨識研究可以發(fā)現(xiàn),大多數(shù)研究只是將《中醫(yī)體質(zhì)分類與判定》標準運用于特定的環(huán)境或人群,以此來分析體質(zhì)的分布規(guī)律,從而進行干預(yù)措施的建議。但是體質(zhì)辨識量表本身會花費大量的人力成本,隨著人工智能領(lǐng)域的興起及發(fā)展,中醫(yī)體質(zhì)辨識的智能化研究需要進一步被提出,考慮到個體與體質(zhì)之間存在一對多的關(guān)系,由此機器學(xué)習(xí)中的多標記學(xué)習(xí)算法可以應(yīng)用在中醫(yī)體質(zhì)類型智能化辨識的研究中。本文提出了基于多標記k近鄰算法(multi-label k nearest neighbor,ML-kNN)的中醫(yī)體質(zhì)辨識模型,為中醫(yī)體質(zhì)辨識的智能化、自動化研究提供新思路和新方法。
多標記學(xué)習(xí)[10,11]研究 1 個單獨實例與 1 組標簽相關(guān)聯(lián)的問題。假設(shè)xi為輸入,Yi為輸出,用(xi,Y)i表示1 個樣本集中的1 個輸入輸出對,其中Yi是1 個二進制向量,y(ijyi1、yi2……yiq)表示第i個樣本的第j個標記,yij=0表示該標記為負,yij=1表示該類別為正,這就是多標記學(xué)習(xí)基本思想。在多標記學(xué)習(xí)中,訓(xùn)練集中的樣本都對應(yīng)多個標記,目標任務(wù)是預(yù)測測試樣本的標記集合。
ML-kNN[12-14]改造“惰性學(xué)習(xí)”k近鄰算法以適應(yīng)多標記數(shù)據(jù),使用kNN 的思想查找訓(xùn)練集中的k個近鄰樣本,并使用最大后驗概率確定測試樣本的標記集合。給定多標記訓(xùn)練集D={(xi,Yi)|1 ≤i≤m},測試示例x,假設(shè)Q(x)代表x在訓(xùn)練集中的k個近鄰樣本的集合,那么對于j個類別yj(1 ≤j≤q),Q(x)中標簽j為1的樣本數(shù)可表示為每個標記先驗概率可表示為其中s為平滑項,m為訓(xùn)練集樣本數(shù),q為標簽數(shù)。未知樣本的每個標記條件概率可表示為(1 ≤j≤q,0 ≤Cj≤k),其中kj[r]表示自身及k近鄰中r個近鄰均具有標記yj的訓(xùn)練樣本個數(shù)。將先驗概率及條件概率代入多標記分類器h(x) ={yj|P(Hj|Cj)/P(?Hj|Cj)>0.5,1 ≤j≤q}獲得測試樣本的標記集合。
多標記評價指標[15]首先評價多標記分類器在單個測試樣本上的分類效果,最終返回其在整個測試樣本集上的“均值”。假定多標記分類器表示為h(.),多標記測試集表示為S={(xi,Yi)|1 ≤i≤p},其中Yi為xi的標記集合,p為測試集樣本數(shù),用如下多標記評價指標評估模型效果。
2.2.1 漢明損失
漢明損失[16](hamming loss,HLoss)計算分類器預(yù)測出的結(jié)果序列與實際結(jié)果序列之間數(shù)值上的距離,用來評估樣本在單個標記上的分類錯誤的情況。HLoss 取值越小,分類器預(yù)測結(jié)果越好,最優(yōu)值為HLoss(h)= 0。表達式為其中q為所有標簽總數(shù)。
2.2.2 1-錯誤率
1-錯誤率[17](OneError)用來評估樣本類別標記序列最前端的標記不屬于相關(guān)標記集合的情況。OneError取值越小,系統(tǒng)性能越優(yōu),最優(yōu)值為OneError(h)= 0。表達式為其中,f(.,.)為h(.)對應(yīng)的實值函數(shù)。
2.2.3 覆蓋率
覆蓋率[18](Coverage)用于評估樣本類別標記序列中,覆蓋所有相關(guān)標記所要的搜索深度情況。Coverage 取值越小,系統(tǒng)性能越優(yōu),最優(yōu)值為表達式為:Coverage(h) =其中,rank為與實值函數(shù)f(.,.)f(.,.)對應(yīng)的排序函數(shù)。
2.2.4 排序損失
排序損失[19](ranking loss,RLoss)用于評估樣本類別標記序列中無關(guān)標記與相關(guān)標記排序錯誤的情況。RLoss取值越小,系統(tǒng)性能越優(yōu),最優(yōu)值為RLoss(h)=0。表達式為:其中,為集合Yi的補集。

表1 實驗數(shù)據(jù)結(jié)構(gòu)

表2 不同近鄰數(shù)下評價指標值
2.2.5 平均精度
平均精度[20](average precision,Avgprec)用于考察樣本類別標記序列中,排序靠前的標記均為相關(guān)標記的情況。Avgprec 取值越大,系統(tǒng)性能越優(yōu),最優(yōu)值為Avgprec(h) = 1。 表 達 式 為 :
數(shù)據(jù)來源于江蘇省中醫(yī)院體檢中心,共60個屬性9個標簽,過濾掉不完整、無意義的數(shù)據(jù)最終納入9844條數(shù)據(jù)作為研究對象,其中60個屬性是將原始數(shù)據(jù)的體質(zhì)自測問題規(guī)范化為中醫(yī)癥狀,9個標簽是平和質(zhì)、氣虛質(zhì)、陽虛質(zhì)、陰虛質(zhì)、痰濕質(zhì)、濕熱質(zhì)、血瘀質(zhì)、氣郁質(zhì)及特稟質(zhì)9種體質(zhì)類型,原始數(shù)據(jù)標簽根據(jù)《中醫(yī)體質(zhì)分類與判定》計算相應(yīng)條目分及轉(zhuǎn)化分得到。屬性值按照“沒有(根本不)”“很少(有一點)”“有時(有些)”“經(jīng)常(相當(dāng))”“總是(非常)”分別賦值為0、1、2、3、4,標簽值按照體質(zhì)類型有無分別賦值為1和0,實驗數(shù)據(jù)結(jié)構(gòu)見表1。
中醫(yī)體質(zhì)辨識模型ML-kNN 構(gòu)建過程:①使用k近鄰算法查找訓(xùn)練集中與測試樣本最接近的樣本,通過計算先驗概率及后驗概率預(yù)測測試樣本的體質(zhì)標簽矩陣,詳細步驟如下:
初始化:指定體質(zhì)數(shù)據(jù)樣本為x,體質(zhì)標簽集合Y? Ω,體質(zhì)標簽l ∈ Ω,樣本體質(zhì)標簽向量y→x,樣本x在訓(xùn)練集中的k近鄰N(x),測試樣本t(2952 條體質(zhì)數(shù)據(jù)),初始化平滑參數(shù)s為1。
Step1:根據(jù)公式(1)、(2)分別求得體質(zhì)標簽值為1、0的先驗概率。

Step2:計算N(x),并根據(jù)公式(3)、(4)分別求得體質(zhì)標簽值為1和0的后驗概率。其中c[j]指訓(xùn)練樣本中含有l(wèi)且其k近鄰中有j個l的樣本數(shù)。

Step3:計算測試樣本t的k近鄰N(t),并根據(jù)公式(5)、(6)求得t的體質(zhì)標簽集合

②采用10折交叉驗證,每次訓(xùn)練將數(shù)據(jù)集隨機分為10 份,按9∶1 的比例分配訓(xùn)練集與測試集,以此考察體質(zhì)辨識模型的擬合性能。
③從1-20 調(diào)整k值以尋找模型最佳參數(shù),并運用5項評價指標的均值評估模型預(yù)測效果。
采用10 折交叉驗證訓(xùn)練模型,并在1-20 之間調(diào)整k值,評價指標對應(yīng)的值見表2,從表中可以看出,模型的平均精度不會隨著近鄰數(shù)的增加而增加,當(dāng)k=8時,模型的 HLoss、OneError、Coverage 及 RLoss 的取值相對較小且Avgprec 最高,模型效果最佳,體質(zhì)分類效果最好,此時平均漢明損失(HL-mean)為0.096 1,平均1-錯誤率(OE-mean)為0.126 1,平均覆蓋率(COV-mean)為1.153 5,平均排序損失(RL-mean)為0.086 6,平均精度(AVP-mean)為88.57%。江蘇省中醫(yī)院體檢中心體質(zhì)辨識根據(jù)《中醫(yī)體質(zhì)分類與判定》所列出的問題條目計算得出,而本文基于體檢中心數(shù)據(jù)建立的體質(zhì)辨識模型在評價指標中表現(xiàn)良好,有科學(xué)意義,表明ML-kNN 算法用于體質(zhì)辨識是有效的。綜上說明,ML-kNN 模型解決中醫(yī)體質(zhì)智能化辨識問題及其存在的體質(zhì)多標記問題有現(xiàn)實意義。

圖1 體質(zhì)辨識可視化結(jié)果
基于ML-kNN 算法建立的中醫(yī)體質(zhì)辨識模型能夠以可視化的界面展示體質(zhì)辨識結(jié)果,如圖1所示,體質(zhì)辨識的結(jié)果可以通過可視化界面直觀地反映給用戶,能夠提高體檢中體質(zhì)辨識的效率,促進中醫(yī)體質(zhì)辨識客觀化研究。
中醫(yī)認為疾病治療應(yīng)該將人作為整體,而體質(zhì)狀態(tài)可以從整體上把握健康與疾病,體質(zhì)偏頗是疾病變化的依據(jù),疾病發(fā)生及發(fā)展與體質(zhì)有一定的聯(lián)系,由此體質(zhì)辨識可為疾病預(yù)防及促進提供依據(jù)。目前研究中普遍采用的體質(zhì)辨識量表無法避免測試者的主觀意識,且隨著體檢人數(shù)的增加耗費大量的人力、物力,由此需建立科學(xué)的體質(zhì)辨識方法;部分研究采用數(shù)據(jù)挖掘算法辨識體質(zhì),但是忽略了單一個體存在幾個主次不一的體質(zhì)類型而采用單標記學(xué)習(xí)算法,并不能較為科學(xué)準確地判斷出體質(zhì)類型,由此需要引入人工智能中的機器學(xué)習(xí)算法,建立多標記學(xué)習(xí)模型進行體質(zhì)類型自動、客觀辨識。本文運用ML-kNN 算法構(gòu)建中醫(yī)體質(zhì)辨識模型,采用10 折交叉驗證訓(xùn)練模型,并用多標記學(xué)習(xí)評價指標評估模型效果,最終模型的 HLoss、OneError、Coverage、RLoss 及Avgprec 的值證實了ML-kNN 算法運用在體質(zhì)辨識中的可行性及有效性,且當(dāng)近鄰數(shù)的值為8 時模型的效果最佳,對中醫(yī)體質(zhì)的分類效果最好,表明采用ML-kNN 算法建立體質(zhì)辨識模型一定程度上可以代替?zhèn)鹘y(tǒng)的體質(zhì)辨識方法且能彌補單標記學(xué)習(xí)不能識別多個體質(zhì)類型的局限性,節(jié)約人力、物力成本且符合中醫(yī)辨識體質(zhì)的思想,為中醫(yī)體質(zhì)辨識智能化及自動化發(fā)展提供新方法,為實施健康中國戰(zhàn)略提供新思路。