本發(fā)明涉及機器學(xué)習(xí)系統(tǒng)的評估技術(shù),具體為一種機器學(xué)習(xí)系統(tǒng)學(xué)習(xí)能力的評估方法。
背景技術(shù):
:機器學(xué)習(xí)系統(tǒng)是對數(shù)據(jù)進(jìn)行智能處理和分析的重要系統(tǒng)。它基于現(xiàn)有的數(shù)據(jù)集進(jìn)行學(xué)習(xí),并將學(xué)習(xí)到的模型運用到未來的信息預(yù)測之中。隨著數(shù)據(jù)時代的到來,機器學(xué)習(xí)系統(tǒng)在各種各樣的自動化場景中大量涌現(xiàn),例如,基于機器學(xué)習(xí)算法構(gòu)建的垃圾郵件過濾系統(tǒng)、句子情感分類系統(tǒng)等均屬于機器學(xué)習(xí)系統(tǒng)的范疇。伴隨著互聯(lián)網(wǎng)時代的到來,大量的機器學(xué)習(xí)系統(tǒng)也被相應(yīng)的開發(fā)出來。這些機器學(xué)習(xí)系統(tǒng)的性能各異。因此,系統(tǒng)的開發(fā)者以及使用者必須使用含有多條記錄的數(shù)據(jù)集來對這些機器學(xué)習(xí)系統(tǒng)的性能進(jìn)行客觀的估計,并從中選擇出性能顯著優(yōu)越的機器學(xué)習(xí)系統(tǒng)。這就需要系統(tǒng)使用者對數(shù)據(jù)集進(jìn)行合理地切分和利用,以便于精準(zhǔn)地估計機器學(xué)習(xí)系統(tǒng)的實際性能。目前常用的數(shù)據(jù)集切分技術(shù)是m×2交叉驗證方法。具體來說,基于m×2交叉驗證方法,含有多條記錄的數(shù)據(jù)集被隨機地切分成m組訓(xùn)練集和驗證集。訓(xùn)練集和驗證集的大小是相同的。對于其中的每一組,機器學(xué)習(xí)系統(tǒng)首先使用訓(xùn)練集來學(xué)習(xí)出模型,然后,使用驗證集來估計機器學(xué)習(xí)系統(tǒng)的性能;然后,反過來使用驗證集來學(xué)習(xí)模型,并使用訓(xùn)練集來估計系統(tǒng)的性能。將m組訓(xùn)練集和測試集全部使用完后,總共可以得到2m個機器學(xué)習(xí)系統(tǒng)的性能估計。最后,使用這2m個估計的平均值作為機器學(xué)習(xí)系統(tǒng)的最終性能估計?;趍×2交叉驗證的數(shù)據(jù)切分方法的最大的問題在于,最終計算出的機器學(xué)習(xí)系統(tǒng)的性能估計具有較大的方差。這不利于使用者精準(zhǔn)地估計機器學(xué)習(xí)系統(tǒng)的性能。究其本質(zhì),最主要的原因在于當(dāng)數(shù)據(jù)集被隨機切分成多組訓(xùn)練集和驗證集時,多組訓(xùn)練集之間的記錄重疊個數(shù)是隨機的。這種隨機性加大了機器學(xué)習(xí)系統(tǒng)的性能估計的方差。針對上述問題,McCarthy于1976年提出了一種改進(jìn)方案。該方案被稱為balancedHalf-samplereplication。見文獻(xiàn):McCarthy,P.J.(1976).TheUseofBalancedHalf-SampleReplicationinCross-ValidationStudies.JournaloftheAmericanStatisticalAssociation,71(355),596-604.doi:10.2307/2285588。上述文獻(xiàn)所給方法控制了多組訓(xùn)練集之間的記錄重疊個數(shù)。不過,該方法無法滿足用戶進(jìn)一步增大評估次數(shù)m的要求。也就是說,假設(shè)用戶已確定評估次數(shù)m并根據(jù)他們的方法得到了系統(tǒng)的性能估計;若用戶希望進(jìn)一步增加評估次數(shù)m來考察系統(tǒng)的性能,該方法就必須摒棄原來已經(jīng)構(gòu)造好的m組訓(xùn)練集和測試集,并重新開始計算數(shù)據(jù)集的切分方式和性能估計。技術(shù)實現(xiàn)要素:本發(fā)明所提供的一種控制機器學(xué)習(xí)系統(tǒng)性能精度的方法,主要是針對原有的m×2交叉驗證方法進(jìn)行改進(jìn)。這種改進(jìn)主要針對原有方法中存在的兩個問題:1)原有的m×2交叉驗證方法中,多組訓(xùn)練集之間的記錄重疊個數(shù)存在很大的隨機性,降低了機器學(xué)習(xí)系統(tǒng)的性能估計的精度;2)McCarthy提出的均衡m×2交叉驗證方法中,當(dāng)用戶增加評估次數(shù)后,所有已構(gòu)造好的訓(xùn)練集和驗證集被全部摒棄,且所有的計算需要重頭開始。本發(fā)明是采用以下技術(shù)方案實現(xiàn)的:一種機器學(xué)習(xí)系統(tǒng)學(xué)習(xí)性能的評估方法,包括如下步驟:A.接受用戶需要評估的機器學(xué)習(xí)系統(tǒng)、含有n條記錄的數(shù)據(jù)集Dn以及評估次數(shù)參數(shù)m;所述數(shù)據(jù)集Dn={zi:zi=(xi,yi),i=1,...,n},其中,zi是數(shù)據(jù)集Dn中的第i條記錄;xi和yi分別為記錄zi的預(yù)測變量和響應(yīng)變量;B.設(shè)置指標(biāo)集組B=({1,2,...,n})和切分規(guī)則組P=();指標(biāo)集組是指標(biāo)集的子集的集合;所述指標(biāo)集是每個記錄數(shù)據(jù)集Dn中zi的下標(biāo)所組成的集合,記為I={1,2,...,n};指標(biāo)集組中的每一個元素都是指標(biāo)集I的一個子集,指標(biāo)集組所有元素的并集=I且指標(biāo)集組中任意兩個不相同的元素的交集為空集,同時指標(biāo)集組中每個元素所包含的指標(biāo)個數(shù)相同,而指標(biāo)集組B=({1,2,...,n})則是將整個指標(biāo)集作為一個元素的集合;所述切分規(guī)則組是指包含零個或多個切分規(guī)則的集合;所述切分規(guī)則指的是由符號’+’和’-’組成的一個序列,序列中’+’和’-’出現(xiàn)的次數(shù)相同,且至少出現(xiàn)一次;P=()表示不包含任何切分規(guī)則,即為空切分規(guī)則組;C.設(shè)置索引變量startIndex=1以及endIndex=m;D.設(shè)置變量α從startIndex開始加一遞增,直至大于endIndex結(jié)束;在每次遞增時,分別執(zhí)行下述的a)-e)步:a)如果α為2的冪數(shù),執(zhí)行下述的i-iii步:i.對指標(biāo)集組B執(zhí)行擴展操作,即指標(biāo)集組B中的每個元素按照從前向后的順序都分裂成一對大小相等的子集;新形成的多個子集共同構(gòu)成新的指標(biāo)集組B2α并將B2α賦給B,即:B←B2α;擴展后得到的每對子集的并集等于該對子集所對應(yīng)的原指標(biāo)集組B中的元素,且每對子集的交集為空集;ii.如果切分規(guī)則組為空,則不進(jìn)行整體逐元素擴展;如果切分規(guī)則組不為空,則對切分規(guī)則組中的每一條規(guī)則依次進(jìn)行2次整體逐元素擴展,即將每一條切分規(guī)則中的每個符號由左至右分別重復(fù)一遍,重復(fù)后得到的符號分別列于與其對應(yīng)的被重復(fù)符號的右側(cè)進(jìn)而形成一個新的切分規(guī)則,所有新形成的切分規(guī)則共同構(gòu)成一個新的切分規(guī)則組Pα,并將Pα賦給P,即:P←Pα;iii.將切分規(guī)則(+,-)進(jìn)行α次整體擴展,形成新的規(guī)則R;并將R追加到切分規(guī)則組P的末尾;所述切分規(guī)則的α次整體擴展是指將切分規(guī)則(+,-)整體重復(fù)α次后形成一條新的切分規(guī)則;b)如果α不為2的冪數(shù),則對切分規(guī)則組P中的第條規(guī)則和第條規(guī)則進(jìn)行加法運算,形成新的切分規(guī)則R;并將R追加到切分規(guī)則組P的末尾;切分規(guī)則的加法運算是指將兩條長度相同的切分規(guī)則中相同位置的符號按照“相同符號得+,不同符號得-”的運算得到一個新規(guī)則;c)根據(jù)上述步驟所得到的指標(biāo)集組B以及切分規(guī)則組P中的最后一條切分規(guī)則R,使用訓(xùn)練指標(biāo)集的組合規(guī)則和驗證指標(biāo)集的組合規(guī)則生成相應(yīng)的訓(xùn)練指標(biāo)集I(T)和驗證指標(biāo)集I(V);切分規(guī)則R所包含的符號個數(shù)與指標(biāo)集組B的元素個數(shù)相同;所述訓(xùn)練指標(biāo)集的組合規(guī)則為Ij表示指標(biāo)集組B中的第j個元素,該公式表示將指標(biāo)集組中與切分規(guī)則R中所有’+’符號的序號相對應(yīng)的所有元素求并集;所述驗證集的指標(biāo)集I(V)的組合規(guī)則為該公式表示將指標(biāo)集組B中與切分規(guī)則R中所有’-’符號的序號相對應(yīng)的所有元素求并集;d)根據(jù)訓(xùn)練指標(biāo)集I(T)和驗證指標(biāo)集I(V),抽取出相應(yīng)的記錄形成訓(xùn)練集T={zi:i∈I(T),zi∈Dn}和驗證集V={zi:i∈I(V),zi∈Dn};I(T)∪I(V)=I且I(T)∩I(V)=Φ;e)使用訓(xùn)練集T來訓(xùn)練機器學(xué)習(xí)系統(tǒng),并使用驗證集V進(jìn)行測試,計算出性能估計然后使用驗證集V對機器學(xué)習(xí)系統(tǒng)進(jìn)行訓(xùn)練,并使用訓(xùn)練集T進(jìn)行測試,計算出另一個性能估計E.計算所有估計值的平均值并將提供給用戶。下面對前述提到的一些概念通過舉例做進(jìn)一步的說明。指標(biāo)集組:如一個大小為K的指標(biāo)集組定義為Bk=(I1,I2,...Ij...Ik),其中,為指標(biāo)集I的一個子集,且I1∪I2∪...∪IK=I及滿足當(dāng)j≠k時,Ij∩Ik=Φ(Φ為空集)且|Ij|=|Ik|;指標(biāo)集組的擴展操作:指標(biāo)集組BK的擴展操作指將BK中的元素Ij按照j=1,...,K的順序分裂成兩個大小相等的子集I'2j-1和I'2j,并形成新的指標(biāo)集組B2K=(I'1,I'2,...,I'2K)。其中,Ij=I'2j-1∪I'2j,|I'2j-1|=|I'2j|且I'2j-1∩I'2j=Φ;切分規(guī)則:切分規(guī)則指的是由符號’+’和’-’組成的一個序列,將其記為R。例如:R=(+,-,+,-);R(j)來表示切分規(guī)則R中的第j個元素;切分規(guī)則的K次整體擴展:切分規(guī)則的K次整體擴展指將給定的切分規(guī)則整體擴展K次后形成一條新的規(guī)則。例如,對切分規(guī)則(+,-,+,-)進(jìn)行2次整體擴展,形成規(guī)則(+,-,+,-,+,-,+,-);切分規(guī)則的K次逐元素擴展:切分規(guī)則的K次逐元素擴展指將給定的規(guī)則中的每個符號依次擴展出K個后形成一條新的規(guī)則。例如,對于切分規(guī)則(+,-,+,-)進(jìn)行2次逐元素擴展,形成規(guī)則(+,+,-,-,+,+,-,-);切分規(guī)則的加法運算:兩條切分規(guī)則的加法運算指的是將兩條切分規(guī)則中相同位置的符號按照“相同符號得+,不同符號得-”的運算得到的新規(guī)則。例如,規(guī)則(+,-,+,-)和規(guī)則(+,-,-,+)進(jìn)行加法運算后,得到新規(guī)則(+,+,-,-)。需要注意,進(jìn)行加法運算的兩條規(guī)則的長度必須相同;切分規(guī)則組:如將一個大小為K的切分規(guī)則組記為Pk=(R1,R2,...Rj...Rk)為,其中,Rj是第j條切分規(guī)則;P0=()為空切分規(guī)則組;訓(xùn)練集和驗證集:訓(xùn)練集T={zi:i∈I(T),zi∈Dn},其中,為訓(xùn)練指標(biāo)集;同理,驗證集V={zi:i∈I(V),zi∈Dn},其中,為驗證指標(biāo)集;一組訓(xùn)練指標(biāo)集I(T)和驗證指標(biāo)集I(V)要滿足I(T)∪I(V)=I且I(T)∩I(V)=Φ;上述技術(shù)方案具有如下優(yōu)點:1)所產(chǎn)生的m×2交叉驗證的多組訓(xùn)練集和驗證集中,多組訓(xùn)練集之間的記錄重疊個數(shù)是確定的數(shù)值;即,這種做法減少了原有的m×2交叉驗證中多組訓(xùn)練集的記錄重疊個數(shù)的隨機性;2)所得到的機器學(xué)習(xí)系統(tǒng)的性能估計有著更高的精度,具體表現(xiàn)在:在性能估計的偏差不變的前提下,該估計的方差較原來的要??;有效解決了本發(fā)明所提出的第一個問題。進(jìn)一步的,在步驟E之后還包括以下步驟:F.等待用戶是否繼續(xù)進(jìn)行評估;G.若用戶需要繼續(xù)評估,并選定要追加的評估次數(shù)m1,則設(shè)置startIndex=m+1及endIndex=m+m1,然后轉(zhuǎn)到第D步開始執(zhí)行;H.若用戶停止評估,則結(jié)束。采用上述步驟具有如下優(yōu)點:當(dāng)使用者需要追加評估次數(shù)來提高估計精度時,不需要改變已經(jīng)切分好的多組訓(xùn)練集和驗證集;這有效地提高了算法的運行效率,降低了算法的運行時間;有效解決了本發(fā)明所提出的第二個技術(shù)問題。本發(fā)明在滿足用戶自主設(shè)置評估次數(shù)的基礎(chǔ)上,給出高精度的機器學(xué)習(xí)系統(tǒng)性能的估計。因此,本發(fā)明可以為大型的數(shù)據(jù)挖掘公司有效甄別性能顯著優(yōu)良的機器學(xué)習(xí)系統(tǒng)提供可靠的保障。附圖說明圖1本發(fā)明實施例流程示意圖。圖2泛化誤差估計間的協(xié)方差與記錄重疊個數(shù)的關(guān)系示意圖。具體實施方式機器學(xué)習(xí)系統(tǒng)的性能通常用泛化誤差來刻畫。從理論上講,泛化誤差是一個機器學(xué)習(xí)系統(tǒng)在數(shù)據(jù)總體上的損失值的均值。由于實際中無法獲得數(shù)據(jù)總體,我們只能使用含多條記錄的數(shù)據(jù)集來估計泛化誤差。泛化誤差的一個估計值的精度主要由該估計與真實值的偏差以及該估計值本身的方差兩方面來決定。一個好的估計值所具有的偏差較小且方差也較小。為了準(zhǔn)確地估計機器學(xué)習(xí)系統(tǒng)的泛化誤差,使用者需要通過特定的數(shù)據(jù)切分方法將數(shù)據(jù)集切分成多組訓(xùn)練集和驗證集。目前,m×2交叉驗證方法是常用的數(shù)據(jù)切分方法之一。這主要是因為m×2交叉驗證方法在機器學(xué)習(xí)算法選擇中具有較好的效果。具體可參考:McCarthy,P.J.(1976).TheUseofBalancedHalf-SampleReplicationinCross-ValidationStudies.JournaloftheAmericanStatisticalAssociation,71(355),596-604.doi:10.2307/2285588;Dietterich,T.G.(1998).Approximatestatisticaltestsforcomparingsupervisedclassificationlearningalgorithms.NeuralComputation,10(7),1895-1923;Alpaydm,E.(1999).Combined5×2cvFtestforcomparingsupervisedclassificationlearningalgorithms.NeuralComputation,11(8),1885-1892;Yildiz,O.T.(2013).Omnivariateruleinductionusinganovelpairwisestatisticaltest.KnowledgeandDataEngineering,IEEETransactionson,25(9),2105-2118;等工作。基于m×2交叉驗證方法,數(shù)據(jù)集被隨機切分成m組訓(xùn)練集和驗證集。在每一組中,訓(xùn)練集和驗證集中所含的記錄個數(shù)均相同,為n/2,其中,n為數(shù)據(jù)集D所含記錄個數(shù)。也就是說,在對機器學(xué)習(xí)系統(tǒng)性能進(jìn)行估計時,每次訓(xùn)練模型均使用了n/2條記錄。訓(xùn)練模型所使用的記錄個數(shù)決定了系統(tǒng)的泛化誤差估計的偏差。具體參考:Nadeau,Claude,andYoshuaBengio,"InferencefortheGeneralizationError."NeuralInformationProcessingSystems(2000).本發(fā)明所給的數(shù)據(jù)切分方法,并未更改訓(xùn)練模型所使用的記錄個數(shù)。因此,基于本發(fā)明的數(shù)據(jù)切分方法所產(chǎn)生的泛化誤差的估計與基于m×2交叉驗證所產(chǎn)生的泛化誤差估計的偏差是相同的。在m×2交叉驗證方法,使用者通常采用使用m次重復(fù)實驗來降低泛化誤差估計的方差。顯然,我們可以得到此時泛化誤差估計的方差的如下分解式:Var(e‾m×2)=1m2Σi=1mVar(12(e^(Ti)+e^(Vi)))+1m2Σi≠j,i,j=1,2,...,mCov(12(e^(Ti)+e^(Vi)),12(e^(Tj)+e^(Vj)))]]>其中,Ti和Vi為第i組訓(xùn)練集和驗證集;和分別為使用Ti和Vi訓(xùn)練模型所得到的泛化誤差估計;為最終得到的泛化誤差估計的平均值。在上面的方差分解式中,只和Ti與Vi中的記錄個數(shù)有關(guān)。具體參考:Nadeau,Claude,andYoshuaBengio,"InferencefortheGeneralizationError."NeuralInformationProcessingSystems(2000)。本發(fā)明所給的數(shù)據(jù)切分方法,Ti和Vi中的記錄個數(shù)與m×2交叉驗證中Ti和Vi的記錄個數(shù)是相同的,因此,基于本發(fā)明的泛化誤差估計的方差中是不變的。本發(fā)明所給出的數(shù)據(jù)切分方法是改進(jìn)了m×2交叉驗證的泛化誤差估計的方差中的協(xié)方差一項。在m×2交叉驗證中,m次切分均建立在相同的數(shù)據(jù)集上,多組訓(xùn)練集間肯定存在記錄重疊;因為m次切分是隨機的,所以記錄重疊的個數(shù)也是隨機的。記錄重疊個數(shù)的隨機性會體現(xiàn)在這個協(xié)方差項上。為了分析記錄重疊個數(shù)對協(xié)方差項的影響,我們先假設(shè)m=2,即:僅對數(shù)據(jù)集進(jìn)行兩次切分。具體實驗過程和性質(zhì)如下所述:當(dāng)給定一個數(shù)據(jù)集,我們將其進(jìn)行2次隨機地切分,形成T1和V1以及T2和V2。因為兩次切分都是建立在相同的數(shù)據(jù)集上,所以T1和T2中會存在重疊的記錄,并且記錄重疊的個數(shù)x是一個隨機值,且介于0和n/2之間。為了估計機器學(xué)習(xí)系統(tǒng)的泛化誤差,我們使用T1訓(xùn)練模型,然后在V1來計算泛化誤差的估計接著,我們將V1上訓(xùn)練模型,然后在T1上計算估計最后,我們計算泛化誤差的兩個單次估計值的平均值采用同樣的方法,我們在T2和V2上可以計算出和我們發(fā)現(xiàn),和的協(xié)方差是關(guān)于記錄重疊個數(shù)x的對稱下凸函數(shù),且該函數(shù)的對稱軸為n/4。例如,在該函數(shù)在某一個大小為500的回歸數(shù)據(jù)集上的圖像如圖2所示。圖2中橫軸為記錄重疊個數(shù)x,縱軸為兩個泛化誤差估計的協(xié)方差值基于上述協(xié)方差函數(shù)的性質(zhì),我們知道,對于一般的m的取值,我們只要保證m組切分中,任意兩個訓(xùn)練集間的重疊個數(shù)均為n/4,便可使協(xié)方差項達(dá)到最小值,進(jìn)而有效地減少泛化誤差估計的方差。本發(fā)明給出的數(shù)據(jù)切分算法便可以保證任意兩個訓(xùn)練集之間的重疊個數(shù)為n/4。本發(fā)明要解決的第一個核心問題是:如何保證任意兩組訓(xùn)練集直線的重疊個數(shù)為n/4?實際上,本發(fā)明借助了統(tǒng)計學(xué)中正交實驗設(shè)計方法所用的常用工具:二水平正交表。我們所使用的二水平正交表為類型正交表,其中p為大于1的正整數(shù)。該類型正交表具有2p行以及2p-1列,表中的元素具有兩種水平值:’+’和’-’。例如,當(dāng)p=3時,正交表OA(8,27)如表1所示。表1:正交表OA(8,27)類型的二水平正交表具有很好的正交性。該正交性表現(xiàn)在正交表中任意兩列所含符號對的出現(xiàn)的次數(shù)是相同的,均為2p-2次。例如,在OA(8,27)上,任意兩列中,四種符號對(+,+),(+,-),(-,+)和(-,-)均出現(xiàn)了兩次?;诙秸槐淼恼恍?,我們只要將指標(biāo)集切分成含2p個元素的指標(biāo)集組,并將指標(biāo)集組中的每一個指標(biāo)集和正交表的一行進(jìn)行對應(yīng),然后再按照每一列中的符號+和符號-來拼合成訓(xùn)練指標(biāo)集合驗證指標(biāo)集:當(dāng)符號為’+’時,把相應(yīng)行所對應(yīng)的指標(biāo)集合并到訓(xùn)練指標(biāo)集中;當(dāng)符號為’-’時,把相應(yīng)行所對應(yīng)的指標(biāo)集合并到驗證指標(biāo)集中。遍歷所有的列,我們便可以將數(shù)據(jù)集切分成2p-1種不同的訓(xùn)練集和驗證集,而且可以任意兩個訓(xùn)練集間的記錄重疊個數(shù)是n/4。本發(fā)明要解決的第二個核心問題是:當(dāng)使用者增加評估次數(shù),即m的值后,如何有效利用已經(jīng)切分好的多組訓(xùn)練集和測試集,而不是重頭開始?當(dāng)用戶進(jìn)一步發(fā)出增加評估次數(shù)m的命令后,算法需要自適應(yīng)m值的動態(tài)變化,并且保證已經(jīng)切分好的訓(xùn)練集和驗證集不變。為此,我們應(yīng)用了二水平正交表的一套按列擴展的構(gòu)造算法。在具體實現(xiàn)時,我們隨著正交表行數(shù)的增加,對所用的指標(biāo)集組也進(jìn)行對應(yīng)的擴展。這樣就可以保持原有的數(shù)據(jù)切分不變,然后根據(jù)正交表中新增加的列來構(gòu)造后續(xù)的切分。下面,我們通過一個簡單的例子來說明本發(fā)明所給數(shù)據(jù)切分方法的運行過程。假設(shè)給定一個含有80個記錄的數(shù)據(jù)集D,來評測某個機器學(xué)習(xí)系統(tǒng)的性能。假設(shè)用戶初始設(shè)置評估次數(shù)為m=3。最初,我們設(shè)置指標(biāo)集組B=({1,2,...,80})、切分規(guī)則組P=()以及性能估計組E=()。設(shè)置startIndex=1以及endIndex=3表明算法需要給出第1次到第5次的數(shù)據(jù)切分方式。構(gòu)造算法從第α=1次開始構(gòu)造:由于1=20為2的冪數(shù),需要執(zhí)行:1.擴展指標(biāo)集組B,這里可以采用隨機地方式將{1,2,...,80}切分成大小相等的兩個子集;為了便于表述,我們假設(shè)切分完后的兩個子集為I1={1,...,40}及I2={41,...,80},并設(shè)置B=(I1,I2);2.由于切分規(guī)則組為空,則我們不執(zhí)行整體逐元素操作;3.將切分規(guī)則(+,-)進(jìn)行1次整體擴展,形成規(guī)則R=(+,-),然后追加到P的末尾,得到P=((+,-));4.根據(jù)B=(I1,I2)和P中的最后一條規(guī)則R=(+,-),可以構(gòu)造I(T)=I1={1,...,40}以及I(V)=I2={41,...,80};根據(jù)I(T)和I(V)中的指標(biāo)從D中抽取出訓(xùn)練集和驗證集,并對所給機器學(xué)習(xí)系統(tǒng)的性能進(jìn)行估計,得到和放入到性能估計組中,得到此處提到的性能估計組是由多個性能估計形成的一個元組,一般可記為K為性能估計組的大小。5.此時,第一次構(gòu)造完成。在第一次構(gòu)造中,所用的指標(biāo)集組和切分規(guī)則組可以歸納成表2和表3。表3中每一列為一條切分規(guī)則,每一行為規(guī)則中對應(yīng)的元素。從表2和表3可見,指標(biāo)集組中的指標(biāo)集個數(shù)與規(guī)則組中每個規(guī)則所含的元素個數(shù)是相同的。訓(xùn)練集和驗證集是將每個指標(biāo)集與切分規(guī)則的每個元素相對應(yīng)來進(jìn)行拼合的。表2:第一次切分所使用的指標(biāo)集組指標(biāo)集編號指標(biāo)值I11,2,…,40I241,42,…,80表3:第一次切分所用的切分規(guī)則組下面,我們給出α=2時的構(gòu)造:由于2=21為2的冪數(shù),因此需要執(zhí)行:1.擴展指標(biāo)集組B=({1,...,40},{41,...,80}):我們簡單地將{1,...,40}擴展為{1,...,20}以及{21,...,40},將{41,...,80}擴展為{41,...,60}以及{61,...,80},并更新B=({1,...,20},{21,...,40},{41,...,60},{61,...,80});2.對切分規(guī)則組P=((+,-))中的規(guī)則進(jìn)行逐元素擴展,得到新的切分規(guī)則組P=((+,+,-,-));3.將切分規(guī)則(+,-)進(jìn)行2次整體擴展,形成規(guī)則R=(+,-,+,-),然后追加到P的末尾,得到P=((+,+,-,-),(+,-,+,-));4.根據(jù)B=({1,...,20},{21,...,40},{41,...,60},{61,...,80})和P中的最后一條規(guī)則R=(+,-,+,-),可以構(gòu)造I(T)={1,...,20}∪{41,...,60}={1,...,20,41,...,60}以及I(V)={21,...,40}∪{61,...,80}={21,...,40,61,...,80};5.根據(jù)I(T)和I(V)中的指標(biāo)從D中抽取出訓(xùn)練集和驗證集,并對所給機器學(xué)習(xí)系統(tǒng)的性能進(jìn)行估計,得到和放入到性能估計組中,得到在第2次構(gòu)造中,指標(biāo)集組和切分規(guī)則組分別為表4和表5.表4:第二次切分所使用的指標(biāo)集組指標(biāo)集編號指標(biāo)值I11,2,…,20I221,22,…,40I341,42,…,60I461,62,…,80表5:第二次切分所用的切分規(guī)則組下面我們給出α=3時的構(gòu)造:由于3不是2的冪數(shù),因此需要執(zhí)行:1.從P=((+,+,-,-),(+,-,+,-))中取出第2條規(guī)則(+,-,+,-)和第1條規(guī)則(+,+,-,-),并進(jìn)行加法運算,得到新的規(guī)則R=(+,-,-,+),放入到切分規(guī)則組中,得到P=((+,+,-,-),(+,-,+,-),(+,-,-,+));2.根據(jù)B=({1,...,20},{21,...,40},{41,...,60},{61,...,80})和P中的最后一條規(guī)則R=(+,-,-,+),可以構(gòu)造I(T)={1,...,20,61,...,80}以及I(V)={21,...,40,41,...,60};3.根據(jù)I(T)和I(V)中的指標(biāo)從D中抽取出訓(xùn)練集和驗證集,并對所給機器學(xué)習(xí)系統(tǒng)的性能進(jìn)行估計,得到和放入到性能估計組中,得到第3次構(gòu)造完成,所使用的指標(biāo)集組和切分規(guī)則組分別為表6和表7。表6:第三次切分所使用的指標(biāo)集組指標(biāo)集編號指標(biāo)值I11,2,…,20I221,22,…,40I341,42,…,60I461,62,…,80表7:第三次切分所用的切分規(guī)則組由于用戶初始輸入的評估次數(shù)m=3,因此,構(gòu)造完成。此時,將中的所有估計值進(jìn)行平均得到輸出給用戶。接著,等待用戶進(jìn)一步的指令。假設(shè)用戶輸入繼續(xù)評估的指令,并追加m1=2次評估,則設(shè)置startIndex=4以及endIndex=5。針對第α=4次構(gòu)造,執(zhí)行如下的步驟:由于4=22為2的冪數(shù),因此需要執(zhí)行:1.擴展指標(biāo)集組B,擴展完后,B=(I1,I2,...,I8),I1到I8的取值具體如表8所示:表8:第四次切分所使用的指標(biāo)集組指標(biāo)集編號指標(biāo)值指標(biāo)集編號指標(biāo)值I11,2,…,10I541,42,…,50I211,12,…,20I651,52,…,60I321,22,…,30I761,62,…,70I431,32,…,40I871,72,…,802.對切分規(guī)則組P=((+,+,-,-),(+,-,+,-),(+,-,-,+))中的規(guī)則進(jìn)行逐元素擴展,得到新的切分規(guī)則組P=((+,+,+,+,-,-,-,-),(+,+,-,-,+,+,-,-),(+,+,-,-,-,-,+,+));3.將切分規(guī)則(+,-)進(jìn)行4次整體擴展,形成規(guī)則R=(+,-,+,-,+,-,+,-),然后追加到P的末尾,得到新的切分規(guī)則組P,如表9所示;表9:第四次切分所用的切分規(guī)則組4.根據(jù)B=(I1,I2,...,I8)和P中的最后一條規(guī)則R=(+,-,+,-,+,-,+,-),可以構(gòu)造:I(T)={1,...,10,21,...,30,41,...,50,61,...,70}I(V)={11,...,20,31,...,40,51,...,60,71,...,80}5.根據(jù)I(T)和I(V)中的指標(biāo)從D中抽取出訓(xùn)練集和驗證集,并對所給機器學(xué)習(xí)系統(tǒng)的性能進(jìn)行估計,得到和放入到性能估計組中,得到第4次構(gòu)造執(zhí)行完成,下面執(zhí)行第α=5次:由于5不是2的冪數(shù),因此需要執(zhí)行如下步驟:1.從P中取出第4條規(guī)則(+,-,+,-,+,-,+,-)和第1條規(guī)則(+,+,+,+,-,-,-,-),并進(jìn)行加法運算,得到新的規(guī)則R=(+,-,+,-,-,+,-,+),放入到切分規(guī)則組P中;P中所含的切分規(guī)則,如表10所示:表10:第四次切分所用的切分規(guī)則組2.根據(jù)表8所給的B=(I1,I2,...,I8)和P中的最后一條規(guī)則R=(+,-,+,-,-,+,-,+),可以構(gòu)造:I(T)={1,...,10,21,...,30,51,...,60,71,...,80}I(V)={11,...,20,31,...,40,41,...,50,61,...,70}3.根據(jù)I(T)和I(V)中的指標(biāo)從D中抽取出訓(xùn)練集和驗證集,并對所給機器學(xué)習(xí)系統(tǒng)的性能進(jìn)行估計,得到和放入到性能估計組中,得到此時,用戶追加的性能評估完成。此時,將E中的所有估計值進(jìn)行平均得到輸出給用戶。接著,等待用戶進(jìn)一步的指令。用戶輸入退出指令,則退出計算。我們總結(jié)一下5次構(gòu)造中所生成的訓(xùn)練指標(biāo)集和驗證指標(biāo)集,如表11所示。表11:訓(xùn)練指標(biāo)集和驗證指標(biāo)集組數(shù)I(T)I(V)i=11,…,10,11,…,20,21,…,30,31,…,4041,…,50,51,…,60,61,…,70,71,…,80i=21,…,10,11,…,20,41,…,50,51,…,6021,…,30,31,…,40,61,…,70,71,…,80i=31,…,10,11,…,20,61,…,70,71,…,8021,…,30,31,…,40,41,…,50,51,…,60i=41,…,10,21,…,30,41,…,50,61,…,7011,…,20,31,…,40,51,…,60,71,…,80i=51,…,10,21,…,30,51,…,60,71,…,8011,…,20,31,…,40,41,…,50,61,…,70從表11中可以看出,任意兩組訓(xùn)練集之間,記錄重疊個數(shù)均為40/4=10個。這驗證了本發(fā)明算法的正確性。下面我們給出一個實際數(shù)據(jù)上的例子來說明本發(fā)明對性能估計方差的影響:我們需要評估的機器學(xué)習(xí)系統(tǒng)為光學(xué)字母識別系統(tǒng)。該系統(tǒng)會將每一個字母圖片分為兩類:第一類表明所給字母圖片屬于A-M中的一個字母;第二類表明所給字母圖片屬于N-Z中的一個字母。我們分別用支持向量機和k-近鄰兩種機器學(xué)習(xí)算法來構(gòu)建出兩個不同的機器學(xué)習(xí)系統(tǒng),記為svm-sys和knn-sys.我們采用UCI庫中的letter數(shù)據(jù)集作為評測數(shù)據(jù)集來評測svm-sys和knn-sys的性能。數(shù)據(jù)的具體介紹見:http://archive.ics.uci.edu/ml/datasets/Letter+Recognition。為了滿足系統(tǒng)評估的需要,我們需要將Letter數(shù)據(jù)集中的A-M歸為一類,將N-Z歸為另一類。為了對比m×2交叉驗證以及本發(fā)明的切分方法,我們需要通過多次重復(fù)來計算出每種切分方法所得性能估計的方差。為此,我們從Letter中有放回地抽取1000個數(shù)據(jù)集,每個數(shù)據(jù)集上包含500條記錄。在每個數(shù)據(jù)集上執(zhí)行100次本發(fā)明的方法以及m×2交叉驗證方法。我們采用0-1損失來計算系統(tǒng)性能的估計值。最終,得到如表12所示的性能估計的方差值。表12:Letter數(shù)據(jù)上機器學(xué)習(xí)系統(tǒng)性能估計方差對比從表12中可以看出,本發(fā)明所給方法可以有效地減少機器學(xué)習(xí)系統(tǒng)性能估計的方差。進(jìn)而給使用者提供更為精準(zhǔn)的性能估計指標(biāo),使使用者可以從多個系統(tǒng)性能中有效地甄別出性能優(yōu)良的機器學(xué)習(xí)系統(tǒng)。本發(fā)明的詳細(xì)步驟和特征已經(jīng)在
發(fā)明內(nèi)容和圖一中給出。上述的分析過程也給出了本發(fā)明算法核心步驟的解釋?;谏鲜龅姆治?,我們認(rèn)為,在本發(fā)明中最應(yīng)該保護(hù)的是數(shù)據(jù)集的切分按照正交表的列進(jìn)行構(gòu)造(技術(shù)方案中的c步)以及數(shù)據(jù)子塊和正交表構(gòu)造動態(tài)擴展(技術(shù)方案中的a和b兩步)兩個步驟。當(dāng)前第1頁1 2 3