999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VB與MATLAB混合編程的數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件的研究

2014-12-11 11:43:04謝松周衛(wèi)李文林楊秦
關(guān)鍵詞:數(shù)據(jù)挖掘可視化方法

謝松+周衛(wèi)+李文林+楊秦

摘要:基于VB和MATLAB混合編程技術(shù),在自動(dòng)分詞系統(tǒng)與共詞分析的基礎(chǔ)上,設(shè)計(jì)開發(fā)了可應(yīng)用于中醫(yī)藥等領(lǐng)域的數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件系統(tǒng),對(duì)346個(gè)中醫(yī)外用復(fù)方的組成成分與主治病癥進(jìn)行統(tǒng)計(jì)分析與數(shù)據(jù)挖掘,為相關(guān)領(lǐng)域的研究提供快捷便利的分析工具。關(guān)鍵詞:VB;MATLAB;數(shù)據(jù)可視化;數(shù)據(jù)挖掘doi: 10.3969/j.issn.2095-5707.2014.02.003A Research on Data Visualization and Data Mining Software Based on VB and MATLAB Hybrid ProgrammingXie Song, Zhou Wei, Li Wenlin*, Yang Qin(Nanjing University of Traditional Chinese Medicine, Nanjing Jiangsu 210023, China)Abstract: The research designed and developed a data visualization and data mining software which can be applied in Traditional Chinese Medicine(TCM) field based on VB and MATLAB hybrid programming, with the development of automatic segmentation system and co-word analysis. It statistically analyzed composition and effects of 346 TCM compounds for external use, which can be used as a convenient analysis tool in related study field.Key words: VB; MATLAB; data visualization; data mining 數(shù)據(jù)挖掘可以從大量數(shù)據(jù)中發(fā)現(xiàn)隱藏的特定模式和規(guī)律,從而可以為商業(yè)活動(dòng)、科學(xué)探索和醫(yī)學(xué)研究等諸多領(lǐng)域提供必需的信息知識(shí)。數(shù)據(jù)與信息知識(shí)之間的巨大差距迫切需要系統(tǒng)地開發(fā)數(shù)據(jù)挖掘工具,幫助實(shí)現(xiàn)將大量的數(shù)據(jù)轉(zhuǎn)化為知識(shí)財(cái)富。擁有幾千年文化積淀的傳統(tǒng)中醫(yī)藥學(xué)積累了豐富的經(jīng)驗(yàn),擁有大量的文獻(xiàn)。中醫(yī)藥系統(tǒng)是一個(gè)非線性、多維、復(fù)雜而龐大的系統(tǒng),將數(shù)據(jù)挖掘技術(shù)應(yīng)用于中醫(yī)藥領(lǐng)域中的相關(guān)數(shù)據(jù)進(jìn)行整理、提取和挖掘,可以更好地獲取其中蘊(yùn)藏的知識(shí)精華,加速中醫(yī)藥學(xué)的前進(jìn)步伐。VB是Windows環(huán)境下最快捷和易用的可視化集成開發(fā)工具,通過它可以編寫出具有各種風(fēng)格且界面友好的軟件產(chǎn)品。MATLAB是一套集數(shù)值分析、矩陣運(yùn)算、信號(hào)處理和圖形顯示于一體的高性能數(shù)學(xué)軟件,計(jì)算能力十分突出。由于MATLAB編寫復(fù)雜的人基金項(xiàng)目:南京中醫(yī)藥大學(xué)哲學(xué)社會(huì)科學(xué)基金(11XSK15);南京中醫(yī)藥大學(xué)青年自然科學(xué)基金(11XZR19)第一作者:謝松,助理館員,研究方向:中醫(yī)藥數(shù)據(jù)分析與挖掘。E-mail:phoenixtech@163.com*通訊作者:李文林,研究館員,研究方向:中醫(yī)藥數(shù)據(jù)分析與挖掘。E-mail: njutcmli@126.com機(jī)交換界面的功能相對(duì)較弱,而VB提供的計(jì)算能力和繪圖函數(shù)有限。因此,本研究設(shè)計(jì)在VB環(huán)境下調(diào)用MATLAB,充分發(fā)揮各自的優(yōu)勢(shì),開發(fā)應(yīng)用于中醫(yī)藥領(lǐng)域的數(shù)據(jù)可視化與聚類分析系統(tǒng)。1 VB與MATLAB混合編程的幾種方法VB與MATLAB進(jìn)行混合編程,有以下5種方法,分別具體敘述如下:1.1 采用動(dòng)態(tài)數(shù)據(jù)交換(DDE)技術(shù)DDE是在Windows環(huán)境下支持客戶/服務(wù)器(client/server)計(jì)算模式重要技術(shù)之一。VB支持DDE客戶端功能,MATLAB提供DDE服務(wù)功能。VB應(yīng)用程序首先通過確定服務(wù)器名和主題建立與MATLAB的DDE會(huì)話,服務(wù)器名和主題的唯一確定了這次會(huì)話,在會(huì)話期間VB應(yīng)用程序作為客戶端,MATLAB作為服務(wù)器端,客戶端與服務(wù)器端可以就確定的條目(Item)交換數(shù)據(jù)[1]。1.2 采用ActiveX技術(shù)ActiveX技術(shù)是微軟公司提供的一種用于模塊集成的新的協(xié)議,Activex部件是VB工具箱的補(bǔ)充。MATLAB也支持Activex技術(shù),即可以在MATLAB環(huán)境下運(yùn)行其他程序的Activex部件,也可以在其他程序中運(yùn)行MATLAB的Activex部件。因此,在VB中利用Activex自動(dòng)化接口可將MATLAB作為VB的一個(gè)Activex部件來調(diào)用。這樣就可以在VB程序中調(diào)用MATLAB的命令,向MATLAB傳送或從MATLAB中接收數(shù)據(jù),本研究采用的即為這種方式,在第三節(jié)中將詳細(xì)說明如何應(yīng)用ActiveX技術(shù)調(diào)用MATLAB。1.3 將M文件編譯為DLL文件通過Matcom工具把MATLAB編寫的函數(shù)(M文件)編譯為VB可以調(diào)用的DLL文件。Matcom是一個(gè)從MATLAB到C++的編譯器,它借助C++編譯器將MATLAB下的M文件編譯為可被VB調(diào)用的DLL動(dòng)態(tài)鏈接庫或者是獨(dú)立的可執(zhí)行文件。這樣大大提高了程序的運(yùn)行效率,也降低了對(duì)系統(tǒng)資源的占用[2]。1.4 將M文件編譯為EXE文件MATLAB的M文件不能直接在VB中調(diào)用,可利用MCC將M文件直接編譯成可執(zhí)行的EXE文件,然后在VB中聲明3個(gè)API函數(shù),最后使用shell命令即可實(shí)現(xiàn)VB與MATLAB的無縫集成[3]。1.5 使用MatrixVB插件MatrixVB是MathWorks公司專門為VB提供的編程接口,它實(shí)際上是一個(gè)內(nèi)化到VB中的功能豐富的數(shù)學(xué)函數(shù)庫,實(shí)現(xiàn)編程也很簡單,在計(jì)算機(jī)上安裝MatrixVB后,啟動(dòng)VB,建立一個(gè)新的程序,打開工程/引用菜單項(xiàng),選中Matrix項(xiàng),就可以在VB直接調(diào)用MATLAB函數(shù)來進(jìn)行程序的設(shè)計(jì)[4]。2 VB通過ActiveX調(diào)用MATLAB在VB中創(chuàng)建MATLAB的ActiveX對(duì)象后,就可以使用這個(gè)對(duì)象所包含的各種方法,實(shí)現(xiàn)對(duì)MATLAB的調(diào)用。首先創(chuàng)建ActiveX對(duì)象:Dim Mlab as ObjectSet Mlab= CreateObject ("MATLAB. Applica- tion")常用的Mlab.Application 方法有5個(gè)。2.1 Execute([in] BSTR Command)方法BSTR表示寬字符串類型,該方法接收字符串命令,將調(diào)用MATLAB,執(zhí)行一條由Command字符串所決定的一條MATLAB命令,同時(shí)返回命令的執(zhí)行情況,如在VB的文本框Text1中輸入MATLAB語句,在命令按鈕中輸入如下程序即可執(zhí)行查看結(jié)果。也可以在VB中將MATLAB語句賦值給變量,然后傳遞給MATLAB執(zhí)行。Dim Mlab as objectDim Result as stringSet Mlab= CreateObject ("MATLAB.Applica- tion")Cmd= Text1.Textendprint

