簡體   English   中英

異常檢測——檢測一個群體(但不是整個群體)的行為變化

[英]Anomaly Detection - detecting a change in behavior in one instance of a group (but not the group as a whole)

我一直在閱讀時間序列數據中的異常檢測,並理解如何使用它來跟蹤一個指標隨時間推移的概念。

例如,假設我們想跟蹤一個人每天使用網站的時間(例如 John)。 我們可以使用異常檢測來檢測 John 的數字何時顯着上升或下降。 我們將使用的指標是“John 的網站每天點擊量”和日期。

但是,假設我想對很多用戶進行同樣的檢查,但他們都是獨立的。 該算法不是試圖找到用戶活動之間的相關性,而是提醒我們組中的某個用戶活動何時發生顯着變化。 所以說約翰在某一天的活動異常高,我們就會收到異常警報。

另一個例子是監控大量設備並檢測一個設備每分鍾發送異常高水平的請求的時間。 同樣,目的不是檢測所有發送更多請求的設備之間的相關性,而是提醒我們一個設備的行為與其正常模式不同的事實。

我不確定這是否是正常的異常檢測,因為看起來我必須為第一個示例中的每個用戶構建一個模型來檢測變化。 這對於少數用戶來說可能是可行的,但似乎很難擴展到大量用戶。

所以我想知道異常檢測是否是正確的方法,或者是否有其他我不知道的 AI 監控解決方案/工具? 提前致謝

如果您的用戶具有可以通過快速時間序列模型學習的簡單時間序列模式,那么是的,您可以為每個用戶運行時間序列異常檢測。 如果您的用戶有間歇性需求使用模式,那么它很可能不會執行良好。

我不會說這是一種標准方法。 直觀地說,使用這種技術,沒有模型可以學習“全局圖片”,因為每個模型只能查看一個用戶。 此外,用戶往往會來來去去,這使得新用戶的歷史數據可用性和冷啟動成為一個問題。

您可以嘗試的一種標准方法是使用異常值檢測模型。 用特征表示您的用戶會話,然后運行表格異常值檢測技術。 功能示例可能是:

  • 男性/女性(使用時間序列中未包含但對模型有很大幫助的信息示例 - 值得考慮)
  • 新用戶?
  • 自上次訪問以來的天數
  • 最近1個月的訪問次數
  • 最近 1 周的訪問次數
  • 每個會話的平均點擊次數
  • 此會話中的點擊次數
  • ...

構建良好的特性是其中的關鍵,但大多數情況下,它是您可以在投入生產后進行迭代的東西。 我建議找到一個或兩個你知道運作良好的功能,並使模型在現實生活中可用。 然后您可以迭代最佳功能。 對於模型,您可以先查看sklearn 模型文檔以建立直覺。

需要知道的一件事是,大多數現實生活中的異常檢測模型混合使用統計技術和專家系統(if-else 規則)。 在構建任何模型之前,我建議通過進行大量可視化探索和分布統計來深入了解數據集,然后嘗試構建可以發現異常的簡單 if/else 規則。 這絕不是浪費時間,因為您將在 if-else 系統中構建的功能很可能對 ml 模型非常有用。 它還將成為更復雜方法基准測試的基准模型。

您可能想要查找欺詐檢測或流失檢測文獻。 在某些情況下,將問題表示為圖形問題會有所幫助。 在沒有更多上下文的情況下很難建議資源。 對於機器學習/數據挖掘任務,了解確切的上下文和約束確實有助於縮小候選解決方案的范圍。 試着想一想:

  • 我能否負擔得起異常標記,從而解鎖廣泛的受監督 ML 技術? (上面沒有討論監督技術)
  • 我需要處理的體積是多少? 在哪個頻率?
  • 歷史數據容易快速獲取嗎?
  • 模型應該實時檢測還是可以批量/異步完成
  • 准確度目標是什么? 精確目標?

您可能希望使用這些問題的答案來編輯您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM