15.1基本概念
規(guī)則學(xué)習(xí)是從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)一組能用于對(duì)未見示例進(jìn)行判別的規(guī)則。

規(guī)則可分為兩類:命題規(guī)則和一階規(guī)則
命題規(guī)則由原子命題和邏輯連接詞構(gòu)成簡(jiǎn)單陳述句。
一階規(guī)則基本成分是能描述事物的屬性或關(guān)系的原子公式,能夠表達(dá)復(fù)雜的關(guān)系,也被稱為關(guān)系型規(guī)則
命題規(guī)則是一階規(guī)則的特例,一階規(guī)則的學(xué)習(xí)比命題規(guī)則復(fù)雜。
15.2 序貫覆蓋

一般有兩種策略:
自頂向下:從比較一般的規(guī)則開始,逐漸添加新文字以縮小規(guī)則覆蓋范圍,直到滿足預(yù)定條件為止,“生成測(cè)試法”,容易產(chǎn)生泛化性能好的規(guī)則
自底向上:從比較特殊的規(guī)則開始,逐漸刪除文字以擴(kuò)大規(guī)則覆蓋范圍,直到滿足條件為止,更適用于訓(xùn)練樣本較少的情形,在假設(shè)空間非常復(fù)雜的任務(wù)上使用
規(guī)則生成過(guò)程中涉及一個(gè)評(píng)估規(guī)則優(yōu)劣的標(biāo)準(zhǔn)