Result= Mlab.Execute (Cmd)2.2 GetFullMatrix方法GetFullMatrix ([in] BSTR Name, [in] BSTR Workspace, [in, out] SAFEARRAY (double) * pr,[in, out] SAFEARRAY (double) * pi)GetFullMatrix方法將MATLAB中的一個(gè)矩陣變量傳送到VB中的一個(gè)一維或二維數(shù)組中,其中Name指定了MATLAB中的矩陣變量名,Workspace指定了該矩陣所在的MATLAB所在的工作區(qū),pr是VB程序中的實(shí)部,pi是VB程序中的虛部。2.3 PutFullMatrix方法PutFullMatrix([in] BSTR Name, [in] BSTR Workspace,[in, out] SAFEARRAY (double) * pr,[in, out] SAFEARRAY (double) * pi)PutFullMatrix方法是將VB程序中的一個(gè)一維或二維數(shù)組傳遞到指定的MATLAB空間,各參數(shù)的意義和調(diào)用方法與GetFullMatrix方法類似。2.4 Void Minimize Command Window( )方法該方法使MATLAB的命令窗口最小化。2.5 Void Maximum Command Window( )方法該方法使MATLAB的命令窗口最大化。3 軟件的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1 系統(tǒng)數(shù)據(jù)庫與數(shù)據(jù)來源本研究前期根據(jù)《中華人民共和國藥典(2005版)》搜集整理了中醫(yī)常用的141個(gè)單味藥信息,包括藥物名稱、漢語拼音、基原、性狀、鑒別、用途、炮制方法、性味、歸經(jīng)、功效、主治、用法用量、用藥禁忌等多個(gè)字段,以及346個(gè)外用復(fù)方,包含復(fù)方名稱、別名、處方來源、藥物組成、加減、功效、主治、制備方法、用法用量、用藥禁忌、臨床應(yīng)用、藥理、各家論述等。并根據(jù)復(fù)方劑型、主治的病癥規(guī)范統(tǒng)一,存進(jìn)SQL Server數(shù)據(jù)庫,作為實(shí)驗(yàn)數(shù)據(jù)。數(shù)據(jù)庫詳細(xì)設(shè)計(jì)在此略過。3.2 模塊組成數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件的研究主要包括兩個(gè)功能模塊,中醫(yī)外用藥數(shù)據(jù)庫模塊以及數(shù)據(jù)可視化與數(shù)據(jù)挖掘模塊。其中,主要的數(shù)據(jù)可視化與數(shù)據(jù)挖掘模塊如圖1所示。3.2.1 數(shù)據(jù)預(yù)處理模塊 對(duì)需可視化和數(shù)據(jù)挖掘的源數(shù)據(jù)進(jìn)行規(guī)范化處理,處理完成后存進(jìn)數(shù)據(jù)庫。文本分詞系統(tǒng)根據(jù)《全國中草藥匯編》所建的詞表對(duì)特定的文獻(xiàn)資料進(jìn)行分詞處理,本研究針對(duì)中藥外用藥領(lǐng)域的復(fù)方組成成分,使用逆向最長匹配算法,切分出復(fù)方的各個(gè)藥物組成,并進(jìn)行統(tǒng)計(jì)處理,分詞結(jié)果可以作為可視化與數(shù)據(jù)挖掘的對(duì)象之一。 圖1 系統(tǒng)功能模塊圖3.2.2 數(shù)據(jù)可視化模塊 對(duì)數(shù)據(jù)對(duì)象進(jìn)行二維或三維可視化顯示,數(shù)據(jù)對(duì)象來源不限,可以為既有數(shù)據(jù),或新處理的分詞結(jié)果。根據(jù)適用對(duì)象的不同,可視化的方式也可繪出柱狀圖、餅狀圖、散點(diǎn)圖、火柴桿圖、面積圖、階梯圖等多種形式。3.2.3 數(shù)據(jù)挖掘模塊 系統(tǒng)采用基于共詞分析的聚類分析方法,對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行高頻字段統(tǒng)計(jì),計(jì)算得出共詞矩陣,通過計(jì)算Ochiia系數(shù),將共詞矩陣轉(zhuǎn)化為相似矩陣和相異矩陣,最后進(jìn)行聚類分析,畫出聚類樹形圖。3.3 數(shù)據(jù)可視化與聚類分析示例3.3.1 二維柱狀圖 在程序中調(diào)用MATLAB繪制二維柱狀圖的代碼如下,生成的圖形如圖2所示。Set Mlab = CreateObject ("MATLAB.Applica- tion")Mlab.Execute (cmdMATLAB) 前面已經(jīng)給字符串變量cmdMATLAB賦值,通過MATLAB執(zhí)行命令創(chuàng)建數(shù)據(jù)矩陣或向量。Mlab.Execute ("bar(X),'stacked'") 通過函數(shù)bar()繪制二維柱狀圖。Mlab.Execute ("title('" & vXlabel & "柱狀圖', 'FontSize',15 )") 給圖形添加標(biāo)題,設(shè)置字體字號(hào)。Mlab.Execute ("Ylabel('\it " & vYlabel &", FontSize',12 )")Mlab.Execute ("Xlabel('" & vXlabel & "序號(hào) , 'FontSize',12 )") 給圖形縱坐標(biāo)、橫坐標(biāo)添加標(biāo)簽,設(shè)置字體字號(hào)。Mlab.Execute ("set (gca, xtick, 1︰1︰" & vRcnt & ")") 給坐標(biāo)軸添加向量刻度。 圖2 復(fù)方劑型統(tǒng)計(jì)二維柱狀圖從圖2可以直觀地看出,在整理出的346個(gè)外用復(fù)方中,采用散劑作為劑型的復(fù)方有128個(gè),膏劑有113個(gè),丸劑有52個(gè),液劑有38個(gè),餅劑有6個(gè),片劑有2個(gè),霜?jiǎng)┲挥?個(gè),其他不可直接判斷是何種劑型的復(fù)方有6個(gè)。3.3.2 三維火柴桿圖 與繪制柱狀圖類似,給變量cmdMATLAB賦值之后傳遞給MATLAB,創(chuàng)建數(shù)據(jù)矩陣或向量,即可通過命令Mlab.Execute ("stem3(X)")繪制三維火柴桿圖,如圖3所示。 圖3 復(fù)方劑型統(tǒng)計(jì)三維火柴桿圖如圖3所示,數(shù)據(jù)來源也是346個(gè)外用復(fù)方,然后根據(jù)劑型繪制出三維火柴桿圖。3.3.3 聚類分析 本研究中的數(shù)據(jù)挖掘是基于共詞研究的聚類分析。聚類分析法對(duì)于共詞關(guān)系網(wǎng)絡(luò)中的詞與詞之間的距離進(jìn)行數(shù)學(xué)運(yùn)算分析,將距離較近的主題詞聚集起來,形成一個(gè)個(gè)概念相對(duì)獨(dú)立的類團(tuán),使得類團(tuán)內(nèi)屬性相似性最大,類團(tuán)間相似性最小[5]。本研究對(duì)于中藥復(fù)方中的藥材進(jìn)行切分統(tǒng)計(jì)之后,再根據(jù)復(fù)方功效總結(jié)其對(duì)應(yīng)的主治病癥,一起進(jìn)行高頻關(guān)鍵詞統(tǒng)計(jì),并計(jì)算得出共詞矩陣。再利用Ochiia系數(shù)計(jì)算出相似矩陣和相異矩陣,并作聚類分析,可以得知針對(duì)某些病癥的用藥規(guī)律。 圖4 中藥外用復(fù)方組成藥材主治聚類分析圖在高頻關(guān)鍵詞中按頻次從高到低的順序,排前30位的依次是冰片、白礬、乳香、雄黃、輕粉、瘡瘍、沒藥、麝香、黃柏、黃連、白芷、濕疹、當(dāng)歸、甘草、石膏、朱砂、癰疽、青黛、大黃、龍骨、血竭、防風(fēng)、五倍子、骨病關(guān)節(jié)病、硫黃、細(xì)辛、潰瘍、川芎、體癬、白及。在圖4中對(duì)應(yīng)的編號(hào)從1依次到30。將這些關(guān)鍵詞進(jìn)行聚類分析,結(jié)果如圖4所示。以圖舉例來說,編號(hào)15、17、20、30即表示石膏、癰疽、龍骨、白及,較早地聚為一類,很好地解釋了在治療癰疽時(shí)的用藥特點(diǎn)。4 小結(jié)本研究采用VB和MATLAB混合編程開發(fā)的數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件,提供友好的用戶交互界面,并以數(shù)據(jù)預(yù)處理、自動(dòng)分詞切詞處理、共詞分析研究等完整的流程,進(jìn)行外用復(fù)方藥材與病癥的聚類分析。應(yīng)用此軟件的優(yōu)勢(shì)在于,以前復(fù)雜煩瑣的依據(jù)文獻(xiàn)內(nèi)容人工進(jìn)行藥材摘錄、統(tǒng)計(jì)等工作,現(xiàn)在可以用程序自動(dòng)完成,大大簡化了不必要的勞動(dòng),并且對(duì)數(shù)據(jù)進(jìn)行分析挖掘,將結(jié)果以多種形式可視化地展現(xiàn)出來,為開發(fā)中醫(yī)藥和其他領(lǐng)域的應(yīng)用程序積累了經(jīng)驗(yàn),并為科研工作提供了有力的技術(shù)支持與新的方法。參考文獻(xiàn)[1]崔桂彬,王汝霖,李春梅,等.基于VB與MATLAB的圖像處理軟件設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(30):260-262.[2]譚炎,張凌燕.MATLAB與VB混合編程技術(shù)研究[J].微計(jì)算機(jī)信息,2006,22(15):247-249.[3]陳麗君,任文濤,趙萍.基于VB和MATLAB的苗田圖像實(shí)時(shí)處理軟件設(shè)計(jì)[J].農(nóng)機(jī)化研究,2009,31(11):145-147.[4]盧振,曹屹,范永.基于VB與MATLAB混合編程數(shù)據(jù)庫圖形顯示方法[J].制導(dǎo)與引信,2009,30(3):36-40.[5]黃詠梅.讀者需求分析中的數(shù)據(jù)挖掘技術(shù)[J].大學(xué)圖書情報(bào)學(xué)刊,2006,24(4):48-50.(收稿日期:2013-10-24,編輯:魏民)endprint

