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