時系列の分類

時系列分類

時系列分類の概念に初めて出会ったとき、最初に考えたのは、「時系列をどのように分類するのか?」ということでした。時系列分類のデータはどのようなものですか?

ご想像のとおり、時系列分類データは、属性に順序付けられたシーケンスがあるため、通常の分類問題とは異なります。この違いを理解するために、時系列分類のユースケースをいくつか見てみましょう。

1) ECG/EEG 信号の分類

心電図 (ECG、心電図) は心臓の電気活動を記録し、さまざまな心臓の問題を診断するために広く使用されています。これらの ECG 信号は外部電極で捕捉されます。たとえば、心拍の電気的活動を表す以下の信号サンプルを考えてみましょう。左側の画像は正常な心拍を表し、右側の画像は心筋梗塞を表しています。
ここに画像の説明を挿入

  • 電極から収集されたデータは時系列の形式であり、信号はさまざまなカテゴリに分類できます脳の電気活動を記録する脳波 (EEG) 信号を分類することもできます。

2) 画像データ

画像は時系列関連の形式にすることもできます。次のシナリオを考えてみましょう。

特定の畑で栽培される作物は、気象条件、土壌の肥沃度、水の利用可能性、その他の外部要因に依存します。土地の写真は5 年間毎日撮影され、その土地で栽培されている作物の名前がラベル付けされました。データセット内の画像は一定の時間間隔後に撮影され、明確な順序を持っています。これは画像を分類する際の重要な要素です。

3) モーションセンサーデータの分類

センサーは、その範囲内の物体の動きを識別できる高周波データを生成します。複数の無線センサーを設置し、センサーの信号強度の変化を観測することで、物体の移動方向を特定できます。

「屋内ユーザーの動き予測」の問題を例に考えてみましょう。

この課題では、複数のモーション センサーが異なる部屋に配置され、これらのモーション センサーから取得した周波数データに基づいて、人が部屋の中で移動したかどうかを識別することが目標です。合計 4 つのモーション センサー (A1、A2、A3、A4) が 2 つの部屋に分散されています。下の画像をご覧ください。各部屋のセンサーの位置が示されています。2 つの部屋セットアップは、3 つの異なる部屋グループのペア (グループ 1、グループ 2、グループ 3) で作成されます。
ここに画像の説明を挿入


ここに画像の説明を挿入


伝統的な手法

グローバル特徴分類アルゴリズムは、完全な時系列を特徴として使用し、通常は距離測定関数と 1-NN の組み合わせを使用して、分類のための時系列間の類似性を計算します。このタイプの方法の研究の方向性は、完全な時系列の類似性を測定するために使用される距離測定機能です。

典型的なグローバル特徴アルゴリズム-dtw

一連の点を別のシーケンスの複数の連続する点に対応させて (この点によって表される音の発音時間を延長するのと同じ)、対応する点間の距離の合計を計算する場合、これが dtw アルゴリズムです。dtw アルゴリズムを使用すると、シーケンス内の特定の瞬間のポイントを、別のシーケンス内の複数の連続する瞬間のポイントに対応させることができます。これはタイム ワーピングと呼ばれます。

ここに画像の説明を挿入

典型的なグローバル特徴アルゴリズム - 差分距離法

  • 微分距離法は、元の時系列の一次微分を計算し、2 つの時系列の差分系列間の距離、つまり微分距離を測定します
  • 差分法は、元のシーケンス距離の補足として差分距離を取得します。これは、最終的な距離計算機能の重要な部分です。
  • 差分距離法では、時間領域の元の時系列と差分領域の一次差分系列を組み合わせて、分類効果を向上させます。

元の系列と差分系列をいかに合理的に組み合わせるかが主な研究方向であり、差分距離法の進化の過程を図に示します。

ここに画像の説明を挿入

地域の特徴

ローカル フィーチャクラス分類アルゴリズムは、時系列のサブシーケンスの一部を時系列分類のフィーチャとして使用しますこのタイプのアルゴリズムの鍵は、カテゴリを区別できる局所的な特徴を見つけることです。サブシーケンスが短いため、構築された分類器は高速になりますが、局所的な特徴を見つけるにはある程度の時間がかかります。

典型的な局所特徴アルゴリズム - 間隔 (間隔)

ローカル フィーチャクラスの間隔メソッドは、時系列をいくつかの間隔に分割し、各間隔からフィーチャを抽出します。

  • このタイプの方法は、ノイズだけでなく、長いシーケンス内の位相依存性や識別性のあるサブシーケンスにも適しています。

区間ベースの時系列分類アルゴリズムの開発プロセスを図に示します。

ここに画像の説明を挿入

TSF

TSF (Time Series Forest) アルゴリズムは、時系列分類のための統合学習アルゴリズムです。このアルゴリズムは時系列データを特徴ベクトルに変換し、分類にランダム フォレスト法を使用します。

