本發(fā)明屬于粗糙集、機器學習、數(shù)據(jù)挖掘等領(lǐng)域,具體涉及一種主動學習方法。
背景技術(shù):
在做數(shù)據(jù)分析與處理的過程中,需要通過給定的數(shù)據(jù)(訓練集)訓練一個模型,在具體的實踐過程中:我們會發(fā)現(xiàn)可以很方便快捷的獲取到數(shù)據(jù),但是這些數(shù)據(jù)往往都是沒有標記的。隨著大數(shù)據(jù)時代的來臨,數(shù)據(jù)影響著人們生活的方方面面,但是這些數(shù)據(jù)是冗余的、繁瑣的、無標記的。直接獲取有價值、帶有標記的數(shù)據(jù)不僅僅設備條件達不到而且需要大筆的資金和時間。然而,我們可以從這些不帶有標記的數(shù)據(jù)入手,如何對這些數(shù)據(jù)進行加工處理,充分發(fā)揮其潛在的價值,對人們現(xiàn)有的技術(shù)提出了新的要求。
主動學習方法是機器學習方法的一種,可以有效解決上述問題。通過主動學習算法選擇出最有用的數(shù)據(jù)交給專家進行標記,擴大訓練集,創(chuàng)建更有效的模型。相比較傳統(tǒng)的被動學習,該方法可以選擇信息量高,有代表性的數(shù)據(jù)進行打標,避免了數(shù)據(jù)的冗余添加和不必要添加。同時,減少了大批量標記數(shù)據(jù)的人力、物力,降低了數(shù)據(jù)分析的成本。
1974年,simon和lea就提出了主動學習的相關(guān)思想。valiant從統(tǒng)計學的角度出發(fā)證明了通過訓練實例的選擇能夠有效的降低訓練所需的數(shù)據(jù)。近幾年來,越來越多的學者把研究方向鎖定了主動學習,提出了有關(guān)主動學習的相關(guān)概念和理論。相比較于被動學習隨機選取數(shù)據(jù)的方式,主動學習算法選出有用的樣本給用戶標記,而不是被動的接受數(shù)據(jù)。根據(jù)實驗結(jié)果,在實現(xiàn)相同精確度的前提下,與隨機選擇相比較主動選擇可以大量減少所需的樣本數(shù)量。主動學習算法的執(zhí)行過程可以分為兩個過程。其一:通過樣例選擇算法選擇出信息量最高,價值量最大的樣本進行標記,將標記的樣本添加到有標記的樣本中去。其二:利用現(xiàn)有的有標記數(shù)據(jù)創(chuàng)建一個基分類器,選擇合適的評估指標,通過有監(jiān)督學習衡量分類器的分類性能。這兩個過程交替執(zhí)行,通過不斷的迭代,使得分類器的性能達到最優(yōu),或者設置迭代的次數(shù),直到達到預設的條件。
根據(jù)選擇無標記數(shù)據(jù)的形式,可以將主動學習分為兩類:基于流的主動學習、基于池的主動學習。
基于流的主動學習:該方法在詞性標注、消除詞義分歧等自然語言處理方向得到了廣泛的應用。樣本按照流的形式,用學習算法對其逐一判斷,判斷結(jié)果只要兩種可能,要么打標要么不打標。將需要打標的樣本交由專家打標。不打標的樣本直接拋棄,不在使用。代表性的方法有委員會查詢(querybycommittee,qbc)。
基于池的主動學習:與基于流的主動學習要求順序采樣、逐一判斷不同,該方法要求對某一范圍的數(shù)據(jù)進行統(tǒng)一判斷,根據(jù)某一指標選擇出topk個樣本進行標注。當然基于池的樣本也可以轉(zhuǎn)換使用基于流學習方法,每次從池中選擇出少量的樣本進行單獨的判斷?;诔氐闹鲃訉W習是當下研究最熱門,最受關(guān)注,應用最廣的方法。
主動學習的樣本選擇策略:
1.基于不確定性的樣本選擇策略
通過不確定性的度量方法,挑選出最不能確定的其分類的樣本交給人類專家進行標記。對于二分類問題,可以通過創(chuàng)建概率模型,選擇出后驗概率值最接近0.5的樣本進行標記。對于多分類問題,往往選擇的是低置信的樣本,或者基于margin選擇出最大后驗概率和次最大后驗概率的差值最小的樣本。另外還可以通過信息熵計算來確定樣本的不確定性,熵值越大,不確定性越大。
2.基于未來誤差縮減的樣本選擇策略
將每個沒有標記的樣本放入待標記樣本中進行標記,然后添加到訓練集中,訓練出新的分類器,選擇出使得分類器期望誤差縮減最大的樣本進行標記。由于估計期望誤差縮減需要很大的計算量,所以這種方法常運用到二分類問題中3.基于委員會查詢的樣本選擇策略
基于委員會查詢的方法通過創(chuàng)建多個模型構(gòu)成委員會,利用這些模型分別對無標記樣本進行決策,決策最不一致的樣本視為最不能確定分類的樣本,將該類樣本添加到待標記樣本中進行打標可以最小化版本空間。
三支決策是由yaoyy在概率粗糙集和決策粗糙集的基礎上研究得出。概率粗糙集模型引入兩個參數(shù)α和β,將整個空間劃分為了三個域:正域、負域還有邊界域。yaoyy首次提出了三支決策的相關(guān)概念:正域意味著對事物的肯定,負域意味對事物的否定,邊界域意味著對某一事物沒有十足的把握,無法立即做出決策。三支決策為概率粗糙集賦予了新的語義,它的出現(xiàn)為決策問題提供了新的思考方法。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在解決以上現(xiàn)有技術(shù)的問題。提出了一種更好的提升分類器各項性能、可有效用于處理目前大量分類屬性缺失的情況的基于三支決策理論的主動學習方法。本發(fā)明的技術(shù)方案如下:
一種基于三支決策理論的主動學習方法,其包括以下步驟:
1)、獲取數(shù)據(jù)集并調(diào)用隨機函數(shù)將數(shù)據(jù)集隨機化,按照比例將數(shù)據(jù)集劃分為有標記數(shù)據(jù)集、無標記數(shù)據(jù)集、測試集;
2)、利用有標記數(shù)據(jù)集訓練樸素貝葉斯分類器,通過樸素貝葉斯分類器對無標記數(shù)據(jù)進行后驗概率估計,計算每個無標記數(shù)據(jù)的不確定性;
3)、根據(jù)不確定性的大小將無標記數(shù)據(jù)劃分為三個域,即正域、負域及邊界域。其中涉及到兩種劃分方法:根據(jù)閾值進行劃分和根據(jù)不確定性大小進行排序劃分;
4)、對步驟3)中不同域上的樣本分開處理,選擇出信息量大、價值高的樣本進行標記,并將標記好的樣本添加到訓練集中,以訓練新的分類器對測試集進行結(jié)果測試,為了測試分類器的性能,使用不同評估標準進行驗證。
進一步的,所述步驟2)對無標記數(shù)據(jù)采用margin策略進行后驗概率估計,計算后驗概率的差值,確定每一個無標記數(shù)據(jù)的不確定性;
d_value(x)=p(yfirst|x,l)-p(ysecond|x,l)(1),
其中d_value(x)表示不確定性的大小,p(yfirst|x,l)后驗概率最大的值,p(ysecond|x,l)后驗概率次最大的值。
進一步的,所述步驟3)中根據(jù)閾值將無標記數(shù)據(jù)劃分為三個域具體包括:根據(jù)閾值threshold_α,threshold_β進行劃分,定義如下:
ifd_value(x)≤threshold_αx∈pos(x)
ifthreshold_α<d_value(x)<threshod_βx∈bnd(x)(2)
ifd_value(x)≥threshold_βx∈neg(x)
其中,0≤threshold_α<threshold_β≤1
threshold_α,threshold_β可根據(jù)經(jīng)驗值或設定的可信度來確定。
進一步的,所述步驟3)中按照不確定性進行排序劃分具體包括:按照不確定性由小到大進行排序,通過控制數(shù)量,對樣本空間進行劃分,前topk屬于正域,后topk屬于負域,中間的一部分屬于邊界域,k的取值受挑選數(shù)量selectnum的影響。
進一步的,所述步驟4)中對步驟3)中不同域上的樣本分開處理具體包括步驟:
對于正域:即x∈pos(x)的樣本集合,直接添加到待標記序列,并將其從無標記數(shù)據(jù)中刪除;負域:即x∈neg(x)的樣本集合,不對該類樣本做任何處理;邊界域:x∈bnd(x)需要進一步確定是否打標,包括步驟:通過樣本兩兩間的距離確定邊界域樣本的領(lǐng)域半徑;計算領(lǐng)域密度,選擇最具有代表性的樣本,代表性的樣本由大到小進行排序,選擇topk個樣本添加到待標記序列select中。
進一步的,所述計算邊界域樣本兩兩間的距離包括:若屬性為連續(xù)型屬性,使用歐拉距離,定義如下:假設樣本x={x1,x2,...xj...,xm},y={y1,y2,...yj...,ym}:
xj表示樣本x的第j個屬性,yj表示樣本y的第j個屬性;
若屬性為離散型屬性,選擇使用vdm,定義如下:假設樣本x1,x2在離散型屬性的兩個值v1,v2,
c1是所有樣本中該屬性值為v1的個數(shù),c1i則為其中類別為i個數(shù),c2是所有樣本中該屬性值為v2的個數(shù),c2i則為其中類別為i個數(shù),k為常數(shù),通常取1。
進一步的,所述確定樣本的領(lǐng)域半徑的公式為:
δ=min(dis(xi,s))+w×range(dis(xi,s)),0≤w≤1(5)
其中,min(dis(xi,s))表示距離其最近的樣本,range(dis(xi,s))表示在指定數(shù)據(jù)集中其距離的取值范圍,w控制著半徑的大小,
進一步的,所述具有代表性的點有如下定義:
d_value(x)表示不確定性的大小,該值越小不確定性越大,xk為鄰域半徑內(nèi)的無標記樣本,n為使公式dis(x,xk)≤δ成立xk的個數(shù),假設樣本x和樣本xk的屬性空間分別為x={x1,x2,...xj...,xm},xk={xk1,xk2,...xkj...,xkm},使用余弦公式計算兩者的相似度,余弦公式如下:
本發(fā)明的優(yōu)點及有益效果如下:
本發(fā)明將三支決策理論運用到了主動學習中,通過不確定的大小將樣本空間劃分為3個域:正域,邊界域,負域。本發(fā)明提出兩種劃分方法,方法一:根據(jù)閾值進行劃分,方法二:根據(jù)不確定性大小進行排序劃分。對于不同域中的樣本分別選擇了不同的處理方法,對于正域的樣本直接添加到待標記序列select中;對于負域的樣本不做處理;對于邊界域的樣本,基于鄰域計算鄰域密度,確定其代表性,選擇topk個樣本添加到待標記序列select中,最后讓專家為select中的樣本進行打標,這種從個體差異出發(fā),有的放矢進行樣本選擇的方法可更好選擇出具有標記意義的樣本進行標記,從而更好的提升分類器各項性能,比如分類正確率、roc、f-value。該方法對主動學習進行了擴展,可有效用于處理目前大量分類屬性缺失的情況。
附圖說明
圖1是本發(fā)明提供優(yōu)選實施例主動學習流程圖;
圖2:劃分正域、負域的原理圖;
圖3:選擇邊界域上具有代表性樣本的原理圖;
圖4:基于不確定性劃分區(qū)域的原理圖;
圖5:基于三支決策的主動學習流程圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、詳細地描述。所描述的實施例僅僅是本發(fā)明的一部分實施例。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
本發(fā)明的技術(shù)方案包括以下幾個步驟:
本發(fā)明的方法包括如下步驟:
step1:對實驗數(shù)據(jù)進行劃分。將數(shù)據(jù)劃分為有標記數(shù)據(jù)(訓練集)、無標記數(shù)據(jù)和待測試數(shù)據(jù)(測試集)。
step2:利用現(xiàn)有的有標記數(shù)據(jù)即訓練集訓練一個基分類器——樸素貝葉斯分類器,使用創(chuàng)建好的分類器在無標記數(shù)據(jù)上估計每一樣本的后驗概率值。如果該分類器是一個二分類,用最大分類的后驗概率減去另一分類的后驗概率。如果是多分類,則選擇后驗概率值最大和次最大的值并求差值d_value。
step3:基于不確定性,按照某一閾值將整個無標記數(shù)據(jù)空間劃分到三個不同的域中。對于d_value的取值較小的數(shù)據(jù),視為不確定性較高的數(shù)據(jù),直接劃分到正域中,將其添加到待標記序列select中,等待人類專家進行標記,并從無標記數(shù)據(jù)集中刪除該部分數(shù)據(jù);對于d_value的取值較大的數(shù)據(jù),視為可以確定分類,將其劃分到負域中,不用該部分數(shù)據(jù)做處理;剩下的數(shù)據(jù)劃分到邊界域。對于邊界域的數(shù)據(jù)若對它們打標并不是完全的沒有意義的,為了選擇更有標記價值的數(shù)據(jù)。需要重新確定是否打標。
step4:對邊界域上的點進行處理。對于邊界域上的數(shù)據(jù),為了使得標注更有價值,引入鄰域的概念,在鄰域內(nèi)計算無標記數(shù)據(jù)的密度。將樣本的分布信息考慮在內(nèi),選擇出具有代表性的數(shù)據(jù)。
step5:對具有代表性的信息量重新進行排序,選擇topk添加到待標記的數(shù)據(jù)集select中。
step6:將select中的數(shù)據(jù)交給領(lǐng)域?qū)<?,對它們進行打標,根據(jù)select的結(jié)果更新訓練集和無標記數(shù)據(jù)集。利用更新后的訓練集創(chuàng)建新的分類器,對測試集進行結(jié)果測試。
重復step2-step6的步驟,直到滿足迭代的預設條件或達到性能度量的要求。
進一步的,所述step1中:為了更好的對學習器泛化性能進行評估,單使用一次數(shù)據(jù)劃分得到試驗結(jié)果往往不夠穩(wěn)定可靠,也難具有說服力。若選擇采用若干次隨機劃分,重復試驗,最終求平均值的方法,顯然得到的評估結(jié)果更合理、更有說服力。在做實驗的時候,指定重復實驗的次數(shù),觀察每次循環(huán)實驗中不同數(shù)據(jù)劃分的測試結(jié)果。所以在劃分數(shù)據(jù)的時候,需要調(diào)用隨機函數(shù),實現(xiàn)對數(shù)據(jù)的隨機劃分。
進一步的,所述step2中:創(chuàng)建樸素貝葉斯分類器,樸素貝葉斯分類器以條件屬性獨立為前提,假設每個屬性對分類結(jié)果產(chǎn)生的影響是相互獨立的。從而解決了求解類條件概率p(x|c)這個所有屬性的聯(lián)合概率分布的問題,如果基于有限樣本直接計算聯(lián)合概率,在計算問題上將會面臨著組合爆炸的問題,在數(shù)據(jù)上將會面臨著樣本稀疏的問題,如果數(shù)據(jù)集還屬于屬性特別多的情況,那么面臨的問題會更嚴重。
通過樸素貝葉斯分類器確定某一樣本分類的原理如下:
屬性特征的集合:x={a1,a2,a3...am}
類別屬性的集合:c={y1,y2,y3...yn}
p(x)是用于歸一化的“證據(jù)”因子,對于給定的樣本x,證據(jù)因子p(x)與分類屬性沒有任何關(guān)系,對于任何的分類屬性該值的大小不發(fā)生變化。所以只要將分子最大化即可。樸素貝葉斯分類器的表達式常常定義如下:
即將使得式子
p(yfirst,x)和次最大的概率值p(ysecond,x)做差值,會出現(xiàn)不同的概率值,但差值卻相同的情況。以二分類為例,情景一:p(yfirst,x)和p(ysecond,x)取值分別為0.4,0.2,
d_value=p(yfirst,x)-p(ysecond,x)=0.2;情景二:p(yfirst,x)和p(ysecond,x)取值分別為
0.5,0.3,d_value=p(yfirst,x)-p(ysecond,x)=0.2;實際上,情景一加入證據(jù)因子后
另外關(guān)于條件概率p(xj|yi)的計算,對于離散型屬性而言,采用公式
進一步的,所述step2和step3中:構(gòu)造樸素貝葉斯分類器,選擇最不確定的樣本進行標記,這里選擇使用不確定性的代表方法margin策略,margin公式如下
x*=argmin(p(yfirst|x,l)-p(ysecond|x,l))(4)
yfirst:后驗概率最大的值,ysecond:后驗概率次最大的值,當兩個的值相差最小的時候,不確定性越大。
以二分類(y,n)為例,如果d_value的取值很小說明數(shù)據(jù)屬于分類y或分類n的概率比較鄰近。這時分類器無法較準確的對該數(shù)據(jù)進行決策。如果將該類數(shù)據(jù)打標則可以很大程度上提高分類的性能,這就是基于不確定性選擇出最值得標記的樣本。如果d_value的取值較大,比如分類y的后驗概率遠遠大于分類n的后驗概率,在誤差允許的范圍內(nèi),這時分類器已經(jīng)有十足的把握確定該數(shù)據(jù)的分類結(jié)果。對于這種情況,我們不需要對該類數(shù)據(jù)在做處理。
進一步的,所述step3中:基于不確定性,依據(jù)閾值對數(shù)據(jù)進行劃分,這里涉及到兩種劃分方法。方法一:根據(jù)經(jīng)驗值或設定的可信度確定threshold_α,threshold_β進行劃分;方法二:按照不確定性由小到大進行排序,通過控制數(shù)量進行劃分。為了更好的說明不同區(qū)域的劃分,繪制如圖2進一步說明問題。
對于樣本a,通過分類器得到后驗概率值,最大概率值遠遠大于次最大概率值,這時認為可以確定它的分類了。即使a的密度很大,也不再對a進行標記了,此時,將a劃分為負域。
對于樣本b,通過分類器得到后驗概率值,最大概率值與次最大概率值很靠近,分類器對它決策錯誤的概率很大,雖然樣本b沒有樣本a的密度大。顯然,對b進行標記意義更大,此時,將b劃分為正域。
進一步的,所述step4中:基于不確定性來對數(shù)據(jù)進行三支的劃分,有大多數(shù)的樣本取得不是兩端的最值,不確定性處于中間狀態(tài),如果知道此類數(shù)據(jù)周圍有更多的無標記樣本,則說明該數(shù)據(jù)具有代表性,對其進行打標可以降低周圍樣本的不確定性,提高分類器的性能。
對邊界域中的數(shù)據(jù)處理如圖3,構(gòu)造的分類器對無標記樣本的a,b的分類都有不確定性,但是顯然,樣本a更具有代表性,對a打標更有利于學習。在邊界域上的樣本需要將周圍樣本的分布情況也考慮在內(nèi),將最有代表性的樣本打標。
以下以具體實施例進行描述,具體包括以下步驟:
(1)數(shù)據(jù)劃分
調(diào)用隨機函數(shù)使數(shù)據(jù)隨機化,對數(shù)據(jù)進行劃分,可設置有標記數(shù)據(jù)集:無標記數(shù)據(jù)集:測試集=1:69:30,即1%的數(shù)據(jù)用于有標記數(shù)據(jù),69%的數(shù)據(jù)用于無標記數(shù)據(jù),30%的數(shù)據(jù)用于測試。將69%的無標記數(shù)據(jù)集通過每次的迭代有選擇的添加到1%的有標記數(shù)據(jù)集(訓練集)中。每次迭代通過主動學習方法對無標記數(shù)據(jù)集進行選擇,挑選出最有價值,最有意義的樣本進行標記。將標記好的樣本添加到訓練集中,訓練新的分類器對測試集進行測試,觀察比較每次添加過程后分類器的性能。
(2)計算無標記數(shù)據(jù)的不確定性,按照不確定性劃分不同的域
構(gòu)造樸素貝葉斯分類器,根據(jù)margin策略,計算后驗概率的差值,確定每一個無標記數(shù)據(jù)的不確定性。
d_value(x)=p(yfirst|x,l)-p(ysecond|x,l)(1)
基于不確定性的大小,將整個樣本空間劃分為3個域:正域、負域、邊界域。
劃分方法一:根據(jù)閾值threshold_α,threshold_β進行劃分,定義如下:
ifd_value(x)≤threshold_αx∈pos(x)
ifthreshold_α<d_value(x)<threshod_βx∈bnd(x)(2)
ifd_value(x)≥threshold_βx∈neg(x)
其中,0≤threshold_α<threshold_β≤1
threshold_α,threshold_β可根據(jù)經(jīng)驗值或設定的可信度來確定。以二分類為例進行說明,若threshold_α=0.05,threshold_β=0.95
當d_value=0.05時
p(y1|x)+p(y2|x)=1,p(y1|x)-p(y2|x)=0.05求解方程組,可得如下結(jié)果p(y1|x)=0.525,p(y2|x)=0.475,即當二分類的后驗概率分別是0.525和0.475時,將其劃分為正域,視為完全不能確定分類。
當d_value=0.95時
p(y1|x)+p(y2|x)=1,p(y1|x)-p(y2|x)=0.95求解方程組,可得如下結(jié)果p(y1|x)=0.975,p(y2|x)=0.025,即當二分類的后驗概率分別是0.975和0.025時,將其劃分為負域,視為可以確定分類。
劃分方法二:如圖4,按照概率值由小到大進行排序,通過控制數(shù)量,對樣本空間進行劃分,前topk屬于正域,后topk屬于負域,中間的一部分屬于邊界域。
以
if
if
if
其中,selectnum:每次迭代期望標記的數(shù)量。
top(x):定義一個函數(shù),獲取數(shù)據(jù)x的在排序隊列中的序號。
(3)對不同域上的數(shù)據(jù)做相應的處理
正域:即x∈pos(x)的樣本集合,直接添加到待標記序列,并將其從無標記數(shù)據(jù)中刪除;負域:即x∈neg(x)的樣本集合,對該類樣本打標意義不大,不對該類樣本做任何處理。邊界域:x∈bnd(x)需要進一步確定是否打標。
1.計算樣本兩兩間的距離。
若屬性為連續(xù)型屬性,使用歐拉距離,定義如下:
若屬性為離散型屬性,選擇使用vdm,定義如下:假設樣本x1,x2在離散型屬性的兩個值v1,v2,
c1是所有樣本中該屬性值為v1的個數(shù),c1i則為其中類別為i個數(shù),c2是所有樣本中該屬性值為v2的個數(shù),c2i則為其中類別為i個數(shù)。k為常數(shù),通常取1。
2.確定樣本的領(lǐng)域半徑
δ=min(dis(xi,s))+w×range(dis(xi,s)),0≤w≤1(5)
其中,min(dis(xi,s))表示距離其最近的樣本,range(dis(xi,s))表示在指定數(shù)據(jù)集中其距離的取值范圍,w控制著半徑的大小
3.選擇最具有代表性的樣本
由于d_value的值越小,不確定性越大,取其相反數(shù)則有d_value的值越大,不確定性越大,為了避免負數(shù),進行加1操作,于是具有代表性的點有如下定義:
n為使公式dis(x,xk)≤δ成立的個數(shù),其中,
對代表性的樣本由大到小進行排序,選擇topk個樣本添加到待標記序列select中
(4)為待標記序列打標,創(chuàng)建新的分類器
對每個域選擇出的樣本取并集運算,即待標記序列select中的樣本,交給專家等待標記,將已標記的樣本添加到訓練集,創(chuàng)建新的分類器。
(5)結(jié)果測試
主動學習算法是一個迭代的過程,每次選擇selectnum添加到待標記數(shù)據(jù)集中,并對它們進行標注。更新訓練集,創(chuàng)建新的分類器,利用測試集對分類性能進行測試。通過不斷的迭代添加無標記數(shù)據(jù)直到滿足預設迭代次數(shù)或評價標準。這里的評價指標可以選擇使用accuracy,roc,f-value等。為了使得實驗結(jié)果更具有穩(wěn)定可靠性,通過隨機劃分的方法,比如對數(shù)據(jù)進行10次的測試,最后求取這10次平均結(jié)果。
以上這些實施例應理解為僅用于說明本發(fā)明而不用于限制本發(fā)明的保護范圍。在閱讀了本發(fā)明的記載的內(nèi)容之后,技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等效變化和修飾同樣落入本發(fā)明權(quán)利要求所限定的范圍。