ビッグデータの最初のステップ(


21

1日あたり数十億回の観測値で膨大なデータセットを分析しており、各観測値には数千のスパースで冗長な数値変数およびカテゴリ変数があるとします。回帰問題が1つ、不均衡なバイナリ分類問題が1つ、「どの予測変数が最も重要かを調べる」タスクが1つあるとします。問題にアプローチする方法についての私の考えは次のとおりです。

次の状態になるまで、データの次第に大きくなる(ランダムな)サブサンプルに予測モデルを適合させます。

  1. モデルの適合と相互検証が計算上困難になります(たとえば、ラップトップで不当に遅くなる、Rでメモリが不足するなど)、または

  2. トレーニングおよびテストRMSEまたは精度/リコール値が安定します。

トレーニングエラーとテストエラーが安定しなかった場合(1.)、より単純なモデルを使用するか、モデルのマルチコアバージョンまたはマルチノードバージョンを実装して、最初からやり直します。

トレーニングエラーとテストエラーが安定した場合(2.):

  • 場合(つまり、私はまだ上のアルゴリズムを実行することができますそれはまだ大きすぎないよう)、特徴空間の拡大や、より複雑なモデルを使用して、最初から再起動することで、パフォーマンスを改善しよう。NsubsetNXsubset

  • 場合「大きい」およびさらなる分析を実行することは高価であり、変数の重要度および終了を分析します。Nsubset

私のようなパッケージを使用する予定のbiglmspeedglmmulticore、およびffR中に最初に、そして後に必要に応じて、より複雑なアルゴリズムおよび/または(EC2上の)マルチノードを使用します。

これは理にかなったアプローチのように聞こえますか?そうであれば、具体的なアドバイスや提案はありますか?そうでない場合、このサイズのデータ​​セットに対して代わりに何を試してみますか?


1
それは合理的なアプローチのように聞こえます。私は、同様のアプローチについての話を見つけました:youtube.com/watch?v=X9YVSDWQokQ
アルファ

2
jmlr.csail.mit.edu/proceedings/papers/v7/miller09/miller09.pdfこれは役に立つかもしれません。数学の詳細はこちら:ms.unimelb.edu.au/~millerh/papers/gencor_JCGS.pdf
dcl

@dcl:ありがとう-このアイデアは、(単変量ではありますが)うまく並列化できる素敵で計算的に安価な非線形変数選択方法です。高速で非常に簡単にコーディングできるので、試してみてください。私はもともと、この非常にクールなアルゴリズムcode.google.com/p/rf-aceを使用することを考えていました
ロックオフ

@alfa:私はこのアイデアが本当に好きです!最悪のパフォーマンスのメタパラメータを順次排除するために、データのますます大きなサブセットで順次テストを使用します。これはかなり大きくなるはずです。ありがとう!psは、講演の紙版です:biglearn.org/files/papers/biglearn2011_submission_2.pdf
lockedoff

回答:


2

このサイズのデータ​​セットの回帰および分類のオンラインメソッドを確認する必要があります。これらのアプローチにより、メモリにロードせずにデータセット全体を使用できます。

Vowpal Wabbit(VW)もチェックアウトできます。

https://github.com/JohnLangford/vowpal_wabbit/wiki

コア外のオンラインメソッドを使用するため、このサイズのデータ​​セットを処理できる必要があります。回帰と分類を行うことができ、スパース形式をサポートしています。VWでペナルティバージョン(たとえば、投げ縄タイプの回帰/分類)を行うこともできます。これにより、モデルの精度が向上する可能性があります。


2

HadoopとRMR(RのMap Reduceの特定のパッケージ)を使用することをお勧めします。この戦略を使用すると、大規模なデータセットを手頃な価格の構成でコモディティコンピューターで実行できます(おそらく2時間でHadoopとRMR(RHadoop)の両方をインストールして実行します)。

実際、複数のコンピューターがある場合は、クラスターを作成して処理時間を短縮できます。

私の提案をサポートするいくつかのリンクを提供します:

  • このリンクは、Hadoopを単一ノードクラスター(1台のコンピューター)にインストールするためのチュートリアルにつながります。
  • このリンクとこのリンクは、HadoopクラスターにRMRをインストールする方法を示します。
  • そして最後に、ここであなたはRHadoopによるロジスティック回帰の例を見つけることができます。

したがって、私のアドバイスは、これらのガイドラインに従うことです。データが膨大であれば確かに価値があるからです。


0

これは回答というよりもコメントですが、コメントとして投稿することはできません(50人が必要です)。

データセットでPCAを使用しようとしましたか?変数空間を削減し、変数が回帰モデルから除外する可能性のある方向を見つけるのに役立ちます。そうすることで、モデルの計算が簡単になります。ここで、カテゴリー変数でのPCAの使用に関する興味深い議論を見つけることができます:主成分分析は、連続変数とカテゴリー変数が混在するデータセットに適用できますか?

また、多くの理由でRを使用していると思います(私もRを使用しています)が、SASやSTATAなどのソフトウェアを使用する方が簡単かもしれません。ビッグデータを使用するとパフォーマンスが向上し、マルチコアおよび並列コンピューティングを扱う必要がなくなります。

最後に、データセットから可能な限り多くの行を使用することが理にかなっているかどうかを考えてみてください。これは、人口データセット、準人口データセット、またはサンプリングされたデータセットですか?データセット全体を適切にサンプリングすると、データ全体を使用するよりも良い結果が得られる場合があります。この投稿を見てください:サンプリングは「ビッグデータ」の時間に関連していますか?

お役に立てれば

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.