TFS-2022《A Novel Data-Driven Approach to Autonomous Fuzzy Clustering》


核心思想

這篇論文的核心思想是提出一種全新的、數據驅動自主模糊聚類(Autonomous Fuzzy Clustering, AFC)算法。其核心創新在于,它巧妙地結合了模糊聚類的靈活性和基于中位數(medoids)聚類的可解釋性,并通過一個自適應的高斯核來控制模糊程度,從而實現了兩大目標:

  1. 自主確定聚類數量(C):無需用戶預先指定聚類數,算法能根據數據的內在結構(局部模式)自動推斷出最優的聚類數量。
  2. 獲得高質量的初始劃分:避免了傳統模糊C均值(FCM)等算法因隨機初始化而陷入局部次優解的問題,提供了一個穩健且高質量的初始聚類中心集。

該算法通過一個巧妙的“微聚類”(microcluster)機制,將所有數據點視為一個微聚類,利用高斯核計算它們之間的相互隸屬度,然后通過計算每個數據點的“累積隸屬度”(cumulative membership)并尋找其局部最大值,來一次性地、自主地選出初始的聚類中位數。


目標函數

AFC算法的目標函數是整個優化過程的基石,它定義了算法需要最小化的準則。

其目標函數如下:

J(U,P)=∑k=1K∑i=1Cμˉi,k∥xk?pi∥2J(U, P) = \sum_{k=1}^{K} \sum_{i=1}^{C} \bar{\mu}_{i,k} \|x_k - p_i\|^2J(U,P)=k=1K?i=1C?μˉ?i,k?xk??pi?2

其中:

  • J(U,P)J(U, P)J(U,P) 是需要最小化的目標函數值。
  • U=[μˉi,k]i=1:C,k=1:KU = [\bar{\mu}_{i,k}]_{i=1:C, k=1:K}U=[μˉ?i,k?]i=1:C,k=1:K?模糊隸屬度矩陣μˉi,k\bar{\mu}_{i,k}μˉ?i,k? 表示數據樣本 xkx_kxk? 屬于由中位數 pip_ipi? 代表的第 iii 個聚類的歸一化隸屬度
  • P=[pi]i=1:CP = [p_i]_{i=1:C}P=[pi?]i=1:C?中位數矩陣pip_ipi? 是第 iii 個聚類的中位數,它必須是數據集中的一個實際存在的樣本點
  • KKK 是數據集中的總樣本數。
  • CCC 是聚類的數量(在算法開始時是未知的)。
  • ∥xk?pi∥2\|x_k - p_i\|^2xk??pi?2 是數據樣本 xkx_kxk? 與聚類中位數 pip_ipi? 之間的歐幾里得距離的平方。

這個目標函數可以理解為加權的平方誤差和。算法的目標是找到一組中位數 PPP 和對應的隸屬度 UUU,使得所有樣本到其所屬聚類中心的加權距離平方和最小。


目標函數的優化過程

AFC算法對目標函數的優化過程分為兩個主要階段:

第一階段:自主初始化 (核心創新)

這一階段不直接優化上述目標函數,而是為第二階段提供一個極佳的起點。其核心思想是:

  1. 計算自適應核寬 σG\sigma_GσG?:根據所有數據點間的相互距離和用戶設定的“粒度級別”GGG,通過公式(5)計算出一個全局的高斯核寬度 σG\sigma_GσG?。這個 σG\sigma_GσG? 控制了“影響范圍”,是算法數據驅動特性的體現。
  2. 構建微聚類隸屬度矩陣 UmicroU_{micro}Umicro?:將每個數據點 xkx_kxk? 都視為一個微聚類的中位數,利用高斯函數計算它對所有其他數據點 xjx_jxj? 的隸屬度:
    μ(xk,xj,σG)=e?∥xk?xj∥2/σG2\mu(x_k, x_j, \sigma_G) = e^{-\|x_k - x_j\|^2 / \sigma_G^2}μ(xk?,xj?,σG?)=e?xk??xj?2/σG2?
    然后進行歸一化,得到微聚類隸屬度矩陣 UmicroU_{micro}Umicro?
  3. 計算累積隸屬度 λ(xk)\lambda(x_k)λ(xk?):對于每個數據點 xkx_kxk?,計算它作為微聚類中位數時,對所有 KKK 個樣本(包括自己)的隸屬度之和:
    λ(xk)=∑j=1Kμˉk,j′\lambda(x_k) = \sum_{j=1}^{K} \bar{\mu}'_{k,j}λ(xk?)=j=1K?μˉ?k,j?
    這個 λ(xk)\lambda(x_k)λ(xk?) 可以看作是該點作為“局部模式代表”的綜合吸引力或代表性強度
  4. 自主選擇初始中位數 P0P^0P0:找出所有滿足 條件1 的數據點:
    如果?λ(xk)>max?∥xk?xj∥≤σG;k≠j(λ(xj)),?則?xk∈{p}C0\text{如果 } \lambda(x_k) > \max_{\|x_k - x_j\| \leq \sigma_G; k \neq j} (\lambda(x_j)) \text{, 則 } x_k \in \{p\}_C^0如果?λ(xk?)>xk??xj?σG?;k=jmax?(λ(xj?)),??xk?{p}C0?
    這意味著,xkx_kxk? 的累積隸屬度在其以 σG\sigma_GσG? 為半徑的鄰域內是最大的。這些點就是局部模式的峰值,被選為初始聚類中位數 P0P^0P0。此時,聚類數 CCC 也就被自主確定了。

