杜曉冬,王 俊
(合肥學(xué)院 基礎(chǔ)教學(xué)與實(shí)訓(xùn)中心,安徽 合肥 230601)
近幾年,信息技術(shù)特別是人工智能技術(shù)的發(fā)展與應(yīng)用不斷加速,人工智能的理論研究與應(yīng)用進(jìn)入全新的階段。中國具有龐大的人工智能市場,也將人工智能的發(fā)展提升到了國家戰(zhàn)略高度[1]。我國教育部正在研究人工智能專業(yè)的設(shè)立,以進(jìn)一步完善我國的人工智能教育體系[2]。同時(shí),與人工智能技術(shù)交叉融合的新興學(xué)科也開始出現(xiàn),如計(jì)算教育學(xué)[3]等。機(jī)器學(xué)習(xí)作為人工智能中的關(guān)鍵技術(shù),在工業(yè)、農(nóng)業(yè)、金融等領(lǐng)域的應(yīng)用日益增加。在自動化控制方面,人工智能技術(shù),特別是機(jī)器學(xué)習(xí)算法已經(jīng)應(yīng)用于自動化操作、設(shè)備故障診斷、系統(tǒng)遠(yuǎn)程控制等等,體現(xiàn)了人工智能技術(shù)在自動化控制中的廣泛應(yīng)用前景。因此,能夠綜合使用機(jī)器學(xué)習(xí)技術(shù)解決自動化控制中實(shí)際問題的應(yīng)用型人才已經(jīng)成為當(dāng)今人才市場上的翹楚,形成了供不應(yīng)求的局面[4]。應(yīng)用人才的培養(yǎng),不僅需要提升其理論知識,更需要鍛煉其工程實(shí)踐能力。因此,作為理論教學(xué)的另一條“腿”,實(shí)驗(yàn)教學(xué)的重要性慢慢體現(xiàn)出來。
在實(shí)驗(yàn)教學(xué)中,軟件或硬件的實(shí)驗(yàn)平臺是不可或缺的。市面上已經(jīng)存在多式多樣的針對不同學(xué)科的實(shí)驗(yàn)平臺產(chǎn)品,然而這些商品化平臺往往是通用的,僅能實(shí)施初級的、簡單的實(shí)驗(yàn)。另外,由于各校的培養(yǎng)模式、學(xué)科優(yōu)勢、學(xué)校傳統(tǒng),甚至是對口工作單位存在較大差異。因此,開發(fā)針對本?;虮鞠堤厣膶?shí)驗(yàn)平臺的必要性日益凸顯[5]。已有研究中,在機(jī)械電子領(lǐng)域,龐在祥等[6]基于三坐標(biāo)測量儀機(jī)械結(jié)構(gòu)設(shè)計(jì)了一種機(jī)電綜合實(shí)驗(yàn)教學(xué)平臺,能讓學(xué)生深入了解機(jī)電系統(tǒng)的控制原理與方法。在圖像處理領(lǐng)域,范哲意等[7]提出了一種基于FPGA與模型化設(shè)計(jì)方法的圖像處理實(shí)驗(yàn)平臺,能夠用于圖像處理研究方向的實(shí)驗(yàn)教學(xué)。在機(jī)器人領(lǐng)域,Riggs T A等[8]實(shí)現(xiàn)了自主移動機(jī)器人系統(tǒng)室內(nèi)試驗(yàn)臺的設(shè)計(jì)與搭建,用于開發(fā)和驗(yàn)證多個(gè)自主移動機(jī)器人系統(tǒng)的識別、協(xié)調(diào)與協(xié)作控制、軌跡生成、計(jì)算智能和傳感等方面的理論和實(shí)踐研究工作。在通信領(lǐng)域,Rimal B P等[9]開發(fā)了一個(gè)跨融合FiWi寬帶接入網(wǎng)的邊緣計(jì)算實(shí)驗(yàn)試驗(yàn)臺,能夠用于研究邊緣計(jì)算的響應(yīng)時(shí)間和響應(yīng)時(shí)間效率。在自動控制領(lǐng)域,胡文山等[10]設(shè)計(jì)了一種基于NCSLab的模塊化遠(yuǎn)程實(shí)驗(yàn)平臺,能夠?yàn)榫W(wǎng)絡(luò)化控制系統(tǒng)的研究者提供實(shí)體設(shè)備和虛擬設(shè)備的控制算法實(shí)驗(yàn)研究。在信息安全領(lǐng)域,付秀偉等[11]提出一種基于安全加密算法的數(shù)字邏輯仿真實(shí)驗(yàn)平臺,可以幫助學(xué)生增強(qiáng)對數(shù)字邏輯知識的理解。
而機(jī)器學(xué)習(xí)作為一門獨(dú)立的學(xué)科,開發(fā)專門針對機(jī)器學(xué)習(xí)研究的實(shí)驗(yàn)平臺非常必要[12]。目前的相關(guān)研究較少。在文獻(xiàn)[13]中,黃曼綺等基于LXC-LXD容器技術(shù)設(shè)計(jì)了一個(gè)公用機(jī)器學(xué)習(xí)平臺,旨在解決高校公共實(shí)驗(yàn)平臺的GPU共享問題。在文獻(xiàn)[14]中,聞劍峰等面向電信運(yùn)營商對人工智能技術(shù)的需求,基于Docker+K8S云化基礎(chǔ)架構(gòu)構(gòu)建了開放共享的深度學(xué)習(xí)實(shí)驗(yàn)平臺,創(chuàng)建了傳統(tǒng)機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、大數(shù)據(jù)挖掘等多種技術(shù)為一體的研發(fā)環(huán)境。在文獻(xiàn)[15]中,Teixeira M等開發(fā)了利用機(jī)器學(xué)習(xí)方法進(jìn)行網(wǎng)絡(luò)安全研究的數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)試驗(yàn)臺,能夠用于訓(xùn)練和測試不同的機(jī)器學(xué)習(xí)算法,以實(shí)現(xiàn)對網(wǎng)絡(luò)攻擊的實(shí)時(shí)監(jiān)測。
上述實(shí)驗(yàn)平臺大多面向具備一定基礎(chǔ)的研究者,以輔助他們開發(fā)新的算法或驗(yàn)證已有的算法。然而,目前還沒有一種面向無機(jī)器學(xué)習(xí)研究基礎(chǔ)學(xué)習(xí)者的實(shí)驗(yàn)平臺。在本文中,我們設(shè)計(jì)了一種基于MATLAB開發(fā)的面向初學(xué)者的機(jī)器學(xué)習(xí)實(shí)驗(yàn)平臺,界面友好、操作簡單,并能夠在二維平面上直觀地展示出數(shù)據(jù)分布與分類效果。學(xué)習(xí)者可以通過該平臺初步了解并迅速掌握支持向量機(jī)、K最近鄰、決策樹和樸素貝葉斯四種分類模型,理解其特性、優(yōu)缺點(diǎn)與適用領(lǐng)域,并培養(yǎng)學(xué)生對機(jī)器學(xué)習(xí)技術(shù)的學(xué)習(xí)興趣。
在本文的后續(xù)部分,我們將在第1節(jié)簡單介紹本實(shí)驗(yàn)平臺涉及的機(jī)器學(xué)習(xí)知識,在第2節(jié)介紹基于MATLAB的設(shè)計(jì)方法,在第3節(jié)介紹本實(shí)驗(yàn)平臺的使用方法與效果,并在第4節(jié)進(jìn)行總結(jié)。
在本章節(jié),我們將對實(shí)驗(yàn)平臺主要涉及的機(jī)器學(xué)習(xí)技術(shù),特別是分類模型進(jìn)行簡單介紹。
定義訓(xùn)練集為D={(x1,y1),…,(xn,yn)},其中n為訓(xùn)練集中訓(xùn)練樣本的數(shù)量,yi∈{±1}.支持向量機(jī)(SVM)的目標(biāo)是構(gòu)造一個(gè)超平面將兩類樣本點(diǎn)分離,并最大化超平面與支持向量之間的距離。在樣本空間中,超平面可表示為:
w′x+b=0
(1)
其中,w為法向量,b為偏移量,上標(biāo)′表示轉(zhuǎn)置。SVM可以通過優(yōu)化如下問題而獲?。?/p>
(2)
(3)
對于現(xiàn)實(shí)中很多非線性分類任務(wù),可以應(yīng)用核技術(shù)通過φ∶x→φ(x)將原始數(shù)據(jù)映射到一個(gè)高維特征空間,使得兩類點(diǎn)線性可分,并在該特征空間中應(yīng)用SVM分類。上述模型中的約束條件可表示為:
yi(w′φ(xi)+b)≥1,i=1,2,…,n
(4)
引入如下的函數(shù):
κ(xi,xj)=φ(xi),φ(xj)=φ(xi)′φ(xj)
(5)
(6)
s.t.yi(w′φ(xi)+b)≥1-ξi,ξi≥0,i=1,2,…,n
(7)
其中C是一個(gè)常數(shù),ξi為松弛變量。上述問題可使用拉格朗日乘子法進(jìn)行求解。
K近鄰分類算法(KNN)是機(jī)器學(xué)習(xí)中最簡單的一個(gè)算法。其基本思想是用特征空間中樣本點(diǎn)周圍的K個(gè)最近鄰?fù)镀贝_定該樣本點(diǎn)的類型,其K個(gè)最近鄰的類別標(biāo)簽中出現(xiàn)次數(shù)最多的標(biāo)簽即作為該樣本點(diǎn)的分類結(jié)果。由于K最近鄰分類器不具備顯式的訓(xùn)練過程,因此是一種“懶惰學(xué)習(xí)(Lazy learning)”方法。
KNN算法雖然簡單,但是K值對模型性能有很大影響,因此K值的選取非常重要。若K值過小,分類結(jié)果會對噪聲非常敏感;若K值過大,雖可減小噪聲的干擾,但距離較遠(yuǎn)的樣本點(diǎn)也會影響分類結(jié)果,因此同樣會造成分類錯(cuò)誤。另外,如果采用不同的距離度量方式,目標(biāo)樣本的最近鄰集合也會不同,因此導(dǎo)致不同的分類結(jié)果。
決策樹是一種用于分類或回歸的樹狀結(jié)構(gòu),包含一個(gè)根節(jié)點(diǎn)、若干個(gè)內(nèi)部節(jié)點(diǎn)與葉子節(jié)點(diǎn),其根節(jié)點(diǎn)表示第一個(gè)屬性測試,內(nèi)部節(jié)點(diǎn)表示其他屬性測試,葉子節(jié)點(diǎn)對應(yīng)于決策結(jié)果。顯然,決策樹模型的構(gòu)建是遞歸的,在“無需劃分”“無法劃分”與“不能劃分”三種條件下停止。在進(jìn)行最優(yōu)劃分時(shí),我們希望劃分后分支節(jié)點(diǎn)的樣本純度越來越高,為此,常常采用基尼(Gini)指數(shù),其中數(shù)據(jù)集D的基尼指數(shù)為:
(8)
其中,Dc為訓(xùn)練集D中類別為c的樣本集合。對于某一屬性a,D的Gini系數(shù)為:
(9)
其中Di表示屬性a的第i個(gè)取值的樣本集合,V為屬性a的取值數(shù)量。在候選屬性集合A中,最優(yōu)的屬性為
為解決決策樹的過擬合問題,可以采用剪枝的方式進(jìn)行處理。
樸素貝葉斯分類器是基于貝葉斯理論和屬性條件獨(dú)立性假設(shè),并利用概率統(tǒng)計(jì)知識進(jìn)行分類的算法。最小化分類錯(cuò)誤率下的最優(yōu)貝葉斯分類器可以寫作:
其次,房地產(chǎn)開發(fā)企業(yè)受到政策環(huán)境的直接影響。國家的政策法規(guī)、金融環(huán)境以及經(jīng)濟(jì)變化會對房地產(chǎn)企業(yè)的未來發(fā)展帶來較大干擾。
(10)
如果需要使用貝葉斯準(zhǔn)則來確定樣本的類別,就需要獲得后驗(yàn)概率P(c|x),根據(jù)貝葉斯公式,我們有:
(11)
其中,P(c)為類先驗(yàn)概率,P(x|c)為類條件概率,或稱之為似然,P(x)用于歸一化,與類別無關(guān)。因此,對P(c|x)的估計(jì)問題即轉(zhuǎn)化為P(c)與P(x|c)的估計(jì)問題。
(12)
其中,Dc為訓(xùn)練集D中類別為c的樣本集合。根據(jù)屬性條件獨(dú)立假設(shè),我們有:
(13)
即實(shí)現(xiàn)了后驗(yàn)概率的計(jì)算。
MATLAB (matrix laboratory)中文名為矩陣實(shí)驗(yàn)室,是MathWorks公司開發(fā)的具有多維數(shù)值計(jì)算環(huán)境,及編程語言環(huán)境。MATLAB具有矩陣操作、創(chuàng)建用戶界面、算法設(shè)計(jì)、系統(tǒng)仿真等功能。最初的使用者主要是來自控制工程領(lǐng)域中的研究人員與工程師,但很快就擴(kuò)展到其他領(lǐng)域。截至2018年,MATLAB在全球擁有超過300萬用戶,用戶來自包括工程、科學(xué)和經(jīng)濟(jì)學(xué)在內(nèi)的多種學(xué)科領(lǐng)域。在本文中,主要使用了MATLAB的用戶界面設(shè)計(jì)功能、繪圖功能以及部分內(nèi)嵌的機(jī)器學(xué)習(xí)算法。
基于MATLAB設(shè)計(jì)的機(jī)器學(xué)習(xí)實(shí)驗(yàn)平臺界面如圖1所示。主要使用的控件包括:按鈕(Push Button)、復(fù)選框(Check Box)、編輯框(Edit Text)、靜態(tài)文本框(Static Text)、彈出菜單欄(Pop-Up Menu)、列表欄(List Box)、繪圖坐標(biāo)軸(Axes)以及控制面板(Panel)。由于機(jī)器學(xué)習(xí)是一門新興的、快速發(fā)展的學(xué)科,學(xué)生需要參考大量的英文文獻(xiàn),因此本實(shí)驗(yàn)平臺采用英語進(jìn)行標(biāo)注。
圖1 基于MATLAB設(shè)計(jì)的機(jī)器學(xué)習(xí)實(shí)驗(yàn)平臺界面
該實(shí)驗(yàn)平臺界面主要分為兩部分,其左半部分是四個(gè)繪圖區(qū)域,當(dāng)坐標(biāo)軸上方的“圖(Figure)”復(fù)選框被選定時(shí),繪圖結(jié)果會在該復(fù)選框?qū)?yīng)的區(qū)域繪圖;當(dāng)有多個(gè)“圖(Figure)”復(fù)選框被選中時(shí),其對應(yīng)的多個(gè)繪圖區(qū)域會重復(fù)繪圖。為實(shí)現(xiàn)更加清晰的顯示效果,數(shù)據(jù)集中不同類別的樣本用不同顏色和形狀標(biāo)出,在本文中我們介紹的二分類問題的兩類樣本分別用紅色三角形和藍(lán)色圓形表示。
右半部分是操作區(qū)域,包括數(shù)據(jù)操作面板(Data Operations)和四種分類模型(支持向量機(jī)、K最近鄰、決策樹和樸素貝葉斯)控制面板,其中數(shù)據(jù)操作面板負(fù)責(zé)數(shù)據(jù)的加載、調(diào)整與保存等操作;分類模型控制面板負(fù)責(zé)對四種分類模型的參數(shù)設(shè)置的操作。
系統(tǒng)自帶四種常用的仿真數(shù)據(jù),分別為“兩圓圈(2_Circles)”“兩月牙(2_Moons)”“兩月牙測試集(2_Moons_Test)”以及“兩螺旋(2_Spirals)”。這四種數(shù)據(jù)集中“兩螺旋(2_Spirals)”數(shù)據(jù)的分類難度最大,“兩月牙(2_Moons)”和“兩月牙測試集(2_Moons_Test)”數(shù)據(jù)的分類難度最低,這是因?yàn)檫@兩個(gè)數(shù)據(jù)集的樣本分布更接近簇狀。當(dāng)用戶從列表欄中選中時(shí)即加載相應(yīng)數(shù)據(jù)。除此之外,平臺使用者可根據(jù)自己的需求,添加其他數(shù)據(jù)集進(jìn)行不同機(jī)器學(xué)習(xí)算法的實(shí)驗(yàn)。同時(shí),用戶可以對這些數(shù)據(jù)集進(jìn)行調(diào)整,通過X軸與Y軸的“偏移(Offset)”“縮放(Scaling)”“方差(Variance)”對已加載數(shù)據(jù)的分布進(jìn)行調(diào)整。需要注意的是:只有上方的“類別(Class)”復(fù)選框被選中時(shí),相應(yīng)的數(shù)據(jù)調(diào)整操作才會生效。點(diǎn)擊“生成數(shù)據(jù)(Gen. Data)”按鈕即可完成數(shù)據(jù)的調(diào)整。用戶可以將新生成的數(shù)據(jù)名字填寫到編輯框中,并點(diǎn)擊“保存數(shù)據(jù)(Save Data)”按鈕將數(shù)據(jù)以“.mat”的格式保存到本地,并可以通過“加載數(shù)據(jù)(Load Data)”按鈕加載本地?cái)?shù)據(jù)。
數(shù)據(jù)操作面板下方的分類模型控制面板具體包括“支持向量機(jī)(Support Vector Machine)”“K近鄰分類器(K-Nearest-Neighbor Classifier)”“決策樹(Decision Tree)”以及“樸素貝葉斯分類器(Na?ve Bayesian Classifier)”控制面板。MATLAB中自帶機(jī)器學(xué)習(xí)分類函數(shù),在本平臺中,我們通過調(diào)用MATLAB內(nèi)置函數(shù)(例如svmtrain、knnclassify、fitctree、fitcnb)來實(shí)現(xiàn)支持向量機(jī)、K近鄰、決策樹及樸素貝葉斯的分類。通過輸入訓(xùn)練樣本和相應(yīng)的標(biāo)簽,設(shè)定模型參數(shù),這些函數(shù)即可根據(jù)訓(xùn)練數(shù)據(jù)集建立相應(yīng)的模型,并可通過predict()函數(shù)對測試集進(jìn)行類別標(biāo)簽預(yù)測。本實(shí)驗(yàn)平臺選擇的這四種分類模型是機(jī)器學(xué)習(xí)中最為基礎(chǔ)的分類模型,通過在基礎(chǔ)分類模型上的實(shí)驗(yàn),能夠讓使用者了解機(jī)器學(xué)習(xí)算法的基本原理和分類過程,可幫助無機(jī)器學(xué)習(xí)基礎(chǔ)的使用者快速入門。每個(gè)分類模型控制面板中包含分類器“核(Kernel)”“距離(Distance)”“寬度(Width)”等參數(shù)的設(shè)置。部分參數(shù)只可在預(yù)設(shè)的彈出菜單欄中進(jìn)行選取,例如“核(Kernel)”“距離(Distance)”等。除了K近鄰分類器,其他三個(gè)分類器都同時(shí)具有“訓(xùn)練模型(Train Model)”與“測試模型(Test Model)”的功能,用戶可以在不同的數(shù)據(jù)上進(jìn)行獨(dú)立的訓(xùn)練與測試。由于K近鄰分類器是一種“懶惰學(xué)習(xí)”方法,因此其沒有訓(xùn)練過程。基于實(shí)驗(yàn)平臺的繪圖區(qū)域、數(shù)據(jù)操作以及分類器設(shè)置功能,使用者可以自由地進(jìn)行實(shí)驗(yàn)以研究各個(gè)分類器的特點(diǎn)以及其在不同分布數(shù)據(jù)集上的表現(xiàn)。
在本章節(jié),我們將展現(xiàn)如何使用該實(shí)驗(yàn)平臺以研究四種不同的分類器的功能與在不同分布數(shù)據(jù)上的表現(xiàn)。
首先,我們對支持向量機(jī)(SVM)在“兩圓圈(2_Circles)”數(shù)據(jù)上進(jìn)行實(shí)驗(yàn),結(jié)果如圖2所示。從圖2.1至圖2.4,支持向量機(jī)的“核(Kernel)”均為“高斯(Gaussian)”“損失(Cost)”均為0.3,但“核寬(Sigma)”分別為0.1、0.3、0.8與15的四種不同設(shè)定。核寬的大小決定了分類器的復(fù)雜度,當(dāng)核寬越小,分類器越復(fù)雜,反之越簡單。從圖2容易發(fā)現(xiàn),當(dāng)核寬設(shè)置的過小,分類器將“紅類”(內(nèi)部圓圈,用三角形表示的樣本)緊緊包住,當(dāng)核寬設(shè)置的過大,分類器將無法在訓(xùn)練集上實(shí)現(xiàn)百分百準(zhǔn)確的分類,圖中用不同顏色陰影表示分類器的分類結(jié)果。學(xué)習(xí)者可以通過這個(gè)實(shí)驗(yàn)了解支持向量機(jī)的核寬與分類器復(fù)雜度的關(guān)系、以及不正確的核寬對分類器訓(xùn)練帶來的影響。
圖2 支持向量機(jī)分類實(shí)驗(yàn)1
圖3 支持向量機(jī)分類實(shí)驗(yàn)2
如果將支持向量機(jī)的“核(Kernel)”設(shè)置為“線性(Linear)”,我們可以觀察其在不同數(shù)據(jù)集上的分類效果。結(jié)果如圖3所示,其中圖3.4的數(shù)據(jù)由手動調(diào)整“兩月牙(2_Moons)”得到。由于分類器內(nèi)核設(shè)定為線性,因此將難以在這些“線性不可分”的數(shù)據(jù)上訓(xùn)練出令人滿意的模型,如圖3.2所示。通過將“兩月牙(2_Moons)”中的“紅類”沿著Y軸正向偏移0.4,“兩月牙(2_Moons)”數(shù)據(jù)變得線性可分,因此采用基于線性內(nèi)核的支持向量機(jī)也能得到不錯(cuò)的分類模型,如圖3.4所示。學(xué)習(xí)者通過這個(gè)實(shí)驗(yàn)可以了解支持向量機(jī)兩種內(nèi)核的區(qū)別,進(jìn)一步加深對“線性不可分”概念的理解,明白“核方法”的意義以及重要性。
在高斯核、核寬為0.3、損失為0.3的情況下,我們可以觀察支持向量機(jī)在多種不同數(shù)據(jù)集上的表現(xiàn)。結(jié)果如圖4所示。顯然,具有非線性核的支持向量機(jī)在高度復(fù)雜的數(shù)據(jù)集上均具有不錯(cuò)的分類效果。即使面對“兩螺旋(2_Spirals)”數(shù)據(jù)集,仍然可以在訓(xùn)練集上得到近乎百分之百的訓(xùn)練精度,如圖4.3所示。通過這個(gè)實(shí)驗(yàn),學(xué)習(xí)者可以增強(qiáng)對支持向量機(jī)的感性認(rèn)識,并充分感受到支持向量機(jī)的強(qiáng)大性能,理解支持向量機(jī)研究者眾多的原因。
圖4 支持向量機(jī)分類實(shí)驗(yàn)3
圖5 支持向量機(jī)分類實(shí)驗(yàn)4
雖然支持向量機(jī)能夠擬合較強(qiáng)的非線性模型,然而訓(xùn)練一個(gè)過于復(fù)雜的模型可能會導(dǎo)致泛化性能的下降,也就是過擬合問題。如圖5所示,圖5.1、5.2展示了支持向量機(jī)在“兩月牙(2_Moons)”數(shù)據(jù)上不同的訓(xùn)練結(jié)果。在圖5.1中,核寬為0.3,在圖5.2中為0.1,這意味著圖5.2展示的模型具有更高的復(fù)雜度,因此分類器將“紅類”(上凸月牙所代表的類別,用三角形表示的樣本)緊緊包住而幾乎不留裕度。相反,圖5.1所展示的分類器就寬松很多。這兩個(gè)分類器的訓(xùn)練精度均為百分之百,然而,圖5.2所展示的分類器在測試集上的精度將會大幅下降。在圖5.3、5.4中,展示的測試數(shù)據(jù)集通過對“兩月牙(2_Moons)”數(shù)據(jù)集進(jìn)行方差為0.02的調(diào)整得到,這意味著測試集與訓(xùn)練集二者并不滿足獨(dú)立同分布假設(shè)。由于帶寬為0.3的支持向量機(jī)具有較低的復(fù)雜度,其在訓(xùn)練集上的分類模型具有一定的裕度,因此在測試集上表現(xiàn)極好,證明其具有較好的泛化性能。反之,帶寬為0.1的支持向量機(jī)在測試集上表現(xiàn)較差,說明訓(xùn)練過程中出現(xiàn)了過擬合問題。機(jī)器學(xué)習(xí)中的一大部分工作都是針對過擬合問題而展開的,因此這個(gè)實(shí)驗(yàn)可以幫助學(xué)習(xí)者直觀地理解過擬合的含義、產(chǎn)生的原因、以及與分類器復(fù)雜度的關(guān)系。
在“K近鄰分類器(K-Nearest-Neighbor Classifier)”控制面板上設(shè)置“規(guī)則(Rule)”為“最近鄰(nearest)”,K為5的情況下進(jìn)行實(shí)驗(yàn),分別觀察“距離(Distance)”為“歐式(euclidean)”“街區(qū)(cityblock)”“余弦(cosine)”“漢明(hamming)”四種情況下的分類情況。結(jié)果如圖6所示。容易發(fā)現(xiàn),采用歐式距離和街區(qū)距離的分類結(jié)果較好,其中采用歐式距離的劃分界面相對于采用街區(qū)距離的劃分界面更加圓潤。采用余弦距離和漢明距離都無法在“兩圓圈(2_Circles)”數(shù)據(jù)上取得好的分類結(jié)果。通過這個(gè)實(shí)驗(yàn),使用者可以直觀地了解不同距離對K近鄰分類器的影響,理解大多數(shù)分類器選取歐式距離的原因。
我們可以進(jìn)一步觀察K近鄰分類器在“兩月牙(2_Moons)”和“兩螺旋(2_Spirals)”數(shù)據(jù)集上的分類效果。將K設(shè)置為3,并設(shè)置“規(guī)則(Rule)”為“最近鄰(nearest)”,結(jié)果如圖7所示。圖7.1、7.2的區(qū)別在于分別使用了“歐式(euclidean)”與“街區(qū)(cityblock)”作為距離,圖7.3、7.4亦是如此。由于街區(qū)是呈現(xiàn)方正形狀的,因此采用街區(qū)距離的K近鄰分類器的劃分界面有一些鋸齒,而采用歐式距離的情況下,劃分界面將更加平滑。但是,與支持向量機(jī)分類器相比,K近鄰分類器的劃分界面平滑度較差,呈現(xiàn)出細(xì)微的凸凹不平的形狀。通過這個(gè)實(shí)驗(yàn),使用者可以發(fā)現(xiàn),即使是原理最為簡單的K近鄰分類器也能有媲美支持向量機(jī)分類器的性能,同時(shí)也能直觀地了解歐式距離和街區(qū)距離的細(xì)微差別。
圖6 K最近鄰分類實(shí)驗(yàn)1
圖7 K最近鄰分類實(shí)驗(yàn)2
在“決策樹分類器(Decision Tree)”控制面板設(shè)置“分叉準(zhǔn)則(SplitCriterion)”為“基尼系數(shù)(gdi)”,“最小葉子尺寸(MinLeafSize)”為1,“最大分叉數(shù)量(MaxNumSplit)”分別設(shè)為1、2、3、4,得到如圖8所示的實(shí)驗(yàn)結(jié)果。容易發(fā)現(xiàn):決策樹的劃分平面不是類似于支持向量機(jī)或者K近鄰分類器的平滑界面,而是尖銳的。這是由于決策樹在生長過程中每次僅僅針對一維特征進(jìn)行分叉,在一個(gè)維度上劃出一條判定直線。因此決策樹分類器的劃分界面實(shí)際上是由垂直于特征坐標(biāo)軸的超平面組成,我們可以通過超平面數(shù)量來確定分支的數(shù)量。對于“兩圓圈(2_circles)”數(shù)據(jù)集,至少需要4個(gè)超平面才能完成分類任務(wù),因此如圖8.4所示,劃分平面呈現(xiàn)矩形形狀。通過這個(gè)實(shí)驗(yàn),使用者可以直觀地理解決策樹分類器的工作原理與特點(diǎn)。由于每次劃分是基于一個(gè)特征的,因此可以根據(jù)決策樹結(jié)果輕易地構(gòu)建出if-then規(guī)則,以便于人類理解。這就是所謂的可解釋性,學(xué)習(xí)者通過這個(gè)實(shí)驗(yàn)可以理解決策樹分類器的可解釋性的原理。另外,“分叉準(zhǔn)則(SplitCriterion)”還可以設(shè)置為“二分(twoing)”與“變異(deviance)”,學(xué)習(xí)者可以進(jìn)一步了解不同分支準(zhǔn)則對分類性能的影響。
對于“兩螺旋(2_spirals)”數(shù)據(jù)集,分類結(jié)果如圖9所示。其中,圖9.1的“分叉準(zhǔn)則(SplitCriterion)”為“基尼系數(shù)(gdi)”,“最小葉子尺寸(MinLeafSize)”為1,“最大分叉數(shù)量(MaxNumSplit)”分別設(shè)為10,可見其分類效果十分不理想。將“最大分叉數(shù)量(MaxNumSplit)”增加到28,并將“分叉準(zhǔn)則(SplitCriterion)”為“基尼系數(shù)(gdi)”分別設(shè)置為“基尼系數(shù)(gdi)”“二分(twoing)”與“變異(deviance)”三種情況,結(jié)果分別見圖9.2~9.4,可見分類效果依然不夠理想。由于決策樹分類器的劃分界面不夠平滑,因此很難在復(fù)雜的數(shù)據(jù)集上得到理想的結(jié)果。通過該實(shí)驗(yàn),學(xué)習(xí)者可以進(jìn)一步了解決策樹分類器的特點(diǎn)與其缺點(diǎn)。
圖8 決策樹分類實(shí)驗(yàn)1
圖9 決策樹分類實(shí)驗(yàn)2
在“樸素貝葉斯分類器(Na?ve Bayesian Classifier)”控制面板設(shè)置“分布(Distribution)”為“核(kernel)”,“核(kernel)”為“正態(tài)(normal)” 進(jìn)行實(shí)驗(yàn),結(jié)果如圖10所示。其中,圖10.1與圖10.3為“寬度(Width)”設(shè)為0.1的結(jié)果,圖10.2與圖10.4為“寬度(Width)”設(shè)為0.5的結(jié)果。當(dāng)寬度設(shè)置過大時(shí),模型的復(fù)雜度降低,往往會導(dǎo)致欠擬合。通過這個(gè)實(shí)驗(yàn),使用者可以直觀地了解樸素貝葉斯分類器的特性。對于較為復(fù)雜的“兩螺旋(2_spirals)”數(shù)據(jù)集,樸素貝葉斯分類器的性能往往交叉。
圖10 樸素貝葉斯分類實(shí)驗(yàn)1
圖11 樸素貝葉斯分類實(shí)驗(yàn)2
圖11分別展示寬度為0.5,“核(kernel)”為“正態(tài)(normal)”“盒子(box)”“葉帕涅奇尼科夫(epanechnikov)”“三角(triangle)”四種情況下的分類情況,可見分類結(jié)果均不理想。
在本文中,展示了一種基于MATLAB開發(fā)的機(jī)器學(xué)習(xí)實(shí)驗(yàn)平臺,面向初次接觸到機(jī)器學(xué)習(xí)的學(xué)生,界面友好、操作簡單,能夠在二維平面上直觀地展示出數(shù)據(jù)分布與分類效果。系統(tǒng)內(nèi)嵌有四種常見的數(shù)據(jù)集與分類模型,學(xué)習(xí)者可以通過該平臺初步了解并迅速掌握支持向量機(jī)、K近鄰、決策樹和樸素貝葉斯四種分類模型,觀察不同分類器在不同數(shù)據(jù)集上的分類表現(xiàn),理解這些分類器的特性、優(yōu)缺點(diǎn)與適用領(lǐng)域,并培養(yǎng)學(xué)生對機(jī)器學(xué)習(xí)技術(shù)的學(xué)習(xí)興趣。該實(shí)驗(yàn)平臺是1.0版本,僅僅涉及了機(jī)器學(xué)習(xí)中基礎(chǔ)的分類模型。在未來的工作中,可以增加神經(jīng)網(wǎng)絡(luò)等高級機(jī)器學(xué)習(xí)算法,并提供用戶數(shù)據(jù)接口,方便學(xué)習(xí)者在真實(shí)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)學(xué)習(xí)。