Airbnb欺詐預測機器學習模型設計:準確率和召回率的故事

2020-12-13 CSDN技術社區

【編者按】Airbnb網站基於允許任何人將閒置的房屋進行長期或短期出租構建商業模式來自房客或房東的欺詐風險是必須解決的問題。Airbnb信任和安全小組通過構建機器學習模型進行欺詐預測,本文介紹了其設計思想。假想模型是預測某些虛擬人物是否為「反面人物」,基本步驟:構建模型預期,構建訓練集和測試集,特徵學習,模型性能評估。其中特徵轉換傾向於採用條件概率編碼(CP-coding),評估度量是準確率(Precision)和召回率(Recall),通常偏向於高召回率。

以下為全文內容:

在Airbnb網站上,我們專注於創造一個這樣的地方:一個人可以屬於任何地方。部分歸屬感來自於我們用戶之間的信任,同時認識到他們的安全是我們最關心的。

雖然我們絕大多數的社區是由友好和可靠的房東和房客組成,但仍然有一小部分用戶,他們試圖從我們的網站中(非法)獲利。這些都是非常罕見的,儘管如此,信任和安全小組還是因此而產生。

信任和安全小組主要是解決任何可能會發生在我們平臺的欺詐行為。我們最主要目的是試圖保護我們的用戶和公司免於不同類型的風險。例如:退款風險——一個絕大多數電子商務企業都熟悉的風險問題。為了減少此類欺詐行為,信任和安全小組的數據科學家構建了不同種類的機器學習模型,用來幫助識別不同類型的風險。想要獲得我們模型背後更多的體系結構信息,請參考以前的文章 機器學習風險系統的設計。

在這篇文章中,我對機器學習的模型建立給了一個簡短的思維過程概述。當然,每個模型都有所不同,但希望它能夠給讀者在關於機器學習中我們如何使用數據來幫助保護我們的用戶以及如何改善模型的不同處理方法上帶來一個全新的認識。在這篇文章中,我們假設想要構建一個這樣的模型:預測某些虛構的角色是否是反面人物。

試圖預測的是什麼?

在模型建立中最基本的問題就是明確你想要用這個模型來預測什麼。我知道這個聽起來似乎很愚蠢,但很多時候,通過這個問題可以引發出其它更深層的問題。

即使是一個看似簡單的角色分類模型,隨著我們逐步深入地思考,也可以提出許多更深層的問題。例如,我們想要怎樣來給這個模型評分:僅僅是給當前新介紹的角色還是給所有角色?如果是前者,我們想要評分的角色和人物介紹中的角色評分相差多遠?如果是後者,我們又該多長時間給這些角色評分呢?

第一個想法可能是根據人物介紹中給每個角色的評分來建立模型。然而,這種模型,我們可能不能隨著時間的推移動態地追蹤人物的評分。此外,我們可能會因為在介紹時的一些「好」的特徵而忽略了潛在的反面人物。

相反,我們還可以建立這樣一個模型,只要他/她出現在情節裡面就評分一次。這將讓我們在每個時間段都會有人物評分並檢測出任何異常情況。但是,考慮到在每個角色單獨出現的情況下可能沒有任何的角色類別發展,所以這可能也不是最實際的方法。

深思熟慮之後,我們決定把模型設計成介於這兩種想法之間的模型。例如,建立這樣一種模型,在每次有意義的事情發生的時候對角色進行評分,比如結交新盟友,龍族領地佔領等等。在這種方式下,我們仍然可以隨著時間的變化來跟蹤人物的評分,同時,對沒有最新進展的角色也不會多加評分。


如何模擬得分?

因為我們的目的是分析每個時期的得分,所以我們的訓練集要能反映出某段時間某個角色的類別行為,最後的訓練數據集類似於下圖:


與每個角色相關的時間不一定是連續的,因為我們關心的是那些有著重要事件發展的時間。

在這個實例當中,Jarden在3個不同的場合有著重要的角色發展並且在一段時間內持續擴充他的軍隊。相比之下,Dineas 在5個不同的場合有著重要的角色發展並且主管著4個龍族中心基地。