第二階段:迭代優化

在獲得高質量的初始中位數 P0P^0P0 后,算法進入標準的交替優化過程,以最小化目標函數 J(U,P)J(U, P)J(U,P)

  1. 更新中位數 PtP^tPt (固定 Ut?1U^{t-1}Ut?1):對于每個聚類 iii,在所有數據樣本中尋找一個新的中位數 pitp_i^tpit?,使得該聚類內所有樣本的加權距離平方和最小:
    pit=arg?min?z∈{x}(∑k=1Kμˉi,kt?1∥xk?z∥2)p_i^t = \arg \min_{z \in \{x\}} \left( \sum_{k=1}^{K} \bar{\mu}^{t-1}_{i,k} \|x_k - z\|^2 \right)pit?=argz{x}min?(k=1K?μˉ?i,kt?1?xk??z2)
    由于中位數必須是實際數據點,因此這是一個在有限集合 {x}\{x\}{x} 上的搜索問題。
  2. 更新隸屬度 UtU^tUt (固定 PtP^tPt):根據新的中位數位置 PtP^tPt,重新計算所有樣本的歸一化隸屬度:
    μˉi,kt=μ(pit,xk,σG)∑j=1Cμ(pjt,xk,σG)\bar{\mu}^t_{i,k} = \frac{\mu(p_i^t, x_k, \sigma_G)}{\sum_{j=1}^{C} \mu(p_j^t, x_k, \sigma_G)}μˉ?i,kt?=j=1C?μ(pjt?,xk?,σG?)μ(pit?,xk?,σG?)?
    這里使用的仍然是第一階段計算出的、固定的 σG\sigma_GσG?
  3. 收斂判斷:重復步驟1和2,計算新的目標函數值 J(Ut,Pt)J(U^t, P^t)J(Ut,Pt)。當目標函數值的變化小于預設閾值,或達到最大迭代次數時,停止迭代。

主要貢獻點

  1. 數據驅動的自主聚類:這是最核心的貢獻。算法通過“累積隸屬度”和局部最大值搜索,完全自主地確定了聚類數量 CCC,無需任何復雜的迭代搜索或外部參數調整,解決了FCM等算法的一大痛點。
  2. 穩健的高質量初始化:提出的初始化方法基于數據的全局結構,避免了隨機初始化的不穩定性,為后續優化提供了極佳的起點,提高了算法的魯棒性和收斂速度。
  3. 可解釋的聚類中心:采用中位數(實際數據點)而非均值(虛擬點)作為聚類中心,使得聚類結果更具可解釋性,尤其適用于需要理解“典型樣本”是什么的應用場景。
  4. 數據驅動的模糊度控制:用一個從數據中自適應計算的高斯核寬度 σG\sigma_GσG? 來控制模糊度,取代了傳統FCM中需要手動設定的模糊加權指數 mmm,使算法更加自主。
  5. 高效的流式數據擴展:提出了一種“逐塊”(chunk-by-chunk)的流式數據聚類機制。它能高效地處理數據流,通過融合新舊聚類中心并移除冗余,實現了對概念漂移和概念突變的自適應。
  6. 計算效率:對于靜態數據,其時間復雜度為 O(K2+HCK)O(K^2 + HCK)O(K2+HCK),其中 K2K^2K2 項來自初始化,HCKHCKHCK 項來自迭代優化,整體效率較高。