Result= Mlab.Execute (Cmd)2.2 GetFullMatrix方法GetFullMatrix ([in] BSTR Name, [in] BSTR Workspace, [in, out] SAFEARRAY (double) * pr,[in, out] SAFEARRAY (double) * pi)GetFullMatrix方法將MATLAB中的一個(gè)矩陣變量傳送到VB中的一個(gè)一維或二維數(shù)組中,其中Name指定了MATLAB中的矩陣變量名,Workspace指定了該矩陣所在的MATLAB所在的工作區(qū),pr是VB程序中的實(shí)部,pi是VB程序中的虛部。2.3 PutFullMatrix方法PutFullMatrix([in] BSTR Name, [in] BSTR Workspace,[in, out] SAFEARRAY (double) * pr,[in, out] SAFEARRAY (double) * pi)PutFullMatrix方法是將VB程序中的一個(gè)一維或二維數(shù)組傳遞到指定的MATLAB空間,各參數(shù)的意義和調(diào)用方法與GetFullMatrix方法類似。2.4 Void Minimize Command Window( )方法該方法使MATLAB的命令窗口最小化。2.5 Void Maximum Command Window( )方法該方法使MATLAB的命令窗口最大化。3 軟件的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1 系統(tǒng)數(shù)據(jù)庫與數(shù)據(jù)來源本研究前期根據(jù)《中華人民共和國藥典(2005版)》搜集整理了中醫(yī)常用的141個(gè)單味藥信息,包括藥物名稱、漢語拼音、基原、性狀、鑒別、用途、炮制方法、性味、歸經(jīng)、功效、主治、用法用量、用藥禁忌等多個(gè)字段,以及346個(gè)外用復(fù)方,包含復(fù)方名稱、別名、處方來源、藥物組成、加減、功效、主治、制備方法、用法用量、用藥禁忌、臨床應(yīng)用、藥理、各家論述等。并根據(jù)復(fù)方劑型、主治的病癥規(guī)范統(tǒng)一,存進(jìn)SQL Server數(shù)據(jù)庫,作為實(shí)驗(yàn)數(shù)據(jù)。數(shù)據(jù)庫詳細(xì)設(shè)計(jì)在此略過。3.2 模塊組成數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件的研究主要包括兩個(gè)功能模塊,中醫(yī)外用藥數(shù)據(jù)庫模塊以及數(shù)據(jù)可視化與數(shù)據(jù)挖掘模塊。其中,主要的數(shù)據(jù)可視化與數(shù)據(jù)挖掘模塊如圖1所示。3.2.1 數(shù)據(jù)預(yù)處理模塊 對(duì)需可視化和數(shù)據(jù)挖掘的源數(shù)據(jù)進(jìn)行規(guī)范化處理,處理完成后存進(jìn)數(shù)據(jù)庫。文本分詞系統(tǒng)根據(jù)《全國中草藥匯編》所建的詞表對(duì)特定的文獻(xiàn)資料進(jìn)行分詞處理,本研究針對(duì)中藥外用藥領(lǐng)域的復(fù)方組成成分,使用逆向最長匹配算法,切分出復(fù)方的各個(gè)藥物組成,并進(jìn)行統(tǒng)計(jì)處理,分詞結(jié)果可以作為可視化與數(shù)據(jù)挖掘的對(duì)象之一。 圖1 系統(tǒng)功能模塊圖3.2.2 數(shù)據(jù)可視化模塊 對(duì)數(shù)據(jù)對(duì)象進(jìn)行二維或三維可視化顯示,數(shù)據(jù)對(duì)象來源不限,可以為既有數(shù)據(jù),或新處理的分詞結(jié)果。根據(jù)適用對(duì)象的不同,可視化的方式也可繪出柱狀圖、餅狀圖、散點(diǎn)圖、火柴桿圖、面積圖、階梯圖等多種形式。3.2.3 數(shù)據(jù)挖掘模塊 系統(tǒng)采用基于共詞分析的聚類分析方法,對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行高頻字段統(tǒng)計(jì),計(jì)算得出共詞矩陣,通過計(jì)算Ochiia系數(shù),將共詞矩陣轉(zhuǎn)化為相似矩陣和相異矩陣,最后進(jìn)行聚類分析,畫出聚類樹形圖。3.3 數(shù)據(jù)可視化與聚類分析示例3.3.1 二維柱狀圖 在程序中調(diào)用MATLAB繪制二維柱狀圖的代碼如下,生成的圖形如圖2所示。Set Mlab = CreateObject ("MATLAB.Applica- tion")Mlab.Execute (cmdMATLAB) 前面已經(jīng)給字符串變量cmdMATLAB賦值,通過MATLAB執(zhí)行命令創(chuàng)建數(shù)據(jù)矩陣或向量。Mlab.Execute ("bar(X),'stacked'") 通過函數(shù)bar()繪制二維柱狀圖。Mlab.Execute ("title('" & vXlabel & "柱狀圖', 'FontSize',15 )") 給圖形添加標(biāo)題,設(shè)置字體字號(hào)。Mlab.Execute ("Ylabel('\it " & vYlabel &", FontSize',12 )")Mlab.Execute ("Xlabel('" & vXlabel & "序號(hào) , 'FontSize',12 )") 給圖形縱坐標(biāo)、橫坐標(biāo)添加標(biāo)簽,設(shè)置字體字號(hào)。Mlab.Execute ("set (gca, xtick, 1︰1︰" & vRcnt & ")") 給坐標(biāo)軸添加向量刻度。 圖2 復(fù)方劑型統(tǒng)計(jì)二維柱狀圖從圖2可以直觀地看出,在整理出的346個(gè)外用復(fù)方中,采用散劑作為劑型的復(fù)方有128個(gè),膏劑有113個(gè),丸劑有52個(gè),液劑有38個(gè),餅劑有6個(gè),片劑有2個(gè),霜?jiǎng)┲挥?個(gè),其他不可直接判斷是何種劑型的復(fù)方有6個(gè)。3.3.2 三維火柴桿圖 與繪制柱狀圖類似,給變量cmdMATLAB賦值之后傳遞給MATLAB,創(chuàng)建數(shù)據(jù)矩陣或向量,即可通過命令Mlab.Execute ("stem3(X)")繪制三維火柴桿圖,如圖3所示。 圖3 復(fù)方劑型統(tǒng)計(jì)三維火柴桿圖如圖3所示,數(shù)據(jù)來源也是346個(gè)外用復(fù)方,然后根據(jù)劑型繪制出三維火柴桿圖。3.3.3 聚類分析 本研究中的數(shù)據(jù)挖掘是基于共詞研究的聚類分析。聚類分析法對(duì)于共詞關(guān)系網(wǎng)絡(luò)中的詞與詞之間的距離進(jìn)行數(shù)學(xué)運(yùn)算分析,將距離較近的主題詞聚集起來,形成一個(gè)個(gè)概念相對(duì)獨(dú)立的類團(tuán),使得類團(tuán)內(nèi)屬性相似性最大,類團(tuán)間相似性最小[5]。本研究對(duì)于中藥復(fù)方中的藥材進(jìn)行切分統(tǒng)計(jì)之后,再根據(jù)復(fù)方功效總結(jié)其對(duì)應(yīng)的主治病癥,一起進(jìn)行高頻關(guān)鍵詞統(tǒng)計(jì),并計(jì)算得出共詞矩陣。再利用Ochiia系數(shù)計(jì)算出相似矩陣和相異矩陣,并作聚類分析,可以得知針對(duì)某些病癥的用藥規(guī)律。 圖4 中藥外用復(fù)方組成藥材主治聚類分析圖在高頻關(guān)鍵詞中按頻次從高到低的順序,排前30位的依次是冰片、白礬、乳香、雄黃、輕粉、瘡瘍、沒藥、麝香、黃柏、黃連、白芷、濕疹、當(dāng)歸、甘草、石膏、朱砂、癰疽、青黛、大黃、龍骨、血竭、防風(fēng)、五倍子、骨病關(guān)節(jié)病、硫黃、細(xì)辛、潰瘍、川芎、體癬、白及。在圖4中對(duì)應(yīng)的編號(hào)從1依次到30。將這些關(guān)鍵詞進(jìn)行聚類分析,結(jié)果如圖4所示。以圖舉例來說,編號(hào)15、17、20、30即表示石膏、癰疽、龍骨、白及,較早地聚為一類,很好地解釋了在治療癰疽時(shí)的用藥特點(diǎn)。4 小結(jié)本研究采用VB和MATLAB混合編程開發(fā)的數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件,提供友好的用戶交互界面,并以數(shù)據(jù)預(yù)處理、自動(dòng)分詞切詞處理、共詞分析研究等完整的流程,進(jìn)行外用復(fù)方藥材與病癥的聚類分析。應(yīng)用此軟件的優(yōu)勢(shì)在于,以前復(fù)雜煩瑣的依據(jù)文獻(xiàn)內(nèi)容人工進(jìn)行藥材摘錄、統(tǒng)計(jì)等工作,現(xiàn)在可以用程序自動(dòng)完成,大大簡化了不必要的勞動(dòng),并且對(duì)數(shù)據(jù)進(jìn)行分析挖掘,將結(jié)果以多種形式可視化地展現(xiàn)出來,為開發(fā)中醫(yī)藥和其他領(lǐng)域的應(yīng)用程序積累了經(jīng)驗(yàn),并為科研工作提供了有力的技術(shù)支持與新的方法。參考文獻(xiàn)[1]崔桂彬,王汝霖,李春梅,等.基于VB與MATLAB的圖像處理軟件設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(30):260-262.[2]譚炎,張凌燕.MATLAB與VB混合編程技術(shù)研究[J].微計(jì)算機(jī)信息,2006,22(15):247-249.[3]陳麗君,任文濤,趙萍.基于VB和MATLAB的苗田圖像實(shí)時(shí)處理軟件設(shè)計(jì)[J].農(nóng)機(jī)化研究,2009,31(11):145-147.[4]盧振,曹屹,范永.基于VB與MATLAB混合編程數(shù)據(jù)庫圖形顯示方法[J].制導(dǎo)與引信,2009,30(3):36-40.[5]黃詠梅.讀者需求分析中的數(shù)據(jù)挖掘技術(shù)[J].大學(xué)圖書情報(bào)學(xué)刊,2006,24(4):48-50.(收稿日期:2013-10-24,編輯:魏民)endprint

