王宏偉,張紅明,張國軍
(1湖北理工學院 土木建筑工程學院,湖北 黃石435003;2濟南軍區(qū)總醫(yī)院,山東 濟南 250031;3湖北理工學院 計算機學院,湖北 黃石 435003)
粗糙集與支持向量機在冠心病診斷中的應用
王宏偉1,張紅明2,張國軍3
(1湖北理工學院 土木建筑工程學院,湖北 黃石435003;2濟南軍區(qū)總醫(yī)院,山東 濟南 250031;3湖北理工學院 計算機學院,湖北 黃石 435003)
提出了一種基于粗糙集(RS)與支持向量機(SVM)的冠心病診斷方法。利用粗糙集對原始數(shù)據(jù)進行屬性約簡,得到優(yōu)化后的特征屬性集和新的數(shù)據(jù)集,采用支持向量機對新的數(shù)據(jù)集進行分類訓練和預測。結果表明該方法對冠心病預測的準確率達到91%以上,具有較好的應用前景。
人工智能;粗糙集;支持向量機;冠心病診斷
冠心病是冠狀動脈血管發(fā)生動脈粥樣硬化病變而引起血管腔狹窄或阻塞,造成心肌缺血、缺氧或壞死而導致的心臟病。其成因與高血壓、血脂異常、肥胖、高血糖、不良生活方式(包括吸煙、不合理膳食、缺少體力活動、過量飲酒)以及性別、年齡、家族史有關。據(jù)調查,在我國,冠心病發(fā)病率的特點是北方省市普遍高于南方省市,城市高于農(nóng)村,男性高于女性。冠心病的早期發(fā)現(xiàn)和早期診斷是提高療效的關鍵。
本文提出了一種基于粗糙集與支持向量機的診斷技術,利用粗糙集理論對冠心病成因屬性進行約簡,利用支持向量機對數(shù)據(jù)集進行訓練和預測,可以得到較高的分類精度。
粗糙集理論是由波蘭數(shù)學家Pawlak于1982年提出,作為一個處理不確定、不完整、不精確信息的數(shù)學工具,目前其在醫(yī)學、管理學、金融學、氣象學以及人工智能等方面得到了很好的應用[1-2]。在RS理論中,“知識”被認為是一種將現(xiàn)實或抽象的對象進行分類的能力[3]。
一個知識表達系統(tǒng)S可表示為一個有序4元組:
S=(U,A,V,f)
(1)
一般的,知識表達系統(tǒng)有2種類型:一類是信息系統(tǒng)(信息表),即不包含決策屬性的知識表達系統(tǒng);另一類是決策系統(tǒng)(決策表),即含有決策屬性的知識表達系統(tǒng)。決策表是一種特殊而重要的知識表達系統(tǒng),大多的決策問題都可以用決策表的形式來表達。
在實際應用中時,通常用決策表來描述論域中的對象。它是一張二維表格,行元素對應所要研究的對象,列元素為對應對象的屬性,屬性包含條件屬性和決策屬性。
對于分類問題而言,并不是所有的屬性都是必需的,有些是冗余的,去掉這些冗余屬性不會影響分類效果。屬性約簡定義為不含多余屬性并保證分類正確的最小條件屬性集。
一個決策表可以有幾個約簡,其交集定義為決策表的核(core)。核中的屬性是影響分類的重要屬性,約簡時不能去掉。
設Q?P,如果Q是獨立的,且IND(Q)=IND(P),則稱Q為P的一個約簡。設P有多個約簡,用red(P)表示P的所有約簡,其交集即為核:
Core(P)=∩red(P)
(2)
通過粗糙集約簡可以得到一個或多個特征子集,其數(shù)量以及組成取決于采用哪種算法約簡。常用的有盲目刪除屬性約簡算法、基于Pawlak屬性重要度的屬性約簡算法、基于差別矩陣的屬性約簡算法以及基于差別函數(shù)的屬性約簡算法等[1]。
Vapnik于1995年在VC維理論和結構風險最小化的基礎上提出SVM理論,它是建立在統(tǒng)計學理論上的小樣本學習方法,可以自動尋找對分類有較好區(qū)分能力的支持向量,在分類問題上有較好的應用效果[5]。
SVM是在線性可分情況下根據(jù)最優(yōu)分類面(超平面)提出的。所謂最優(yōu)分類面就是在給定包含2類樣本的訓練集下尋找一個分類面,不但能將2類樣本正確分開,而且使分類間隔最大。
設已知訓練集T={(x1,y1),(x2,y2),…,(xl,yl)}∈(x×y)l,其中xi∈X=Rn,yi∈y={-1,1}(i=1,2,…,l),選擇核函數(shù)K(x,x')和懲罰參數(shù)C,求得最優(yōu)解:
(3)
(4)
構造分劃超平面,求得分類決策函數(shù):
(5)
在公式(5)中,K(xi,x)為核函數(shù)。需要注意的是,選擇不同的核函數(shù)構造出的SVM的性能會有很大不同,因此,和函數(shù)的選擇非常重要。常用的和函數(shù)有:
1)線性核函數(shù):
K(x,x')=(x·x')
(6)
2)多項式核函數(shù):
K(x,x')=[(x·x')+c]d(c≥0)
(7)
3)高斯核函數(shù):
(8)
目前應用最廣泛的是高斯核函數(shù),對于高斯核函數(shù)而言,有2個參數(shù)(C和σ)需要確定。
確定核函數(shù)參數(shù)的方法主要有:經(jīng)驗法、搜索法以及基于各種智能計算的參數(shù)優(yōu)化方法。
冠心病診斷是一個2分類問題。本文先通過粗糙集理論對采集到的冠心病病人原始數(shù)據(jù)進行屬性約簡,得到最優(yōu)的特征子集,然后采用SVM對約簡后的數(shù)據(jù)進行分類訓練和預測[6-8]。詳細流程圖如圖1所示。
1)冠心病特征屬性
根據(jù)前期調研,本文采集山東濟南地區(qū)患者數(shù)據(jù)96例,選擇23個特征屬性,特征屬性的構成見表1。
表1 特征屬性
2)離散化處理
由于粗糙集只能處理離散化形式的數(shù)據(jù),所以必須將屬性表中的數(shù)據(jù)進行離散化處理,處理后的決策見表2。
表2 離散化決策表
離散化之后的數(shù)據(jù)含義:
F1=0表示年齡在35歲以下,F(xiàn)1=1表示年齡在35到60歲之間,F(xiàn)1=2表示年齡在60歲以上;F2=0表示性別為男,F(xiàn)2=1表示性別為女;F3~F9=0表示YES,F3~F9=1表示NO;F10=0表示劇烈,F(xiàn)10=1表示一般,F(xiàn)10=2表示NO;F11~F23=0表示YES,F11~F23=1表示NO;決策值=0表示確診有冠心病,決策值=1表示確診沒有冠心病。
3)屬性約簡算法
本文采用基于貪心策略的屬性約簡算法對決策表屬性進行約簡,具體算法描述如下:
輸入:決策表DT=(U,C∪D,V,f)
輸出:條件屬性C相對于決策屬性D的一個相對約簡Redu
POS=|POSC(D)|
c=C
Redu=?
K=0
While(pos<>k)
{j=1
Fori=1 to |c|
{if |POSRedu∪c[i](D)|>kthen
K=|POSRedu∪c[i](D)|
J=i
End if
}
Redu=Redu∪c[j]
從數(shù)組c中刪除元素c[j]
}
Fori=1 to |Redu|
{ifPOSRedu-Redu[i](D)=pos then
從Redu中刪除元素Redu[i]
END if
}
Reture Redu
通過屬性約簡,得到包含F(xiàn)1、F3、F4、F8、F10、F14、F15、F18等12個屬性集為約簡后的特征屬性集,用約簡后的屬性集生成新的數(shù)據(jù)集。
4)數(shù)據(jù)分類和預測
將約簡后得到的新數(shù)據(jù)集對等分成訓練數(shù)據(jù)和測試數(shù)據(jù):訓練數(shù)據(jù)是用來構造分類決策函數(shù)的;測試數(shù)據(jù)是用來預測最終分類結果的。
本文選擇高斯核函數(shù)作為分類決策函數(shù)的核函數(shù),采用網(wǎng)格式搜索法確定C和σ參數(shù),得到分類決策函數(shù),進而構建出最優(yōu)的SVM分類模型。
采用基于網(wǎng)絡的搜索法來確定C和σ的具體操作方法如下:
首先確定搜索范圍,選取一組合適的和參數(shù)、懲罰參數(shù)、損失函數(shù)參數(shù)的范圍;然后設定固定的搜索步長,按照交叉驗證方法計算出測試準確率;最后將各組參數(shù)值對應的準確率用等高線描出,得到等高線圖,進而選出最優(yōu)的參數(shù)值[9]。
經(jīng)過多組實驗數(shù)據(jù)分析得到,當C=2.54,σ=1.12時,分類準確率較高。
5)結果分析
通過對48例測試數(shù)據(jù)進行驗證,采用RS+SVM的方法進行冠心病分類預測,準確率能達到91.7%。
選擇同樣的訓練數(shù)據(jù)和測試數(shù)據(jù),把RS+SVM同1NN、C4.5和Naive Bayes等機器學習算法進行比較。各模型分類決策的結果如表3所示。
表3 不同模型的決策預測結果
實驗結果表明,通常情況下,基于粗糙集的支持向量機的決策分類能力是較高的。
本文通過粗糙集理論對原始數(shù)據(jù)進行約簡,再采用SVM對約簡后的數(shù)據(jù)進行訓練和預測,可以得到一個較高的預測率,為冠心病診斷提供可靠依據(jù),在醫(yī)學診斷領域中具有較好的應用前景。
[1] 苗奪謙,李道國.粗糙集理論、算法與應用[M].北京:清華大學出版社,2008:24-34,108-207.
[2] Pawlak Z.Rough Sets:Theoretical Aspects of Reasoning about Data[M].Amsterdam:Kluwer Academic Publishers,1992:223-228.
[3] Pawlak Z.Rough Set[M].Amsterdam:Kluwer Academic Publishers,1991:341-356.
[4] 王剛,劉元寧,陳慧靈,等.粗糙集與支持向量機在肝炎診斷中的應用[J].吉林大學學報,2011,41(1):160-164.
[5] Vapnik V.Statiscal Learning Theory[M].Holmdel,New Jersey,USA:Wiley,1998:192-203.
[6] 孫繼佳,蘇式兵,陸奕學,等.基于粗糙集和支持向量機的中醫(yī)辨證數(shù)據(jù)挖掘方法研究[J].數(shù)理醫(yī)學雜志,2010,23(3):502-505.
[7] 李國棟.基于粗糙集和SVM的國防生綜合素質測評方法研究[D].大連:大連理工大學,2011.
[8] 閆永強.基于粗糙集和支持向量機的心電信號分類研究[D].成都:四川師范大學,2010.
[9] 郎榮玲,潘磊,呂永樂,等.基于支持向量機的飛機故障診斷技術[M].北京:國防工業(yè)出版社,2016:46-56.
Application of Rough Set and Support Vector Machines in Diagnosis of Coronary Heart Disease
WangHongwei1,ZhangHongming2,ZhangGuojun3
(1School of Civil Engineering and Architecture,Hubei Polytechnic University,Huangshi Hubei 435003;2Jinan Military Region General Hospital,Jinan Shandong 250031;3School of Computer,Hubei Polytechnic University,Huangshi Hubei 435003)
A method applied in diagnosis of coronary heart disease was proposed,which was based on rough set(RS)and support vector machines(SVM).It used RS to reduce the features attribute of raw data and to obtain an optimized feature attribute set and a new data set.SVM was used for the new data classification training and prediction.The results showed that by using this diagnosis method the accuracy of coronary heart disease prediction can reach above 91%,which has good application prospects.
artificial intelligence;rough set;support vector machines;diagnosis of coronary heart disease
2017-08-03
湖北省自然科學基金科研項目(項目編號2009CDZ004);湖北省教育廳科研項目(項目編號B20104403)。
王宏偉,副教授,碩士,研究方向:計算機模式識別、信息安全。
10.3969/j.issn.2095-4565.2017.06.007
TP18
A
2095-4565(2017)06-0027-04
(責任編輯張銀鳳)