TSF は、各間隔の統計を特徴として使用するランダム フォレスト アプローチを使用することで、間隔の巨大な特徴空間の問題を克服します。ツリーのトレーニングには、ルート m のランダムな間隔を選択し、一連のランダムな間隔の平均、標準偏差、および傾きを生成し、結果として得られる 3 つのルート m の特徴に基づいてツリーを作成してトレーニングすることが含まれます。
TSF アルゴリズムの主な手順は次のとおりです。

特徴抽出: 生の時系列データを特徴ベクトルに変換します。一般的に使用される特徴抽出方法には、フーリエ変換、ウェーブレット変換などが含まれます。

データセットの分割: 抽出された特徴ベクトルをいくつかのサブセットに分割します。

サブセットをランダムに選択: 分割されたサブセットの一部をランダムに選択して学習します。

特徴をランダムに選択: トレーニング用に特徴ベクトルから特徴の一部をランダムに選択します。

デシジョン ツリーの構築: 選択したサブセットと特徴に基づいてデシジョン ツリー モデルを構築します。

デシジョン ツリーの統合: 手順 3 ~ 5 を繰り返して、複数のデシジョン ツリーを構築し、それらをランダム フォレスト モデルに統合します。

分類: 構築されたランダム フォレスト モデルを使用して、新しい時系列データを分類します。

TSF算法的优点:

  1. 大規模な時系列データを処理でき、優れた分類パフォーマンスを備えています。
  2. サブセットと特徴をランダムに選択することで計算を削減し、複数の決定木を統合することで分類精度を向上させることができます。

ただし、TSF アルゴリズムにはいくつかの制限もあります。1
) 時系列データの長さに敏感であり、時系列が短いと分類パフォーマンスの低下につながる可能性があります。
2) さらに、TSF アルゴリズムには時系列データの分布について強い仮定があり、データがこれらの仮定を満たさない場合、アルゴリズムのパフォーマンスに影響を与える可能性があります。

シェイプレット

シェイプレットは、実際には、ある期間の時系列データにおける特定の部分シーケンスであり、この部分シーケンスが、この期間の時系列データの最も顕著な特徴です (当然、シェイプレットは、トレンドおよび周期コンポーネントと同じであり、特別なコンポーネントでもあります)これは主に、時系列分類を解決するために KNN を使用するという初期の問題を解決するために提案されました。

  • KNN
    • 時系列分類における knn の考え方は非常にシンプルです。サンプルの m 時間ステップのデータがこのサンプルの m 個の特徴であり、knn を使用して実行します。もちろん、時系列分類の knn アプリケーションでは、ユークリッド距離を使用しますこのタイプの従来の距離計算では、明らかに時系列データ自体の順序依存情報が破棄されるため、時系列データの距離計算用の特別な距離式である DTW を使用して時系列データの距離を測定します

シェイプレットのアイデアは非常にシンプルかつ直感的であり、計算オーバーヘッドが削減され、非常に解釈しやすいものです。具体的には、記事に例が示されています: 次に、葉の輪郭を時系列データ (点座標に対応する) に変換します
ここに画像の説明を挿入
。葉の輪郭はすべて xy 平面座標系にあります)、次に、これら 2 つの葉に対応する時系列データを分類する必要があります。
上の図からわかるように、シェイプレットは青い曲線の赤い部分であり、これは左の葉に対応する時系列データの最も顕著な特徴であり、このデータを直接使用して、次の完全なシーケンス データを置き換えることができます。左側のリーフを選択し、 DTW 距離に基づいて KNN アルゴリズムを使用します。

2 つの葉に対応する時系列データは、多くのタイム ステップで類似しているため、距離ベースの計算は、最も類似した時点に対応するデータの影響を受けることは明らかですが、ここで最も明白な部分を抽出します。その後、明らかにモデルは次のようになります。異なる時系列サンプル間の大きな違いにもっと注意を払う

  • 2枚の葉の最も顕著な特徴のDTW距離が大きいと明らかに違うのでわかりやすいです。

志胡記事

複数ラベル分類問題

pytorch を解決するためのラベルの不均衡な重量の問題

マルチラベル分類の不均衡問題: https://discuss.pytorch.org/t/multi-label-multi-class-class-imbalance/37573

複数のカテゴリ:
ここに画像の説明を挿入

マルチラベル:
ここに画像の説明を挿入
まず、マルチラベルのテキスト分類問題と呼ばれるものについて説明します。

ここでは Kaggle の競合事例を組み合わせます。

コンテストの名前は「有害コメント分類チャレンジ」です。

  • リンクはこちら:kaggle

不均衡なマルチラベル データセットの Keras サンプルの重み:

from sklearn.utils import class_weight

list_classes = ["toxic", "severe_toxic", "obscene", "threat", "insult", "identity_hate"]
y = train[list_classes].values

sample_weights = class_weight.compute_sample_weight('balanced', y)
model.fit(X_t, y, batch_size=batch_size, epochs=epochs,validation_split=0.1,sample_weight=sample_weights, callbacks=callbacks_list)


モデル展開関連

志湖の記事: https://zhuanlan.zhihu.com/p/195750736

おすすめ

転載: blog.csdn.net/RandyHan/article/details/131763991