Result= Mlab.Execute (Cmd)2.2 GetFullMatrix方法GetFullMatrix ([in] BSTR Name, [in] BSTR Workspace, [in, out] SAFEARRAY (double) * pr,[in, out] SAFEARRAY (double) * pi)GetFullMatrix方法將MATLAB中的一個(gè)矩陣變量傳送到VB中的一個(gè)一維或二維數(shù)組中,其中Name指定了MATLAB中的矩陣變量名,Workspace指定了該矩陣所在的MATLAB所在的工作區(qū),pr是VB程序中的實(shí)部,pi是VB程序中的虛部。2.3 PutFullMatrix方法PutFullMatrix([in] BSTR Name, [in] BSTR Workspace,[in, out] SAFEARRAY (double) * pr,[in, out] SAFEARRAY (double) * pi)PutFullMatrix方法是將VB程序中的一個(gè)一維或二維數(shù)組傳遞到指定的MATLAB空間,各參數(shù)的意義和調(diào)用方法與GetFullMatrix方法類似。2.4 Void Minimize Command Window( )方法該方法使MATLAB的命令窗口最小化。2.5 Void Maximum Command Window( )方法該方法使MATLAB的命令窗口最大化。3 軟件的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1 系統(tǒng)數(shù)據(jù)庫與數(shù)據(jù)來源本研究前期根據(jù)《中華人民共和國藥典(2005版)》搜集整理了中醫(yī)常用的141個(gè)單味藥信息,包括藥物名稱、漢語拼音、基原、性狀、鑒別、用途、炮制方法、性味、歸經(jīng)、功效、主治、用法用量、用藥禁忌等多個(gè)字段,以及346個(gè)外用復(fù)方,包含復(fù)方名稱、別名、處方來源、藥物組成、加減、功效、主治、制備方法、用法用量、用藥禁忌、臨床應(yīng)用、藥理、各家論述等。并根據(jù)復(fù)方劑型、主治的病癥規(guī)范統(tǒng)一,存進(jìn)SQL Server數(shù)據(jù)庫,作為實(shí)驗(yàn)數(shù)據(jù)。數(shù)據(jù)庫詳細(xì)設(shè)計(jì)在此略過。3.2 模塊組成數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件的研究主要包括兩個(gè)功能模塊,中醫(yī)外用藥數(shù)據(jù)庫模塊以及數(shù)據(jù)可視化與數(shù)據(jù)挖掘模塊。其中,主要的數(shù)據(jù)可視化與數(shù)據(jù)挖掘模塊如圖1所示。3.2.1 數(shù)據(jù)預(yù)處理模塊 對(duì)需可視化和數(shù)據(jù)挖掘的源數(shù)據(jù)進(jìn)行規(guī)范化處理,處理完成后存進(jìn)數(shù)據(jù)庫。文本分詞系統(tǒng)根據(jù)《全國中草藥匯編》所建的詞表對(duì)特定的文獻(xiàn)資料進(jìn)行分詞處理,本研究針對(duì)中藥外用藥領(lǐng)域的復(fù)方組成成分,使用逆向最長匹配算法,切分出復(fù)方的各個(gè)藥物組成,并進(jìn)行統(tǒng)計(jì)處理,分詞結(jié)果可以作為可視化與數(shù)據(jù)挖掘的對(duì)象之一。 圖1 系統(tǒng)功能模塊圖3.2.2 數(shù)據(jù)可視化模塊 對(duì)數(shù)據(jù)對(duì)象進(jìn)行二維或三維可視化顯示,數(shù)據(jù)對(duì)象來源不限,可以為既有數(shù)據(jù),或新處理的分詞結(jié)果。根據(jù)適用對(duì)象的不同,可視化的方式也可繪出柱狀圖、餅狀圖、散點(diǎn)圖、火柴桿圖、面積圖、階梯圖等多種形式。3.2.3 數(shù)據(jù)挖掘模塊 系統(tǒng)采用基于共詞分析的聚類分析方法,對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行高頻字段統(tǒng)計(jì),計(jì)算得出共詞矩陣,通過計(jì)算Ochiia系數(shù),將共詞矩陣轉(zhuǎn)化為相似矩陣和相異矩陣,最后進(jìn)行聚類分析,畫出聚類樹形圖。3.3 數(shù)據(jù)可視化與聚類分析示例3.3.1 二維柱狀圖 在程序中調(diào)用MATLAB繪制二維柱狀圖的代碼如下,生成的圖形如圖2所示。Set Mlab = CreateObject ("MATLAB.Applica- tion")Mlab.Execute (cmdMATLAB) 前面已經(jīng)給字符串變量cmdMATLAB賦值,通過MATLAB執(zhí)行命令創(chuàng)建數(shù)據(jù)矩陣或向量。Mlab.Execute ("bar(X),'stacked'") 通過函數(shù)bar()繪制二維柱狀圖。Mlab.Execute ("title('" & vXlabel & "柱狀圖', 'FontSize',15 )") 給圖形添加標(biāo)題,設(shè)置字體字號(hào)。Mlab.Execute ("Ylabel('\it " & vYlabel &", FontSize',12 )")Mlab.Execute ("Xlabel('" & vXlabel & "序號(hào) , 'FontSize',12 )") 給圖形縱坐標(biāo)、橫坐標(biāo)添加標(biāo)簽,設(shè)置字體字號(hào)。Mlab.Execute ("set (gca, xtick, 1︰1︰" & vRcnt & ")") 給坐標(biāo)軸添加向量刻度。 圖2 復(fù)方劑型統(tǒng)計(jì)二維柱狀圖從圖2可以直觀地看出,在整理出的346個(gè)外用復(fù)方中,采用散劑作為劑型的復(fù)方有128個(gè),膏劑有113個(gè),丸劑有52個(gè),液劑有38個(gè),餅劑有6個(gè),片劑有2個(gè),霜?jiǎng)┲挥?個(gè),其他不可直接判斷是何種劑型的復(fù)方有6個(gè)。3.3.2 三維火柴桿圖 與繪制柱狀圖類似,給變量cmdMATLAB賦值之后傳遞給MATLAB,創(chuàng)建數(shù)據(jù)矩陣或向量,即可通過命令Mlab.Execute ("stem3(X)")繪制三維火柴桿圖,如圖3所示。 圖3 復(fù)方劑型統(tǒng)計(jì)三維火柴桿圖如圖3所示,數(shù)據(jù)來源也是346個(gè)外用復(fù)方,然后根據(jù)劑型繪制出三維火柴桿圖。3.3.3 聚類分析 本研究中的數(shù)據(jù)挖掘是基于共詞研究的聚類分析。聚類分析法對(duì)于共詞關(guān)系網(wǎng)絡(luò)中的詞與詞之間的距離進(jìn)行數(shù)學(xué)運(yùn)算分析,將距離較近的主題詞聚集起來,形成一個(gè)個(gè)概念相對(duì)獨(dú)立的類團(tuán),使得類團(tuán)內(nèi)屬性相似性最大,類團(tuán)間相似性最小[5]。本研究對(duì)于中藥復(fù)方中的藥材進(jìn)行切分統(tǒng)計(jì)之后,再根據(jù)復(fù)方功效總結(jié)其對(duì)應(yīng)的主治病癥,一起進(jìn)行高頻關(guān)鍵詞統(tǒng)計(jì),并計(jì)算得出共詞矩陣。再利用Ochiia系數(shù)計(jì)算出相似矩陣和相異矩陣,并作聚類分析,可以得知針對(duì)某些病癥的用藥規(guī)律。 圖4 中藥外用復(fù)方組成藥材主治聚類分析圖在高頻關(guān)鍵詞中按頻次從高到低的順序,排前30位的依次是冰片、白礬、乳香、雄黃、輕粉、瘡瘍、沒藥、麝香、黃柏、黃連、白芷、濕疹、當(dāng)歸、甘草、石膏、朱砂、癰疽、青黛、大黃、龍骨、血竭、防風(fēng)、五倍子、骨病關(guān)節(jié)病、硫黃、細(xì)辛、潰瘍、川芎、體癬、白及。在圖4中對(duì)應(yīng)的編號(hào)從1依次到30。將這些關(guān)鍵詞進(jìn)行聚類分析,結(jié)果如圖4所示。以圖舉例來說,編號(hào)15、17、20、30即表示石膏、癰疽、龍骨、白及,較早地聚為一類,很好地解釋了在治療癰疽時(shí)的用藥特點(diǎn)。4 小結(jié)本研究采用VB和MATLAB混合編程開發(fā)的數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件,提供友好的用戶交互界面,并以數(shù)據(jù)預(yù)處理、自動(dòng)分詞切詞處理、共詞分析研究等完整的流程,進(jìn)行外用復(fù)方藥材與病癥的聚類分析。應(yīng)用此軟件的優(yōu)勢(shì)在于,以前復(fù)雜煩瑣的依據(jù)文獻(xiàn)內(nèi)容人工進(jìn)行藥材摘錄、統(tǒng)計(jì)等工作,現(xiàn)在可以用程序自動(dòng)完成,大大簡化了不必要的勞動(dòng),并且對(duì)數(shù)據(jù)進(jìn)行分析挖掘,將結(jié)果以多種形式可視化地展現(xiàn)出來,為開發(fā)中醫(yī)藥和其他領(lǐng)域的應(yīng)用程序積累了經(jīng)驗(yàn),并為科研工作提供了有力的技術(shù)支持與新的方法。參考文獻(xiàn)[1]崔桂彬,王汝霖,李春梅,等.基于VB與MATLAB的圖像處理軟件設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(30):260-262.[2]譚炎,張凌燕.MATLAB與VB混合編程技術(shù)研究[J].微計(jì)算機(jī)信息,2006,22(15):247-249.[3]陳麗君,任文濤,趙萍.基于VB和MATLAB的苗田圖像實(shí)時(shí)處理軟件設(shè)計(jì)[J].農(nóng)機(jī)化研究,2009,31(11):145-147.[4]盧振,曹屹,范永.基于VB與MATLAB混合編程數(shù)據(jù)庫圖形顯示方法[J].制導(dǎo)與引信,2009,30(3):36-40.[5]黃詠梅.讀者需求分析中的數(shù)據(jù)挖掘技術(shù)[J].大學(xué)圖書情報(bào)學(xué)刊,2006,24(4):48-50.(收稿日期:2013-10-24,編輯:魏民)endprint

