1日あたり数十億回の観測値で膨大なデータセットを分析しており、各観測値には数千のスパースで冗長な数値変数およびカテゴリ変数があるとします。回帰問題が1つ、不均衡なバイナリ分類問題が1つ、「どの予測変数が最も重要かを調べる」タスクが1つあるとします。問題にアプローチする方法についての私の考えは次のとおりです。
次の状態になるまで、データの次第に大きくなる(ランダムな)サブサンプルに予測モデルを適合させます。
モデルの適合と相互検証が計算上困難になります(たとえば、ラップトップで不当に遅くなる、Rでメモリが不足するなど)、または
トレーニングおよびテストRMSEまたは精度/リコール値が安定します。
トレーニングエラーとテストエラーが安定しなかった場合(1.)、より単純なモデルを使用するか、モデルのマルチコアバージョンまたはマルチノードバージョンを実装して、最初からやり直します。
トレーニングエラーとテストエラーが安定した場合(2.):
場合(つまり、私はまだ上のアルゴリズムを実行することができますそれはまだ大きすぎないよう)、特徴空間の拡大や、より複雑なモデルを使用して、最初から再起動することで、パフォーマンスを改善しよう。
場合「大きい」およびさらなる分析を実行することは高価であり、変数の重要度および終了を分析します。
私のようなパッケージを使用する予定のbiglm
、speedglm
、multicore
、およびff
R中に最初に、そして後に必要に応じて、より複雑なアルゴリズムおよび/または(EC2上の)マルチノードを使用します。
これは理にかなったアプローチのように聞こえますか?そうであれば、具体的なアドバイスや提案はありますか?そうでない場合、このサイズのデータセットに対して代わりに何を試してみますか?