電力変動データのセグメント化現在、お客様が製品の電力変動データ(平均と最大値)をお持ちのユースケースに取り組んでいます。以前は、電力値の変化に基づいてグラフを手動でワークロード状態に分割していました。現在、JMPを使用してこの分割プロセスを自動化することを目指しています。
期待される(手動で算出された)結果を示すスクリーンショットとデータを添付しました。識別された各状態は開始点と終了点によって定義され、「開始点 / 終了点」列に記載されています。各状態には、実際の開始点と終了点の周囲に±5行のバッファが適用されます。
顧客と話し合った後の重要な説明:
1. 変動は時間に基づいていない
2. 状態の数は固定ではありません。スクリーンショットに示されているように、常に11個になるわけではありません。
3. 手動結果の状態7と8は、2番目のY軸変数を使用して区別されました。
階層的クラスタリングとK平均法を試してみましたが、手動の結果に近い結果は得られましたが、完全に一致するものではありませんでした。JMPでこのセグメンテーションプロセスをより自動化するための提案はありますか?
電力変動データのセグメント化について当初の考えとしては、ゼロを除去してからデータを平滑化し、導関数のスパイクを各セグメントのマーカーとして探すというものです。これは可能だと思いますが、少し「強引」なやり方です。クラスタリングの方が「より良い」解決策のように思えますが、あまり経験がありません。
階層的クラスタリングを使って、「手法」を「単一」に、「データ形式」を「積み重ねデータ」に、「標準化なし」に設定することで、少し進展がありました。私の理解が正しければ、これは時間とべき乗の両方で互いに近い「隣接」点を、時間をX、べき乗をYとする2次元空間上の点として捉え、クラスターを形成するものだと思います。誰かここから引き継いでくれる人はいませんか?
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 )}
)
)
);
電力変動データのセグメント化について考え直してみると、「データがスタックされている」という表現は間違っているように思います。しかし、「単一」+「標準化されていない」という表現を使うと、私の環境ではまだ良い結果が得られます。