一般的なデータセットのデータ増強技術?


21

多くの機械学習アプリケーションでは、いわゆるデータ増強方法により、より良いモデルを構築できます。たとえば、猫と犬の枚の画像のトレーニングセットを想定します。回転、ミラーリング、コントラスト調整などにより、元の画像から追加の画像を生成できます。100

画像の場合、データの増加は比較的簡単です。ただし、(たとえば)サンプルのトレーニングセットと、さまざまなものを表す数百個の連続変数があるとします。データ拡張は、もはやそれほど直感的ではないようです。そのような場合に何ができますか?100


2
PCAやAEのようないくつかの方法は、データ増強のためにまだ直観的だと思います。最初の方法は、PCAを適用し、最初のk個の固有値を保持し、分布、ガウスなどからkn個の固有値をランダムに設定します。別の方法では、オートエンコーダーを使用してデータ自体を構築します。非表示のユニットの数が表示されているユニットに近い場合、それ自体はかなり良好に構築できます。再構築されたデータは、データの拡張部分として使用できます。
yasin.yazici

@mmh、これはあなたの質問に答えましたか?
shf8888

@ yasin.yaziciこんにちは。pcaを使用したデータ増強について少し説明していただけますか?私は、データがあると50は、特徴次元います。ここでPCAを実行すると、最初の30個の固有ベクトルが十分であることがわかります。次の20個の固有ベクトルで何をすべきか、ランダム性をどのように導入すればよいですか?100バツ50503020
ロニ

画像のデータ拡張技術の概要については、80ページの修士論文を参照してください
マーティントーマ

データの増強は、画像に対して非常に理にかなっています。オブジェクトの回転画像はオブジェクトの画像であり、モデルをそれに露出する必要がありますが、データセットに必ずしもそのような画像があるとは限りません。この場合のデータ増強の必要性/ポイントは何ですか?あなたがこれを行うべきかどうかは私には明らかではありません。
gung-モニカの復職

回答:


17

この質問は、フィーチャの構築と、観察に関連して構築する豊富なフィーチャの処理を含むものとして理解しています(N << P)。

機能構築

@ yasin.yaziciのコメントを展開すると、データを拡張するいくつかの可能な方法は次のようになります。

  • PCA
  • 自動エンコード
  • ログ、パワーなどの変換
  • 連続変数を離散カテゴリにビニングします(つまり、連続変数は平均より1 SD、平均より1 SDなど)。
  • 複合変数(たとえば、こちらを参照)

私は行方不明になっている多くのものがあると確信しています。

特徴選択/次元削減

PCAなどの手法を使用して次元を減らすことができます(ただし、PCA変数を使用してデータを拡張した後ではないかもしれません)。または、投げ縄、ランダムフォレストなどの機能選択を実行するアルゴリズムを使用することもできます。


2
機能の構築に自動エンコードを使用する方法を教えてください。
ロニ

1
@roniオートエンコーダーのトレーニングに成功すると、より高いレベルの抽象化でデータがある程度表現されます。分類器で使用できる、より便利な表現を願っています。
クリスアンダーソン

0

ラベル付けされていない数値データを増やしたいという、同様の問題に直面しました。次の方法でデータを拡張しました(サイズが100 * 10のデータセットがあるとします)。

  1. ゼロの数が1の数より小さくなるように、{0,1}から値をランダムにサンプリングしてリストを作成します。この場合、0の割合は20%です。したがって、長さ100の0と1のリストがあります。
  2. このリストを従属変数として使用し、それをスモートに渡して、より多くのデータポイントを生成します。(ここでは、smoteは、生成されたリストの0に対応するデータポイントを接続するエッジにポイントを生成します)。
  3. 必要なサイズのデータ​​セットが取得されるまで、このプロセスを繰り返します。

1
複数のスレッドに同一の回答を投稿しないでください。他の場所に投稿したのと同じ回答が別の質問に完全に回答すると本当に信じている場合は、その質問に最初の質問の複製としてフラグを立てます。
gung-モニカの復職
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.