1

私は機械学習の初心者で、scikit-learn を使用したことがありません。私はプロジェクトに取り組んでいます。プロジェクトの一環として、機械学習アルゴリズムをトレーニングして、いくつかの観察結果を個別のクラスに分類する必要があります。センサーからの観測を処理して、いくつかのデータを生成しました。しかし、処理されたデータの問題は、それが異なる観測に対して異なる長さのベクトルであることです。

ここに画像の説明を入力

この画像はデータの一部を示しています。緑の線はガウス フィルターを適用した後の生データで、赤の線はデータへの 16 度の多項式適合を示しています。1 行目は 3 つのピークを持つデータで構成され、2 行目は 4 つのピークを持つデータを含み、3 行目は 5 つのピークを持つデータを含みます。データを別々のクラスに分類できるようにしたい。

現在、多項式の係数を特徴ベクトルとして使用する予定です。最初の行は問題ありませんが、ピークの数が多い場合、多項式の適合が不十分になり、適切な分類につながらない可能性があります。高次多項式を使用してみましたが、ピーク数が少ない場合に誤動作が発生します。これはいくつかのクラスのサブセットにすぎないため、ピークの数をカウントするだけでは分類に使用できません。分類は、観察されたピークの相対的なサイズと分離にも依存しますが、この情報は多項式の適合ではあまり明確ではありませんピーク数が多い。

あるのか知りたい

  • データを分類するための特徴ベクトルを生成するのに役立つ多項式を当てはめようとする代わりに、他の方法があります。
  • Pythonで高次元のデータを可視化する方法

編集:

私は現在、多項式の代わりにスプラインを使用してデータscipy.interpolate.UnivariateSplineに適合させており、はるかに優れた適合を生成しています。ノットの位置とスプラインの係数を使用できるようになりました。しかし、これらのベクトルの長さは一定ではなく、同じ観測が 2 回繰り返されても異なります。誰かがそれを一定の長さのベクトルにマップする方法を提案できますか?

ここに画像の説明を入力

4

2 に答える 2

0

信号を特徴ベクトルに圧縮するもう 1 つの方法は、FFT 分析を実行し、最初のnFFT 係数を特徴として使用することです。

または、ウィンドウ FFT を実行して、一連の係数を取得することもできます。

于 2015-06-17T19:37:16.007 に答える
0

問題の主な原因がサンプル数の変化にある場合は、補間と再サンプリングよりも実際に進むべき道かもしれません。ただし、制約の少ない補間手法を使用します。ポイントが多数ある場合は、線形補間でも機能します。または、scikit Learn で適切に実装されているガウス過程回帰を使用することもできます。回帰を使用しているため、最初にガウス フィルターを適用する必要はありません。

GP を回帰に適用する方法の例については、このリンクを確認してください: http://scikit-learn.org/stable/modules/gaussian_process.html

于 2015-06-17T19:40:46.493 に答える