集束搜索:每輪保留最優(yōu)的b個(gè)邏輯文字,在下一輪均用于構(gòu)建候選集,再把候選集中最優(yōu)的b個(gè)留待下一輪使用
多分類問(wèn)題:當(dāng)學(xué)習(xí)關(guān)于第C個(gè)類的規(guī)則時(shí),將所有屬于類別C的樣本作為正例,其他類別的作為反例
15.3 剪枝優(yōu)化
(摘轉(zhuǎn) https://blog.csdn.net/taoqick/article/details/72818496)后剪枝
REP 剪枝
REP方法是一種比較簡(jiǎn)單的后剪枝的方法,在該方法中,可用的數(shù)據(jù)被分成兩個(gè)樣例集合:一個(gè)訓(xùn)練集用來(lái)形成學(xué)習(xí)到的決策樹,一個(gè)分離的驗(yàn)證集用來(lái)評(píng)估這個(gè)決策樹在后續(xù)數(shù)據(jù)上的精度,確切地說(shuō)是用來(lái)評(píng)估修剪這個(gè)決策樹的影響。
這個(gè)方法的動(dòng)機(jī)是:即使學(xué)習(xí)器可能會(huì)被訓(xùn)練集中的隨機(jī)錯(cuò)誤和巧合規(guī)律所誤導(dǎo),但驗(yàn)證集合不大可能表現(xiàn)出同樣的隨機(jī)波動(dòng)。所以驗(yàn)證集可以用來(lái)對(duì)過(guò)度擬合訓(xùn)練集中的虛假特征提供防護(hù)檢驗(yàn)。
該剪枝方法考慮將書上的每個(gè)節(jié)點(diǎn)作為修剪的候選對(duì)象,決定是否修剪這個(gè)結(jié)點(diǎn)有如下步驟組成:
1:刪除以此結(jié)點(diǎn)為根的子樹
2:使其成為葉子結(jié)點(diǎn)
3:賦予該結(jié)點(diǎn)關(guān)聯(lián)的訓(xùn)練數(shù)據(jù)的最常見分類
4:當(dāng)修剪后的樹對(duì)于驗(yàn)證集合的性能不會(huì)比原來(lái)的樹差時(shí),才真正刪除該結(jié)點(diǎn)
因?yàn)橛?xùn)練集合的過(guò)擬合,使得驗(yàn)證集合數(shù)據(jù)能夠?qū)ζ溥M(jìn)行修正,反復(fù)進(jìn)行上面的操作,從底向上的處理結(jié)點(diǎn),刪除那些能夠最大限度的提高驗(yàn)證集合的精度的結(jié)點(diǎn),直到進(jìn)一步修剪有害為止(有害是指修剪會(huì)減低驗(yàn)證集合的精度)。
REP是最簡(jiǎn)單的后剪枝方法之一,不過(guò)由于使用獨(dú)立的測(cè)試集,原始決策樹相比,修改后的決策樹可能偏向于過(guò)度修剪。這是因?yàn)橐恍┎粫?huì)再測(cè)試集中出現(xiàn)的很稀少的訓(xùn)練集實(shí)例所對(duì)應(yīng)的分枝在剪枝過(guò)如果訓(xùn)練集較小,通常不考慮采用REP算法。
盡管REP有這個(gè)缺點(diǎn),不過(guò)REP仍然作為一種基準(zhǔn)來(lái)評(píng)價(jià)其它剪枝算法的性能。它對(duì)于兩階段決策樹學(xué)習(xí)方法的優(yōu)點(diǎn)和缺點(diǎn)提供了了一個(gè)很好的學(xué)習(xí)思路。由于驗(yàn)證集合沒有參與決策樹的創(chuàng)建,所以用REP剪枝后的決策樹對(duì)于測(cè)試樣例的偏差要好很多,能夠解決一定程度的過(guò)擬合問(wèn)題。
PEP
悲觀錯(cuò)誤剪枝法是根據(jù)剪枝前后的錯(cuò)誤率來(lái)判定子樹的修剪。該方法引入了統(tǒng)計(jì)學(xué)上連續(xù)修正的概念彌補(bǔ)REP中的缺陷,在評(píng)價(jià)子樹的訓(xùn)練錯(cuò)誤公式中添加了一個(gè)常數(shù),假定每個(gè)葉子結(jié)點(diǎn)都自動(dòng)對(duì)實(shí)例的某個(gè)部分進(jìn)行錯(cuò)誤的分類。
把一顆子樹(具有多個(gè)葉子節(jié)點(diǎn))的分類用一個(gè)葉子節(jié)點(diǎn)來(lái)替代的話,在訓(xùn)練集上的誤判率肯定是上升的,但是在新數(shù)據(jù)上不一定。于是我們需要把子樹的誤判計(jì)算加上一個(gè)經(jīng)驗(yàn)性的懲罰因子。對(duì)于一顆葉子節(jié)點(diǎn),它覆蓋了N個(gè)樣本,其中有E個(gè)錯(cuò)誤,那么該葉子節(jié)點(diǎn)的錯(cuò)誤率為(E+0.5)/N。這個(gè)0.5就是懲罰因子,那么一顆子樹,它有L個(gè)葉子節(jié)點(diǎn),那么該子樹的誤判率估計(jì)為:

這樣的話,我們可以看到一顆子樹雖然具有多個(gè)子節(jié)點(diǎn),但由于加上了懲罰因子,所以子樹的誤判率計(jì)算未必占到便宜。剪枝后內(nèi)部節(jié)點(diǎn)變成了葉子節(jié)點(diǎn),其誤判個(gè)數(shù)J也需要加上一個(gè)懲罰因子,變成J+0.5。那么子樹是否可以被剪枝就取決于剪枝后的錯(cuò)誤J+0.5在的標(biāo)準(zhǔn)誤差內(nèi)。對(duì)于樣本的誤差率e,我們可以根據(jù)經(jīng)驗(yàn)把它估計(jì)成各種各樣的分布模型,比如是二項(xiàng)式分布,比如是正態(tài)分布。
那么一棵樹錯(cuò)誤分類一個(gè)樣本值為1,正確分類一個(gè)樣本值為0,該樹錯(cuò)誤分類的概率(誤判率)為e(e為分布的固有屬性,可以通過(guò)統(tǒng)計(jì)出來(lái)),那么樹的誤判次數(shù)就是伯努利分布,我們可以估計(jì)出該樹的誤判次數(shù)均值和標(biāo)準(zhǔn)差:


使用訓(xùn)練數(shù)據(jù),子樹總是比替換為一個(gè)葉節(jié)點(diǎn)后產(chǎn)生的誤差小,但是使用校正后有誤差計(jì)算方法卻并非如此,當(dāng)子樹的誤判個(gè)數(shù)大過(guò)對(duì)應(yīng)葉節(jié)點(diǎn)的誤判個(gè)數(shù)一個(gè)標(biāo)準(zhǔn)差之后,就決定剪枝:

這個(gè)條件就是剪枝的標(biāo)準(zhǔn)。當(dāng)然并不一定非要大一個(gè)標(biāo)準(zhǔn)差,可以給定任意的置信區(qū)間,我們?cè)O(shè)定一定的顯著性因子,就可以估算出誤判次數(shù)的上下界。
話不多說(shuō),上例子:(9、7識(shí)別錯(cuò)誤的個(gè)數(shù))

在上述例子中T8種的類1可以認(rèn)為是識(shí)別錯(cuò)誤的T4這棵子樹的估計(jì)錯(cuò)誤為5,T4子樹的最后葉子節(jié)點(diǎn)為3個(gè)
上述是悲觀錯(cuò)誤剪枝。
悲觀剪枝的準(zhǔn)確度比較高,但是依舊會(huì)存在以下的問(wèn)題:
1.PeP算法實(shí)用的從從上而下的剪枝策略,這種剪枝會(huì)導(dǎo)致和預(yù)剪枝同樣的問(wèn)題,造成剪枝過(guò)度。
2.Pep剪枝會(huì)出現(xiàn)剪枝失敗的情況。d

