結(jié)合基于規(guī)則和機(jī)器學(xué)習(xí)的方法構(gòu)建強(qiáng)大的混合系統(tǒng)
經(jīng)過這些年的發(fā)展,我們都確信ML即使不能表現(xiàn)得更好,至少也可以在幾乎所有地方與前ML時(shí)代的解決方案相匹配。比如說一些規(guī)則約束,我們都會(huì)想到能否把它們替換為基于樹的ml模型。但是世界并不總是黑白分明的,雖然機(jī)器學(xué)習(xí)在解決問題上肯定有自己的位置,但它并不總是最好的解決方案?;谝?guī)則的系統(tǒng)甚至可以勝過機(jī)器學(xué)習(xí),特別是在可解釋性、健壯性和透明度至關(guān)重要的領(lǐng)域。
在本文中,我將介紹一些實(shí)際的案例,以及如何將手動(dòng)規(guī)則和ML結(jié)合使得我們的方案變得更好。
基于規(guī)則的系統(tǒng)
基于規(guī)則的系統(tǒng)是通過預(yù)定義規(guī)則來為決策提供支持,系統(tǒng)根據(jù)存儲(chǔ)的規(guī)則評(píng)估數(shù)據(jù),并根據(jù)映射執(zhí)行特定操作。
下面是幾個(gè)例子:
欺詐檢測(cè):在欺詐檢測(cè)中,基于規(guī)則的系統(tǒng)可用于根據(jù)預(yù)定義規(guī)則快速標(biāo)記和調(diào)查可疑交易。
比如說國際象棋的作弊者,他們的的基本作法是在另一個(gè)窗口中安裝計(jì)算機(jī)象棋應(yīng)用程序,使用程序進(jìn)行對(duì)弈,對(duì)于程序來說無論多復(fù)雜,每一步都需要 4-5 秒才能完成。所以添加“閾值”來計(jì)算玩家每一步的時(shí)間,如果在浮動(dòng)不大就有可能被判斷為是作弊者,如下圖所示:
醫(yī)療保健行業(yè):基于規(guī)則的系統(tǒng)可用于管理處方和防止用藥錯(cuò)誤。它們還可以非常有用地幫助醫(yī)生根據(jù)先前的結(jié)果為患者開出額外的分析處方。
供應(yīng)鏈管理:在供應(yīng)鏈管理中,基于規(guī)則的系統(tǒng)可用于生成低庫存警報(bào)、幫助管理到期日期或新產(chǎn)品推出。
基于機(jī)器學(xué)習(xí)的系統(tǒng)
機(jī)器學(xué)習(xí) (ML) 系統(tǒng)使用算法從數(shù)據(jù)中學(xué)習(xí)并做出預(yù)測(cè)或采取行動(dòng),且無需明確編程。機(jī)器學(xué)習(xí)系統(tǒng)使用通過大量數(shù)據(jù)訓(xùn)練獲得的知識(shí)來對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)和決策。隨著更多數(shù)據(jù)用于訓(xùn)練,ML 算法可以提高其性能。機(jī)器學(xué)習(xí)系統(tǒng)包括自然語言處理、圖像和語音識(shí)別、預(yù)測(cè)分析等。
欺詐檢測(cè):銀行可能會(huì)使用機(jī)器學(xué)習(xí)系統(tǒng)從過去的欺詐交易中學(xué)習(xí)并實(shí)時(shí)識(shí)別潛在的欺詐活動(dòng)?;蛘?,它可能會(huì)對(duì)系統(tǒng)進(jìn)行逆向工程并尋找看起來非?!爱惓!钡慕灰?。
醫(yī)療保?。横t(yī)院可能會(huì)使用 ML 系統(tǒng)來分析患者數(shù)據(jù),并根據(jù)某些 X 射線預(yù)測(cè)患者患某種疾病的可能性。
對(duì)比
基于規(guī)則的系統(tǒng)和ML系統(tǒng)都有各自的優(yōu)點(diǎn)和缺點(diǎn)
基于規(guī)則的系統(tǒng)的優(yōu)點(diǎn)很明顯:
- 易于理解和解釋
- 快速實(shí)現(xiàn)
- 易于修改
- 健壯的
缺點(diǎn):
- 涉及大量變量的問題
- 約束條件多的問題
- 限于現(xiàn)有規(guī)則
基于ml的系統(tǒng)的優(yōu)點(diǎn)也很明顯
- 自主學(xué)習(xí)系統(tǒng)
- 解決更復(fù)雜問題的能力
- 與基于規(guī)則的系統(tǒng)相比,減少了人為干預(yù),提高了效率
- 通過不斷學(xué)習(xí),靈活地適應(yīng)數(shù)據(jù)和環(huán)境的變化
缺點(diǎn):
- 需要的數(shù)據(jù),有時(shí)很多
- 僅限于之前看到的數(shù)據(jù)ML
- 認(rèn)知能力有限
通過對(duì)比我們發(fā)現(xiàn),這兩種系統(tǒng)的優(yōu)缺點(diǎn)并不沖突,并且是互補(bǔ)的,那么有沒有一種方法可以將他們的優(yōu)點(diǎn)結(jié)合起來呢?
混合型系統(tǒng)
混合系統(tǒng),結(jié)合了基于規(guī)則的系統(tǒng)和機(jī)器學(xué)習(xí)算法,最近變得越來越流行。它們可以提供更健壯、準(zhǔn)確和有效的結(jié)果,特別是在處理復(fù)雜問題時(shí)。
讓我們來看看可以使用租賃數(shù)據(jù)集實(shí)現(xiàn)的混合系統(tǒng):
特征工程:將樓層轉(zhuǎn)換為三個(gè)類別之一:高、中或低,具體取決于建筑物的樓層數(shù)。這樣可以提高M(jìn)L模型的效率
硬編碼規(guī)則可以用作特征工程過程的一部分,以識(shí)別和提取輸入數(shù)據(jù)中的重要特征。例如,如果問題領(lǐng)域清晰明確,規(guī)則可以很容易地而準(zhǔn)確地定義,硬編碼規(guī)則可以用來創(chuàng)建新特征或修改現(xiàn)有特征,以提高機(jī)器學(xué)習(xí)模型的性能。雖然硬編碼規(guī)則和特征工程是兩種不同的技術(shù),但它們可以結(jié)合使用以提高機(jī)器學(xué)習(xí)模型的性能。硬編碼規(guī)則可以用于創(chuàng)建新特征或修改現(xiàn)有特征,而特征工程可以用于提取不易通過硬編碼規(guī)則捕獲的特征。
后處理:四舍五入或歸一化最終結(jié)果。
硬編碼規(guī)則可以作為后處理階段的一部分來修改機(jī)器學(xué)習(xí)模型的輸出。例如,如果機(jī)器學(xué)習(xí)模型輸出一組預(yù)測(cè)結(jié)果與某些已知規(guī)則或約束條件不一致,硬編碼規(guī)則可以用來修改預(yù)測(cè)結(jié)果,使其符合規(guī)則或約束條件。比如過濾或平滑等后處理技術(shù)可以通過消除噪聲或錯(cuò)誤,或提高預(yù)測(cè)的整體準(zhǔn)確性來精細(xì)機(jī)器學(xué)習(xí)模型的輸出。當(dāng)機(jī)器學(xué)習(xí)模型輸出概率預(yù)測(cè)或輸入數(shù)據(jù)存在不確定性時(shí),這些技術(shù)尤其有效。在某些情況下,后處理技術(shù)也可以用于使用額外信息增強(qiáng)輸入數(shù)據(jù)。例如,如果機(jī)器學(xué)習(xí)模型是在有限數(shù)據(jù)集上訓(xùn)練的,后處理技術(shù)可以用來從外部來源(如社交媒體或新聞提要)中提取額外的特征,以提高預(yù)測(cè)的準(zhǔn)確性。
案例
醫(yī)療保健
讓我們來看看心臟病的數(shù)據(jù):
如果我們用隨機(jī)森林來預(yù)測(cè)目標(biāo)類:
這里選擇隨機(jī)森林的原因之一是它的構(gòu)建特征重要性能力。下面可以看到用于訓(xùn)練的特征的重要性:
看看結(jié)果:
這時(shí)一位心臟病專家看到了你的模型?;谒慕?jīng)驗(yàn)和領(lǐng)域知識(shí),他認(rèn)為地中海貧血特征(thal)比上面所示的要重要得多。所以我們決定建立一個(gè)直方圖并查看結(jié)果。
然后指定一個(gè)強(qiáng)制性規(guī)則
結(jié)果的混淆矩陣變成這樣:
結(jié)果有了很大的提升。這就是領(lǐng)域知識(shí)在評(píng)估患者得分方面發(fā)揮了重要作用。
欺詐交易
下面的數(shù)據(jù)集是銀行欺詐交易。
數(shù)據(jù)集高度不平衡:
為了創(chuàng)建規(guī)則,我們查看特征的分布箱線圖:
我們們要編寫一個(gè)自己的HybridEstimator類,他將作為我們手動(dòng)規(guī)則的預(yù)估器:
我們可以比較純基于規(guī)則的系統(tǒng)和kNN方法的結(jié)果,這里使用kNN的原因是,它可以處理不平衡數(shù)據(jù):
可以看到,我們只寫了3個(gè)規(guī)則,就比KNN模型的表現(xiàn)好
總結(jié)
我們這里的例子可能并不非常的確切,但是它足以說明,混合模型提供了實(shí)際的好處,例如快速實(shí)施、對(duì)異常值的穩(wěn)健性和增加的透明度。在將業(yè)務(wù)邏輯與機(jī)器學(xué)習(xí)相結(jié)合時(shí),它們是有益的。例如,醫(yī)療保健中的混合規(guī)則-ML 系統(tǒng)可以通過結(jié)合臨床規(guī)則和分析患者數(shù)據(jù)的機(jī)器學(xué)習(xí)算法來診斷疾病。機(jī)器學(xué)習(xí)能夠在很多任務(wù)上取得出色的結(jié)果,但是它也需要領(lǐng)域知識(shí)的補(bǔ)充。領(lǐng)域知識(shí)可以幫助機(jī)器學(xué)習(xí)模型更好地理解數(shù)據(jù),并更準(zhǔn)確地進(jìn)行預(yù)測(cè)和分類。
混合模型可以幫助我們將領(lǐng)域知識(shí)和機(jī)器學(xué)習(xí)模型結(jié)合起來?;旌夏P屯ǔJ怯啥鄠€(gè)子模型組成,其中每個(gè)子模型都針對(duì)特定的領(lǐng)域知識(shí)進(jìn)行了優(yōu)化。這些子模型可以是基于硬編碼規(guī)則的模型,也可以是基于統(tǒng)計(jì)方法的模型,甚至可以是基于深度學(xué)習(xí)的模型。
混合模型可以利用領(lǐng)域知識(shí)來指導(dǎo)機(jī)器學(xué)習(xí)模型的學(xué)習(xí)過程,從而提高模型的準(zhǔn)確性和可靠性。例如,在醫(yī)學(xué)領(lǐng)域中,混合模型可以結(jié)合醫(yī)生的專業(yè)知識(shí)和機(jī)器學(xué)習(xí)模型的能力,以診斷患者的疾病。在自然語言處理領(lǐng)域,混合模型可以結(jié)合語言學(xué)知識(shí)和機(jī)器學(xué)習(xí)模型的能力,以更好地理解和生成自然語言。
總之,混合模型可以幫助我們將領(lǐng)域知識(shí)和機(jī)器學(xué)習(xí)模型結(jié)合起來,從而提高模型的準(zhǔn)確性和可靠性,并且在各種任務(wù)中都有廣泛的應(yīng)用。