猜你喜歡
數(shù)據(jù)挖掘可視化方法
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
探討人工智能與數(shù)據(jù)挖掘發(fā)展趨勢(shì)
基于CGAL和OpenGL的海底地形三維可視化
“融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
基于并行計(jì)算的大數(shù)據(jù)挖掘在電網(wǎng)中的應(yīng)用
電力與能源(2017年6期)2017-05-14 06:19:37
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
一種基于Hadoop的大數(shù)據(jù)挖掘云服務(wù)及應(yīng)用
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 国产浮力第一页永久地址| 日韩免费无码人妻系列| 欧美日韩中文字幕在线| 精品国产一区91在线| 国产91无毒不卡在线观看| 99性视频| 成人亚洲视频| 在线欧美国产| 国产日本一区二区三区| 欧美日韩亚洲综合在线观看| 中文无码日韩精品| 凹凸国产分类在线观看| 成人免费视频一区| 国产亚洲精品yxsp| 在线观看无码av五月花| 亚洲第一页在线观看| 亚洲精品无码成人片在线观看| 国内精品视频| 国产午夜人做人免费视频中文 | 91系列在线观看| 亚洲精品国产成人7777| 一本无码在线观看| 国产免费福利网站| 国产精品分类视频分类一区| 丝袜美女被出水视频一区| 久久青草热| 免费不卡视频| 成人福利在线免费观看| 国产资源免费观看| 久久77777| 一级爆乳无码av| 国产人免费人成免费视频| 亚洲第一在线播放| 国产一区亚洲一区| 国产激情无码一区二区APP| 国产偷国产偷在线高清| 久久综合亚洲鲁鲁九月天| 国产色网站| 久久夜色精品| 最新国产麻豆aⅴ精品无| 国产成年无码AⅤ片在线 | 91九色国产在线| 一级毛片免费播放视频| 国产超碰一区二区三区| 国产精品女主播| 91亚洲精品第一| 国产一区二区三区夜色| 激情综合婷婷丁香五月尤物| 91美女视频在线| 国产性精品| 欧美综合在线观看| 国产精品亚洲一区二区三区在线观看| 91色综合综合热五月激情| 亚洲高清在线播放| 亚洲中文字幕av无码区| 国产女人在线| 欧美在线三级| 欧美一级夜夜爽www| 精品三级网站| 久久精品人人做人人爽97| 国产在线91在线电影| 日韩在线网址| 色视频久久| 国产成人无码AV在线播放动漫| 欧美福利在线播放| 又大又硬又爽免费视频| 欧美日本激情| 东京热一区二区三区无码视频| 国产麻豆福利av在线播放| 国产精品短篇二区| 色婷婷天天综合在线| 最新亚洲av女人的天堂| 亚洲欧洲一区二区三区| 欧美成人精品在线| 91精品久久久久久无码人妻| 精品人妻系列无码专区久久| 亚洲av日韩av制服丝袜| 欧美激情伊人| 亚洲二三区| 一级毛片在线播放免费| 欧美亚洲网| 久久亚洲精少妇毛片午夜无码 |