RIPPER
在眾多分類算法中,決策樹作為一種基于有監(jiān)督學(xué)習(xí)的層次模型被大量使用,其有一種其他算法難以比擬的優(yōu)點(diǎn):可解釋性強(qiáng)——通過(guò)將學(xué)習(xí)到的決策樹可以很輕易的轉(zhuǎn)換成“如果…那么”形式的規(guī)則。但決策樹規(guī)則的建立依賴于樹的生成,樹的建立過(guò)程是對(duì)整個(gè)空間的遞歸劃分、建立局部模型的過(guò)程,往往比較耗時(shí),那么有沒有方法可以跳過(guò)這一過(guò)程呢?答案就是規(guī)則歸納算法。
不同于樹歸納,其不需要建立搜索樹而是采用深度優(yōu)先搜索策略直接從數(shù)據(jù)集生成規(guī)則且每次生成一條,在構(gòu)造規(guī)則的過(guò)程中利用了決策樹的特點(diǎn),通過(guò)諸如比較每個(gè)屬性的信息增益不斷貪心地添加規(guī)則前件,并且在每條規(guī)則的建立過(guò)程中使用后剪枝對(duì)規(guī)則進(jìn)行裁剪,每條規(guī)則逐次生成然后加入到規(guī)則庫(kù)中直到無(wú)法再添加更多規(guī)則。為了盡可能減少過(guò)擬合現(xiàn)象,在規(guī)則加入到規(guī)則庫(kù)以后一樣有剪枝步,這使得歸納算法有較好的過(guò)擬合現(xiàn)象。規(guī)則歸納算法的一個(gè)例子是RIPPER算法,其從一系列算法的基礎(chǔ)上發(fā)展而來(lái),與傳統(tǒng)決策樹算法如C4.5相比,其算法效率大大提升,而正確率相差不大。
?先從一個(gè)很基礎(chǔ)的規(guī)則算法REP說(shuō)起,REP的意思是Reduced Error Pruning,意即減少錯(cuò)誤剪枝,其把訓(xùn)練集分成獨(dú)立的生長(zhǎng)集和剪枝集,在生長(zhǎng)集上貪心地產(chǎn)生規(guī)則并在剪枝集上不斷被簡(jiǎn)化直到規(guī)則的準(zhǔn)確性下降。作為一個(gè)很基礎(chǔ)的算法其滿足規(guī)則歸納的各個(gè)要件,描繪了RIPPER算法大體框架。然后是在REP算法上發(fā)展起來(lái)的IREP,其最主要的改變是使用了先剪枝與后剪枝結(jié)合的辦法。接下來(lái)是IREP*算法,相比于IREP,其引入了最小描述長(zhǎng)度用于判斷停止條件,并且在剪枝時(shí)使用了新的度量標(biāo)準(zhǔn)1。而RIPPER算法則是在IREP*的基礎(chǔ)上加入了優(yōu)化階段,其產(chǎn)生在IREP*產(chǎn)生的規(guī)則上進(jìn)一步調(diào)整后的結(jié)果。
RIPPER算法的主框架分為兩個(gè)部分:生成規(guī)則與優(yōu)化規(guī)則。
生成規(guī)則部分是一個(gè)兩層的循環(huán),其中外循環(huán)每次生成一條規(guī)則修剪后添加到規(guī)則庫(kù),內(nèi)循環(huán)則是每次為規(guī)則增加一個(gè)前件;優(yōu)化部分則是根據(jù)規(guī)則庫(kù)里的規(guī)則構(gòu)造備選規(guī)則,并使用MDL準(zhǔn)則挑選出最佳規(guī)則加入規(guī)則庫(kù)。下面介紹算法細(xì)節(jié)部分。
1.準(zhǔn)備階段
這個(gè)階段首先計(jì)算每個(gè)類別的先驗(yàn)概率。由于RIPPER算法本身是二分類算法,所以對(duì)于多分類的數(shù)據(jù)集需要根據(jù)先驗(yàn)概率的降序轉(zhuǎn)換為二分類問(wèn)題,每次對(duì)先驗(yàn)概率較低的類別建立規(guī)則。假設(shè)完整的數(shù)據(jù)集為D,每次對(duì)一個(gè)類別的數(shù)據(jù)建立規(guī)則并加入到規(guī)則庫(kù)中:如完整數(shù)據(jù)集的類C1,C2,…Cn先驗(yàn)概率為p1≤p2≤…≤pn,那么首先對(duì)C1建立規(guī)則,規(guī)則建立完成后將其覆蓋的數(shù)據(jù)從D中刪除。
2.為正例生成規(guī)則
這個(gè)階段的輸入是數(shù)據(jù)集D,正例類別C與其先驗(yàn)概率p,注意這里的數(shù)據(jù)集D是上一次生成規(guī)則階段篩除部分?jǐn)?shù)據(jù)后的數(shù)據(jù)集。首先需要計(jì)算的是在默認(rèn)規(guī)則下的描述長(zhǎng)度,這個(gè)描述長(zhǎng)度將作為一個(gè)參考值使用,算法生成的規(guī)則不應(yīng)該比默認(rèn)規(guī)則有更長(zhǎng)的描述長(zhǎng)度。在這個(gè)階段中,將生成若干條規(guī)則直到無(wú)法繼續(xù),這些規(guī)則的后件都是類別C,每一條規(guī)則的生成都經(jīng)歷增長(zhǎng)和剪枝兩個(gè)階段,增長(zhǎng)階段從空規(guī)則開始,每次增加一個(gè)前件;剪枝階段則從最后一個(gè)被添加的前件逆序往前剪枝。首先需要將數(shù)據(jù)集D分為獨(dú)立的增長(zhǎng)集Grow與修剪集Prune,通常兩者的比例控制在2:1。
2.1規(guī)則增長(zhǎng)階段
這個(gè)階段使用的數(shù)據(jù)集為增長(zhǎng)集Grow。規(guī)則的增長(zhǎng)從空規(guī)則開始(任何實(shí)例都被空規(guī)則覆蓋),類似于決策樹的建立過(guò)程,其每次在所有可能的屬性與閾值之間挑選合適的組合作為前件添加到規(guī)則之中。度量的標(biāo)準(zhǔn)是信息增益,不同于其他決策樹,這里的信息增益并非期望熵的減少,而是來(lái)源于信息論里對(duì)一個(gè)正例編碼所需比特的減少。
2.2規(guī)則修剪階段
修剪階段使用修剪集Prune來(lái)檢驗(yàn)規(guī)則的泛化能力。在這個(gè)階段,從最后一項(xiàng)被添加的前件開始往前依次刪去規(guī)則的一個(gè)前件,計(jì)算其在修剪集上的準(zhǔn)確率(即被規(guī)則覆蓋的數(shù)據(jù)中真正正例的比例)。算法選擇準(zhǔn)確率最高且前件盡可能少的規(guī)則,但該規(guī)則的準(zhǔn)確率至少要比空規(guī)則高。記待修剪的規(guī)則R=(a1,a2,…a6),下表展示了修剪的過(guò)程

