周凱文,苑明海,張晨希
(河海大學(xué) 機電工程學(xué)院,江蘇 常州 213022)
智慧社區(qū),其概念起源于西方,其建設(shè)是一個復(fù)雜的系統(tǒng)工程,其核心為“以人為本”。智慧社區(qū)的建設(shè)需要新穎的技術(shù)綜合應(yīng)用以連接所有資源,包括電子政府信息資源等,為政府、企業(yè)、居民所共享[1]。2021年《中華人民共和國國民經(jīng)濟和社會發(fā)展第十四個五年規(guī)劃和2035年遠景目標(biāo)綱要》中明確指出:加快數(shù)字社會建設(shè)步伐,建設(shè)智慧城市和數(shù)字鄉(xiāng)村,以數(shù)字化助推城鄉(xiāng)發(fā)展和治理模式創(chuàng)新。智慧社區(qū)作為智慧城市的基本組成部分,其是否能建設(shè)并健康發(fā)展是智慧城市未來十多年的發(fā)展關(guān)鍵[2]。2015年,聯(lián)合國人口基金委員會發(fā)表的關(guān)于世界人口狀況的報告中預(yù)言,預(yù)計到2050年,世界城市人口占比將達到66%[3]。城市發(fā)展過程中接踵而至且日益嚴重的“大城市病”及持續(xù)的負外部性,與安全、可持續(xù)發(fā)展為目標(biāo)的智慧城市建設(shè)理念不再相容。傳統(tǒng)的社區(qū)服務(wù)已經(jīng)無法滿足社區(qū)居民的生活需求,尤其是在醫(yī)療衛(wèi)生方面[4]。一種前瞻性的社區(qū)醫(yī)療服務(wù)的理念是通過對社區(qū)居民的健康監(jiān)測、評價、維護和促進,減少健康隱患帶來的問題,改善生活質(zhì)量并降低醫(yī)療費用開支[5]。李彩寧等提出了一種智慧養(yǎng)老服務(wù)體系,其中的智慧醫(yī)療是體系的要點,針對老年人多病多變的患病特點,建立動態(tài)健康檔案、提供遠程診療服務(wù),重視康復(fù)護理服務(wù)[6]。
據(jù)調(diào)查數(shù)據(jù)顯示,2019年中國高血壓患者高達2.45億人,近乎十年還將持續(xù)增長。高血壓會導(dǎo)致嚴重的心血管疾病,而心血管疾病死亡率多年來高居首位。目前中國15歲以上居民高壓病患者數(shù)量持續(xù)增多,成人高血壓患病率為27.9%,患病率隨年齡增加而增加[7]。鑒于中國高血壓患者多而知曉率、治療率低,且治療費用不菲的情況,有關(guān)高血壓的預(yù)防、監(jiān)測情況迫切需要改善[8]。龔軍等[9]運用機器學(xué)習(xí)算法對原發(fā)性高血壓進行診斷,其中BPNN模型和XGBoost模型效果較優(yōu)。黃薇等[10]選取影響高血壓的顯著因素通過建立神經(jīng)網(wǎng)絡(luò)預(yù)測模型對收縮壓和舒張壓進行預(yù)測,誤差值為6.4%。楊靖祎等[11]提出了一種密集神經(jīng)網(wǎng)絡(luò)模型,對CT圖像特征提取并分類,具有一定的有效性。BP神經(jīng)網(wǎng)絡(luò)[12](BPNN)以大量的數(shù)據(jù)信息做訓(xùn)練,通過調(diào)整神經(jīng)元之間的權(quán)值來降低輸出值與真實值的損失,最終通過推斷出輸入與輸出之間的關(guān)系得出準確度較高的預(yù)測值,以此來形成人工智能模型[13]。陳桂林等[14]提出一種使用K-means壓縮減少計算量,從而加速神經(jīng)網(wǎng)絡(luò)計算的方法。陳麗芳等[15]提出神經(jīng)網(wǎng)絡(luò)規(guī)則建模方法,用于解決隱藏層節(jié)點和參數(shù)選擇的困難問題。宋波等[16]利用BPNN對糖尿病加高血壓的臨床路徑進行優(yōu)化建模,結(jié)果誤差較小。Abiyev Rahib H等[17]使用卷積神經(jīng)網(wǎng)絡(luò)對胸部疾病進行診斷,并討論了不同的神經(jīng)網(wǎng)絡(luò)的性能,證明了常規(guī)和深度學(xué)習(xí)方法對胸部疾病分類的可行性。但是以上研究都是在數(shù)據(jù)預(yù)處理時剔除掉缺值樣本,也就是對完備數(shù)據(jù)進行處理,這一方法不符合智慧社區(qū)對居民的服務(wù)理念,于是研究一種可針對含部分缺值數(shù)據(jù)的樣本進行高血壓預(yù)測的模型具有一定必要性。
在對居民個人健康信息的調(diào)查過程中,當(dāng)存在信息填寫錯誤、居民不愿透漏信息或其他原因使得樣本數(shù)據(jù)部分缺失時,則會影響到該樣本的高血壓預(yù)測結(jié)果,一般最直接的方法是將缺失數(shù)據(jù)的樣本刪除,但是高血壓預(yù)測作為智慧社區(qū)中醫(yī)療保障的部分功能,要對社區(qū)中所有居民的健康負責(zé),擅自刪除缺值的樣本就是視居民健康于無物。常用的數(shù)據(jù)插補方法有眾數(shù)插補、組均值插補、多重插補、決策樹預(yù)測插補、貝葉斯預(yù)測插補等。鄒文華等[18]為保證廣播式自動相關(guān)監(jiān)視報文(ADS-B)的數(shù)據(jù)完整性,利用基于擴張算法(DA)的多重插補法(MI)對缺值補全,該方法可以處理任意的缺失模式,插補后的數(shù)據(jù)與原數(shù)據(jù)的相似度隨著數(shù)據(jù)缺失率的上升而下降,但仍具有較高相似度。施虹等[19]為解決不完備數(shù)據(jù)的聚類問題,提出了一種改進的均值插補方法,將硬聚類算法和均值插補相結(jié)合,該方法在不完整數(shù)據(jù)填充聚類方面有效,但不具有數(shù)據(jù)集普適性。Darling Anne Marie等[20]建立了插補對象的混合效應(yīng)模型對缺失的體重值插補,比樣條回歸模型預(yù)測的結(jié)果誤差更小。
復(fù)雜估算值補全法的預(yù)測模型推理運算太過復(fù)雜,預(yù)測結(jié)果的準確度與先驗數(shù)據(jù)的數(shù)量相關(guān),而眾數(shù)插補方法雖簡單,但準確度不高。對于智慧社區(qū)基于居民健康信息進行高血壓預(yù)測,數(shù)據(jù)量不會太多,組均值插補為將健全數(shù)據(jù)的樣本以某種規(guī)則進行分組,再計算每個組的均值,用該值填補缺失數(shù)據(jù)的樣本。使用BPNN來預(yù)測樣本缺失值,可在保證正確率的前提下降低運算復(fù)雜度。故該文提出以BPNN進行數(shù)值插補的方法,并與組均值插補的方法進行對比,最后以插補后的完整樣本集預(yù)測高血壓,圖1所示為該文基于BPNN的數(shù)值插補進而對高血壓預(yù)測的方法流程。研究一種基于神經(jīng)網(wǎng)絡(luò)的居民高血壓患病風(fēng)險預(yù)測的方法,為智慧社區(qū)居民提供數(shù)字化醫(yī)療服務(wù)具有重要意義。
圖1 方法流程
智慧社區(qū)包括多種感知設(shè)備對社區(qū)的智能家居、網(wǎng)絡(luò)通信、醫(yī)療、物業(yè)管理、電子商務(wù)、物流等信息的有效獲取、高效處理,其中醫(yī)療信息除了從當(dāng)?shù)匦l(wèi)生所或醫(yī)院中的居民健康檔案中提取,對于居民的基本信息也可從物業(yè)的感知系統(tǒng)中獲取。數(shù)據(jù)內(nèi)容中基本信息如性別、年齡等可從社區(qū)居民管理系統(tǒng)中獲取,生活習(xí)慣相關(guān)數(shù)據(jù)需要居民積極反饋信息到個人信息表中,其余精準醫(yī)療信息需從當(dāng)?shù)匦l(wèi)生所或醫(yī)院中獲取。最后智慧社區(qū)管理系統(tǒng)將所有數(shù)據(jù)整合并供居民查看分析結(jié)果。
對某社區(qū)的1 000個居民進行健康信息提取,數(shù)據(jù)內(nèi)容包括性別,年齡,身高,體重,是否抽煙,月飲酒次數(shù),工作方式,久坐時間,運動時間,睡眠時間,精神壓力程度,是否患有高血壓共11個屬性。由于18歲以下幾乎沒有高血壓患者,且60歲以上的居民應(yīng)定期進行身體檢查,故不作為預(yù)測樣本。將18歲以下和60歲以上的居民數(shù)據(jù)去掉后,在剩余820個樣本中隨機抽取50個為插補所用,其余樣本分為訓(xùn)練集和測試集。當(dāng)樣本缺失兩個及以上的屬性時,BPNN的訓(xùn)練結(jié)果準確性會大大降低,神經(jīng)網(wǎng)絡(luò)亦不再適用,故在此僅研究缺單值時的數(shù)值插補,將抽取的50個樣本數(shù)據(jù)的“運動時間”屬性改為零值以模擬數(shù)據(jù)缺失的情況。
BPNN即誤差反向傳播的神經(jīng)網(wǎng)絡(luò),設(shè)置激活函數(shù)將輸入數(shù)據(jù)通過隱藏層計算出輸出數(shù)據(jù)并與期望值對比得出損失函數(shù),利用梯度下降法調(diào)整神經(jīng)元之間的權(quán)值和偏置參數(shù)使得損失最小。
(1)確定參數(shù)。
記m為輸入層節(jié)點數(shù),n為輸出層節(jié)點數(shù),l為隱藏層節(jié)點數(shù)??紤]到效率問題,神經(jīng)網(wǎng)絡(luò)采用三層網(wǎng)絡(luò),即含有一個隱藏層。隱藏層節(jié)點由公式(1)得:
(1)
其中,a為常數(shù),范圍[1,10]。
(2)確定激活函數(shù)。
本研究選用Sigmoid函數(shù)作為隱藏層和輸出層的激活函數(shù),該函數(shù)的輸出映射在(0,1)之間,收斂速度較快,光滑性和魯棒性好,輸出范圍有限并且優(yōu)化穩(wěn)定,記作:
(2)
(3)計算誤差。
記輸入變量為:
Xi=(x1,x2,…,xm)',i=1,2,…,m
(3)
其中,m為輸入層節(jié)點數(shù)。
則隱藏層輸出變量為:
(4)
其中,n為隱藏層節(jié)點數(shù),ω1為輸入層到隱藏層的權(quán)重向量,b1為偏置向量。
進而輸出層輸出變量為:
(5)
其中,p為輸出層節(jié)點數(shù),ω2為輸入層到隱藏層的權(quán)重向量,b2為偏置向量。
而輸出期望值為:
yk=(y1,y2,…,yp)
(6)
故用最小二乘誤差定義的損失函數(shù)為:
(7)
其中,q為樣本數(shù)量。
(4)修正權(quán)重、偏置參數(shù)。
由激活函數(shù)和損失函數(shù)可得權(quán)重向量的修正公式為:
ω2jk=ω2jk+αIj(yk-Yk)
(8)
(9)
偏置向量的修正公式為:
b2k=b2k+α(yk-Yk)
(10)
(11)
其中,f'(x)=x(1-x)為激活函數(shù)的導(dǎo)函數(shù),α為學(xué)習(xí)率。
輸入屬性去掉“運動時間”和“是否患有高血壓”后為9個屬性值,即輸入層節(jié)點數(shù)為9,輸出層節(jié)點數(shù)為1。通過式(1)計算出隱藏層節(jié)點數(shù)范圍為[5,15]。完整數(shù)據(jù)樣本數(shù)為770個,其中將500個樣本作為訓(xùn)練集,270個樣本作為測試集。
圖2 不同隱藏層節(jié)點數(shù)時預(yù)測插補值與真值的誤差
隱藏層節(jié)點數(shù)對預(yù)測過程的訓(xùn)練時間和誤差收斂有較大影響,原則上應(yīng)在網(wǎng)絡(luò)能正確反映輸入輸出情況下選擇較少的節(jié)點數(shù)使網(wǎng)絡(luò)結(jié)構(gòu)更簡單。設(shè)置訓(xùn)練函數(shù)為trainlm,即梯度下降反向傳播算法,設(shè)置學(xué)習(xí)率為0.01,隱藏層節(jié)點數(shù)在[4,14]中依次實驗100次,實驗結(jié)果的準確率如圖2所示,橫坐標(biāo)表示不同的隱藏層節(jié)點,縱坐標(biāo)表示BPNN預(yù)測的數(shù)據(jù)與真值的誤差,預(yù)測插補值與真實值誤差的局部最小值4.68%左右,彼此相差不大。為了使網(wǎng)絡(luò)結(jié)構(gòu)更加簡單,選擇隱藏層節(jié)點數(shù)為5,此時誤差為4.7%。
將剩余50個缺值樣本進行網(wǎng)絡(luò)測試,并以組均值插補的方法對該缺值數(shù)據(jù)集插補作對比,組均值插補法將完整樣本按照性別、年齡和工作方式分為12組,求出每組的居民運動時間均值,將50個缺值樣本匹配到對應(yīng)組中并賦予該組的均值。兩種方法的插值結(jié)果對比如圖3所示,橫坐標(biāo)代表50個缺值樣本的編號,縱坐標(biāo)表示預(yù)測的居民每周運動時間。BPNN插補數(shù)據(jù)更貼近原數(shù)據(jù),組均值插補僅將三個屬性分為12組,故插補結(jié)果較為平穩(wěn),BPNN插補法預(yù)測的屬性值與其余所有屬性值相關(guān),插補結(jié)果更加理想,其中BPNN插補值的誤差為5.3%,組均值插補值的誤差為11.7%。
圖3 BPNN與組均值插補的數(shù)據(jù)對比
使用BPNN插補的數(shù)據(jù)的正確性從誤差和曲線圖并不能體現(xiàn),將其用于高血壓預(yù)測后的結(jié)果是否理想決定著插補方法的優(yōu)越性。
輸入層節(jié)點為原輸入層節(jié)點數(shù)加上“運動時間”屬性,即10個節(jié)點,輸出層節(jié)點為2,分別為“患有高血壓”和“不患高血壓”。隱藏層節(jié)點數(shù)由式(1)得出為[5,15],其余參數(shù)與前文相同,設(shè)置不同的隱藏層節(jié)點并訓(xùn)練50次取均值得出的錯誤率如圖4所示,當(dāng)隱藏層節(jié)點為7時預(yù)測效果最好,誤差僅為4.32%。
圖4 不同隱藏層節(jié)點數(shù)時預(yù)測結(jié)果與真值的誤差
將BPNN插補和組均值插補方法處理后的完整樣本進行高血壓預(yù)測,預(yù)測結(jié)果的對比如圖5所示,橫坐標(biāo)為完整樣本的編號,縱坐標(biāo)為預(yù)測的結(jié)果,0代表不患有高血壓,1代表患有高血壓。
圖5(a)為BPNN插補后的完整樣本的高血壓預(yù)測,圖5(b)為組均值插補后的完整樣本的高血壓預(yù)測,可以看出大部分的預(yù)測類別和實際類是相同的,其中BPNN插補后的完整樣本對高血壓預(yù)測正確率為92%,組均值插補后的完整樣本對高血壓預(yù)測正確率為86%。
圖5 插補后高血壓預(yù)測結(jié)果對比
近年來,隨著中國城鎮(zhèn)化的快速建設(shè),城鎮(zhèn)人口急劇增多,社區(qū)服務(wù)逐漸不能滿足居民的要求。智慧社區(qū)聯(lián)合物聯(lián)網(wǎng)、云計算、數(shù)據(jù)挖掘等智能技術(shù)可解決這些問題。該文以智慧醫(yī)療板塊的衛(wèi)生服務(wù)保障為研究起點,設(shè)計了基于BPNN的居民高血壓預(yù)測模型。智慧社區(qū)中的各種感知設(shè)備、物業(yè)管理系統(tǒng)、智能家居設(shè)備、居民反饋系統(tǒng)和醫(yī)療衛(wèi)生系統(tǒng)等自動收集整理健康信息而對于數(shù)據(jù)收集過程中數(shù)據(jù)丟失或覆蓋等產(chǎn)生的不完備數(shù)據(jù)樣本的問題,設(shè)計了BPNN預(yù)測插補法。通過實例驗證,BPNN插補法效果遠優(yōu)于傳統(tǒng)插補法,插補后的數(shù)據(jù)用于高血壓預(yù)測時的正確率雖沒有完備數(shù)據(jù)的預(yù)測正確率高,但總體效果也非常理想。樣本的數(shù)量和健康信息與高血壓的相關(guān)性也影響著神經(jīng)網(wǎng)絡(luò)預(yù)測的準確率,但是實驗證明該方法較傳統(tǒng)方法更具有效性,并適用含缺值的樣本集,即通過BPNN預(yù)測缺失值并將其用于高血壓病的預(yù)測具有可行性。