採樣

在機器學習模型中,從觀測數據中下採樣是有必要的。採樣過程本身很簡單,一旦有了所需要的訓練數據集,就可以在數據集上做一個基於行的採樣。

然而,由於這裡描述的模型是處理每個角色多個時期的樣本,基於行採樣可能會導致這樣一種情況,即在建立模型的數據和用來驗證的數據之間,場景附加的人物角色被分離開。如下表所示:


顯然這並不是理想的採樣,因為我們沒有得到每個角色的整體描述,並且這些缺失的觀測數據可能對建立一個好的模型至關重要。

出於這個原因,我們需要做基於角色的採樣。這樣做能確保在模型數據建立中包含所有場合附加的角色,或者什麼都沒有。


此外,當我們將我們的數據集切分為訓練集和測試集時,通常這樣的邏輯也適用。

特徵設計

特徵設計是機器學習不可或缺的一部分,通常情況下,在特徵種類的選擇上,對數據的充分理解有助於形成一個更好的模型設計思路。特徵設計的實例包括特徵規範化和分類特徵處理。

特徵規範化是標準化特徵的一種方式,允許更合理的對比。如下表所示:


從上表可知,每個人物都有10,000個士兵。然而,Serion掌權長達5年,而Dineas僅僅掌權2年。通過這些人物比較絕對的士兵數量可能並不是非常有效的。但是,通過人物掌權的年份來標準化他們可能會提供更好的見解,並且產生更有預測力的特徵。

在分類特徵的特徵設計上值得單獨的寫一篇博客文章,因為有很多方式可以去處理它們。特別是對於缺失值的插補,請看一看以前的博客文章—— 使用隨機森林分類器處理缺失值。

轉換分類特徵最常見的方法就是矢量化(也稱作one-hot encoding)。然而,在處理有許多不同級別的分類特徵時,使用條件概率編碼(CP-coding)則更為實用。

CP-coding的基本思想就是在給定的分類級別上,計算出某個特徵值發生的概率。這種方法使得我們能夠將所有級別的分類特徵轉化為一個單一的數值型變量。


然而,這種類型轉換可能會因為沒有充分描述的類別而造成噪音數據。在上面的例子中,我們只有一個來自House 為 「Tallight」的觀測樣本。結果相應的概率就是0或1。為了避免這種問題的發生並且降低噪聲數據,通常情況下,可以通過考慮加權平均值,全局概率或者引入一個平滑的超係數來調整如何計算概率

那麼,哪一種方法最好呢?這取決於分類特徵的數量和級別。CP-coding是個不錯的選擇,因為他降低了特徵的維數,但是這樣會犧牲掉特徵與特徵之間的互信息,這種方法稱之為矢量化保留。此外,我們可以整合這兩種方法,即組合相似的類別特徵,然後使用CP-coding處理整合的特徵。

模型性能評估

當談及到評估模型性能的時候,我們需要留意正面角色和反面角色的比例。在我們的例子模型中,數據最後的統計格式為[character*period](下表左)。然而,模型評估應該以角色類別測量(下表右)。


結果,在模型的構建數據和模型的評估數據之間的正面人物和反面人物的比例有著明顯的差異。當評估模型準確率和召回率的時候分配合適的權重值是相當重要的

此外,因為我們可能會使用下採樣以減少觀測樣本的數量,所以我們還需要調整模型佔採樣過程的準確率和召回率。

評估準確率和召回率

對於模型評估的兩種主要的評估度量是準確率(Precision)和召回率(Recall)。在我們的例子當中,準確率是預測結果為反面角色中被正確預測為反面角色的比例。它在給定的閾值下衡量模型的準確度。另外,召回率是模型從原本為反面角色當中能夠正確檢測出為反面角色的比例。它在一個給定的閾值下以識別反面人物來衡量模型的綜合指標。這兩個變量很容易混淆,所以通過下表會更加的直觀看出兩者的不同。