比較得出當(dāng)規(guī)則只有兩個(gè)前件時(shí)準(zhǔn)確率最高,因此把前件a3,a4,a5,a6都刪除。在某些文獻(xiàn)中,剪枝時(shí)度量標(biāo)準(zhǔn)是最大化p?n/p+n,其中p是修剪集中被規(guī)則覆蓋的正例,n是被規(guī)則覆蓋的負(fù)例,其實(shí)兩者是等價(jià)的,其實(shí)質(zhì)仍是最大化修剪集上的準(zhǔn)確率。
一旦規(guī)則被剪枝完成,則試圖把其添加到規(guī)則庫(kù)中,計(jì)算規(guī)則庫(kù)的描述長(zhǎng)度并更新最小描述長(zhǎng)度。若添加規(guī)則后的描述長(zhǎng)度比最小描述長(zhǎng)度多64位時(shí)則停止添加規(guī)則,并把剛添加的規(guī)則從庫(kù)中刪去。如果規(guī)則覆蓋的實(shí)例數(shù)量太少或者準(zhǔn)確率過(guò)低一樣也會(huì)導(dǎo)致添加失敗。如果規(guī)則添加成功,則將其覆蓋的實(shí)例從D中刪去,重新劃分Grow與Prune進(jìn)入規(guī)則增長(zhǎng)與修剪階段。直到某個(gè)規(guī)則添加失敗,該循環(huán)結(jié)束,不再產(chǎn)生新的規(guī)則,而是進(jìn)入優(yōu)化階段。
3.優(yōu)化階段
此時(shí)針對(duì)階段2生成的規(guī)則庫(kù)進(jìn)行優(yōu)化,通過(guò)構(gòu)造備選規(guī)則,算法對(duì)規(guī)則庫(kù)里的每條規(guī)則都進(jìn)行優(yōu)化。類似于階段2,此階段使用的也是數(shù)據(jù)集D,且每?jī)?yōu)化一條規(guī)則都需要將最終規(guī)則覆蓋的實(shí)例從D中刪去然后優(yōu)化下一條規(guī)則直到所有規(guī)則都被優(yōu)化。規(guī)則優(yōu)化的順序同生成階段規(guī)則添加的順序。
3.1優(yōu)化規(guī)則R
首先仍然是數(shù)據(jù)集D劃分為Grow與Prune,策略與階段2并沒有什么不同。對(duì)于規(guī)則R,首先檢測(cè)其在數(shù)據(jù)集D中的覆蓋率,如果沒有實(shí)例被覆蓋那就沒有優(yōu)化的必要了。規(guī)則的優(yōu)化通過(guò)構(gòu)造額外兩個(gè)備選規(guī)則實(shí)現(xiàn),算法取三者中描述長(zhǎng)度較小的規(guī)則。
?備選規(guī)則一:仍然是從空規(guī)則開始,利用Grow生成規(guī)則并剪枝,但這里并不是直接使用Prune作為剪枝集,剪枝時(shí)的度量標(biāo)準(zhǔn)亦有所變化。對(duì)于Prune中的每個(gè)實(shí)例,如果其被規(guī)則庫(kù)中R以后的任意規(guī)則覆蓋,那么將其從Prune中刪除。換言之,當(dāng)針對(duì)規(guī)則Ri構(gòu)造備選規(guī)則時(shí),Prune中的任意實(shí)例都不能被規(guī)則Ri+1,Ri+2,…覆蓋。其次,剪枝時(shí)需要計(jì)算的是規(guī)則在整個(gè)修剪集上的準(zhǔn)確率而不是被覆蓋的數(shù)據(jù)中的準(zhǔn)確率(在階段2的修剪階段,計(jì)算的是tptp+fp,在這里計(jì)算的是tp+tntotal)。剪枝完成后的規(guī)則即是備選規(guī)則一。
?備選規(guī)則二:此時(shí)從規(guī)則R開始繼續(xù)添加前件并剪枝。首先對(duì)于Grow,篩選出其中所有被R覆蓋的實(shí)例作為增長(zhǎng)集,然后使用2.1中的方法繼續(xù)往R添加前件直到無(wú)法繼續(xù)增長(zhǎng)。然后使用Prune剪枝,使用的是整個(gè)修剪集上的準(zhǔn)確率。注意與備選規(guī)則一的異同,兩者分別從空規(guī)則、原規(guī)則開始增長(zhǎng),增長(zhǎng)集也不一樣;而在剪枝部分,備選規(guī)則一對(duì)修剪集有一個(gè)預(yù)處理的過(guò)程,兩者使用的都是整個(gè)修剪集上的準(zhǔn)確率。
?接下來(lái)便是將三者分別放入規(guī)則庫(kù)中比較描述長(zhǎng)度了,取最短者作為最終采納的規(guī)則,然后更新數(shù)據(jù)集D并取下一條規(guī)則進(jìn)行優(yōu)化。在優(yōu)化階段,所有的規(guī)則都需要經(jīng)過(guò)構(gòu)造備選規(guī)則的優(yōu)化,而整個(gè)優(yōu)化階段亦重復(fù)數(shù)次。到這里,針對(duì)某一類別建立的規(guī)則庫(kù)便已確定了,若是多分類的話便更新最外層的數(shù)據(jù)集D(階段1所提到的),將規(guī)則庫(kù)覆蓋的實(shí)例從中刪去,然后挑選下一個(gè)類別,從階段2重新開始構(gòu)建規(guī)則并優(yōu)化。因此在多分類問(wèn)題中,根據(jù)先驗(yàn)概率的大小,每個(gè)類別都會(huì)生成一個(gè)規(guī)則庫(kù),它們與一條空規(guī)則(前件為空,后件為先驗(yàn)最大的類別)共同組成算法最終生成的規(guī)則庫(kù)。
RIPPER算法由于不需要事先建立完整決策樹,因此效率比C4.5等要高,復(fù)雜度為ο(Nlog2N),并且可以使用很大的數(shù)據(jù)集上,同時(shí)在算法效果上,其不亞于C4.5生成的規(guī)則。另,算法的一個(gè)具體實(shí)現(xiàn)可以參考Weka中的JRip算法。
4. 一階規(guī)則學(xué)習(xí)
受限于命題邏輯表達(dá)能力命題規(guī)則學(xué)習(xí)難以處理對(duì)象之間的"關(guān)系" (relation),而關(guān)系信息在很多任務(wù)中非常重要。因此需用一階邏輯表示,并且要使用一階規(guī)則學(xué)習(xí)。所謂一階邏輯表示其實(shí)就是利用比較,將原來(lái)的單一的表示用比較的方式來(lái)描述,如花的顏色為淡紅色,另一只花的顏色比第一只更紅。 于是其表達(dá)形式變化不大,還是由邏輯頭和邏輯體構(gòu)成,但是描述方式發(fā)生了變化:
更好(X,Y)←更好(X,Z)?更好(Z,Y)
無(wú)論是邏輯頭還是邏輯體都變成了“更好(X,Y)”的形式,表示X比Y更好。
??FOIL(First-Order Inductive Learner)算法是著名的一階規(guī)則學(xué)習(xí)算法,它遵循序貫覆蓋框架旦采用自頂向下的規(guī)則歸納策略。FOIL使用 “FOIL增益”(FOIL gain) 來(lái)選擇文字:

FOIL可大致看作命題規(guī)則學(xué)習(xí)與歸納邏輯程序設(shè)計(jì)之間的過(guò)渡,其自頂向下的規(guī)則生成過(guò)程不能支持函數(shù)和邏輯表達(dá)式嵌套,因此規(guī)則表達(dá)能力仍有不足;但它是把命題規(guī)則學(xué)習(xí)過(guò)程通過(guò)變量替換等操作直接轉(zhuǎn)化為一階規(guī)則學(xué)習(xí),因此比一般歸納邏輯程序設(shè)計(jì)技術(shù)更高效。
5. 歸納邏輯程序設(shè)計(jì)(ILP)
??歸納邏輯程序設(shè)計(jì)(Inductive Logic Programmi, ILP) 在一階規(guī)則學(xué)習(xí)中引入了函數(shù)和邏輯表達(dá)式嵌套。
5.1 最小一般泛化
??歸納邏輯程序設(shè)計(jì)采用自底向上的規(guī)則生成策略,直接將一個(gè)或多個(gè)正例所對(duì)應(yīng)的具體事實(shí)(grounded fact)作為初始規(guī)則,再對(duì)規(guī)則逐步進(jìn)行泛化以增加其對(duì)樣例的覆蓋率。泛化操作可以是將規(guī)則中的常量替換為邏輯變量,也可以是刪除規(guī)則體中的某個(gè)文字。
以一下的例子用于輔助理解:
更好(1,10)←根蒂更蜷(1,10)∧聲音更沉(1,10)∧臍部更凹(1,10)∧觸感更硬(1,10)
更好(1,15)←根蒂更蜷(1,15)∧臍部更凹(1,15)∧觸感更硬(1,15)
首先取出左邊相同的邏輯文字:根蒂更蜷,臍部更凹,觸感更硬;將相同的位置的10和15用Y代替,于是就有了更一般的表達(dá):
更好(1,Y)←根蒂更蜷(1,Y)∧臍部更凹(1,Y)∧觸感更硬(1,Y)?
這個(gè)時(shí)候再來(lái)了另外的一個(gè)規(guī)則:
更好(2,10)←顏色更深(2,10)∧根蒂更蜷(2,10)∧敲聲更沉(2,10)∧臍部更凹(2,10)∧觸感更硬(2,10)?

