日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SLS机器学习介绍(02):时序聚类建模

發布時間:2024/8/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SLS机器学习介绍(02):时序聚类建模 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章系列鏈接

  • SLS機器學習介紹(01):時序統計建模
  • SLS機器學習介紹(02):時序聚類建模
  • SLS機器學習介紹(03):時序異常檢測建模
  • SLS機器學習介紹(04):規則模式挖掘

前言

第一篇文章SLS機器學習介紹(01):時序統計建模上周更新完,一下子炸出了很多潛伏的業內高手,忽的發現集團內部各個業務線都針對時序分析存在一定的需求。大家私信問我業務線上的具體方法,在此針對遇到的通用問題予以陳述(權且拋磚引玉,希望各位大牛提供更好的建議和方法):

  • 數據的高頻抖動如何處理?

    • 在業務需求能滿足的條件下,進可能的對數據做聚合操作,用窗口策略消除抖動
    • 若不能粗粒度的聚合,我一般會選擇窗口濾波操作,在針對濾波后的數據進行一次去異常點操作
    • 改變檢測策略,將問題變成一個回歸問題,引入多維度特征,對目標進行預測
  • 歷史訓練數據如何選擇?

    • 針對自己的時序數據,需要先進行簡單的摸底操作,選擇合適的模型,是不是有明顯的周期?是不是有明顯的趨勢?
  • 這么多方法該如何選擇?

    • 針對單指標預測的方法,需要采用多種算法模型進行預測,將得到的結果也要集成起來,降低誤報操作
    • 可以針對歷史上的全量報警樣本,設計一套報警聚合規則,在一定容忍度的條件下得到較好的結果

摘要

在大型互聯網企業中,對海量KPI(關鍵性能指標)進行監控和異常檢測是確保服務質量和可靠性的重要手段。基于互聯網的服務型企業(如線上購物、社交網絡、搜索引擎等)通過監控各種系統及應用的數以萬計的KPI(如CPU利用率、每秒請求量等)來確保服務可靠性。KPI上的異常通常反映了其相關應用上可能出現故障,如服務器故障、網絡負載過高、外部攻擊等。因而,異常檢測技術被廣泛用于及時檢測異常事件以達到快速止損的目的。

問題背景

大多數異常檢測算法(如雅虎的EDAGS,Twitter的BreakoutDetection,FaceBook的prophet)都需要為每條KPI單獨建立異常檢測模型,在面對海量KPI時,會產生極大的模型選擇、參數調優、模型訓練及異常標注開銷。幸運的是,由于許多KPI之間存在隱含的關聯性,它們是較為相似的。如果我們能夠找到這些相似的KPI(例如在一個負載均衡的服務器集群中每個服務器上的每秒請求量KPI是相似的),將它們劃分為若干聚類簇,則可以在每個聚類簇中應用相同的異常檢測模型,從而大大降低各項開銷。

序列聚類建模

問題定義

在同一個業務指標的前提下:

  • 查找出當前時序序列中有哪些相似的曲線形態?(單條曲線的多形態分解)
  • 多條KPI指標曲線有哪些曲線的形態類似?(N條曲線形態聚類)
  • 相似性度量

    本文主要從時間對齊的多條時序KPI中進行相似性度量,時間點上的指標的相似性和時序曲線形態的相似性

  • 時間點聚類(時間上的相似性)
    1.1 閔可夫斯基距離:衡量數值點之間距離的一種常見的方法,假設P=(x1,x2,...,xn)和Q=(y1,y2,...,yn),則具體的公式如下:
  • ????當p=1時,表示曼哈頓距離;p=2時,表示歐幾里得距離;當p趨近于無窮大時,該距離轉換為切比雪夫距離,具體如下式所式:

    ????閔可夫斯基距離比較直觀,但是它與數據的分布無關,具有一定的局限性,如果x方向的幅值遠遠大于y方向的幅值,這個距離公式就會過度方法x維度的作用。因此在加算前,需要對數據進行變換(去均值,除以標準差)。這種方法在假設數據各個維度不相關的情況下,利用數據分布的特性計算出不同的距離。如果數據維度之間數據相關,這時該類距離就不合適了!

    ????1.2 馬氏距離:若不同維度之間存在相關性和尺度變換等關系,需要使用一種變化規則,將當前空間中的向量變換到另一個可以簡單度量的空間中去測量。假設樣本之間的協方差矩陣是Σ,利用矩陣分解(LU分解)可以轉換為下三角矩陣和上三角矩陣的乘積:Σ=LLT。消除不同維度之間的相關性和尺度變換,需要對樣本x做如下處理:z=L?1(x?μ),經過處理的向量就可以利用歐式距離進行度量。

  • 形狀之間的相似性(空間上的結構相似性)
    2.1 編輯距離
  • 如何去比較兩個不同長度的字符串的相似性?給定兩個字符串,由一個轉成另一個所需要的最小編輯操作,其中需要有三個操作,相同位置字符的替換、對字符串中某個位置進行插入與刪除。具體的遞歸表達式如下:

    ????2.2 DTW(Dynamic Time Warpping)距離
    ????動態時間規整(Dynamic Time Warping;DTW)是一種將時間規整和距離測度相結合的一種非線性規整技術。主要思想是把未知量均勻地伸長或者縮短,直到與參考模式的長度一致,在這一過程中,未知量的時間軸要不均勻地扭曲或彎折,以使其特征與參考模式特征對正。
    ????DTW(Dynamic Time Warping)距離的計算過程如下:
    ????假設,兩個時間序列Q和C,Q={q1,q2,…,qn},C={c1,c2,…,cm}。構造一個(n, m)的矩陣,第(i, j)單元記錄兩個點(qi,cj)之間的歐氏距離,d(qi,cj)=|qi?cj|。一條彎折的路徑W,由若干個彼此相連的矩陣單元構成,這條路徑描述了Q和C之間的一種映射。設第k個單元定義為wk=(i,j)k,則w={w1,w2,w3,...,wK},max(n,m)<=K<=n+m?1。

    這條彎折的路徑滿足如下的條件:

    1. 邊界條件:$w_1=(1,1)$,且$w_k=(n,m)$ 2. 連續性:設$w_k=(a, b)$,$w_{k-1}=(a^{'}, b^{'})$,那么$a-a^{'}<= 1$,$b-b^{'}<=1$ 3. 單調性:設$w_k=(a,b)$,$w_{k-1}=(a^{'}, b^{'})$,那么$a-a^{'}>=0, b-b^{'} >=0$

    在滿足上述條件的多條路徑中,最短的,花費最少的一條路徑是:

    DTW距離的計算過程是一個DP過程,先用歐式距離初始化矩陣,然后使用如下遞推公式進行求解:


    算法步驟

    1. 數據預處理

    • 數據源:集群中所有集群的多指標度量值(秒級數據)

      • SYS:系統運行情況記錄(啟動時間,負載情況、進程信息等)
      • NET:網絡設備狀態傳輸情況(TCP、UDP等上行和下行流量等)
      • MEMORY:內存使用情況(使用率、交換分區使用情況等)
      • CPU/GPU:使用情況
      • DISK:磁盤IO情況
    • 基本的預處理

      • 確定下單條數據的信息(查看某機器某指標的情況)
      * and metric_name : machine_022_cpu | select stamp, metric_val order by stamp limit 2000

      • 若時序數據含有缺失值,需要將將序列進行補點操作(如果序列缺失小于10%,則模型內部會將缺失數據自動按照鄰近值補齊)
      • 該數據是按照15秒一個點進行采樣的,如果需要進行更粗粒度的操作,需要額外處理

    2. 時序數據的降維采樣

    集群中有相同屬性的機器大約為5K臺,那么我們就會有經過處理的5K條NET:Tcp的曲線,現在需要對該集合進行聚類,找到其中相似形態的曲線,并發現形態不一致的曲線形態。

    • 分段線性表示方法
      分段線性表示是一種使用線性模型來對時間序列進行分割的方法,根據不同的分割方法可以使用不同的分割策略來實現,如滑動窗口、自底向上和自頂向下。利用滑動窗口和自底向上方法的時間復雜度為序列長度的平方階, 而自頂向下的時間復雜度為線性階。滑動窗口在一些情況下對時間序列的擬合效果較差,不能很好地反映原時間序列的變化信息。
    • 分段聚合近似(Piecewise Aggregation Approximation,PAA)表示方法
      通過對時間序列進行平均分割并利用分段序列的均值來表示原時間序列的方法。
    • 符號化表示方法
      符號化表示方法是一種將時間序列轉換為字符串序列的過程。在時間序列數據挖掘過程中,傳統方法主要依賴于定量數據,遠遠不能滿足數據挖掘領域中分析和解決問題的要求。在數據結構和算法設計中,字符串具有特定的數據存儲結構以及較為成熟且高效的操作算法。

    本實驗中將時序序列將高維度數據降低到長度為300的PAA策略。


    3. DBSCAN聚類算法

    DBSCAN(Density-BasedSpatial Clustering of Applications with Noise),一種基于密度的聚類方法,即找到被低密度區域分離的稠密區域,要求聚類空間中的一定區域內所包含對象(點或其他空間對象)的數目不小于某一給定閾值。

    • 其中幾個關鍵術語:

      • 密度:空間中任意一點的密度是以該點為圓心,以Eps為半徑的圓區域內包含的點數目
      • 邊界點:空間中某一點的密度,如果小于某一點給定的閾值minPts,則稱為邊界點
      • 噪聲點:不屬于核心點,也不屬于邊界點的點,也就是密度為1的點

    上圖是一般DBSCAN的聚類過程,其中有兩個地方可以進行較好的優化:

    • 兩個參數

      • 最近兩個聚類中心的距離參數(Eps)
      • 最小聚類中心的實例的個數(MinPts)
    • 查找一個向量在給定參數情況下的近鄰集合

    3.1 KD Tree構造

    KD(K-Dimensional) Tree,是一種分割K維度數據空間的數據結構。主要應用與多維空間關鍵數據的搜索(如:范圍搜索和近鄰搜索)。

    function kdtree(list of points pointList, int depth) {// select axis based on depth so that axis cycles through all valid valuesvar int axis := depth % k;// sort point list and choose median as pivot elementselect median by axis from pointList;// create node and construct subtreenode.location := median;node.leftChild := kdtree(points in pointList before median, depth + 1);node.rightChild := kdtree(points in pointList before median, depth + 1);return node; }

    上述算法模型中,最大的問題在于軸點的選擇,選擇好軸點之后,就可以遞歸去創建這顆樹了。

    • 建樹必須遵循的兩個準則:

      • 建立的樹應當盡量平衡,樹越平衡代表著分割得越平均,搜索的時間也就是越少;
      • 最大化鄰域搜索的剪枝操作;
    • 選擇軸點的策略

      • 對于所有描述子數據(特征矢量),統計在每個維度上的數據方差,挑選出方差中最大值,對應的維度就是分割域的值。數據方差大說明沿著該坐標軸方向上數據點分散的比較開。這個方向上,進行數據分割可以獲得最好的平衡。數據點集按照當前選擇的維度的值排序,位于正中間的那個數據點,就被選為軸點。
      • 實際中會出現問題:理論上空間均勻分布的點,在一個方向上分割,通過計算方差,下一次分割就不會出現在這個方向上,但實際數據往往會不均勻,這樣就會出現很多長條的分割,會導致效率降低。
      • 為了避免這種情況,候選維度的選擇依據是數據范圍最大的那一個維度作為分割維度,之后就選擇這個維度的中間節點作為軸點,進行分割,分割出來的結果會稍微好一些。
      • 實際中也可以通過限制樹的高度的時候。

    • 鄰近搜索策略

      • 給定一個KD Tree和一個節點,求KD Tree中離這個節點最近的節點,可以選定一個距離度量的方式。
      • 搜索的基本思路:首先通過二叉樹搜索(比較待查詢節點和分裂節點的分裂維度的值,小于等于就進入左側分支,大于就進入右側分支),順著搜索路徑很快能找到最近鄰的近似點,也就是與待查詢點處于同一個子空間的葉子節點;然后在回溯搜索路徑,并判斷搜素路徑上的其它近鄰節點是否有可能距離查詢點更近的數據點,直到搜索路徑上的候選節點為空時停止。

    3.2 參數自動化估計

    具體的成分如下圖所示:

    • 具體的參數估計流程如下:

      • 計算任意兩個樣本之間的距離
      • 計算每個樣本的k-距離值,選擇每個樣本最近鄰的k個樣本,將該所有樣本的k距離集合進行升序排序,同時記錄每個候選距離中對應的點對坐標(去重復之后,用來記錄該距離有多少個點)
      • 去查找k距離排序之后的若干波動點(見參考文獻)
      • 使用KMeans聚類,對于找到的候選信息(eps,minPts)進行聚類,得到相應的聚類中心
      • 然后將該參數送入到DBSCAN中進行聚類,對得到的聚類中心的信息進行判定,得到較好的聚類結果

    3.3 DBSCAN具體流程

    直觀的理解下本節開頭關于聚類指標的說明:

    • core point:聚類中心向量
    • Border Point:某個聚類中心的邊界樣本點
    • MinPts:最少聚類中心的樣本點的數量
    • ?:聚類中心內的最遠邊緣樣本到聚類中心的距離
    • Noise Point:噪聲樣本點

    • DBSCAN算法描述中常用的概念

      • 密度可達:樣本點p,關于樣本點q對于參數Eps,MinPts密度直達,若它滿足p∈Neighbor(q,Eps)?且?|Neighbor(q,Eps)|>=MinPts
      • 密度可達:樣本點p,關于樣本點q對于參數Eps,MinPts密度可達,若存在一系列的樣本點p1,...,pn(其中p1=q,?pn=p)使得對于i=1,2...,n?1,樣本點pi密度可達
      • 密度相連:樣本點p,關于樣本點q對于參數Eps,MinPts密度相連,若存在一個樣本點o,使得p和q均由樣本點o密度可達。

    • 具體的算法流程
    首先,將數據集D中的所有對象標記為為處理狀態 for 樣本p in 數據集D doif p 屬于某個簇 或者 被標記為噪聲 thencontinue;else檢查p的Eps鄰域 Neighbor(Eps, p)if |Neighbor(Eps, p)| < MinPts then標記對象p為邊界點或噪聲點else標記樣本p為核心點,并建立新的簇C,并將p鄰域的所有點加入Cfor 樣本q in Neighbor(Eps, p)中所有未被處理的對象 do按照鄰域樣本數量進行判斷end forend ifend if end for

    4. 層次聚類算法

    層次聚類是一種很直觀的算法,就是一層一層的對數據進行聚類操作,可以自低向上進行合并聚類、也可以自頂向下進行分裂聚類。

    • 凝聚式:從點作為個體簇開始,每一個步合并兩個最接近的簇
    • 分裂式:從包含所有個體的簇開始,每一步分裂一個簇,直到僅剩下單點簇為止

    4.1 凝聚層次聚類算法步驟

    • 計算鄰近度量矩陣
    • repeat

      • 合并最接近的兩個簇
      • 更新鄰近度矩陣,以反映新簇與原來簇之間的鄰近度量值
    • Until 僅剩下一個簇或者達到某個終止條件

    平臺實驗結果

    自動參數選擇的密度聚類算法

    • 調用命令
    * | select ts_dencity_cluster(stamp, metric_val, metric_name)
    • 聚類結果

    • 上述輸出結果說明

      • 聚類的中心的數量有算法自動生成
      • 輸出的結果按照所含有的實例數量降序排列

    層次聚類算法

    • 調用命令
    * | select ts_hierarchical_cluster(stamp, metric_val, metric_name, 2)
    • 聚類結果

    • 調用命令
    * | select ts_hierarchical_cluster(stamp, metric_val, metric_name, 8)
    • 聚類結果

    • 上述輸出結果說明

      • 聚類的中心的數量的上限用戶可自定義
      • 輸出的結果按照所含有的實例數量降序排列

    查找相似曲線

    • 調用命令
    * | select ts_similar_instance(stamp, metric_val, metric_name, 'machine_008_cpu')
    • 返回結果


    硬廣時間

    日志進階

    阿里云日志服務針對日志提供了完整的解決方案,以下相關功能是日志進階的必備良藥:

  • 機器學習語法與函數:https://help.aliyun.com/document_detail/93024.html
  • 日志上下文查詢:https://help.aliyun.com/document_detail/48148.html
  • 快速查詢:https://help.aliyun.com/document_detail/88985.html
  • 實時分析:https://help.aliyun.com/document_detail/53608.html
  • 快速分析:https://help.aliyun.com/document_detail/66275.html
  • 基于日志設置告警:https://help.aliyun.com/document_detail/48162.html
  • 配置大盤:https://help.aliyun.com/document_detail/69313.html
  • ?

    原文鏈接
    本文為云棲社區原創內容,未經允許不得轉載。

    總結

    以上是生活随笔為你收集整理的SLS机器学习介绍(02):时序聚类建模的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品熟女视频 | 在线观看毛片av | 天天干夜夜做 | 色欲人妻综合网 | 欧美日韩精品区 | 国产一及毛片 | 欧美成人综合一区 | 天天噜| 欧洲亚洲天堂 | 天天插av | 特级特黄aaaa免费看 | 淫视频在线观看 | 777精品久无码人妻蜜桃 | www.av72| 天堂网资源 | 美女光屁屁露胸胸 | 灌满闺乖女h高h调教尿h | 日韩毛片视频 | 日韩九九九| 大屁股白浆一区二区三区 | 亚洲a免费 | 一卡二卡久久 | 精品少妇人妻av一区二区 | 国产精品亚洲自拍 | 久色影视| 国产人妻精品一区二区三区不卡 | 亚洲一一在线 | 午夜影剧院 | 在线播放黄色av | 美日韩中文字幕 | 色综合色综合色综合 | 成人网站免费观看入口 | 黄色在线免费观看 | 黄色片视频免费 | 8ppav| 丰满熟妇被猛烈进入高清片 | 精品香蕉一区二区三区 | 欧美激情久久久久久 | 魔女鞋交玉足榨精调教 | 精品国产乱码久久久久久蜜臀 | 精品久久久久久一区二区里番 | 精品久久久一区二区 | 国产成人精品一区二区三区免费 | 久久精视频 | 51成人做爰www免费看网站 | 男女视频免费网站 | 国产精品探花一区二区在线观看 | 真实的国产乱xxxx在线 | 97免费超碰 | 成人午夜免费在线观看 | 日本网站免费观看 | 国产欧美视频在线观看 | 熟妇女人妻丰满少妇中文字幕 | 亚洲第一页色 | 亚洲中文一区二区 | 久久久国产成人 | 成年午夜视频 | 国产精品污www一区二区三区 | 国产欧美日韩一区二区三区 | 淫久久| 男女爱爱福利视频 | 国产免费一级 | 每日av更新| 伊人久久亚洲综合 | 性色影院 | av美国| 成人精品视频99在线观看免费 | 黄色大片免费的 | 人人干网站 | 综合网中文字幕 | 国产免费黄色小视频 | 日本中文字幕在线 | 国产精品天天av精麻传媒 | 女女高潮h冰块play失禁百合 | 成人a毛片久久免费播放 | 亚洲男人第一网站 | 亚洲黄色在线免费观看 | 久久激情网 | 91成人在线视频 | 综合av在线| 在线看b| 久久福利一区 | 成人欧美一区二区三区黑人动态图 | 国产视频一区二区三区在线观看 | av片网站 | 国产色视频网站 | 国产激情在线观看 | 国产一区二区三区成人 | 欧美啪啪网 | 亚洲天堂中文字幕在线观看 | 伦乱天堂 | 国产精品无码999 | 亚洲福利一区二区三区 | 亚洲精品国产一区二区 | 福利在线一区二区 | 99色亚洲 | 亚洲色图制服丝袜 | 精品无码一级毛片免费 | 中文字幕视频在线播放 |