通常將最後的數據劃分為四個不同的部分:

  • True Positives(TP):角色是反面人物,模型預測為反面人物; 
  • False Positives(FP):角色是正面人物,模型預測為反面人物; 
  • True Negatives(TN):角色是正面人物,模型預測為正面人物; 
  • False Negatives(FN):角色是反面人物,模型預測為正面人物;

準確率計算:在所有被預測為反面人物中,模型正確預測的比例,即TP /(TP + FP)。

召回率計算:在所有原本就是反面人物中,模型正確預測的比例,即TP / (TP + FN)。

通過觀察可以看出,儘管準確率和召回率的分子是相同的,但分母不同。

通常在選擇高準確率和高召回率之間總有一種權衡。這要取決於構建模型的最終目的,對於某些情況而言,高準確率的選擇可能會優於高召回率。然而,對於欺詐預測模型,通常要偏向於高召回率,即使會犧牲掉一些準確率

有許多的方式可以用來改善模型的準確度和召回率。其中包括添加更好的特徵,優化決策樹剪枝或者建立一個更大的森林等等。不過,鑑於討論廣泛,我打算將其單獨地放在一篇文章當中。

結束語

希望這篇文章能讓讀者了解到什麼是構建機器學習模型所需要的。遺憾的是,沒有放之四海而皆準的解決方案來構建一種好的模型,充分了解數據的上下文是關鍵,因為通過它我們能夠從中提取出更多更好的預測特徵,從而建立出更優化的模型

最後,雖然將角色分為正面和反面是主觀的,但類別標籤的確是機器學習的一個非常重要的部分,而不好的類別標籤通常會導致一個糟糕的模型。祝建模快樂!

註:這個模型確保每個角色都是正面角色或者是反面角色,即如果他們生來就是反面角色,那麼在他們的整個生命當中都是反面角色。如果我們假設角色可以跨越類別標籤作為中立人物,那麼模型的設計將會完全不同。

英文原文: Designing Machine Learning Models: A Tale of Precision and Recall(譯者/劉帝偉 審校/劉翔宇、朱正貴 責編/周建丁)

關於譯者: 劉帝偉,中南大學軟體學院在讀研究生,關注機器學習、數據挖掘及生物信息領域。


【預告】首屆中國人工智慧大會(CCAI 2015)將於7月26-27日在北京友誼賓館召開。機器學習與模式識別、大數據的機遇與挑戰、人工智慧與認知科學、智慧機器人四個主題專家雲集。人工智慧產品庫將同步上線,預約諮詢:QQ:1192936057。歡迎關注。

本文為CSDN編譯整理,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