5.2 逆歸結(jié)
1965年,邏輯學(xué)家J. A. Robinson提出:一階謂詞演算中的演繹推理能用一條十分簡(jiǎn)潔的規(guī)則描述,這就是數(shù)理邏輯中著名的歸結(jié)原理(resolution principle)。二十多年后,計(jì)算機(jī)科學(xué)家s. Muggleton 和w. Buntine針對(duì)歸納推理提出了"逆歸結(jié)" (inverse resolution)。所謂歸結(jié),就是基于合取范式的操作:

歸結(jié)、逆歸結(jié)都能容易地?cái)U(kuò)展為一階邏輯形式;與命題邏輯的主要不同之處是,一階邏輯的歸結(jié)、逆歸結(jié)通常需進(jìn)行合一置換操作:
置換: 用某些項(xiàng)來(lái)替換邏輯表達(dá)式中的變量;
合一: 用一種變量置換令兩個(gè)或多個(gè)邏輯表達(dá)式相等。
在現(xiàn)實(shí)任務(wù)中,ILP系統(tǒng)通常先自底向上生成一組規(guī)則,然后再結(jié)合最小一般泛化與逆歸結(jié)做進(jìn)一步學(xué)習(xí)。
摘轉(zhuǎn)至【https://blog.csdn.net/kabuto_hui/article/details/84594421】