實驗結果

論文在16個基準數據集(包括合成數據、真實世界數據和圖像數據)上進行了大量實驗,結果證明了AFC算法的有效性。

  1. 靜態數據聚類:在6個合成數據集和8個真實世界數據集上,AFC算法(G=4G=4G=4)在總體排名(Table V)上優于12種最先進的對比算法(如FCM, K-means, DBSCAN, AP等)。它在Calinski Harabasz指數(CHI)、Davies-Bouldin指數(DBI)和輪廓系數(SC)等質量指標上表現最佳,表明其聚類結果緊湊且分離度好。
  2. 流式數據聚類:在8個真實世界數據集上,AFC算法與5種在線聚類算法(如EC, OKM)相比,同樣取得了優異的性能(Table VI),在CHI和SC等指標上排名第一或前三,證明了其在處理數據流時的有效性。
  3. 大規模高維數據:在MNIST和FMNIST兩個大規模高維數據集上,AFC算法的計算效率遠高于對比算法(ADP),同時聚類質量(CHI)也顯著更好
  4. 參數 GGG 的影響:實驗表明,粒度級別 GGG 控制著聚類的精細程度。較小的 GGG(如1,2)導致粗粒度、少聚類;較大的 GGG(如5,6)導致細粒度、多聚類。推薦值 G=4G=4G=4555 能在多數情況下取得良好平衡。

算法實現過程詳解

以下是AFC算法(靜態數據)的詳細實現步驟,對應論文中的 Algorithm 1

  1. 輸入:靜態數據集 {x}={x1,x2,...,xK}\{x\} = \{x_1, x_2, ..., x_K\}{x}={x1?,x2?,...,xK?} 和粒度級別 GGG
  2. 計算自適應核寬 σG\sigma_GσG?
    • 根據公式(5),利用所有數據點對之間的距離和用戶設定的 GGG,計算出 σG2\sigma_G^2σG2?。這個值在整個算法過程中保持不變。
  3. 構建微聚類隸屬度矩陣 UmicroU_{micro}Umicro?
    • 對于每個數據點 xkx_kxk?(作為微聚類中位數),計算它對所有 KKK 個數據點 xjx_jxj? 的高斯隸屬度 μ(xk,xj,σG)\mu(x_k, x_j, \sigma_G)μ(xk?,xj?,σG?)
    • 對每個 xjx_jxj?,將其對所有微聚類的隸屬度進行歸一化,得到 μˉk,j′\bar{\mu}'_{k,j}μˉ?k,j?。最終形成一個 K×KK \times KK×K 的矩陣 UmicroU_{micro}Umicro?
  4. 計算累積隸屬度 λ(xk)\lambda(x_k)λ(xk?)
    • UmicroU_{micro}Umicro? 的每一行(對應一個微聚類中位數 xkx_kxk?)求和,得到該點的累積隸屬度 λ(xk)\lambda(x_k)λ(xk?)
  5. 自主選擇初始中位數 P0P^0P0
    • 遍歷所有數據點 xkx_kxk?,檢查其是否滿足條件1:即在以 σG\sigma_GσG? 為半徑的鄰域內,其 λ(xk)\lambda(x_k)λ(xk?) 是否是最大的。
    • 將所有滿足條件的 xkx_kxk? 收集起來,構成初始聚類中位數集合 P0={p10,p20,...,pC0}P^0 = \{p^0_1, p^0_2, ..., p^0_C\}P0={p10?,p20?,...,pC0?}。此時,聚類數 CCC 被確定。
  6. 初始化隸屬度矩陣 U0U^0U0
    • 使用初始中位數 P0P^0P0 和固定的 σG\sigma_GσG?,根據公式(3)計算所有樣本的歸一化隸屬度,得到 U0U^0U0
  7. 迭代優化
    • 初始化t=1t = 1t=1,計算初始目標函數值 J(U0,P0)J(U^0, P^0)J(U0,P0)
    • 循環
      • 步驟1 (更新 PtP^tPt):對每個聚類 iii,根據公式(9),在原始數據集 {x}\{x\}{x} 中搜索一個新的中位數 pitp_i^tpit?,使得該聚類的加權距離平方和最小。
      • 步驟1 (更新 UtU^tUt):根據新的中位數 PtP^tPt,根據公式(10)重新計算所有樣本的歸一化隸屬度 UtU^tUt
      • 步驟2 (收斂判斷):計算新的目標函數值 J(Ut,Pt)J(U^t, P^t)J(Ut,Pt)。如果 JJJ 的變化足夠小(收斂),則跳出循環;否則,令 t=t+1t = t + 1t=t+1,返回步驟1。
  8. 輸出:最終的聚類中位數矩陣 PPP 和隸屬度矩陣 UUU