相關焦點

  • [算法]機器學習分類模型評估指標
    新的機器學習方法主要包括:深度學習和強化學習。深度學習中可以做分類和回歸的無監督算法,在無監督學習方法主要還是做分類,深度學習的無監督主要是生成模型GAN。強化學習是一種激勵性的學習方式,其評價方式也比較獨特。
  • 機器學習實戰 | 機器學習性能指標
    對於二分類問題,使用模型預測的值和實際的肯定會有所偏差,那麼我們是如何來評價分類器的優良呢?
  • 如果SMOTE和TOMEK無法改善您的機器學習模型,該用什麼方法呢?
    這個問題出現在許多研究領域,例如,當我們試圖診斷一種罕見的疾病或檢測欺詐交易時就會出現這個問題。在這篇文章中,我將介紹如何處理分類項目中的類不平衡問題。通常,當我們的類比例低於10/90時,我們可以說我們面臨著類不平衡問題。在某些情況下,情況可能更嚴重。有一個分類項目,試圖預測在絲芙蘭銷售的哪一款美容產品贏得了Allure Beauty Award。
  • 論文中的準確率指標靠譜嗎?5個機器學習悖論改變你對數據的看法
    這些反常識的機器學習悖論你知道是怎麼回事嗎?悖論是在哲學和數學中常見的一種問題,它是根據假設前提得出了兩種互相矛盾的結果。AI就是重構人類的認知方法,所以機器學習也會產生一些悖論。準確性悖論準確性(Accuracy)悖論與機器學習直接相關。與直覺相反,準確性並不總是對預測模型有效性進行分類的良好指標。怎麼解釋這樣一個複雜的表述呢?準確性悖論源於不平衡的訓練數據集。
  • 機器學習入門系列之評價模型的好壞
    今天我們便來說一下,如何評價模型的好壞。拆分數據集是評價模型好壞的前置條件,對於分類和回歸而言,都屬於有監督學習。就之前的KNN分類而言,我們一般是拿到的樣本數據都是有Label的:患病和不患病。但是我們的待預測數據並不知道其患病與否,如果直接將其帶入訓練好的模型,對預測的結果我們也無從評判。
  • 機器學習中的忒修斯之船:那些「愚弄」專家的著名悖論
    用AI重建人類認知需處理許多數據無法解釋的現象,而悖論則一直被視為違背邏輯和數據規則的異常情況。對於機器學習模型來說,通過悖論進行推理是一個難以置信的挑戰。當AI試圖重建人類認知時,機器學習模型在訓練數據中遇到自相矛盾的模式,並且返回似乎矛盾的結論是很常見的。數據科學家在訓練新模型時應該意識到這些場景。
  • 已經證實提高機器學習模型準確率的八大方法
    如果是的話,你需要這 8 個經過證實的方法來重構你的模型。建立預測模型的方法不止一種。這裡沒有金科玉律。但是,如果你遵循我的方法(見下文),(在提供的數據足以用來做預測的前提下)你的模型會擁有較高的準確率。 我從實踐中學習了到這些方法。相對於理論,我一向更熱衷於實踐。這種學習方式也一直在激勵我。
  • 機器學習算法中分類知識總結!
    三、準確率準確率是一個用於評估分類模型的指標。通俗來說,準確率是指我們的模型預測正確的結果所佔的比例。正式點說,準確率的定義如下:雖然 91% 的準確率可能乍一看還不錯,但如果另一個腫瘤分類器模型總是預測良性,那麼這個模型使用我們的樣本進行預測也會實現相同的準確率(100 個中有 91 個預測正確)。換言之,我們的模型與那些沒有預測能力來區分惡性腫瘤和良性腫瘤的模型差不多。
  • 當模型預測控制遇見機器學習
    最近幾年,人工智慧和機器學習受到了各行各業的熱捧,已經不再是計算機科學系(CS)的「專利」,甚至連我這個傳統的機械工程系(ME)研究生都跑來湊了個熱鬧。本文將不使用任何讓人敬而遠之的公式,試圖通過自然語言深入淺出的討論,當模型預測控制遇見機器學習,它們會擦出怎樣的思想火花。
  • 欺詐不可怕,機器學習算法分分鐘拿下!
    它們無法適應未知的欺詐模式和方案,無法有效識別複雜的欺詐技術。機器學習(ML)算法可以學習並適應所處理的每一個數據,可以在打擊欺詐方面發揮作用。一個經過優化設計的AI系統不僅能適應新變化,還能發現新模式而不會產生可能會導致過多假陽性的過擬合。這就是為什麼越來越多的行業正在採用機器學習和人工智慧以檢測和防止欺詐的原因。
  • Python 機器學習教程: 預測Airbnb 價格(2)
    它為所有主要的機器學習算法提供了內置的函數,並提供了一個簡單、統一的工作流。這些特性都允許數據科學家在對一個新數據集進行不同模型的訓練和測試時變得非常高效。scikit-learn工作流包括四個主要步驟:實例化你要使用的特定機器學習模型。將模型與訓練數據相匹配。使用該模型進行預測。評估預測的準確性。
  • 機器學習第十篇:如何評價模型效果評估
    ,之所以是調和平均是我們可以對精確率和召回率給予不同的權重,默認情況下兩者的權重是一樣的。繪製ROC曲線需要計算兩個值,tpr和fpr,tpr是模型在正樣本上的預測準確率,是將真土豪分為土豪的概率(被判斷為土豪的人數/實際土豪人數),即召回率;fpr是模型在負樣本上的預測準確率,表示將非土豪誤判為土豪的人數佔所有實際非土豪人數的比值(1-被判斷為非土豪且實際也是非土豪人數/實際非土豪人數)。
  • 【手把手教你】使用Logistic回歸、LDA和QDA模型預測指數漲跌
    機器學習(Machine Learning)是人工智慧(AI)的重要組成部分,目前已廣泛應用於數據挖掘、自然語言處理、信用卡欺詐檢測、證券市場分析等領域。量化投資作為機器學習在投資領域內最典型的應用之一,已經越來越廣泛的出現在我們的視野中。機器學習可簡單理解為利用統計模型或算法擬合樣本數據並進行預測,其模型算法根據學習任務可以分為分類、回歸和聚類。
  • 機器學習小白看過來,帶你全面了解分類器評價指標
    如果我們想要構建一個分類器來判斷數值是否為 6,構建一個算法將所有的輸入分類為非 6,然後你將在 MNIST 數據集中獲得 90% 的準確率,因為數據集中只有大約 10% 的圖像是 6。這是機器學習中一個主要的問題,也是你需要多用幾個評價指標測試你的分類器的原因。
  • 以人為本的機器學習:谷歌人工智慧產品設計概述
    花費僅僅幾分鐘的時間回答這些問題揭示了人們對以機器學習為驅動的產品提出的必然假設。他們同樣適用於作為產品團隊的討論中或者在用戶研究的刺激中的提示。當我們討論到定義標籤和訓練模型的過程時,我們還會再談論它。  在完成這些練習,梳理出一些特殊產品和特徵的額外概要和故事之後,我們就能將團隊所有的產品創意在一個簡單的二維坐標系中畫出來。
  • LIME:一種解釋機器學習模型的方法
    機器學習如今是非常火的一個話題。隨著計算機在圍棋等遊戲中擊敗人類專家,許多人不禁要問機器是否也能勝任司機的工作,甚至是取代醫生?現在很多前沿的機器學習模型還是一個黑盒,幾乎無法去感知它的內部工作狀態。這就給我們帶來了可信度的問題:我該相信那個模型的某個預測結果是正確的嗎?或者說我該相信那個模型的預測結果普遍都是合理的嗎?
  • 機器學習實戰:Python信用卡欺詐檢測
    本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。對信用卡交易數據建立檢測模型,使用Python庫進行預處理與機器學習建模工作,代碼通俗易懂。包括數據預處理與清洗,模型調參與評估等詳細數據分析與建模流程。
  • 機器學習流程,以及實踐應用
    也可以理解為:通過大量的數據,訓練出一個能處理此類數據的模型,使得這個模型可以根據已知的數據,準確率很高的判斷出未知的數據,從而使得人類能夠採取正確的方法去處理某些事情。 (不同場景採用的算法是不同的)高頻的有以下幾種類型的場景: 分類場景:廣告投放預測,網站用戶點擊預測。 聚類場景:人群劃分,產品種類劃分。 回歸場景:商品購買量預測和股票成交額預測。
  • 範德堡大學用機器學習預測自殺,準確率在80%以上
    在試驗中,預測「兩年內是否會嘗試自殺」的準確性在80%-90%之間,預測「一周內是否會嘗試自殺」的概率高達92%。那麼,Walsh團隊是如何實現這項成果的呢?研究方法這項預測算法是基於醫院廣泛的入院數據製作的,數據涵蓋了病患的年齡、性別、所在地區、用藥記錄和先前診斷等信息。
  • WePay機器學習反欺詐實踐:Python+scikit-learn+隨機森林
    【編者按】將機器學習算法用於金融領域的一個很好的突破口是反欺詐,在這篇博文中,WePay介紹了支付行業構建機器學習模型應對很難發現的shell selling欺詐的實踐心得。WePay採用了流行的Python、scikit-learn開源學習機器學習工具以及隨機森林算法。以下是文章內容:什麼是shellselling?