分割功率變化數據我們正在研究一個用例,其中客戶擁有來自產品的功率變化數據(平均值和最大值)。他們之前根據功率值的變化手動將圖表劃分為不同的工作負載狀態。現在,他們的目標是使用 JMP 來自動化這個分割過程。
我已附上數據以及顯示預期(手動得出)結果的螢幕截圖。每個已識別的狀態都由起點和終點定義,這些起點和終點列在「起點/終點」列中。對於每個狀態,在實際的起點和終點周圍套用±5 行的緩衝區。
與客戶交談後的一些重要澄清:
1. 變化不基於時間
2. 狀態數量不固定。它不會總是如螢幕截圖所示為 11
3. 使用第二個 Y 軸變數區分手動結果中的狀態 7 和 8
我嘗試了層次聚類和 k 均值聚類,其結果接近手動結果但不完全匹配。有沒有什麼建議可以在 JMP 中更好地自動化這個分割過程?
回覆:分割功率變化數據我最初的想法是刪除零,然後平滑資料並尋找導數中的尖峰作為不同段的標記。我認為這是可行的,但有點「蠻力」。聚類聽起來像是一個「更好」的解決方案,儘管我對此沒有太多經驗。
使用層次聚類,我可以透過將方法設定為單一、資料格式設定為資料堆疊和非標準化來取得一些進展。如果我理解正確的話,我認為這將透過查看在時間和功率上彼此接近的「相鄰」點來形成聚類,透過將它們視為以時間為 X、功率為 Y 的 2D 空間中的點。也許其他人可以從這裡得到它?
Hierarchical Cluster(
Y( :"Time(s)"n, :"Power AVG (W)"n ),
Method( "Single" ),
Standardize Data( 0, "(for backward compatibility)" ),
Standardize By( "Unstandardized" ),
Dendrogram Scale( "Distance Scale" ),
Number of Clusters( 20 ),
SendToReport(
Dispatch( {"Dendrogram"}, "Clust Dendro", FrameBox,
{Frame Size( 47, 700 )}
)
)
);
回覆:分割功率變化數據再想想,我認為使用「資料堆疊」是不正確的。但對我來說,使用“單一”+“非標準化”仍然可以獲得良好的結果。