綜上所述,這篇論文提出了一種思想新穎、實現巧妙的自主模糊聚類算法。它通過“累積隸屬度”這一核心概念,成功地將模糊聚類的優勢與自主性、可解釋性相結合,為解決聚類分析中的核心難題提供了新的思路。

問題分析

公式 (5) 是論文中用于計算自適應核寬度 σG2\sigma_G^2σG2? 的核心公式,它是 AFC 算法中的一個關鍵步驟。該公式通過數據點之間的相互距離和用戶設定的“粒度級別” GGG 來計算高斯核的寬度,從而控制隸屬度函數的模糊程度。以下是對其數學原理的詳細分析:


公式回顧

公式 (5) 表達如下:

σg2=1∑i=1K?1∑j=i+1Kwg,i,j∑i=1K?1∑j=i+1Kwg,i,j∥xi?xj∥2 \sigma_g^2 = \frac{1}{\sum_{i=1}^{K-1} \sum_{j=i+1}^{K} w_{g,i,j}} \sum_{i=1}^{K-1} \sum_{j=i+1}^{K} w_{g,i,j} \|x_i - x_j\|^2 σg2?=i=1K?1?j=i+1K?wg,i,j?1?i=1K?1?j=i+1K?wg,i,j?xi??xj?2

其中:

  • g=1,2,…,Gg = 1, 2, \dots, Gg=1,2,,G:表示粒度級別的索引,GGG 是用戶選擇的非負整數。
  • wg,i,jw_{g,i,j}wg,i,j? 是一個權重函數,定義為:
    wg,i,j={1,如果?∥xi?xj∥≤σg?1,0,否則. w_{g,i,j} = \begin{cases} 1, & \text{如果 } \|x_i - x_j\| \leq \sigma_{g-1}, \\ 0, & \text{否則}. \end{cases} wg,i,j?={1,0,?如果?xi??xj?σg?1?,否則.?
  • σ02=2K(K?1)∑i=1K?1∑j=i+1K∥xi?xj∥2\sigma_0^2 = \frac{2}{K(K-1)} \sum_{i=1}^{K-1} \sum_{j=i+1}^{K} \|x_i - x_j\|^2σ02?=K(K?1)2?i=1K?1?j=i+1K?xi??xj?2:這是初始核寬度的計算公式。

數學原理分析

1. σ02\sigma_0^2σ02? 的計算
  • σ02\sigma_0^2σ02? 是所有數據點對之間歐幾里得距離平方的平均值,乘以一個常數因子 2K(K?1)\frac{2}{K(K-1)}K(K?1)2?
  • 它的作用是提供一個全局尺度,衡量數據集的整體分布范圍。具體來說:
    σ02=2K(K?1)∑i=1K?1∑j=i+1K∥xi?xj∥2 \sigma_0^2 = \frac{2}{K(K-1)} \sum_{i=1}^{K-1} \sum_{j=i+1}^{K} \|x_i - x_j\|^2 σ02?=K(K?1)2?i=1K?1?j=i+1K?xi??xj?2
    這里的分母 K(K?1)K(K-1)K(K?1) 是所有可能的數據點對的數量(無序對),因此 σ02\sigma_0^2σ02? 可以看作是對數據點間平均距離平方的一種歸一化估計。
  • σ02\sigma_0^2σ02? 是整個算法的起點,后續的 σg2\sigma_g^2σg2? 都是基于它遞歸計算的。
2. 遞歸計算 σg2\sigma_g^2σg2?
  • 對于 g>0g > 0g>0σg2\sigma_g^2σg2? 的計算依賴于前一步的 σg?12\sigma_{g-1}^2σg?12?。具體來說,公式 (5) 中的 wg,i,jw_{g,i,j}wg,i,j? 使用了 σg?1\sigma_{g-1}σg?1? 作為閾值,來決定是否將數據點對 (xi,xj)(x_i, x_j)(xi?,xj?) 的距離平方納入加權平均的計算。
  • wg,i,jw_{g,i,j}wg,i,j? 的作用是:
    • 如果兩個數據點 xix_ixi?xjx_jxj? 的距離小于或等于 σg?1\sigma_{g-1}σg?1?,則認為它們在當前粒度級別 ggg 下是“鄰近”的,權重為 1。
    • 否則,權重為 0,表示這兩個點在當前粒度級別下不相關。
  • 因此,σg2\sigma_g^2σg2? 的計算可以理解為:
    σg2=鄰近點對的距離平方之和鄰近點對的數量 \sigma_g^2 = \frac{\text{鄰近點對的距離平方之和}}{\text{鄰近點對的數量}} σg2?=鄰近點對的數量鄰近點對的距離平方之和?
    其中,“鄰近點對”是指滿足 ∥xi?xj∥≤σg?1\|x_i - x_j\| \leq \sigma_{g-1}xi??xj?σg?1? 的點對。
3. 自適應性與粒度控制
  • 通過遞歸地計算 σg2\sigma_g^2σg2?,算法能夠根據數據的局部結構動態調整核寬度。具體來說:
    • g=1g = 1g=1 時,σ12\sigma_1^2σ12? 基于 σ02\sigma_0^2σ02? 計算,此時的鄰近關系較為寬松,因為 σ02\sigma_0^2σ02? 是全局尺度。
    • 隨著 ggg 的增加,σg?1\sigma_{g-1}σg?1? 逐漸減小,鄰近點對的定義變得越來越嚴格,這使得 σg2\sigma_g^2σg2? 能夠捕捉到更精細的局部模式。
  • 用戶可以通過選擇不同的 GGG 來控制聚類結果的精細程度:
    • 較小的 GGG 導致較大的 σg2\sigma_g^2σg2?,聚類結果較粗略。
    • 較大的 GGG 導致較小的 σg2\sigma_g^2σg2?,聚類結果更精細。
4. 高斯核寬度的意義
  • 在 AFC 算法中,高斯核寬度 σG2\sigma_G^2σG2? 最終用于計算隸屬度函數:
    μ(pi,xk,σG)=e?∥pi?xk∥2σG2 \mu(p_i, x_k, \sigma_G) = e^{-\frac{\|p_i - x_k\|^2}{\sigma_G^2}} μ(pi?,xk?,σG?)=e?σG2?pi??xk?2?
    其中,pip_ipi? 是聚類中心(中位數),xkx_kxk? 是數據點。
  • σG2\sigma_G^2σG2? 控制了隸屬度函數的“影響范圍”。較大的 σG2\sigma_G^2σG2? 表示每個聚類中心的影響范圍較大,數據點更容易被分配到多個聚類;較小的 σG2\sigma_G^2σG2? 則表示影響范圍較小,聚類結果更加明確。
  • 通過從數據中自適應地計算 σG2\sigma_G^2σG2?,AFC 算法避免了手動調參的困難,同時能夠更好地適應數據的內在結構。
5. 遞歸過程的穩定性
  • 由于 σg2\sigma_g^2σg2? 是基于前一步的 σg?12\sigma_{g-1}^2σg?12? 計算的,這種遞歸方式確保了計算的穩定性和一致性。
  • 每一步的 σg2\sigma_g^2σg2? 都是從數據中提取的統計量,而不是人為設定的參數,因此具有很強的數據驅動特性。

總結

公式 (5) 的數學原理在于通過遞歸的方式,利用數據點之間的距離信息和用戶設定的粒度級別 GGG,自適應地計算出適合當前數據分布的高斯核寬度 σG2\sigma_G^2σG2?。這一過程的核心思想是:

  1. 全局到局部的過渡:從全局尺度 σ02\sigma_0^2σ02? 開始,逐步細化到更局部的結構。
  2. 數據驅動的自適應性:通過遞歸計算,算法能夠自動調整核寬度,無需人工干預。
  3. 粒度控制:用戶可以通過調整 GGG 來控制聚類結果的精細程度,從而靈活應對不同復雜度的數據分布。

這種設計不僅提高了算法的魯棒性和通用性,還使得 AFC 算法能夠在多種場景下(靜態數據和流式數據)表現出優異的性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917767.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917767.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ELK是什么

ELK 是一個廣受歡迎的開源技術棧,用于實時采集、處理、存儲、搜索、分析和可視化海量的日志數據(log)和機器生成的數據(machine data),尤其是在 IT 系統監控、應用故障排查、安全分析和業務智能等領域應用廣…

[硬件電路-123]:模擬電路 - 信號處理電路 - 常見的高速運放芯片、典型電路、電路實施注意事項

一、高速運放常見芯片型號及特性高速運放(高速運算放大器)通常指帶寬(GBW)超過10MHz、壓擺率(SR)高于10V/μs的器件,適用于視頻處理、通信系統、高速數據采集等場景。以下是典型芯片及其特性&am…

關于解決WinRiver項目動態XmlElement的序列化與反序列化的問題

關于解決WinRiver項目動態XmlElement的序列化與反序列化的問題 一、WinRiver項目流量匯總XML內容 1.1、索引可變,索引下 XmlElement 元素內容固定 1.2、如何將對象 BottomTrack 的動態內容序列化為 XML ? 1.3、如何將 XML 動態內容反序列化為對象 BottomTrack ? 二、XML 動態…

【力扣 Hot100】 刷題日記

D3 128.最長連續序列 錯解 class Solution {public int longestConsecutive(int[] nums) {Arrays.sort(nums);int maxCnt 0;int cnt 0;for (int i 0; i < nums.length - 1; i) {if(nums[i] ! nums[i 1] - 1){//如果不連續&#xff0c;取cnt與maxCnt較大值&#xff0c…

飛算JavaAI編程插件:以AI之力賦能Java開發,讓編碼效率再升級

你是否希望自己敲代碼的時候總有一位大佬在你背后幫你保駕護航。想象一下&#xff0c;當你對著Java編輯器敲代碼時&#xff0c;身后站了位“隱形大神”——你剛敲出for&#xff0c;它就預判到你要遍歷集合&#xff0c;自動補全帶泛型的循環邏輯&#xff1b;你手滑把equals寫成&…

機器學習通關秘籍|Day 03:決策樹、隨機森林與線性回歸

目錄 一、決策樹 1、概念 2、基于信息增益的決策樹的建立 &#xff08;1&#xff09;信息熵 &#xff08;2&#xff09;信息增益 &#xff08;3&#xff09;信息增益決策樹建立步驟 3、基于基尼指數的決策樹的建立 4、API 二、隨機森林 1、算法原理 2、API 三、線性…

C++進階—C++的類型轉換

第一章&#xff1a;C語言中的類型轉換在C語言中&#xff0c;如果賦值運算符左右兩側類型不同&#xff0c;或者形參與實參類型不匹配&#xff0c;或者返回值類型與接收返回值類型不一致時&#xff0c;就需要發生類型轉化&#xff0c;C語言中總共有兩種形式的類型轉換&#xff1a…

基于Flask的微博話題多標簽情感分析系統設計

基于Flask的微博話題情感分析系統設計與實現 一、項目概述 本項目是一個輕量化的微博話題情感分析系統&#xff0c;通過Flask框架整合情感分析模型&#xff0c;實現對微博話題及評論的情感標簽識別與結果展示。系統面向普通用戶和研究者&#xff0c;提供簡單易用的操作界面&…

TDengine 中 TDgpt 的模型評估工具

模型評估工具 TDgpt 在企業版中提供預測分析模型和異常檢測模型有效性評估工具 analytics_compare&#xff0c;該工具能夠使用 TDengine 中的時序數據作為 回測依據&#xff0c;評估不同預測模型或訓練模型的有效性。該工具在開源版本中不可用使用評估工具&#xff0c;需要在其…

【DL學習筆記】DataLoader類功能和參數說明

文章目錄一、Dataset 與 DataLoader 功能介紹抽象類Dataset的作用DataLoader 作用兩者關系二、torch.utils.data.DataLoader代碼示例常用參數圖示num_workers設置多少合適數據加載子進程如何并行的pin_memorysampler兩種sampler順序采樣 SequentialSampler隨機采樣 RandomSampl…

JVM中年輕代、老年代、永久代(或元空間)、Eden區和Survivor區概念介紹

在Java虛擬機&#xff08;JVM&#xff09;中&#xff0c;內存管理是自動化的&#xff0c;這主要通過垃圾回收機制實現。JVM將堆內存劃分為不同的區域&#xff0c;以便更高效地管理和回收對象。以下是關于年輕代、老年代、永久代&#xff08;或元空間&#xff09;、Eden區和Surv…

譯 | BBC Studios團隊:貝葉斯合成控制方法SCM的應用案例

來自上傳文件中的文章《Using Causal Inference for Measuring Marketing Impact: How BBC Studios Utilises Geo Holdouts and CausalPy》 本篇介紹了在傳統A/B測試不適用時&#xff0c;如何利用貝葉斯合成控制方法和地理區域保留來評估營銷活動效果。其亮點在于通過構建“反事…

Web開發-PHP應用TP框架MVC模型路由訪問模版渲染安全寫法版本漏洞

我們先使用/index.php/index/index/test&#xff0c;就是圖中的test()方法 /index.php/index/index/index&#xff0c;這個回顯就是111 http://127.0.0.1:83/index.php/index/index/test2?x123456 public function test2() {$x$_GET[x];return $x; } 這里再做一個案例更詳細一…

FreeRTOS列表系統深度解析

FreeRTOS列表系統深度解析 一、核心數據結構 1. 列表控制塊 (List_t) typedef struct xLIST {volatile UBaseType_t uxNumberOfItems; // 當前列表項數量ListItem_t * pxIndex; // 遍歷指針&#xff08;用于輪詢調度&#xff09;MiniListItem_t xListEnd; …

《Linux編譯器:gcc/g++食用指南》

堅持用 清晰易懂的圖解 代碼語言&#xff0c;讓每個知識點變得簡單&#xff01; &#x1f680;呆頭個人主頁詳情 &#x1f331; 呆頭個人Gitee代碼倉庫 &#x1f4cc; 呆頭詳細專欄系列 座右銘&#xff1a; “不患無位&#xff0c;患所以立。” 《Linux編譯器&#xff1a;GCC…

SparkKV轉換算子實戰解析

目錄 KV算子 parallelizePairs mapToPair mapValues groupByKey reduceByKey sortByKey 算子應用理解 reduceByKey和groupByKey的區別 groupByKeymapValues實現KV數據的V的操作 改進用reduceByKey groupby通過K和通過V分組的模板代碼 問題集錦 寶貴的經驗 這里會…

深度解析 TCP 三次握手與四次揮手:從原理到 HTTP/HTTPS 的應用

TCP 的三次握手和四次揮手是網絡通信的基石&#xff0c;無論是 HTTP 還是 HTTPS&#xff0c;它們都依賴 TCP 提供可靠的傳輸層服務。本文將用萬字篇幅&#xff0c;結合 Mermaid 圖表和代碼示例&#xff0c;深入講解 TCP 三次握手、四次揮手的原理、過程、狀態變化&#xff0c;以…

Hyper-V + Centos stream 9 搭建K8s集群(一)

一、創建虛擬機一臺32G內存&#xff0c;16核心的Win11&#xff0c;已經安裝了Hyper-V 管理器。然后也下載了CentOS-Stream-9-latest-x86_64-dvd1.iso的鏡像文件。這里Hyper-V創建虛擬機的過程就不贅述了&#xff0c;如果出現虛擬機加載不到鏡像的問題&#xff0c;先把這個使用安…

Pygame如何制作小游戲

以下是 Pygame 的詳細使用指南&#xff0c;從安裝到開發完整游戲的步驟說明&#xff0c;包含代碼示例和最佳實踐&#xff1a; 一、安裝與環境配置 1. 安裝 Pygame pip install pygame2. 驗證安裝 import pygame pygame.init() print(pygame.version.ver) # 應輸出版本號&am…

@【JCIDS】【需求論證】聯合能力集成與開發系統知識圖譜

JCIDS(聯合能力集成與開發系統)知識圖譜 1. JCIDS概述 2. JCIDS的提出背景 3. JCIDS核心流程 4. JCIDS分析方法 5. JCIDS優勢 6. JCIDS與采辦系統的關系 7. JCIDS知識圖譜結構 8. 對我的啟示 9.JCIDS(聯合能力集成與開發系統)相關術語列表 10. 參考文獻 1. JCIDS概述 定義:…